Version control 重用已合并为默认值的分支

Version control 重用已合并为默认值的分支,version-control,mercurial,merge,tortoisehg,Version Control,Mercurial,Merge,Tortoisehg,使用Mercurial时,假设您使用的是“默认”分支。您的工作方式是从该分支创建新分支,并将它们合并回“默认”(当您对该新分支的工作完成时) 在将一个新分支(称为“myBranch”)合并回“default”之后,您实际上决定需要处理“myBranch”“myBranch”此后一直未关闭。在“myBranch”上工作最好的方法是什么?无需额外做什么。如果要从myBranch中的最后一次提交继续,请执行以下操作: hg checkout myBranch # checks out last c

使用Mercurial时,假设您使用的是“默认”分支。您的工作方式是从该分支创建新分支,并将它们合并回“默认”(当您对该新分支的工作完成时)


在将一个新分支(称为“myBranch”)合并回“default”之后,您实际上决定需要处理“myBranch”“myBranch”此后一直未关闭。在“myBranch”上工作最好的方法是什么?

无需额外做什么。如果要从myBranch中的最后一次提交继续,请执行以下操作:

hg checkout myBranch   # checks out last commit in myBranch
...hack...
hg commit              # creates a new commit on myBranch
相反,如果您想用当前在
deafult
(罕见)上的任何内容重新打开myBranch,您可以执行以下操作:

你可能想要第一个

  • 合并分支(在Mercurial中)并不意味着它将关闭或消失。二手牧场永远是Mercurial变更集的永久部分
  • 合并不会关闭分支,只需删除合并分支的头
  • 因为Mercurial的历史记录是DAG,所以您始终可以将(
    hg up CS-ID
    )返回到其中的任何条目(变更集),并从此点开始工作,在提交时添加新的子变更集
  • 对于命名分支,branchname是该分支的最新(拓扑)变更集的头的CS-ID
  • 对于LTB“Cleanup”,我在每次将其合并到默认分支后都使用了
    hg-up-Cleanup

    hg checkout default
    hg branch --force myBranch  # says "next commit should be on branch myBranch and I don't care if there already was one"
    ...hack...
    hg commit