nop*_*ole 6 git mercurial frameworks dvcs
使用Git或Mercurial,您如何知道何时进行克隆或拉取,没有人检入文件(推送它)?重要的是:
1)您永远不会知道它处于不一致状态,因此当您的代码处于不一致状态时,您尝试2小时尝试调试代码.
2)与所有的框架代码(诸如Ruby on Rails的) -可能数百个文件-如果一些文件不一致与其他,不能rake db:migrate或script/generate controller造成一些损坏或不一致的代码库?
sil*_*ilk 16
在Git和Mercurial中,拉和推是原子的.这意味着他们永远不会允许您获得部分推送的变更集.您将始终获得整个变更集.
更新:我只是觉得你可能会害怕"如果有人正在推动一系列变更集,我会得到其中的一些".然后是项目中接受的通信和工作流程.
人们经常同意,对trunk(master或者你如何调用它)的每次提交都应该使代码保持一致状态.如果有人知道他会做出会造成暂时不一致的更改,他应该在分支机构中进行更改,如果已准备好将其合并到主干.然后在一次提交中将trunk带到分支的状态,这样你总能看到它是一致的.
更新2:正如tonfa在评论中所说 - 在Mercurial推动是原子的.我在git中做了一些简单的测试,推送在这里也是原子的.因此,如果您知道其他开发人员推动工作变更集,那么您不必担心这种不一致.(虽然早期关于分支的陈述仍然有效).