svn2git迁移:规则

atmip9wb  于 2023-02-28  发布在  Git
关注(0)|答案(1)|浏览(114)

所以我决定使用svn2git工具,为了迁移仓库,我需要authors文件和rules文件,沿着仓库本身,我把这三个文件组合起来,放在一个目录下,我暂时称之为myRepository_test,我希望新的git仓库在迁移后也能在这里。
下面是我目前拥有的存储库结构:

- myRepository
  -- myRepository.release
  -- myRepository.mapping
  -- myRepository.base
  -- ..

我在这里总共有大约30个项目。
我在此分享我的文件,这些文件将用于:

作者Map文本:

egent = Emma Gent <emma.gent@someDomain.com>
gstar = Gabriel Star <gabriel.star@someDomain.com>
.
.

就目前而言,我只想尝试2个项目,所以:

我的存储库.规则:

create repository myRepository
end repository

# main history

match /trunk/myRepository/myRepository.release/
  repository myRepository
  branch master
end match

match /trunk/myRepository/myRepository.mapping/
  repository myRepository
  branch master
end match

# Ignore everything else
match /
end match

这使得最后的命令:

./svn-all-fast-export --identity-map authormap.txt --rules myRepository.rules --add-metadata http://address/svn/myRepository

其结束为:

Loading rules from: "myRepository.rules" 
Loading rules from "myRepository.rules" 
Could not read the rules file: myRepository.rules
Aborted (core dumped)

我不是很确定规则文件的内容,如果有人能帮助我就好了。
先谢了。

6fe3ivhb

6fe3ivhb1#

你得到的消息并不意味着语法是假的,语法看起来很好。它实际上无法找到或读取文件本身。你是否从你的myRepository.rules文件所在的目录调用svn-all-fast-export。你是否以调用svn-all-fast-export的用户身份对文件具有读取权限?
关于rules文件的内容,我不认为它已经完全正确了。您将myRepository.releasemyRepository.mapping的内容存储到存储库的根目录中。如果这是您想要的,那也没关系。如果不是,您可能应该在match块中使用prefix规则,以便将内容添加到单独的子目录中。但是,无论如何,在您能够成功运行该工具之后,您将看到这一点。
还有一点需要注意,match表达式是正则表达式,因此您可能希望转义.并使用match /trunk/myRepository/myRepository\.release/

match /trunk/myRepository/myRepository\.(release|mapping)/
  repository myRepository
  branch master
end match

或者如果您需要子目录

match /trunk/myRepository/myRepository\.(release|mapping)/
  repository myRepository
  branch master
  prefix \1
end match

match /trunk/myRepository/(myRepository\.(release|mapping))/
  repository myRepository
  branch master
  prefix \1
end match

有关规则的详细信息,请访问https://techbase.kde.org/Projects/MoveToGit/UsingSvn2Git#How_rulesets_work

相关问题