首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >"hg mv“命令的执行情况

"hg mv“命令的执行情况
EN

Stack Overflow用户
提问于 2011-03-04 15:25:43
回答 3查看 6.8K关注 0票数 9

比方说,存储库中有file.txt,有两个人在攻击它。其中一人使用hg mvfile.txt移动到另一个文件夹,并立即将其推送到存储库中。当同事决定推送自己的补丁时,Mercurial是否有可能自动将原始file.txt中的更改合并到移动后的file.txt中?

我是不是太乐观了?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-03-04 18:16:14

简短的回答:是的,你可以。

长长的例子:一个经典的Java重构与同一文件中的代码更改

代码语言:javascript
运行
复制
mkdir hgmv
cd hgmv/
mkdir -p com/example/hgmv/
cat << EOF > com/example/hgmv/Main.java
package com.example.hgmv;
class Main
{  
  public static void main(String args[])
  {
    System.out.println("Hello World!");
  }
}
EOF
hg init .
hg add com/example/hgmv/Main.java
hg commit -m "First working version"
cd ..
hg clone hgmv hgmv.refactor
hg clone hgmv hgmv.translation

cd hgmv.refactor
hg branch refactor
hg mv com/example/hgmv/Main.java com/example/hgmv/HgMv.java
sed -i'' 's/Main/HgMv/g' com/example/hgmv/HgMv.java
hg commit -m "refactoring Main->HgMv"
hg push -f --new-branch ../hgmv
cd ..

cd hgmv.translation
hg branch translation
sed -i'' 's/Hello World!/Bonjour Monde!/g' com/example/hgmv/Main.java
hg commit -m "french translation"
hg push -f --new-branch ../hgmv
cd ..

cd hgmv
hg up refactor
hg merge translation
hg commit -m "merge"
cat com/example/hgmv/HgMv.java

:这是mercurial胜过git的优势之一

  • Mercurial存储在提交时重命名/复制。
  • Git猜测在合并时重命名/复制。
票数 15
EN

Stack Overflow用户

发布于 2011-03-04 16:07:09

Mercurial将重命名存储在存储库的元数据中,因此当您执行hg mv OLD NEW时,Mercurial会保留您移动文件的信息。

当你的同事从存储库中拉出修改时,他也会拉出重命名,Mercurial将尝试尽可能好地合并更改。如果你只是重命名文件,根本不会有任何问题,你的同事所做的更改将与重命名合并。

但是,在以下情况下可能会出现冲突:

  1. 您也修改了该文件,在这种情况下,这与给定文件上的任何冲突都是相同的。
  2. 您的同事也重命名了该文件,在这种情况下,Mercurial会询问使用哪个名称是正确的。
票数 5
EN

Stack Overflow用户

发布于 2011-03-04 15:32:58

合并是在工作人员的私有存储库中完成的,而不是您的中央存储库。为了执行合并,第二个用户必须发出hg fetch命令,该命令将只修改他自己的私有存储库。然后,他必须执行hg push以上载到中央存储库。我认为出现问题的可能性几乎为零。

如果你谈论的是两个人在同一工作文件中工作,或者两个人同时在同一个repo上工作,那么你做错了(tm)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5190913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档