程序员应该多久向SVN提交一次?
一般规则是什么?何时提交?尽早且经常提交。在团队中工作时,它可以最大限度地减少冲突解决步骤。但是不要做任何破坏你的构建的事情。理想情况下,持续集成会在构建中断时通知团队。每当我完成一项“工作”时,我都会尝试提交—当然,只要代码能够编译。如果在主干上工作,我会在遇到不会影响我的队友的里程碑时提交。当我在一个私有分支上工作时,每当我遇到一个我不想失去的里程碑时,我都会做出承诺(我不在乎它是否构建)。对于个人项目,我经常使用mercurial和commit。这一切都取决于什么对你和你的团队有效。这在一篇关于最佳实践的老文章中有介绍(也有详细介绍)程序员应该多久向SVN提交一次?,svn,Svn,一般规则是什么?何时提交?尽早且经常提交。在团队中工作时,它可以最大限度地减少冲突解决步骤。但是不要做任何破坏你的构建的事情。理想情况下,持续集成会在构建中断时通知团队。每当我完成一项“工作”时,我都会尝试提交—当然,只要代码能够编译。如果在主干上工作,我会在遇到不会影响我的队友的里程碑时提交。当我在一个私有分支上工作时,每当我遇到一个我不想失去的里程碑时,我都会做出承诺(我不在乎它是否构建)。对于个人项目,我经常使用mercurial和commit。这一切都取决于什么对你和你的团队有效。这在一
我建议你看看这篇文章,因为它涵盖了很多好的想法,而不仅仅是提交的频率。当你有不想丢失的代码时提交。这并不意味着你要致力于主干,如果你在一个团队中进行开发,你应该避免为他人破坏东西。如果编辑器破坏了文件,您希望修改多少代码?一两个小时?每当我完成一个工作单元时,我都会承诺:修复一个bug、添加一个功能、提高效率等等。但我尽量避免长时间的沉默。中的建议值得一读。这取决于具体情况
- 如果您在自己的分支内工作或使用git,请立即启动
- 如果有一个自动化的构建过程或持续集成,您将希望提交粒度改进
- 如果您在分支上与其他人同时工作,那么当您有可靠的细粒度改进时,您会希望提交,但更多的是基于“里程碑”的基础
- 如果某件事“完成”,则提交。这经常被松散地使用——它可以是一个函数、一个类、一个页面,或者一些足够完整的东西,可以独立存在
- 如果是“这可行,但很难看”的情况,请提交。在这里提交作为一种退路,我回去修改我丑陋的修复,使之更优雅。更糟糕的情况是,我回到了可行的解决方案,不管它多么丑陋
- 写测试
- 确保测试失败(否则测试无效或不需要)
- 为此测试编写新代码
- 确认所有自动测试均通过
- 登记入住
- 重构您的工作,使您引入的任何复制不再存在
- 确认所有自动测试仍然通过
- 登记入住
- 进入第一步
您询问提交的频率意味着svn的集中式本质在某种程度上阻碍了您的工作流程。一旦您通过了学习曲线,您将为本地机器存储库的好处感到高兴。来自精简/分布式VCS或以前使用过它的程序员将通过小更改或功能进行提交,因为本地提交非常便宜。然后,一旦需要同步,他们将推动中央回购。但是由于SVN的提交非常昂贵,所以每天使用SVN的程序员(通常)都会提交,有时变更集可能会非常大,提交可能需要通过特性进行关联。这是坏习惯
因此,我也尝试将DVCS使用的最佳实践应用到SVN中。因此,我将通过特性向SVN提交,以便在更改中出现问题时更容易回滚 如果我需要添加一个新功能或修复一个bug,我通常会做的是从我需要的任何地方创建一个分支,在那里做我的工作,让它的代码得到审查,然后再将它合并回来。您甚至可以为每个开发人员保存更改的用户(如果用户很多,则可能没有意义)分解您的分支文件夹。一般规则:
- 在做了有意义的原子变化之后李>
在这里可以找到更多的好做法:Never。程序员应该致力于git。可能的重复:@ChssPly76-像一个真正的git一样说话。@ChssPly76我不知道git有这么多噪音。当然,这对于开源项目来说是很棒的(我也很喜欢),它解决了集中式VCS的许多问题(容易创建分支、断开连接的工作等等)。但是,请向我解释一下DVCS为IT团队的普通组织解决了什么问题。根据我的经验,在这样的环境中,开发人员总是相互联系的,不进行分支,因为这会惹恼他们(对或错,这不是问题),不喜欢或只是不知道如何使用命令行,不喜欢更改,等等。那么为他们使用Git有什么意义呢?我很好奇…即使一个人出于任何原因不喜欢某个工具,这个问题仍然可以回答,因为它确实是任何给定工具的一个一般性问题。当你认为你承诺的次数足够多时,就多做一次!或者换一种说法,在开始新的工作之前+1这对svn来说非常有意义(即,您不想合作