我在本地使用了Mercurial多年,但现在我们正在我公司做一个从Subversion切换的试点。
我们正在接受这样一个事实:开发人员现在将制作更细粒度的变更集 - 其中一些甚至可能无法构建。当开发人员将他们的更改推送到中央存储库时,所有这些更改集都将显示在历史记录中 - 这是自然的和预期的。
我的问题是:我们如何处理这样一个事实:因为更改集更精细,这使得开发人员可以更新到不构建的修订版本?我们来自一个可以在存储库中的任何地方结账的世界,并且合理地期望能够从那时开始发布。对于DVCS,您如何判断“安全”修订版的位置?
这个问题在this question中得到了解决,但我更感兴趣的是如何使用分支回购(而不是命名分支)来解决这个问题。
我了解有一些方法可以修改历史记录(例如collapse extension),以便更改在存储库的历史记录中折叠,但我们希望保留历史记录。
答案 0 :(得分:1)
技术解决方案无标记,但一个书签(“KnownAsGood”),应用于默认分支的最后一个工作HEAD和开发者之间的协议“更新不要提示,但要标记“
谁将测试提交并移动书签是“项目管理”标签中的另一个问题
答案 1 :(得分:1)
你真的需要查看任何旧版本并希望它能够构建吗?
我同意你的意见,你应该能够期待这个小费将永远建立 通过某种“不要将未完成的工作推向主要回购”政策/相互协议,可以很容易地实现like Lazy Badger already said。
关于较旧的修订:
1.2
标记如果每个人都坚持“不要推动未完成的工作”的政策。1.2
标记”),而不是介于两者之间。feature 'foo' finished
的提交(而不是那个说started implementation of feature 'foo'
)的人
是的,这需要一点思考/常识,但我无法想象你会经常需要这个。答案 2 :(得分:1)
如果您正在使用功能分支并在没有快进合并的情况下合并它们,那么您仍然只能在主线上进行稳定构建,但如果需要,可以在功能分支上看到不稳定的内容。
答案 3 :(得分:0)