我应该在SVN中为发布分支创建一个文件夹吗?

时间:2011-03-18 03:49:53

标签: svn

我想将发布分支与功能分支分开,将它们放在发布文件夹中。我知道使用svn的最佳实践是让你的根文件夹结构如下:

\trunk
\branches
    \feature-a
    \feature-b
    \...
\tags
    \1.0 
    \...

我对svn的理解是trunk / branches / tags文件夹对svn没有特殊含义。通过向项目的根目录添加一个发布文件夹并将所有发布分支放在该文件夹中,我会遇到任何问题吗?

\trunk
\branches
    \feature-a
    \feature-b
    \...
\releases
    \release-a
    \...
\tags
    \1.0 
    \...

创建新版本分支将如下所示:

svn copy http://project/trunk http://project/releases/release-b

4 个答案:

答案 0 :(得分:2)

如何构建存储库取决于您。如果你需要有分支类别/文件夹/等,那就这样吧。一旦确定了您想要/需要的结构,就可以创建一个处理它的过程。底层的Subversion命令当然不会改变。

答案 1 :(得分:1)

它会很好,虽然我个人,我不喜欢它。 “释放”听起来像是一种标记(固定点),当你的意思是它是一种分支(向一个版本演变。)

答案 2 :(得分:1)

您的工作流程是什么样的?此时,标签目录变得无关紧要,您也可以将“标签”重命名为“版本”,否则主干变得无关紧要,因为所有开发都在发布或功能分支中进行。

我的建议是简单地将“tags”文件夹重命名为“release”。

答案 3 :(得分:0)

我这样做和其他类似的事情。相同的工作流路径。解决的问题是杂乱无章。例如,当您拥有标记的构建版本,并且正在进行的任务分支时,文件夹可能会有点混乱。我通常在本地保留一个小的svn沙箱,以便我可以尝试工作流程以确保我没有弄乱任何东西。

在某些项目中,我使用单独的存储库进行发布,并使用svn:external作为切换。从这个意义上讲,它更像是对另一个群体的“交付”交接。开发工作流程和操作推出工作流程可能有所不同。这将两者分开了。

关于我现在正在设置的项目 - 可能会称之为maint或支持只是为了增加趣味性。 :)