簡體   English   中英

如何使用tortoise hg“作為存儲庫的一部分”來忽略kiln / mercurial中的文件

[英]how to ignore files in kiln/mercurial using tortoise hg “that are part of the repository”

我們用窯龜用hg。 在我的vs 2010 c#項目中,有一些文件是存儲庫的一部分但是我想在我提交時忽略它們。 例如,在登錄屏幕中,我可以硬編碼用戶ID,密碼用於測試。 我真的不希望在提交期間考慮此文件。 我理解.hgignore文件,但這確實適用於不屬於repo的文件。 在togise 中有什么技巧可以忽略屬於repo的文件 (因此在提交期間它們不會顯示為已修改的(M)。)謝謝

對於像這樣的事情,我總是使用.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與真正的硬編碼的用戶數據已經存在,它不會被建立,因為如果BeforeBuild事件只會發生在覆蓋App.config存在

Christian的答案是正確的,但我想提一下TortoiseHg通過他們的自動排除列表支持你想要的東西。

排除列表的一個問題是它無法使用合並:您必須在合並時提交所有文件,因此您必須與擱置,合並,提交和取消擱置進行一些跳舞。

當您執行TortoiseHG提交時,會有一個包含復選框的文件列表。 取消選擇您不想要的文件。

或者,在命令行上,執行提交形式hg commit --exclude "pattern" ,其中pattern在hg手冊頁中定義。

你可以隨時使用hg忘記

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM