关于从 cvs 转换为 Mercurial

发布于 2024-11-01 05:49:14 字数 645 浏览 3 评论 0原文

我有一个巨大的 CVS 存储库,我想将其转换为一些 hg 存储库。 这个问题类似,但我使用的是 hg转换 并且我在 cvs 中有多个目录应该放入给定的 hg 存储库中。下面是一个示例:

/sw
 .../dir1
 .../dir2
 .../dir3
 .../dir4
 .../dir5

我希望 dir1、dir2 和 dir4 位于我的 hg 存储库中,但 dir3 可以与 dir5 一起在一个单独的存储库中腐烂,而没有人会使用它。

我一直在使用 hg Convert --branchsort sw 转换整个内容,其中 sw 是一个沙箱签出,仅包含我关心的目录。这为我提供了一个包含所有 4 个目录的 1.7GB hg 存储库。 CVS 存储库有 2.3GB,但沙箱只有 159MB。 hg 存储库的历史可以追溯到 1997 年,这很棒,但其中的一些内容来自已停产的产品。它们不需要位于常规的开发人员沙箱中。

那么,有没有办法挑选 CVS 目录进入我的新 hg 存储库?

I've got a gigantic CVS repository that I'd like to convert to a few hg repos. This question is similar, but I'm using hg convert and I've got more than one directory in cvs that should go in a given hg repo. Here's an example:

/sw
 .../dir1
 .../dir2
 .../dir3
 .../dir4
 .../dir5

I want dir1, dir2, and dir4 in my hg repo, but dir3 can rot with dir5 in a separate one that nobody will ever use.

I've been converting the whole thing with hg convert --branchsort sw where sw is a sandbox checkout containing only the directories I care about. That nets me a 1.7GB hg repo with all 4 directories. The CVS repo is 2.3GB, but a sandbox is only 159MB. The hg repo has history going back to 1997, which is awesome, but some of the stuff in there is from products that have been discontinued. They don't need to be in a regular developer sandbox.

So, is there a way to cherry pick CVS directories to go into my new hg repository?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

红玫瑰 2024-11-08 05:49:14

您应该遵循我对您链接到的问题的建议。将所有内容转换在一起,然后使用 hg -> hg 转换为使用文件映射在每个存储库中选择您想要的部分。任何空的修订(仅包含您在该对话中排除的文件)都将被忽略。

此外,hg 到 hg 的转换速度要快得多,因此您只需执行一次缓慢的 CVS 转换,然后一次又一次地执行 hg 到 hg 部分,直到您对结果感到满意为止。

You should follow my advice on that question to which you linked. Convert everything together and then use hg -> hg converts to pick the parts you want in each repo using a filemap. Any revisions that would be empty (have only files that you're excluding in that conversation) will be omitted.

Also hg to hg converts are much faster, so you can do the slow CVS convert only once and then do the hg to hg parts again and again until you're happy with the results.

策马西风 2024-11-08 05:49:14

您有权访问 CVS 存储库存储吗?

如果是,那么您应该能够制作存储库的完整副本,删除您不想转换的任何文件/目录,然后运行 ​​hg Convert 并从中签出工作目录本地存储库。

我说应该是因为我还没有尝试过,但是由于 CVS 以每个文件为基础存储修订历史记录,所以我没有理由认为它不应该这样做。它不能与像 Subversion 这样的 SCM 一起工作,因为 Subversion 在一个版本中存储了多个更改。

Do you have access to the CVS repository storage?

If yes, then you should be able make a complete copy of the repository, remove any files/directories that you don't want to convert, and then run hg convert with a working directory checked out from this local repository.

I say should because I haven't tried it, but since CVS stores revision history on a per-file basis, there's no reason I can think of that it shouldn't. It would not work with a SCM like Subversion, which stores multiple changes in a single revision.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文