Mercurial书签和Evolve主题之间有什么区别



很多"git对hg";解释将Mercurial书签与通常的git分支在功能上保持一致。我试图理解的不是Mercurial分支和git分支之间的区别,而是书签和来自Evolve扩展的主题之间的区别。

我发现的一个重要区别是,主题名称嵌入到每个提交中,而书签只是从一个提交移动到另一个提交的标签。但它意味着什么呢?其他区别是什么?

但它包含什么?

Bookmark是指向单个变更集的(可变(指针,主题(毕竟(是";经典的";hg分支与大多数分支特定的东西

还有什么区别?

Topic分支是轻量级分支,在完成更改(移动到公共阶段(时会消失。书签必须手动删除。

书签可以(轻松(在存储库之间推拉。主题交换(如主题(需要通过非发布服务器执行一些额外操作。

主题教程中的主题生命周期示例(缩短(

在推送之前与主题回购

>hg log --graph --rev "topic('food')"
@  changeset:   2:86d4fa8dfae9
|  tag:         tip
|  topic:       food
|  user:        lazybadger
|  date:        Wed Oct 12 15:49:32 2022 +0500
|  summary:     Adding fruits
|
o  changeset:   1:c7451c53346d
|  topic:       food
|  user:        lazybadger
|  date:        Wed Oct 12 15:47:26 2022 +0500
|  summary:     Adding condiments
|
o  changeset:   0:e4aaf76d4cb3
topic:       food
user:        lazybadger
date:        Wed Oct 12 15:44:28 2022 +0500
summary:     Shopping list

因为food是在default的基础上创建的

>hg stack
### topic: food
### target: default (branch)
s3@ Adding fruits (current)
s2: Adding condiments
s1: Shopping list

在推送到发布服务器后,我得到了相同的变更集,只是在目标分支中只有

>hg log --graph
@  changeset:   2:86d4fa8dfae9
|  tag:         tip
|  user:        lazybadger
|  date:        Wed Oct 12 15:49:32 2022 +0500
|  summary:     Adding fruits
|
o  changeset:   1:c7451c53346d
|  user:        lazybadger
|  date:        Wed Oct 12 15:47:26 2022 +0500
|  summary:     Adding condiments
|
o  changeset:   0:e4aaf76d4cb3
user:        lazybadger
date:        Wed Oct 12 15:44:28 2022 +0500
summary:     Shopping list

最新更新