Kde SVN2Git标签未完全获取

时间:2019-11-11 13:54:40

标签: git svn migration kde svn2git

运行Kde svn2git以将单个svn存储库(具有26,000多个修订版)迁移到多个git存储库后,标记未完全获取。在这种情况下,标签的名称与分支的名称相同。完成迁移步骤后,一些新的git存储库包含一些原始标签,而其中一些都不包含。没有抛出错误。

在我试图解决问题的方法中,

  • 使用未获取的标签之一创建规则

    结果:该规则一次不匹配。

    /tmp/conf/rules.txt:58 / Project / tags / $被匹配0次

    /tmp/conf/rules.txt:70 / Project / tags / tag_1 / dir_1 / $被匹配0次

    /tmp/conf/rule.txts:87 / Project / tags / tag_1 / dir_1 /被匹配0次

  • 在与代码匹配的规则中添加了“动作递归”

    结果:迁移成功完成,并且某些标记包含在某些存储库中,而其他标记未包含。

  • 仅迁移一些存储库

    结果:迁移成功完成,并且某些标记包含在某些存储库中,而其他标记未包含。

  • 将整个svn存储库迁移到一个git存储库

    结果:迁移成功完成,并且所有标签似乎都在那里。

这是我用来开始迁移的命令:

/usr/local/svn2git/svn-all-fast-export \
--identity-map /tmp/conf/authors.txt --rules /tmp/conf/rules.txt \
--stats --commit-interval 1 --add-metadata --fast-import-timeout 1 --debug-rules \
--svn-branches --debug-rules --svn-ignore --debug-rules  --empty-dirs 
/tmp/svn/

这是我的规则文件的一个片段,我只包含了一个我试图单独迁移的存储库:

create repository my_repo
end repository

#
# Declare the rules
# Note: rules must end in a slash
# my_repo
#

#### Recurse into branches
match /Project/branches/([^/]+)/dir_1/$
 action recurse
end match

# Recurse into tags
match /Project/tags/tag_1/dir_1/$  
 action recurse
end match

#
# Start matching
#
match /Project/trunk/dir_1/
  repository my_repo
  branch master
end match

match /Project/branches/([^/]+)/dir_1/
  repository my_repo
  branch \1
end match

match /Project/tags/tag_1/dir_1/
  repository my_repo
  branch refs/tags/vtag_1
  annotated true
end match

match /
end match

正如我之前提到的,没有引发任何错误,但是有些东西无法正常工作。

我非常感谢您的任何评论或帮助。

感谢并希望有人能提供帮助。

编辑1: 我在日志中发现了一些东西:

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++recursiveDumpDir: "/Project/tags/tag1/dir_1/" skip entry for different/ignored repository

所有路径都以/Project/tags/tag_x/dir_1/的形式发生。

这是否意味着SVN信息库存在问题?

0 个答案:

没有答案