如何使用tortoise hg"作为存储库的一部分"来忽略kiln/mercurial中的文件

Gul*_*llu 8 mercurial dvcs tortoisehg kiln

我们用窑龟用hg.在我的vs 2010 c#项目中,有一些文件是存储库的一部分但是我想在我提交时忽略它们.例如,在登录屏幕中,我可以硬编码用户ID,密码用于测试.我真的不希望在提交期间考虑此文件.我理解.hgignore文件,但这确实适用于不属于repo的文件.在togise 中有什么技巧可以忽略属于repo的文件?(因此在提交期间它们不会显示为已修改的(M).)谢谢

Chr*_*cht 17

我总是使用.hgignore和BeforeBuild(在.csproj文件中)的组合来做这样的事情.

在我的一个宠物项目中,我有以下设置:

App.config包含我用于测试的真实硬编码用户ID和密码.
App.config.example是相同的,但有假的数据,如"dummy_user"和"dummy_pw".

App.config不是该库的一部分,而且它忽略(中.hgignore).
App.config.example是存储库的一部分.

然后,我在BeforeBuild我的解决方案的.csproj文件中的目标中有以下内容:

<Target Name="BeforeBuild">
  <Copy
    Condition="!Exists('App.config')"
    SourceFiles="App.config.example" 
    DestinationFiles="App.config"/>
</Target>
Run Code Online (Sandbox Code Playgroud)

所有这些一起具有以下效果:

  • 具有真实数据的配置文件永远不会意外地提交到存储库,因为它被忽略了
  • 存储库仅包含带有示例数据的配置文件
  • 如果有人将存储库克隆到他的机器上,他就不会有"真正的"配置文件...但是如果它丢失了,它将在Visual Studio/MSBuild首次构建之前通过简单地复制.example文件自动创建(和然后他就可以把真实的登录数据放到新创建的App.config文件中了.
  • 如果App.config与真正的硬编码的用户数据已经存在,它不会被建立,因为如果BeforeBuild事件只会发生在覆盖App.config确实存在