2013-08-01 51 views
1

我有幾個存儲庫用於跟蹤我們系統中各種用途的腳本。例如,一些腳本是用於上拉,修改和執行的sql腳本。很多時候,這些腳本將包含一組靠近頂部的參數,這些參數被更改爲查看特定記錄集。如何讓Mercurial忽略文件各部分的差異?

不幸的是,只要我使用該文件,它總是顯示爲hg狀態的變化。我真的很想用一種方式向Mercurial表明文件的某些部分對於檢測更改的目的不感興趣。

我知道(並經常使用)MQ,記錄和擱置擴展 - 但所有這些都需要我做一些操作來忽略這些行。我真的希望只是讓他們忽略。

有什麼建議嗎?

回答

0

可以可能使用一個pre-commit和post-commit鉤子做到以下幾點:

  1. 在預提交,將文件複製出來一些臨時已知的文件,然後將其覆蓋與原始的未修改的版本
  2. 讓承諾繼續
  3. 在提交後,將文件從臨時位置複製回

然而,這是脆弱的,並且需要每個有這個問題的人確保他們安裝了相同的鉤子。請記住,掛鉤不會提交到存儲庫,但必須手動設置。

這樣做的建議方法是將模板文件以不同的文件名提交到存儲庫,然後讓Mercurial忽略您不斷修改的整個實際文件。

然後,當您設置一個新的工作文件夾(我假設不經常發生)時,只需從模板中拷出一個可用版本就可以了。如果您自動運行腳本,則可以通過步驟if not exists ... copy ...步驟將此步驟自動化。

但是,您不能要求Mercurial在每次提交時自動忽略文件的某些部分。

0

隨着MQ,您可以:

  • 把你所有的(本地)編輯成MQ-補丁
  • 創建別名,它在單個命令 「不應用所有補丁之前提交,並承諾」