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_Project Management_Projects And Solutions_Project Structure - Fatal编程技术网

分布式开发中的SVN-最佳实践?

分布式开发中的SVN-最佳实践?,svn,project-management,projects-and-solutions,project-structure,Svn,Project Management,Projects And Solutions,Project Structure,对于由多个独立供应商开发的分布式系统,什么是经过实践验证的SVN结构 假设一个系统有三个层(UI、服务、数据)以及它们之间的服务合同:每个层由多个组件组成,这些组件是由不同的供应商开发的,不与特定的层绑定,例如,供应商A为UI和服务层开发组件,供应商B为服务和数据层开发组件 每个供应商只能对其自己的组件进行写访问,也只能对所需的服务合同进行读访问 ->在这种情况下,构建SVN的好方法是什么 按供应商?按层?两者都有 如果这些供应商是真正独立的,那么我不会建议将所有这些组件保存在一个SVN存储库中

对于由多个独立供应商开发的分布式系统,什么是经过实践验证的SVN结构

假设一个系统有三个层(UI、服务、数据)以及它们之间的服务合同:每个层由多个组件组成,这些组件是由不同的供应商开发的,不与特定的层绑定,例如,供应商A为UI和服务层开发组件,供应商B为服务和数据层开发组件

每个供应商只能对其自己的组件进行写访问,也只能对所需的服务合同进行读访问

->在这种情况下,构建SVN的好方法是什么


按供应商?按层?两者都有

如果这些供应商是真正独立的,那么我不会建议将所有这些组件保存在一个SVN存储库中。我更愿意为供应商提供单独的SVN存储库,并通过一个定义良好的发布过程控制合同和交互,以进入/离开公共工件(类似Maven的)存储库。例如,具有限制哪些工件可供哪个用户使用并允许控制读/写的功能

如果这些供应商是真正独立的,那么我不会建议将所有这些组件保存在一个SVN存储库中。我更愿意为供应商提供单独的SVN存储库,并通过一个定义良好的发布过程控制合同和交互,以进入/离开公共工件(类似Maven的)存储库。例如,具有限制哪些工件可供哪个用户使用并允许控制读/写的功能

您需要将供应商分开,因此需要在那里进行隔离。对于这一点,每个供应商组件的主干是有意义的

在最近的一个大型软件项目中,我们允许每个供应商拥有自己的存储库,并对其他供应商具有读取权限。然后,我们使用触发脚本创建了一个只读的整合主干。这些都是每天午夜运行的


整合后的主干由一个构建环境拉动,该环境进行回归和系统集成测试,在每天开始时将故障和问题发回开发团队。

您需要将供应商分开,因此需要在那里进行隔离。对于这一点,每个供应商组件的主干是有意义的

在最近的一个大型软件项目中,我们允许每个供应商拥有自己的存储库,并对其他供应商具有读取权限。然后,我们使用触发脚本创建了一个只读的整合主干。这些都是每天午夜运行的


整合后的主干由一个构建环境拉动,该环境进行回归和系统集成测试,在每天开始时将故障和问题发回开发团队。

为了清晰起见,我建议按层组织结构。这样,查看结构可以揭示组件之间的关系。即使客户(即供应商)有更多的开销,或者设置每个客户对存储库的访问有更多的开销,这也是值得的,因为每个客户将习惯于考虑项目的总体结构,这将减少长期出现bug和API冲突的可能性

在这种情况下,如果管理者有自己的方式,他们可能倾向于按供应商分离存储库。作为一名程序员,你更清楚。将一些工作交给经理,确保遵守适当的工作流实践——为了清晰和更好的编程

此外,仅仅让不同的供应商在同一个结构中看到彼此的工作,就会以这种小的方式鼓励互动(无论多么小)。这再次表明,开放和交流比安全和限制更重要。如果一开始你作为一个程序员这么说,那就是一个机会


顺便说一句,Git优于SVN。

为了清晰起见,我建议按层组织结构。这样,查看结构可以揭示组件之间的关系。即使客户(即供应商)有更多的开销,或者设置每个客户对存储库的访问有更多的开销,这也是值得的,因为每个客户将习惯于考虑项目的总体结构,这将减少长期出现bug和API冲突的可能性

在这种情况下,如果管理者有自己的方式,他们可能倾向于按供应商分离存储库。作为一名程序员,你更清楚。将一些工作交给经理,确保遵守适当的工作流实践——为了清晰和更好的编程

此外,仅仅让不同的供应商在同一个结构中看到彼此的工作,就会以这种小的方式鼓励互动(无论多么小)。这再次表明,开放和交流比安全和限制更重要。如果一开始你作为一个程序员这么说,那就是一个机会

顺便说一下,Git优于SVN