您的位置:首页 > 其它

hg branch

2012-08-09 12:41 204 查看
http://www.codingboy.com/zlog/post/21.html

Mecurial的branch使用,branch在Mercurial中使用有点特别,需要注意一下,使用不当后果自负哦。

view sourceprint?

1.
>hg init my-test

2.
>cd my-test


这时的branch是default,可以用如下命令查看

view sourceprint?

1.
>hg branch


新建一个stable branch,并且切换过去

view sourceprint?

1.
>hg branch stable

2.
>hg ci –m "add stable branch"


提交stable branch

view sourceprint?

1.
>hg update default –C


切换到default branch

view sourceprint?

1.
>echo 1111 >> 1.txt

2.
>echo 2222 >> 2.txt

3.
>echo read me >> readme.txt

4.
>hg ci –A –m "add some files"


在default branch上提交一些文件。

呵呵现在想把readme.txt merge到 stable branch上,Mercurial不支持,⊙﹏⊙b汗。不过可以这样做

view sourceprint?

1.
>hg update stable -C

2.
>hg revert –r defaut readme.txt


先切到stable branch上,在恢复一个readme.txt文件。呵呵

view sourceprint?

1.
>hg status


查看一下状态时M的。直接提交

view sourceprint?

1.
>hg ci –m "merge readme.txt from default branch"


可以查看一下heads发现,有两个头,一个stable的一个default,这个当然废话。不过一定记住。呵呵,后面的动作就危险了。请看

view sourceprint?

1.
>hg update default –C

2.
>hg branch stable –force


切到default branch上,保持当前文件,强行切到stable上。这个强。如果这个时候commit会怎么样?试试

view sourceprint?

1.
>hg ci –m "nothing"


在看看heads,呵呵还是两个头,都是stable的。

这时候revert一下推到stable原始状态。

view sourceprint?

1.
>hg revert –r 8


这个8是stable branch上“merger readme.txt”的那个版本,查看一下目录下的文件结构,呵呵好像和以前一样。不过如果你认为这个命令会退回到8,那就错了。看看heads会发现 仍然两个heads,都是stable,这个时候你要merge一下才可以。

view sourceprint?

1.
>hg merge –r 8


不过这个时候default在哪里?看下面

view sourceprint?

1.
>hg update default –C


呵呵还在,加个tag先

view sourceprint?

1.
>hg tag b1.0


看看heads,如果不做上面的merge,这个时候会有3个heads。之后再做一些操作。

view sourceprint?

1.
>echo 3333 >> 3.txt

2.
>echo 4444 >> 4.txt

3.
>hg ci –m "add 3.txt and 4.txt"


default branch多了两个文件。现在merge到stable上。

view sourceprint?

1.
>hg update stable –C

2.
>hg merge default


看看目录,很晕,1.txt 和2.txt没merge过来。~~~~(>_<)~~~~ 杯具呀。为什么?h都是上面hg revert –r 8搞的鬼,╮(╯▽╰)╭

总结:

1.hg branch *** 切换branch尽量少用。没事别用,用hg update 和hg merge搞定比较好。

2.merge单个文件可以用hg revert做。



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  branch merge mercurial c