SVN提交规则

时间:2010-12-31 21:08:43

标签: svn commit

只有在解决方案编译成功并成功构建时才应提交? “中途”提交是否可以在非常大的变化中被接受,这使得代码无法工作,几个小时?

5 个答案:

答案 0 :(得分:10)

是的,这是可以接受的。

版本控制用于版本控制;不备份。你应该有一些独立的东西来处理可编译代码的备份,这些备份可能确实绕回到版本控制系统。

强制开发人员等待签入代码的方式某些时候即将发生的代码丢失

答案 1 :(得分:5)

确保代码不会长时间不间断是continuous integration的工作,而不是版本控制。

答案 2 :(得分:5)

除了Brian和Aaron的评论之外,我只想补充说,即使在稳定性和最新代码之间进行这种权衡也可以通过分支来缓解,或者作为一种更极端的解决方案,可以像Git这样的分散系统。 “经常提交并让构建机器人发现错误”是我最喜欢的策略,但是如果你需要一个更稳定的地方来检查代码,那么分支就是你想要的(当然有人必须维护它)。

答案 3 :(得分:3)

在我看来,这取决于所使用的VCS的类型:

  • 如果您使用像SVN这样的集中式,我会倾向于在Aarons个参数之后说是,可以接受
  • 如果你像Git一样运行 DVCS ,我会说不,这是不可接受的因为每个开发人员都可以进行本地提交,测试实现和然后在他的工作完成后再回到(裸)公共回购。

由于您标记了 svn 的问题,请按照Aaron

答案 4 :(得分:1)

根据我的经验,至少尝试不提交重大更改非常重要。如果团队规模更大,或者发展速度更快,那就更是如此。我们的想法是,团队的所有成员都能及时了解最新的变化。 团队成员每次提交后都没有人害怕做svn update

如果最新版本经常出现编译错误,则无法进行此操作。即使是失败的测试也会令人烦恼,因为要确定问题是由未提交的更改引起的,还是由svn update刚收到的更改引起的,并不总是很容易。当每个人都试图弄清楚为什么突然事情不再起作用时,工作就会停止。

突破性更改也会影响您bisect the source code history的能力。因此,即使您单独工作或在功能分支上工作,避免它们仍然是有价值的。

避免破坏更改的策略不必与常规的小提交相矛盾。几乎总是可以将大的更改拆分为一个较小的任务列表,每个任务都可以使用不会破坏构建的适度大小提交来完成。这具有减少冲突的附加优点。我倾向于将这样的事情放在我的提交消息中,用于执行如此小的任务:

  
      
  • 修复 xyz :在 aspect foo
  • 的预制中重构 fuzz   
  • 修复 xyz aspect foo 现在有效
  •   
  • 修复了 xyz 方面栏现在正常工作
  •