如何在 CVS 存储库中同时将 Mercurial 存储库的子目录作为子目录进行版本控制?
我需要这个的原因是,使用 Mercurial 控制的私有项目版本有一个代码和资源子目录,这些代码和资源恰好对使用 CVS 版本控制的全局多人项目有用。我想在 Mercurial 存储库中继续开发,但是当它提交时,我希望它也传播到 CVS 存储库。有时其他人会通过 CVS 提交到此目录,我也希望能够将这些修订版添加到我的 Mercurial 存储库中。这个问题有什么好的解决方案吗?
如何在 CVS 存储库中同时将 Mercurial 存储库的子目录作为子目录进行版本控制?
我需要这个的原因是,使用 Mercurial 控制的私有项目版本有一个代码和资源子目录,这些代码和资源恰好对使用 CVS 版本控制的全局多人项目有用。我想在 Mercurial 存储库中继续开发,但是当它提交时,我希望它也传播到 CVS 存储库。有时其他人会通过 CVS 提交到此目录,我也希望能够将这些修订版添加到我的 Mercurial 存储库中。这个问题有什么好的解决方案吗?
将两个存储库放在一起,相关的 SO 问题:Mercurial 和 SVN 在同一个工作目录中并排?. 因此,在 mercurial 文件夹中拥有 svn 文件夹应该不是问题。记得将.svn/
repo 添加到.hgignore
.
在提交另一个时传播一个可能更复杂。最简单的方法是分别提交/拉取/同步到两者。同步 svn 文件夹后,下次提交 hg 时,prev 更改将传播到 hg。反之亦然。由于一个 repo 在另一个 repo 中,因此看到每个 repo 的变化反映在另一个 repo 中应该不是问题。
我们为我工作的一家公司的包含目录执行此操作。我们最终做的是迫使每个人都致力于 CVS 回购。然后我编写了一个 cron 作业,它将 CVS 存储库中所做的任何更改提交到相关的 Mercurial 存储库中。Mercurial 存储库包含一整棵树(不仅仅是包含目录)这一事实使我们的案例变得复杂。如果我要再做一次,我会将包含目录设为一个单独的存储库。