我有超过 10 年的软件项目,我想致力于 Hg。
这是与 Delphi 7 相关的代码,包括 3rd 方许可库、使用 svn 管理的开源库和我自己的代码(我正计划迁移到 Delphi XE5)。
第 3 方和 svn 派生的库通常在 Delphi IDE 中安装了组件,并且应该保持在“最新”版本(因为回滚通常会破坏 IDE),所以我只是备份它们(它们是 svn 外部从未回滚)。
我的布局如下:
-Licensed
|-(third party libs)
...
-SVNRoot
|-(various open source from svn)
...
-CodeRoot
|
|-common (common to all projects)
|
|--major1
| |
| |-common (common to the major1 software)
| |
| |-Cust1 (projects for customer1)
| | |
| | |-C1Proj1
| | |
| | |-C1ProjN
| |
| |-Cust2
| |
| |-C2Proj1
| |
| |-C2ProjN
|
|--major2
| |
... ...
也就是说,一个“通用”文件夹,其中包含我通常包含在所有项目中的代码,无论它们部署在哪里。
然后按主要产品细分,以及客户定制的子项目。
我已经阅读了各种教程,但我似乎遗漏了一些东西......
我看到了如何通过移动到 ..\CodeRoot 并运行 Hg Init 将 CodeRoot 下的所有内容添加到本地存储库。
我不清楚我是否很乐意将所有内容都放在一个存储库中。
OTOH,如果最上面的“公共”文件夹不在所有内容中,我就有问题了。
每个重大项目下的“共同点”都有同样的问题。
我还不确定我的“粒度”应该是什么——每个 MajorProject 或每个 CustProject 的存储库。
所以 - 问题:
1)如果我选择“per MajorProject” - 如何处理最顶层的“common”文件夹?
2)如果我使用“per CustProject” - 我如何处理最顶层和每个主要项目的公共文件夹(如果它们的处理方式与最顶层不同)
3)最后,如果我想创建一个远程中央存储库(而不是本地),我如何安全地将所有文件移动到远程中央存储库,然后再将其克隆到我的机器本地?
TIA。
干杯,教育发展局