首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cvs2svn包括单分支和单头?

cvs2svn包括单分支和单头?
EN

Stack Overflow用户
提问于 2009-08-25 06:32:11
回答 2查看 1.4K关注 0票数 2

我正在使用cvs2svn来转换我的存储库。我在一个存储库中成功地完成了这项工作,现在我的新问题是第二个存储库。

在我的新转换中,我只想转换头部和一个分支。cvs2svn只有分支的"exclude“功能,没有"include”。我有很多分支机构,排除每一个分支机构都需要做很多工作……

有没有办法只转换主干(头)和只有一个分支?

谢谢,奥德

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-08-25 07:27:35

如果您只想保留一个分支而不保留标记,那么这很容易。将使用与符号匹配的第一个规则,因此请指定要包含的分支,然后排除其他所有分支:

代码语言:javascript
复制
cvs2svn --force-branch=mybranch --exclude='.*' ...

如果你不仅想要包含分支,还要包含尽可能多的标签,那么这就有点棘手了。您不仅不必知道所有标记的名称,而且还不能包含依赖于排除的分支的标记。在这种情况下,使用--write-symbol-info和--symbol-hints选项是最容易的:

代码语言:javascript
复制
cvs2svn --write-symbol-info=symbol-info.out --passes=1:3 ...

这将创建一个名为"symbol-info.out“的文件,其中包含有关所有CVS符号的信息。在编辑器中,打开该文件,找到与您想要排除的分支相对应的所有行,并将这些行的第三列更改为单词" exclude“。确保您想要包含的分支的行的第三列包含单词" branch“,并且它的第四列是您希望它结束的路径。

现在再次运行cvs2svn,从第3步开始,并使用编辑后的symbol-info文件作为符号提示文件:

代码语言:javascript
复制
cvs2svn --symbol-hints=symbol-info.out --passes=3 ...

你会得到很多错误,比如:

代码语言:javascript
复制
ERROR: ExcludedSymbol('FOO_BRANCH') cannot be excluded because the following symbols depend on it:
    BAR_TAG
    BAZ_TAG

现在返回到编辑器并将列出的标记(示例中的BAR_TAG和BAZ_TAG )也更改为要排除,然后再次尝试运行pass3。这个过程可能需要迭代几次,但不应该很麻烦,因为pass3运行得非常快。

当您让pass3无误地完成时,运行转换的其余部分:

代码语言:javascript
复制
cvs2svn --symbol-hints=symbol-info.out --passes=4: ...
票数 1
EN

Stack Overflow用户

发布于 2009-08-25 06:56:47

一个问题是,cvs2svn不仅需要确定是否包含分支,而且(同时)首先需要确定符号是分支还是标记。因此,如果你想包含一个分支,还有一些标签,这比仅仅说“只包含那个分支”要困难得多--这样做会杀死所有的标签。

哦,cvs2svn并不真正支持这一点。您可以通过编辑其源代码来解决此问题。在cvs2svn_lib.symbol_strategy.BranchIfCommits中,将返回分支(符号)的大小写更改为

代码语言:javascript
复制
   if symbol.name == 'my_branch':
       return Branch(symbol)
   else:
       return ExcludedSymbol(symbol)

默认情况下应使用IIUC、BranchIfCommits。

就我个人而言,我会使用一种不同的策略:

代码语言:javascript
复制
 1. convert the repository once, with all branches.
 2. do a "svn ls" on branches, and redirect that into a file.
 3. edit the file to construct an exclude regex out of it, of the form `b1|b2|...|bn`

我不认为那是很大的工作量。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1326390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档