我对Mercurial相当陌生,但我看到使用Mercurial的一个优点是,在编写功能时,您可以更自由地进行实验,检入更改,共享它们,等等,同时仍然保持完成特征的“干净”回购。将实验记录保存在Mercurial的共享存储库中
这个问题是历史问题之一。如果我尝试了6种不同的方式来完成某些工作,现在我坚持了所有的历史来应对所有的错误。我想要做的是通过并清理我的更改并将它们“折叠”成一个可以推入共享存储库的变更集。这很复杂,因为我可能从共享存储库中提取新的变更集,并将这些变更集与我自己的变更集混合在一起。
我知道这样做的最好方法是使用hg export来创建自克隆,克隆新存储库并将修补程序应用到新存储库后所做更改的修补程序。
这些步骤似乎有点麻烦,容易搞砸,特别是如果这种方法被推广到整个开发团队,其中一些人有点改变(不要让我开始)。 TortoiseHg使这个过程稍微好一点,因为您可以突出显示要包含在导出中的变更集。
我的问题是这样的:我是否会让它比需要的更复杂?有更好的工作流程可以用来缓解我的烦恼吗?期望在一个变更集中包含整个(small-ish)特性的清晰历史是否太多了?
或者,也许我的整个问题可以这样概括:
是否有善变这等同? Collapsing a git repository's history
你有没有理由不使用分支? http://mercurial.selenic.com/wiki/Branch – 2011-04-20 15:17:10
您是否在问如何在使用Mercurial时进行安全实验,以供将来参考,您是问如何使用现有的实验并摆脱它们,或者您是在问采取您现有的实验并折叠他们的变更集并保留这些变更?我有点不确定,因为你似乎在描述你想要做的很多事情。你能缩小它吗? – 2011-04-20 15:18:04
对不明确的含义。基本上我认为我的实验历史是一条走向最终结果的曲折道路,但我希望我最后推动共享回购,以忽略所有中间步骤。基本上,我想在我的工作副本和共享存储库中的版本之间进行差异化,而没有“哎呀,这不起作用”的历史。 – JWman 2011-04-20 15:24:48