Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Svn 源代码控制策略_Svn_Version Control - Fatal编程技术网

Svn 源代码控制策略

Svn 源代码控制策略,svn,version-control,Svn,Version Control,我正在寻找对不同源代码控制策略的概述。我只是遇到了主线政策,希望在与团队合作之前更好地了解其他人 有人能提供一个概述的链接,甚至给我一些策略的名称,这样我就可以在上面启动google了吗?我最喜欢的策略是“每次提交都不引用票证+自动跟踪评论的任何subversion提交”:我很喜欢这本书。虽然您可能没有使用Perforce,但我认为第7章(软件如何发展)和第8章(基本代码线管理)可能非常有用。你也许可以略读一下 Perforce也有许多关于这个主题的伟大文章。写有关策略的文章。 完成 而且,不,

我正在寻找对不同源代码控制策略的概述。我只是遇到了主线政策,希望在与团队合作之前更好地了解其他人


有人能提供一个概述的链接,甚至给我一些策略的名称,这样我就可以在上面启动google了吗?

我最喜欢的策略是“每次提交都不引用票证+自动跟踪评论的任何subversion提交”:

我很喜欢这本书。虽然您可能没有使用Perforce,但我认为第7章(软件如何发展)和第8章(基本代码线管理)可能非常有用。你也许可以略读一下

Perforce也有许多关于这个主题的伟大文章。写有关策略的文章。
完成

而且,不,我也不是为Perforce工作

祝你好运,
托马斯

没有空的提交消息。

按更改提交,而不是按文件提交。

这有以下优点:

  • 稍后您可以看到为什么在这个文件中更改了这一行(啊哈,这是bug#123的错误修复)。若您按文件提交,那个么提交消息倾向于描述在文件中所做的更改—无论如何,您可以通过diff看到这些更改。如果每次更改都提交,那么提交消息往往会解释为什么首先要进行更改
  • 还原或合并更改/错误修复要容易得多
  • 它有助于更好地组织您的工作,因为您可以清楚地关注您正在工作的单个bug/功能/更改。当你完成的时候,你就承诺
有些人认为这项政策会产生更多的承诺,但根据我的经验,你最终会得到更少的承诺。例如,您正在进行影响50个文件的重构。重构后,您有一个单一的提交,其中包含一条消息“Refactured xyz subsystem.”


<>对于更大的变化,你应该考虑<强> DeV分支每更改<强>策略.< /P> < P>这篇文章是对分支模式的一个很好的讨论,如你提到的“主线”模式,它列出了模式的选项以及反模式的讨论。作者之一是Perforce的Robert Orenstein。

不要签入/提交破坏构建的任何更改。

我们在项目中使用了几个实用规则作为提交策略。这些规则帮助我们将每个修订保持在准备部署状态。我们的规则类似于KDE提交策略,发布在此处:。 每次提交应(从高优先级到低优先级):

  • 已成功检查(编译、测试、审查、FxCop’ed等)
  • 原子(应仅包含一个逻辑更改,例如单个错误修复、重构等)
  • 非冗余(不应添加未使用的代码、不提交注释代码、删除注释代码、不提交意外的格式更改等)
  • 正确且充分地评论
  • 匹配当前开发阶段(例如,版本支持分支中不允许重构)
  • 尽可能小,以符合以前的规则

我们开发了一个简单的工具SvnCommitChecker,它帮助我们在提交svn之前检查一些规则。我计划在不久的将来将其提交给sourceforge,并发表一篇关于保持良好的svn更改历史的好处的文章。

这两个基本相同:

我们使用这种策略使主干保持稳定,并使开发人员能够在其分支上执行他们需要的任何操作


Subversion有一些问题,因为它无法处理,但它可以通过在每次重新整合到主干后删除开发分支来解决(与其他版本控制系统无关)

这会导致大量提交,不是吗?你能说出一个支持这种策略的源代码控制系统吗。我知道的所有系统都只支持每个文件提交。是的,有很多提交。只要它们是真实的(),这就不是问题@Vilmantas Baranauskas希望确保他能够跟踪个人所犯下的罪行。这是一种权衡,Subversion支持它。例如,您正在处理bug#123。要修复此错误,您必须更改10个文件。完成后,在源代码树的根上提交:svn commit-m“Fixed bug#123”。对10个文件的修改是通过一条消息提交的,这并不能解决我所看到的问题。假设您处理Bug#1并在文件X中执行某些操作。现在您必须在没有修复Bug#1的情况下处理Bug#2。你完成了Bug#2。您现在如何只提交Bug 2的更改?或者我误解了这个概念,或者说我的理解太过分了?我认为并行处理两个错误修复是个坏主意。当然,如果bug#1和#2是相关的,那么修复它们并提交“修复bug#1和#2:”。可能,只是可能,在一个真正锁定的维护环境中。我更希望鼓励所有开发人员登记。建立一个自动化的测试和构建系统,确保对基线进行配置审核,但不要阻止提交。链接已经失效。我认为这是正确的:www.hillside.net/plop/plop98/final_submissions/P37.doc