假设某个存储库中有file.txt
,两个人正在对其进行破解。其中一个将file.txt
移到另一个带有hg mv
的文件夹中,并立即将其推送到存储库中。当同事决定进行自己的润色时,Mercurial是否有可能将原始file.txt
的更改自动合并到移动的file.txt
中?
我太乐观了吗?
最佳答案
简短答案:是的,可以。
较长的示例:经典Java重构与同一文件中的代码更改
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
和火红的:这是超过git 的 Mercurial 力量之一