【问题标题】:how to ignore files in kiln/mercurial using tortoise hg "that are part of the repository"如何使用 tortoise hg “作为存储库的一部分”忽略 kiln/mercurial 中的文件
【发布时间】:2011-11-13 03:28:15
【问题描述】:

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

【问题讨论】:

    标签: mercurial dvcs tortoisehg kiln


    【解决方案1】:

    我总是结合使用 .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>
    

    所有这些一起产生以下效果:

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

    【讨论】:

      【解决方案2】:

      Christian 的答案是正确的,但我想提一下,TortoiseHg 支持您的Auto Exclude List。

      排除列表的一个问题是它不能与合并一起使用:您必须在合并时提交所有文件,因此您必须在搁置、合并、提交和取消搁置方面做一些小动作。

      【讨论】:

      • 是否支持通配符?一个简单的测试表明它没有,我需要按名称列出每个文件,但我想确保我没有遗漏任何东西。
      【解决方案3】:

      当您执行 TortoiseHG 提交时,会出现一个带有复选框的文件列表。取消选择您不想提交的文件。

      或者,在命令行上执行hg commit --exclude "pattern" 形式的提交,其中模式在 hg 手册页中定义。

      【讨论】:

      • 是的。这就是我现在所做的,但有时我忘记取消选中你提到的那个框,因为我不想提交的文件被埋在我想要提交的一大堆文件的中间——因此这个问题:-)。谢谢
      • @Gullu:我发现命令行是 hg 中更复杂操作的最佳方法。我会建议一个“safecommit.bat”文件,它会排除包含敏感数据的文件。
      • 好的。如果没有其他方法,我将冒险进入黑暗面(命令行)。谢谢
      【解决方案4】:

      你总是可以使用hg forget。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-13
        • 2016-07-24
        • 2013-04-17
        • 2023-04-10
        • 1970-01-01
        相关资源
        最近更新 更多