在mercurial书签的帮助下重现git分支模型

Ali*_*lik 4 git mercurial git-branch

我正在尝试使用Mercurial,我希望借助Bookmark扩展来重现git分支模型.这是问题所在.

想象一下,我有一个故事.我添加了2个书签

user@host:/tmp/hgtest$ hg bookmark main
user@host:/tmp/hgtest$ hg bookmark feature
user@host:/tmp/hgtest$ hg bookmarks 
 * feature                   0:76c6736b4548
   main                      0:76c6736b4548
Run Code Online (Sandbox Code Playgroud)

之后我提交了一些代码,并确定该功能已准备好(不久的将来不会对此功能进行开发).此时书签指向不同的提交.

user@host:/tmp/hgtest$ hg bookmarks
 * feature                   2:9d32bb6bdbc6
   main                      0:76c6736b4548
Run Code Online (Sandbox Code Playgroud)

现在我回到我开始开发我的功能的状态

user@host:/tmp/hgtest$ hg up main
resolving manifests
removing second.file
getting first.file
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
Run Code Online (Sandbox Code Playgroud)

我想发出merge命令,以使历史图看起来像这样

user@host:/tmp/test-git$ git log --graph
*   commit d8a957350fc8fbaf542e20aac0d4c95477cc2d3c
|\  Merge: 20493a7 7b59a16
| | Author: Author
| | Date:   Mon Jul 11 18:35:09 2011 +1100
| | 
| |     Merge branch 'testfeature'
| |   
| * commit 7b59a16d0b01d9bcc22f21a3c68f63acf60f37da
| | Author: Author
| | Date:   Mon Jul 11 18:34:34 2011 +1100
| | 
| |     Added line to test.file
| |   
| * commit 20ea105cf300f7f3e952ac7eddffd2aee6811f7c
|/  Author: Author
|   Date:   Mon Jul 11 18:32:27 2011 +1100
|   
|       Added code for testfeature
|  
* commit 20493a7a61705967b092780cae9fadd76ec49019
  Author: Author
  Date:   Mon Jul 11 18:25:17 2011 +1100
Run Code Online (Sandbox Code Playgroud)

但Mercurial不允许这样做

user@host:/tmp/hgtest$ hg merge feature
abort: nothing to merge (use 'hg update' or check 'hg heads')
user@host:/tmp/hgtest$ 
Run Code Online (Sandbox Code Playgroud)

我想重现git方法,因为它允许将大量的开发提交分解为一系列与功能相关的提交,使其更容易理解历史.

如果我可以使用其他技术实现此类行为,请随时与我分享.

Ida*_*n K 5

我想你可能会有所作为.

Meritial没有以git术语进行"快进"合并.这就是它告诉你的:没有什么可以合并的,你应该hg update feature改为.但这不会将您的main书签移动到您想要的位置(并且它也会更改您当前的书签).

这基本上会迫使你hg bookmark -f main在更新后立即采取行动,这似乎并不正确.

我将把它带到mercurial-devel邮件列表,看看其他人的想法,并在我得到一些新闻后更新这个答案.