我应该多久向源代码控制提交一次更改?在每个小特性之后,还是只在大特性之后?

我正在开发一个项目,有一个长期的功能要实现。目前,我在完成每一大块工作后,即每一个子特性实现和bug修复后提交。我甚至在发现bug后为某些特性添加了一组新的测试之后才提交。

然而,我对这种模式感到担忧。在一个富有成效的工作中,我可能会提交10次。鉴于我使用的是Subversion,这些提交会影响整个存储库,所以我想知道做这么多次是否真的是一个好做法?


当前回答

不要提交实际上不起作用的代码。不要将存储库用作备份解决方案。

相反,以自动的方式在本地备份不完整的代码。时间机器会照顾我,还有很多其他平台的免费程序。

其他回答

我没有每次提交的具体时间限制,我倾向于在测试通过并且我对代码满意的情况下提交。我不会提交无法编译的代码,或者在失败的情况下我不愿意返回的状态

我喜欢每30-60分钟提交一次更改,只要它编译干净,并且在单元测试中没有回归。

我仍然相信“经常承诺,早承诺”这句话。我更喜欢像Mercurial这样去中心化的风投,提交几件事情并在以后将其推向上游是没有问题的。

这确实是一个常见的问题,但真正的问题是:您能提交未完成的代码吗?

我喜欢Jeff Atwood写的这篇小文章:“早报到,常报到”

如果你的版本控制注释超过了一两句话,你可能没有经常提交。