我们用窑龟用虎。在我的vs 2010 c#项目中,有一些文件是存储库的一部分但是我想在我提交时忽略它们。 例如,在登录屏幕中,我可以硬编码用户ID,密码用于测试。我真的不希望在提交期间考虑此文件。我理解.hgignore文件,但这确实适用于不属于repo的文件。 togoise hg中的任何技巧忽略属于repo的文件? (因此在提交期间它们不会显示为已修改(M)。)谢谢
答案 0 :(得分:17)
我总是使用.hgignore和BeforeBuild
(在.csproj文件中)的组合来做这样的事情。
在我的一个宠物项目中,我有以下设置:
App.config
包含我用于测试的真实硬编码用户ID和密码
App.config.example
是相同的,但是使用了像“dummy_user”和“dummy_pw”这样的假数据。
App.config
不是存储库的一部分,和它被忽略(在.hgignore
中)。
App.config.example
是存储库的一部分。
然后,我在我的解决方案的.csproj文件中的BeforeBuild
目标中有以下内容:
<Target Name="BeforeBuild">
<Copy
Condition="!Exists('App.config')"
SourceFiles="App.config.example"
DestinationFiles="App.config"/>
</Target>
所有这些共同具有以下效果:
.example
文件(然后他可以将他的真实登录数据放入新创建的App.config
文件中。)App.config
,则在构建时不会覆盖它,因为仅当App.config
不已存在时,才会发生BeforeBuild事件答案 1 :(得分:4)
Christian的答案是正确的,但我想提一下TortoiseHg用Auto Exclude List支持你想要的东西。
排除列表的一个问题是它无法使用合并:您必须在合并时提交所有文件,因此您必须与搁置,合并,提交和取消搁置一起跳舞。
答案 2 :(得分:1)
当您执行TortoiseHG提交时,会有一个包含复选框的文件列表。取消选择您不想要的文件。
或者,在命令行上,执行hg commit --exclude "pattern"
形式的提交,其中模式在hg手册页中定义。
答案 3 :(得分:0)
您可以随时使用hg forget。