我正在尝试只使用Mercurial提交某些文件.由于每当我尝试提交更改时hg都会自动添加,因此它想要提交所有文件.但我不希望这样,因为某些文件还没有"准备好".
有
hg commit -I thefile.foo
Run Code Online (Sandbox Code Playgroud)
但这仅适用于一个文件.对我来说更好的方法是如果我可以像在Git中那样关闭自动添加.这可能吗?
我的项目中有一个包含数据库设置的文件,我已将其设置为某些默认值.该文件由Mercurial跟踪并签入.由于此文件将使用不同的值编辑各种开发人员机器,有没有办法告诉Mercurial忽略对此文件的新更改?
我尝试将文件添加到.hgignore文件中,但由于文件被跟踪,因此不会被忽略.这在其他情况下还不错,但我想知道我能在这里做些什么吗?
有没有办法忽略对mercurial提交中某些文件的更改?
我有一个特定的情况,我们有一个默认的oracle tnsnames.ora文件,指向127.0.0.1,但有些开发人员会修改它指向其他系统,但我们不想更改默认文件.
在subversion中,我简单地将它添加到ignore-on-commit更改列表中.有没有办法在mercurial这样做?
我通常使用Tortoise SVN,但我一直在研究Mercurial,因为它是一个分布式版本控制系统.
我在两个系统中寻找的是一个工具,让我只选择一部分文件并提交它们.如果我现在想要这样做,我必须复制到文件的临时版本并仅保留我想要在当前版本中提交的更改,然后在提交后再次将临时版本复制到当前版本.这只是一个麻烦,程序应该能够为我做这件事.
我听说Git支持这个,如果这是正确的,请告诉我.
假设您这样做,hg status并且您修改了三个文件.我知道如何签入所有三个文件(hg commit).但是,如何检入(然后hg push)只修改其中一个文件?
Subversion商店考虑转向Mercurial,试图提前弄清楚开发商的所有投诉是什么.这里有一个相当常见的用例,我看不懂如何处理.
怎么办?
我看过" Mercurial cherry pick for commit for commit "和" mercurial中的最佳实践:分支与克隆,以及部分合并? ",所有建议似乎都是不同复杂程度的扩展,从Record和Shelve到Queues.
事实上,显然没有任何核心功能,这让我怀疑在某种意义上这种工作方式是做错了.这个用例的类似Mercurial的解决方案是什么样的?
编辑补充: git的,相比之下,似乎专为这个工作流程:git add修正错误的文件,没有git add任何东西(或者git reset HEAD你可能已经添加任何东西), git commit.