分支或分支Mercurial存储库更好吗?

分支或分支Mercurial存储库更好吗?,mercurial,branch,fork,Mercurial,Branch,Fork,假设您“拥有”一个Mercurial存储库,那么在开始实验性代码时,分支或分叉存储库是否更好 在我的情况下,我是一个孤独的开发人员,即将开始一些实验性的代码。我预计这个实验需要4到6个小时。如果我认为这个实验失败了,那么我就不太可能再引用它了。 我经常承诺,并定期推动。在实验过程中,我只能提交然后抛出本地回购协议。不过,我定期推送主要是作为备份手段。存储库位于上 在这种情况下,我是更适合分支还是分叉存储库 如果我认为这个实验失败了。 那我就不太可能了 我想再参考一下 您回答了自己的问题,在本地分

假设您“拥有”一个Mercurial存储库,那么在开始实验性代码时,分支或分叉存储库是否更好

在我的情况下,我是一个孤独的开发人员,即将开始一些实验性的代码。我预计这个实验需要4到6个小时。如果我认为这个实验失败了,那么我就不太可能再引用它了。 我经常承诺,并定期推动。在实验过程中,我只能提交然后抛出本地回购协议。不过,我定期推送主要是作为备份手段。存储库位于上

在这种情况下,我是更适合分支还是分叉存储库

如果我认为这个实验失败了。 那我就不太可能了 我想再参考一下

您回答了自己的问题,在本地分叉,然后在主存储库中提取更改(如果成功)


虽然我不认为你会在4到6个小时内生成太多的内容,这会让一个无用的分支变得烦人…

我想说这并不重要。在这两种情况下,它取决于你的实验删除的时间,你以后是否可以参考它

当您进行实验性分支时,您可以稍后使用
strip
命令除去它们,这是
mq
扩展的一部分。或者您可以使用
convert
将hg转换为hg存储库,以删除死分支。您甚至可以简单地克隆和省略分支

当您为实验分支分叉时,如果您想引用它,您可以稍后明显地合并它们


因此,这一切归结为一个问题:您希望将实验分支保留多长时间?您希望将它们存储在哪里

作为所有工作的命名分支(每个任务的分支等)的粉丝,我建议。。。两者都做

克隆原始repo,并在新repo中为实验工作创建一个新的命名分支

如果您决定保留实验工作,请将其推回到原始回购协议(根据需要执行合并)


如果您决定不保留实验性工作,只需扔掉实验性回购。

将分支视为文档。您和其他人可以参考这些想法,并在以后进行更改。预见到这样一种情况:你会说“哦,我在一个分支中尝试过一次……但删除了它。”唯一的成本是一点磁盘空间。

什么使一个无用的分支令人烦恼?它的大小,如果它占存储库的很大一部分的话。这是一种罕见的情况,即使如此,也只是一点小小的不便,不是问题。这就是为什么我不认为应该避免实验分支,你如何确保失败实验的历史有一天不会有用?当你说“克隆原始回购”时,你的意思是分叉吗?Mercurial(和其他DVC)中的克隆和分叉是同一回事。术语“fork”通常用于指一个克隆,该克隆旨在始终保持与原始版本的某种不同(例如,仅从原始版本合并,而不是从原始版本合并),而“clone”则意味着回购协议是对等的,其目的是它们或多或少保持同步。