SVN仓库真的有多个"repositories"时如何使用git-svn?

How to use git-svn when SVN repository really contains multiple "repositories"?

假设我有一个伞式 SVN 存储库,"CompanyName"。在这个 repo 中,有许多项目,"Project1"、"Project2"、...、"ProjectN"。例如。 SVN 存储库包含多个项目,而不是每个项目一个存储库。我想 "move" Project1 到 Git,所以我尝试这样做:

git svn clone --no-metadata --authors-file=users.txt --prefix=origin/ --trunk=Trunk --branches=Branches svn+ssh://me@svn.dev.companyname.biz/svn/CompanyName/Internal/Project1/

对此,git-svn 响应:

Initialized empty Git repository in c:/Projects/CompanyName/Internal/Project1/.git/
Using higher level of URL: svn+ssh://me@svn.dev.companyname.biz/svn/CompanyName/Internal/Project1 => svn+ssh://me@svn.dev.companyname.biz/svn/CompanyName

请注意 git 已正确移动到存储库的根目录,尽管我希望它集中在我指定的路径上。进入 Project1、运行 git branch -r 没有输出,所以这似乎没有用。

这已通过使用 git svn--no-minimize-url 选项解决:

git svn clone --no-metadata --authors-file=users.txt --prefix=origin/ --trunk=Trunk --branches=Branches --no-minimize-url svn+ssh://me@svn.dev.companyname.biz/svn/CompanyName/Internal/Project1/

我遇到了类似的错误。我通过使用 --no-minimize-url

解决了它

这是我的完整 URL , -r 指定我想从哪个版本开始,然后我做了 git snv rebase

git svn clone -r 15846 svnurl -T trunk -A ../authors.txt gitreponame --no-minimize-url