程序员多久会提交一次SVN?

时间:2009-11-11 04:14:14

标签: svn

一般规则是什么?你什么时候提交的?

12 个答案:

答案 0 :(得分:22)

尽早并经常提交。它最大限度地减少了在团队中工作时的冲突解决步骤。但是不要做任何破坏你的构建的东西。理想情况下,持续集成会在构建中断时通知团队。

答案 1 :(得分:19)

每当我完成一件“工作”时我都会尝试 - 只要代码编译,当然。

答案 2 :(得分:10)

这是关于最佳做法的旧帖子中的(并且已经很好地介绍)。

SVN best-practices - working in a team

我建议查看这篇文章,因为它涵盖了很多好主意,而不是只是提交频率。

答案 3 :(得分:6)

如果在后备箱上工作,每当我遇到一个不会影响我的队友的里程碑时,我都会承诺。在私人分支机构工作时,每当我达到一个里程碑时我都会承诺,我不想失去(我不在乎它是否构建)。对于个人项目,我使用mercurial并不断提交。这一切都取决于对你和你的团队有用的东西。

答案 4 :(得分:4)

使用测试驱动开发时,每次我编写新的单元测试并让它通过时我都会检查。

  • 写测试
  • 确保测试失败(否则测试无效或不需要)
  • 为此测试编写新代码
  • 确认所有自动化测试均已通过
  • 签入
  • 重构你的工作,以便你引入的任何重复不再存在
  • 确认所有自动测试仍然通过
  • 签入
  • 转到第一步。

答案 5 :(得分:2)

这实际上取决于具体情况。

  • 如果您在自己的分支机构内工作或使用git,请离开
  • 如果存在自动构建流程或持续集成,则您需要提交细化改进
  • 如果您正在与分支机构的其他人同时工作,那么当您进行实质性的改进时,您会希望提交,但更多的是“里程碑”。

一般来说,当我在自己的分支机构工作时,我遵循2条指南

  • 如果某事“完整”,则提交。这通常是松散使用的 - 它可以是一个函数,一个类,一个页面,一个足够完整的东西,它可以独立存在
  • 承诺,如果它是“这有效,但它很丑”的情况。当我回去并将我丑陋的修复修改为更优雅的东西时,承诺在这里起到后备作用。更糟糕的是,我回到工作解决方案,无论多么丑陋。

答案 6 :(得分:1)

每当我完成一个工作单元时,我都会提交:修复错误,添加功能,提高效率等等。但我尽量避免长时间的沉默。 Don't Go Dark中的建议值得一读。

答案 7 :(得分:0)

当您拥有不想丢失的代码时提交。这并不意味着你承诺中继,如果你是在一个团队中发展,你应该避免为他人破坏事情。如果您的编辑器销毁文件,您想要返工多少代码?一两个小时?

答案 8 :(得分:0)

要求提交到远程服务器的svn使得很难像你应该那样经常提交,所以我建议你尝试使用mercurial或git,以便你可以随时进行本地提交,然后将这些提交发送到svn (如果必须使用集中式svn存储库),在进行自己的清理后(通过git-svn或hg-svn)。

您询问有多少次提交提交的事实意味着svn的集中性在某种程度上妨碍了您的工作流程。一旦超越学习曲线,您将会对本地机器存储库的好处感到高兴。

答案 9 :(得分:0)

来自瘦/分布式VCS或以前使用它的程序员将进行小的更改或功能,因为本地提交非常便宜。然后,一旦需要同步,他们就会推送到中央仓库。但是因为使用SVN提交是非常昂贵的,所以使用SVN(通常)每天提交的程序员有时候变更集可能在一个非常大的块中,并且提交可能需要与功能相关联。这是不好的习惯。

所以我尝试将DVCS使用的最佳实践带入SVN。因此我会通过功能提交SVN,这样一旦更改出现问题,我就会更容易回滚。

答案 10 :(得分:0)

如果我需要添加新功能或修复错误,我通常会做的是从我需要的地方创建分支,在那里完成我的工作,检查代码并将其合并回来。你甚至可以为每个用户分解您的分支文件夹(如果您有很多用户可能没有意义),每个开发人员都会保留他们的更改。

答案 11 :(得分:0)

一般规则:

  • 做了有意义的原子变化之后。

原子更改:是一个“逻辑单元”更改,您可以在提交的注释中轻松编写它。

有道理:它包括安全更新 - 编译而不是破坏功能 - 这有你在评论中不怕说的逻辑变化。

我什么时候提交:当我按照一般规则进行一些更改时,我会尝试更频繁地进行更改。

可以在此处找到一些更好的做法:http://ducquoc.wordpress.com/2011/06/09/svn-best-practices/