是否可以使用Mercurial指定未版本控制文件的初始状态?
更具体地说,我希望这可以工作:
jonathan@dev-vm ~$ mkdir initial-state
jonathan@dev-vm ~$ cd initial-state/
jonathan@dev-vm ~/initial-state$ hg init
jonathan@dev-vm ~/initial-state$ touch main.cpp
jonathan@dev-vm ~/initial-state$ touch config.cpp
jonathan@dev-vm ~/initial-state$ hg add
adding config.cpp
adding main.cpp
jonathan@dev-vm ~/initial-state$ echo "config.cpp" > .hgignore
jonathan@dev-vm ~/initial-state$ hg add
adding .hgignore
jonathan@dev-vm ~/initial-state$ hg commit -m "initial commit"
jonathan@dev-vm ~/initial-state$ echo "#define CONFIG true" >> config.cpp
# This is what I would like to see:
jonathan@dev-vm ~/initial-state$ hg status
jonathan@dev-vm ~/initial-state$
# This is what happens:
jonathan@dev-vm ~/initial-state$ hg status
M config.cpp
jonathan@dev-vm ~/initial-state$
答案 0 :(得分:2)
在将main.cpp
添加到main.cpp
之前,您要做的是提交.hgignore
的初始版本。 main.cpp
仍显示在hg status
上的原因是,因为当您执行第一次提交时它在.hgignore
中列出,所以第一次提交实际上不会将更改提交到main.cpp
(初始版本)。
所以,而不是:
% hg init % touch main.cpp % hg add main.cpp % hg ci -m "Initial commit" % echo "main.cpp" >.hgignore % hg add .hgignore % hg ci -m "Update hg ignore" % echo "wotnot" >main.cpp % hg status # you should see nothing
话虽如此,将main.cpp
放在.hgignore
中并不会阻止将来提交该文件。可以通过执行以下操作来更改和提交文件:hg ci -m "commit main.cpp" main.cpp