我的存储库中有两个脑袋。我有五个文件,我在本地编辑。 Bitbucket repo有15个我没有编辑的已更改文件,但它也包含相同5个文件的更改版本。
我想做以下事情:
1)如果我编辑了一个文件并且Bitbucket repo包含相同的编辑文件,我希望我的更改可以优先考虑。
2)如果我没有编辑文件,我想更新到最新版本。
Mercurial中的哪些命令序列可以让我这样做?我是否必须使用外部程序?
答案 0 :(得分:1)
WITH LOCAL COMMITS
hg pull
hg update --rev ${my version}
hg merge --rev ${their version} --tool internal:local
另见hg help merge-tools
没有本地委托
hg status -qn
为您提供已更改的文件列表。由于它只有五个文件,我会手动复制它们,然后还原,拉动,更新并将它们复制回原位。在unix上你可以写一个抛弃的shell脚本,有点像这样:
ls -l *.mine # check to see that there are none
for file in `hg status -qn`; do cp ${file} ${file}.mine; done
hg revert --all; hg pull; hg update
for file in *.mine; do cp ${file} ${file%.mine}; done
这是未经测试的代码。运行它需要您自担风险。吃松饼,快乐。
答案 1 :(得分:-1)
只是做
hg pull
hg merge
这将从bitbucket中提取最新更改,并允许您按照自己的方式合并本地更改。
这实际上是一个基本功能,您应该阅读一些关于mercurial的文档,例如HG Init,如评论中所述。