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 - Fatal编程技术网

什么是多来源项目的最佳SVN存储库布局?

什么是多来源项目的最佳SVN存储库布局?,svn,Svn,[注意:我将其从serverfault中删除,因为stackoverflow可能更合适] 对于我们正在进行的一个项目,我们正在开发一个WordPress主题、一些WordPress自定义插件、一个iOS应用程序和一个Android应用程序。我们通过内部Subversion服务器处理所有源代码,每个项目都有自己的存储库 我的问题是:对于这个项目,SVN存储库的最佳布局是什么?我能把它放在一个存储库中吗?还是我真的应该为主题、插件和移动应用程序创建单独的存储库?你不能创建一个具有单独分支的项目吗?问

[注意:我将其从serverfault中删除,因为stackoverflow可能更合适]

对于我们正在进行的一个项目,我们正在开发一个WordPress主题、一些WordPress自定义插件、一个iOS应用程序和一个Android应用程序。我们通过内部Subversion服务器处理所有源代码,每个项目都有自己的存储库


我的问题是:对于这个项目,SVN存储库的最佳布局是什么?我能把它放在一个存储库中吗?还是我真的应该为主题、插件和移动应用程序创建单独的存储库?

你不能创建一个具有单独分支的项目吗?

问题不在于是否有单独的存储库,而在于它们是否应该作为单独的项目进行管理,也就是说,它们是否会分支并合并在一起。在Subversion中,您可以在一个存储库中有多个项目,因此您可以在那里始终只有一个存储库

答案取决于模块之间的紧密程度。如果您希望一个组件的任何版本在合理范围内与其他组件的任何其他版本一起工作,那么它们应该作为单独的项目进行管理(每个项目都有自己的
trunk
branchs
,因此您需要
theme/trunk
theme/branchs
plugin/trunk
等)。如果您希望修改通常会涉及多个组件,那么它们必须作为单个项目进行管理(一个
trunk
branchs
,因此您将拥有
trunk/theme
trunk/plugin
等)

另一方面,我建议重新考虑颠覆的选择。较新的分布式系统(按流行程度和顺序)提供了更大的灵活性和更好的分支和合并。在这些年之后,subversion实现仍然显示出粗糙的边缘,主要是因为底层模型不太适合分支


与subversion不同,分布式系统总是每个存储库有一个项目,因为分支在那里是独立的概念,所以如果您决定有单独的项目,您将有单独的存储库(在一台服务器上)。

是的,这是一个想法,但我如何才能为单独的项目发布分支?就像WordPress主题的1.0版本和iOS源代码的1.1版本一样?-1:分支适用于预期合并在一起的事物。那个,只有那个。这种情况根本不存在。谢谢你,简。我们目前正在使用你推荐的第二种布局,根据你的解释,这是最有意义的:当我们更改插件中的某些内容时,我们通常也会更新主题和移动应用程序。我很高兴听到这是正确的处理方法。我也理解你关于分布式系统的观点。我们已经使用SVN很长一段时间了,现在还没有一个很好的理由来切换。但当需要时,我愿意转换。@vvanscherpenseel:我也从未遇到过必须逃离颠覆的情况。相反,subversion有时会错误处理某些东西,或者没有一些可以节省您一些工作的功能,这会给您带来一些小麻烦。