svn2git 迁移:规则
svn2git migration: Rules
因此,在得到可靠推荐后,我决定使用 svn2git 工具。为了迁移存储库,我需要作者文件和规则文件,以及存储库本身。这三个我都写好了,放在一个目录下,暂且叫myRepository_test。我希望我的新 git 存储库在迁移后出现在这里。
这是我目前拥有的存储库结构:
- myRepository
-- myRepository.release
-- myRepository.mapping
-- myRepository.base
-- ..
我这里总共有大约 30 个项目。
特此分享我将要使用的文件:
authormap.txt:
egent = Emma Gent <emma.gent@someDomain.com>
gstar = Gabriel Star <gabriel.star@someDomain.com>
.
.
暂时我只想尝试2个项目,所以:
myRepository.rules:
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)
我不太清楚规则文件的内容,如果有人能帮助我就太好了。
提前致谢。
您收到的消息并不意味着语法是假的,语法看起来不错。它实际上无法找到或读取文件本身。您是否从 myRepository.rules
文件所在的目录调用 svn-all-fast-export
。您是否以您称为 svn-all-fast-export
的用户身份对该文件具有读取权限?
关于规则文件的内容,我认为它已经不完全正确了。您将 myRepository.release
和 myRepository.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
end match
或
match /trunk/myRepository/(myRepository\.(release|mapping))/
repository myRepository
branch master
prefix
end match
因此,在得到可靠推荐后,我决定使用 svn2git 工具。为了迁移存储库,我需要作者文件和规则文件,以及存储库本身。这三个我都写好了,放在一个目录下,暂且叫myRepository_test。我希望我的新 git 存储库在迁移后出现在这里。
这是我目前拥有的存储库结构:
- myRepository
-- myRepository.release
-- myRepository.mapping
-- myRepository.base
-- ..
我这里总共有大约 30 个项目。
特此分享我将要使用的文件:
authormap.txt:
egent = Emma Gent <emma.gent@someDomain.com>
gstar = Gabriel Star <gabriel.star@someDomain.com>
.
.
暂时我只想尝试2个项目,所以:
myRepository.rules:
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)
我不太清楚规则文件的内容,如果有人能帮助我就太好了。
提前致谢。
您收到的消息并不意味着语法是假的,语法看起来不错。它实际上无法找到或读取文件本身。您是否从 myRepository.rules
文件所在的目录调用 svn-all-fast-export
。您是否以您称为 svn-all-fast-export
的用户身份对该文件具有读取权限?
关于规则文件的内容,我认为它已经不完全正确了。您将 myRepository.release
和 myRepository.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
end match
或
match /trunk/myRepository/(myRepository\.(release|mapping))/
repository myRepository
branch master
prefix
end match