1

假设我有一个.vsprops用于解决方案的文件。在该文件中,定义了各种变量,例如int_dir中间构建结果和log_dir日志结果。

通常,这些变量被设置为默认值(相对于解决方案)。

对我来说,我想将这两个变量设置到我的 ramdisk ( R:) 中,即不再

$(SolutionDir)\intermediate

R:\myproject\intermediate

如果我.vsprops直接更改文件,源代码管理 (Git) 会将其标记为已修改。

VSPROPS 中是否有一种方法可以检查环境变量,如果未设置此变量,则使用默认值?

如果这是不可能的,我也会对 Git 解决这个问题的解决方案感兴趣(但不是--assume-unchanged也不是,.gitignore因为该文件中的其他更改可能是相关的)。

4

1 回答 1

2

纯 Git 解决方案可以使用gitattribute 过滤器驱动程序

内容过滤器

它将涉及一个smudge在 上执行的脚本,该脚本git checkout将:

  • 检测是否要更改$(SolutionDir)(例如,测试其中包含更新路径的环境变量)
  • 检测正确的文件 ( xxx.vsprops.tpl) 内容(脚本不知道它所操作的文件名或路径
  • .vsprops从(模板文件)生成实际 .vsprops.tpl版本,该文件是版本化的(.vsprops不再版本化)

您可以添加一个clean脚本,该脚本将保留(on git commit)在文件中完成的所有修改.vsprops回到.vsprops.tpl,除了该$(SolutionDir)行。

于 2012-10-19T07:42:42.737 回答