需要存储库布局参考

时间:2010-12-21 19:20:21

标签: svn repository design-principles

我预计会对Subversion存储库进行一场争夺战:目前我们有一个单独的Web应用程序作为3个主要项目和2个报告项目(当我6个月前开始时)检查,现在最多7个项目,并且预计进一步发展。

对我来说很明显,不正确,如果您想合理使用版本控制系统,编译后的可执行文件无法跨越版本控制边界。对于单个功能,单个签入是不可能的,这对我来说似乎很重要。

但是当我试图解释这个时,我觉得我在挥手。有没有人有任何参考资料,对于Subversion或者一般来说,它提出了这个原则并且背后有一些权威?我已经做了一些搜索,我只想不出我需要的东西。

2 个答案:

答案 0 :(得分:0)

Subversion中有很多选项如何构建您的存储库。请参阅文档中的discussion of repository layout

我通常会遵循以下规则:

  • 是一个不同的项目,没有重叠,不是相同的用户或组? ==>您可以使用不同的存储库(但不是强制使用。
  • 是否有独立的部件可以相互独立地跟踪和构建? ==>使用所谓的“多项目布局”(见下文)。
  • 您是否开发了单个应用程序,并且在不同的团队中工作,使用所谓的“单项目布局”。

不同之处如下:

  • 单个项目布局:

     Repo MyProject:
     trunk/
       java/
         src/
       ruby/
       doc/
       ...
     tags/
       rel1.0/
         java (references the copy of java of revision xxx)
         ruby (references the copy of ruby of revision xxx)
         ...
       rel1.1/
         ...
     branches/
       feature_x/
         java (references the copy of java of revision yyy)
         ...
    
  • 多项目布局:

     Repo MyProjectBundle:
     proj1/
       trunk/
         java/
           src/
       tags/
         rel1.0/
           java (references the copy of java of revision xxx)
           ...
         rel1.1/
           ...
       branches/
         feature_x/
           ...
     proj2/
       trunk/
       tags/
       branches/
     ...  
    

所以主要区别如下:

  • 在多项目布局中,标记和分支所有项目非常困难,通常只有一个项目标记在那里。
  • 它是一个单一的项目布局,您可以随意分支和标记,通常与整个主干。然后,您可以更改要更改的内容,在一个修订中提交所有内容,然后将其合并为一步。

作为参考,我只有引用的SVN红皮书,当然还有stackoverflow中的众多答案之一:Subversion Repository Layout

答案 1 :(得分:-1)

由于svn中的模块仅按惯例存在,因此您可以在存储库中拥有顶级目录并将各种项目放在其中,并且可以在所需的树中的任何位置提交,包括顶部。所以我不希望你有一个单一的签到。

您的构建系统将是将应用程序划分为各种可交付成果的部分。

Cripes,我希望我已经至少部分地回答了你的问题。