与SVN一起管理项目承包商

与SVN一起管理项目承包商,svn,Svn,在代码审查/管理变更等方面,您建议使用SVN作为一种管理远程/外部开发人员项目开发的方法吗?每个人都应该签入主干并对所有内容提供评论,还是人们使用补丁、分支或其他流程来管理它?请提供任何建议,让一个由远程开发人员组成的小团队(5)将工作提交给SVN,并由一个人全面负责项目的开发,审查代码更改等。 谢谢这取决于项目的具体情况。它是一个为完成一个项目而组建的团队,还是一个正在进行的版本开发工作。发布时间表等 我们更接近后者。以下是我们的流程: 对于相当大的新版本/功能,我们创建了一个单独的分支 开

在代码审查/管理变更等方面,您建议使用SVN作为一种管理远程/外部开发人员项目开发的方法吗?每个人都应该签入主干并对所有内容提供评论,还是人们使用补丁、分支或其他流程来管理它?请提供任何建议,让一个由远程开发人员组成的小团队(5)将工作提交给SVN,并由一个人全面负责项目的开发,审查代码更改等。
谢谢

这取决于项目的具体情况。它是一个为完成一个项目而组建的团队,还是一个正在进行的版本开发工作。发布时间表等

我们更接近后者。以下是我们的流程:

  • 对于相当大的新版本/功能,我们创建了一个单独的分支
  • 开发人员可以签入代码——我们要求每次签入都有注释
  • 为了与主干保持同步,分支所有者负责将主干合并到其分支中
  • 当特性/发布完成时,分支将被代码审查并合并回主干
  • 该分支将被删除。如果分支上的工作必须继续,则必须重新创建分支-这是由于SVN的限制
编辑

要详细说明一下:

分支机构是持续发展的操场。每个开发人员(或更大功能的开发负责人)负责自己的分支,包括正确的签入过程(签入注释)以及与主干同步

另一方面,主干是一个稳定的地方——在任何时候,你都应该能够在主干上构建应用程序的工作版本。事实上,我们有一个CI进程,它在每次签入时自动执行

为了实现这种稳定性,不会直接对主干进行更改(smth非常小且非常紧急的情况除外)

主干修改过程由内部开发人员负责。一旦分支的所有者声明它可以生产,内部开发人员就必须检查提交的代码(来自分支)并将其合并回主干


合并后,分支将变得不可用,必须删除

这取决于项目的具体情况。它是一个为完成一个项目而组建的团队,还是一个正在进行的版本开发工作。发布时间表等

我们更接近后者。以下是我们的流程:

  • 对于相当大的新版本/功能,我们创建了一个单独的分支
  • 开发人员可以签入代码——我们要求每次签入都有注释
  • 为了与主干保持同步,分支所有者负责将主干合并到其分支中
  • 当特性/发布完成时,分支将被代码审查并合并回主干
  • 该分支将被删除。如果分支上的工作必须继续,则必须重新创建分支-这是由于SVN的限制
编辑

要详细说明一下:

分支机构是持续发展的操场。每个开发人员(或更大功能的开发负责人)负责自己的分支,包括正确的签入过程(签入注释)以及与主干同步

另一方面,主干是一个稳定的地方——在任何时候,你都应该能够在主干上构建应用程序的工作版本。事实上,我们有一个CI进程,它在每次签入时自动执行

为了实现这种稳定性,不会直接对主干进行更改(smth非常小且非常紧急的情况除外)

主干修改过程由内部开发人员负责。一旦分支的所有者声明它可以生产,内部开发人员就必须检查提交的代码(来自分支)并将其合并回主干


合并后,分支将变得不可用,必须删除

答案取决于:

  • 你对承包商有多信任
  • 您的团队需要付出多少努力 投入到管理中
以下是一些场景:

不信任

  • 只读存储库访问
  • 无法进入主干
  • 提交是用补丁完成的
  • 你团队中的某个人将管理这个项目 补丁
中等信任度

  • 读写里程碑分支
  • 承包商提交里程碑 分支机构
  • 您团队中的某个人合并到发布分支中
完全信任

  • 完全访问主干
  • 负责合并的承包商 他们的变化
关于最佳做法,我建议如下:

  • 使用烧毁功能跟踪里程碑 图表,或您选择的系统
  • 让每个人都发表评论 (可以使用Subversion钩子 本)
  • 将代码提交到特定的 管理系统中的项目/票据 像FogBugz、OnTime等
  • 大型功能或里程碑应该 有自己的分支机构。合并到主干 功能/里程碑中的一个 由你团队中的某个人验证

这里有一些想法。您必须找到最适合您的团队成员和承包商组合的方案。

答案取决于:

  • 你对承包商有多信任
  • 您的团队需要付出多少努力 投入到管理中
以下是一些场景:

不信任

  • 只读存储库访问
  • 无法进入主干
  • 提交是用补丁完成的
  • 你团队中的某个人将管理这个项目 补丁
中等信任度

  • 读写里程碑分支
  • 承包商向米莱斯顿提交