3

我期待一场关于 Subversion 存储库的战斗:目前我们有一个 Web 应用程序,它被签入为 3 个主要项目和 2 个报告项目(当我 6 个月前开始时),现在多达 7 个项目,并且预计会进一步增长.

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

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

4

2 回答 2

0

Subversion 中有很多选项如何构建您的存储库。请参阅文档中关于存储库布局的讨论

我通常会遵循以下规则:

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

区别如下:

  • 单项目布局:

     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

于 2011-09-28T14:26:52.300 回答
-1

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

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

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

于 2010-12-21T19:34:09.870 回答