我需要找到一种方法来构建存储库,以便我拥有以下内容:
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
该项目依赖于公司文件和供应商文件合并在一起以形成项目,但我希望将它们保存在存储库中。例如,我会检查公司分支并使用它。提交我的更改。然后这就是我被卡住的地方。我如何将这些更改发送到开发分支(每个应该是公司和供应商的合并版本)进行测试,然后最终推动该开发分支生效。
答案 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)也将包含所有供应商框架和所有代码,但这是可以的,因为这些副本只需要几个字节。颠覆的存储库。