有沒有什麼辦法可以忽略對mercurial提交的某些文件的更改?mercurial中是否存在ignore-on-commit選項?
我有一個特定的情況,我們有一個默認的oracle tnsnames.ora文件指向127.0.0.1,但一些開發人員會修改它指向其他系統,但我們不想更改默認值文件。
在顛覆,我簡單的將此添加到忽略-ON-commit的更改。有沒有辦法在mercurial中做到這一點?
有沒有什麼辦法可以忽略對mercurial提交的某些文件的更改?mercurial中是否存在ignore-on-commit選項?
我有一個特定的情況,我們有一個默認的oracle tnsnames.ora文件指向127.0.0.1,但一些開發人員會修改它指向其他系統,但我們不想更改默認值文件。
在顛覆,我簡單的將此添加到忽略-ON-commit的更改。有沒有辦法在mercurial中做到這一點?
如果你想從「汞承諾」命令忽略文件已經「跟蹤」,你應該使用-X選項。傳遞給-X的模式是非常靈活,使其能夠例如運行:
% hg stat
A etc/foo.conf
M src/bar.c
M lib/libbar/loader.c
% hg commit -X '**.conf'
避免不管它有多深源代碼樹住提交的任何文件以「.conf文件」擴展名。在上面顯示的工作空間中,這將提交「src/bar.c」和「lib/libbar/loader.c」,但不包含「etc/foo.conf」。
要排除的文件名的多種模式,使用多個-X選項,即:
% hg commit -X '**.conf' -X '**.sh'
在Mercurial的文檔中查找.hgignore文件。
這是一個忽略文件示例。
# use glob syntax.
syntax: glob
*.elc
*.pyc
*~
# switch to regexp syntax.
syntax: regexp
^\.pc/
你可以別名承諾類似「汞承諾-X excluded_file.ext」我從來沒有使用水銀,所以我只是被男人頁面會在這裏。
傳統上,這解決了沒有版本的文件本身,而是通過版本控制它的一個副本供他人使用的模板。
所以,你會hg mv tnsnames.ora tnsnames.ora-template
,然後提交,然後做的tnsnames.ora模板的直文件系統副本的tnsnames.ora,和tnsnames.ora添加到.hgignore文件。
到模板後續更改仍將被推出來,但他們實際上並不會改變,除非有人複製工作環境模板到實際的文件。
tnsnames.ora文件中已被選中。我想,因爲他們僅僅是爲了我的機器忽略我的本地更改。這就是爲什麼.hgignore不起作用 – 2009-05-19 20:17:36