2011-01-12 101 views
5

我的團隊切換到水銀。我們的項目都有一個配置文件(web.config或app.config,還有一些bat文件 - 我們是C#商店)。這些文件需要成爲存儲庫的一部分。當開發人員克隆存儲庫時,需要對其配置文件進行本地更改才能使其工作。例如,項目的配置文件可能需要連接字符串到開發人員的數據庫或其他特定於環境的信息。我們不希望這些更改在存儲庫中結束。我們不時對這些配置進行更改,這些配置需要進入存儲庫並分發給團隊並最終分發給客戶。如何配置Mercurial不提交特定的配置文件?

什麼是我們配置或使用水銀,使這些文件沒有得到意外犯下的最簡單的方法?我希望被迫做出這樣的文件的明確提交,但從回購合併將自動降低更新。

這有可能是一個問題,別人已經遇到,但水銀新手,我們都在最好的解決方案的損失。

編輯:

,可能有一些共同的解決方案,而不是與此相同的問題類似的問題,可以在這裏找到:Conditional Mercurial Ignore File

我包括這情況下,其他問題可能會提供你正在尋找的答案。

+0

的可能重複[條件水銀忽略文件(http://stackoverflow.com/questions/4502108/conditional-mercurial-ignore-file) – 2011-01-13 12:59:17

+0

如果你讀了兩個問題,他們是不一樣的。他們是不同的問題,可能有一些共同的解決方案。我將繼續編輯我的問題,將其他問題指向相關問題。 – 2011-01-18 20:34:34

回答

6

來處理這種情況的典型方法是將存儲在您爲復位器配置文件模板,和實際的配置文件添加到水銀忽略列表。

通過這種方式,即使是從頭開始克隆的新開發人員,您也可以隨時獲得每個配置文件的原始未修改副本,但爲了使配置文件可用,您需要製作本地副本它以實際的配置文件名稱,並修改文件。你也可以使用比較/合併方案,如超越比較,比較的模板文件的新版本與您當地的一箇舊版本的副本,看看有什麼改變,並添加缺少的位。

如果您需要努力防止提交實際的配置文件,則需要執行此操作的預提交或預推送掛鉤。

1

在你.hg/hgrc文件做到這一點:

[defaults] 
commit = -X Projectname/web.config 

(假設 「項目名」 是該項目子目錄)


編輯:如果您使用

而且,龜HG - 添加此還有:

[tortoisehg] 
ciexclude = Projectname/Web.config,Projectname/App_Data/DBFile.mdf 

順便說一句介意文件夾路徑中的FORWARD斜槓!即使在Windows!)

相關問題