Version control 存储库文件夹结构和从该结构自动生成

Version control 存储库文件夹结构和从该结构自动生成,version-control,build-automation,cruisecontrol.net,branch,Version Control,Build Automation,Cruisecontrol.net,Branch,我们正在工作中升级我们的源代码管理(很可能是Vault),并正在转向分支方法,在确定要使用的文件夹结构时遇到一些问题 我们打算使用主干作为开发线,分支将是一个发行版,并修复该发行版的bug 我们提出了两种文件夹结构,我想知道每种结构的优缺点: Projects |-> Trunk |-> Data Access |-> Business |-> Desktop |-> Website |-> Branches |

我们正在工作中升级我们的源代码管理(很可能是Vault),并正在转向分支方法,在确定要使用的文件夹结构时遇到一些问题

我们打算使用主干作为开发线,分支将是一个发行版,并修复该发行版的bug

我们提出了两种文件夹结构,我想知道每种结构的优缺点:

Projects
  |-> Trunk
    |-> Data Access
    |-> Business
    |-> Desktop
    |-> Website
  |-> Branches
    |-> Branch 01
      |-> Data Access
      |-> Business
      |-> Desktop
      |-> Website

如果我们在构建机器(cruisecontrol.net)上使用源代码控制块,我们可以说:

<path>$\Projects\trunk\</path>
如果一些项目已经分支,而其他项目没有分支,那么在不存在分支的情况下,如何使其获得主干(如果可能的话)

获取所有主干,然后用分支覆盖是否有效?如果它试图访问一个不存在的分支,它会出错吗?

第一种方法非常可靠。您确切地知道要发布什么(因为每个版本都有一个入口点:主干或分支/标签)

我认为第二种方法有几个问题:

  • 所有项目必须同时分支/标记
  • 必须对每个项目分别进行合并
  • 两种选择都是可能的,但我认为第一种选择是最简单的,也是最安全的选择。< /P> 因为该网站很可能独立于发行版(如果您是从2007年创建的分支发布的,那么您不会选择2007年的网站,而是2009年的网站)

    第一种方法非常可靠。您确切地知道要发布什么(因为每个版本都有一个入口点:主干或分支/标签)

    我认为第二种方法有几个问题:

  • 所有项目必须同时分支/标记
  • 必须对每个项目分别进行合并
  • 两种选择都是可能的,但我认为第一种选择是最简单的,也是最安全的选择。< /P> 因为该网站很可能独立于发行版(如果您是从2007年创建的分支发布的,那么您不会选择2007年的网站,而是2009年的网站)


    最后,我编写了一个源代码管理插件(使用Vault的API),以允许我在
    标记中指定一些额外内容:

    <folder>$/branches/%latest%</folder>
    
    $/branchs/%latest%
    

    将在Branchs文件夹中检索最新的分支。

    最后,我编写了一个源代码管理插件(使用Vault的API),允许我在
    标记中指定一些额外内容:

    <folder>$/branches/%latest%</folder>
    
    $/branchs/%latest%
    

    将在Branchs文件夹中检索最新的分支。

    我更喜欢细粒度、非常有组织、自包含、结构化的存储库。存储库维护过程有一种通用(理想)方法。例如,我的初始存储库结构(每个项目存储库都应该有)是:


    我更喜欢细粒度、非常有组织、自包含、结构化的存储库。存储库维护过程有一种通用(理想)方法。例如,我的初始存储库结构(每个项目存储库都应该有)是:


    我猜你没有开源插件?我会,但不幸的是我的公司不想-这是公司财产:|我猜你没有开源插件?我会,但不幸的是我的公司不想-这是公司财产:|
    Project
      |
      +- Trunk
    
    Website
      |
      +- Trunk
    
    <folder>$/branches/%latest%</folder>
    
    /project
        /trunk
        /tags
            /builds
                /PA
                /A
                /B
            /releases
                /AR
                /BR
                /RC
                /ST
        /branches
            /experimental
            /maintenance
                /versions
                /platforms
            /releases