设置 git-svn 以遵循非标准的 svn repo
Setting up git-svn to follow a non-standard svn repo
这是我的 SVN 存储库的结构:
http://server.net:8080/svn/CompanyName
— svn root
http://server.net:8080/svn/CompanyName/ProjectBranch3
— 项目的当前分支
http://server.net:8080/svn/CompanyName/ProjectBranch2
— 项目的前一个分支
http://server.net:8080/svn/CompanyName/ProjectBranch1
— 项目的第一个分支
http://server.net:8080/svn/CompanyName/SomeRandomProject
— 我不想签出 的同一根目录中的另一个项目。有很多
http://server.net:8080/svn/CompanyName/Tags/ProjectName/
— 项目标签
项目最初开发为ProjectBranch1
,然后复制到ProjectBranch2
,最后是ProjectBranch3
。我想获取包含所有历史记录的项目,并且我希望 git 了解每个分支都在前一个分支结束的地方开始。
现在,git init
命令有一个 -b
选项来指定用于分支的子文件夹。但是,svn 分支不包含在子文件夹中;如上所述,它们作为单独的子目录位于根目录中。
如何配置 git-svn
以实现此目的?
我能够使用以下 .git/config
文件完成此操作:
[svn-remote "svn"]
url = http://server.net:8080/svn/CompanyName
fetch = ProjectBranch3:refs/remotes/origin/trunk
branches = {ProjectBranch1, ProjectBranch2}:refs/remotes/origin/bracnhes/*
这是我的 SVN 存储库的结构:
http://server.net:8080/svn/CompanyName
— svn roothttp://server.net:8080/svn/CompanyName/ProjectBranch3
— 项目的当前分支http://server.net:8080/svn/CompanyName/ProjectBranch2
— 项目的前一个分支http://server.net:8080/svn/CompanyName/ProjectBranch1
— 项目的第一个分支http://server.net:8080/svn/CompanyName/SomeRandomProject
— 我不想签出 的同一根目录中的另一个项目。有很多http://server.net:8080/svn/CompanyName/Tags/ProjectName/
— 项目标签
项目最初开发为ProjectBranch1
,然后复制到ProjectBranch2
,最后是ProjectBranch3
。我想获取包含所有历史记录的项目,并且我希望 git 了解每个分支都在前一个分支结束的地方开始。
现在,git init
命令有一个 -b
选项来指定用于分支的子文件夹。但是,svn 分支不包含在子文件夹中;如上所述,它们作为单独的子目录位于根目录中。
如何配置 git-svn
以实现此目的?
我能够使用以下 .git/config
文件完成此操作:
[svn-remote "svn"]
url = http://server.net:8080/svn/CompanyName
fetch = ProjectBranch3:refs/remotes/origin/trunk
branches = {ProjectBranch1, ProjectBranch2}:refs/remotes/origin/bracnhes/*