如何解决检出商品库的子集
| 首先,我有一个非常大的cvs存储库,并且我正在尝试将其转换为Mercurial。 cvs存储库由几个目录组成,有点像本问题中的情况。但是,每个子目录不是一个完整的独立项目。每个项目都使用整体的子集,但它们的交集并不为空。 这是一个示例来说明:/cvsroot
.../core
.../feature-1
.../feature-2
项目1使用core和feature-1;项目2使用核心和功能2。我不希望在项目2上工作的人的工作副本中包含feature-1目录,因为它实际上是一组大约30个目录,并且空间并不小。
有没有一种方法可以轻松(或替代地,很好)地解决这一问题?我考虑过为路口使用一个单独的存储库,但这不是最理想的。这意味着要进行额外的提取和更新,并可能编写大量脚本来对其进行管理。
我的另一个选择是在每个路口中复制路口。但这并不好,因为它可能导致派生通用代码,因为不同的人在其中的不同部分上工作。
解决方法
使用Mercurial子存储库应该对此有所帮助。我将
core
,feature-1
和feature-2
定义为独立的存储库,然后使用子存储库功能将它们链接在一起。项目1将吸引core
和feature-1
,而项目2将吸引core
和feature-2
。每个基础存储库仅存在一次,因此不同的项目可以有效地共享它们。
您可以配置子存储库,以便当Project 1执行提交和推送时,它同时推送到core
和feature-1
,或者您可以要求用户通过导航到目录并将它们像普通回购一样来显式提交给它们。
最后,您只能在存储库级别创建子存储库。换句话说,您不能在每个文件级别上创建它们。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。