SVN - 供应商和自己的代码的结构存储库是分开的

时间:2011-09-08 16:55:40

标签: svn tortoisesvn

我需要找到一种方法来构建存储库,以便我拥有以下内容:

Trunk
  This is live 

Branches
  Vendor
     Vendor framework v1
     Vender framework v1 etc etc
  Company
      The is where my code lives

  Development
      A
      B
      C

该项目依赖于公司文件和供应商文件合并在一起以形成项目,但我希望将它们保存在存储库中。例如,我会检查公司分支并使用它。提交我的更改。然后这就是我被卡住的地方。我如何将这些更改发送到开发分支(每个应该是公司和供应商的合并版本)进行测试,然后最终推动该开发分支生效。

1 个答案:

答案 0 :(得分:1)

我宁愿用这种方式构建它:

trunk
    Vendor
        Framworks 1
    Company
        company code
branches
    Live (copy/merge of trunk)
        Vendor (this gets automatically pulled in by the copy/merge from trunk to live)
        Company (same here)
    Development
        A (copy of trunk)
            Vendor
            Company
        B (copy of trunk)
            (same here)
tags
    Version 1.0 (copy of live)
        ....
    Version 2.0 (copy of live)
    .....

这样最新的分支是trunk。这是你的工作区。

如果您想进行更大的更改(或者希望将每个更改分别进行审核/测试),请将其分支到开发分支,进行更改,然后合并回主干。每次反向合并后,您可以自由保留开发分支或删除它们。

如果所有测试都没问题,并且您想将其置于实时,请将trunk合并到Live-branch。

一个常见的概念也是使用标记对每个发行版本进行版本化。在这种情况下,您只需将live复制到tag-branch并为其指定版本名称。

您会注意到每个分支(实时,开发a,开发b,版本1,版本2)也将包含所有供应商框架和所有代码,但这是可以的,因为这些副本只需要几个字节。颠覆的存储库。