SVN 到 Git 迁移。如何将非标准 SVN 布局迁移到 Git
SVN to Git Migration. How to migrate a non standard SVN layout to Git
我目前正在将 svn 源代码控制的项目迁移到 Git (BitBucket)。我已经按照 guide by Atlassian 接近尾声,但是当 运行 命令 git push -u origin --all 时遇到以下错误:
No refs in common and none specified; doing nothing.
Perhaps you should specify a branch such as 'master'.
Everything up-to-date.
我认为这是因为 SVN 布局不是标准布局。我不得不像这样指定主干、分支和标签:
git svn clone --trunk=/main --branches=/branches/Sprints/Iteration_1 --branches=/branches/Sprints/Iteration_2 --tags=/tags --authors-file=authors.txt svn://svn-project/projExample projExample
但我不知道如何继续并将回购推送到 BitBucket。任何帮助将不胜感激!
还值得注意的是,我尝试了命令 git push origin master 并收到以下错误:
error: src refspec master does not match any.
error: failed to push refs to '[my bitbucket origin]'.
我发现的上一个问题的一个例子是 here。但这似乎没有帮助。也许我做错了什么?
以下命令 运行 得到上述初始错误:
- java -jar /svn-migration-scripts.jar 验证
- java -jar /svn-migration-scripts.jar 作者 svn://svn-project/projExample > authors.txt
- 编辑 authors.txt 文件以匹配所有当前用户名和电子邮件。
- git svn clone --trunk=/main --branches=/branches/Sprints/Iteration_1 --branches=/branches/Sprints/Iteration_2 --tags=/tags --authors-file=authors.txt svn://svn-project/projExample projExample
- java -DFile.encoding=utf-8 -jar /svn-migration-scripts.jar clean-git --force
- git svn fetch
- java -Dfile.encoding=utf-8 -jar /svn-migration-scripts.jar sync-rebase
- java -Dfile.encoding=utf-8 -jar /svn-migration-scripts.jar clean-git --force
- git远程添加源https://example@bitbucket.com/projExample.git
- git push -u origin --all
- 没有任何反应。
经过反复试验,我得出的结论是这里使用的 SVN 结构太复杂了。我将命令更新为
git svn clone --trunk=main --branches=branches/*/* --tags=tags/* --authors-file=authors.txt svn://svn-project/projExample projExample
这解决了问题,但导致命令需要 7 天才能到达 运行!这说明结构太复杂了!
因此我决定使用包含最新代码的 svn 分支作为 t运行k 成功添加了历史但没有创建所需的分支。我认为这已经足够好了,因为命令会在 2 小时内 运行。我执行的命令更像这样:
git svn clone --trunk=branches/Sprints/Iteration_2 --authors-file=authors.txt svn://svn-project/projExample projExample.
如果我就此向其他人提出建议,我会说直接执行上面的命令,因为它很快并且可以完成工作!
下面是将 SVN 同步到 Git 存储库所需的命令。基本上你需要合并 origin/trunk 和 master 然后 push
git svn fetch
git merge origin/trunk
git push origin master
我目前正在将 svn 源代码控制的项目迁移到 Git (BitBucket)。我已经按照 guide by Atlassian 接近尾声,但是当 运行 命令 git push -u origin --all 时遇到以下错误:
No refs in common and none specified; doing nothing.
Perhaps you should specify a branch such as 'master'.
Everything up-to-date.
我认为这是因为 SVN 布局不是标准布局。我不得不像这样指定主干、分支和标签:
git svn clone --trunk=/main --branches=/branches/Sprints/Iteration_1 --branches=/branches/Sprints/Iteration_2 --tags=/tags --authors-file=authors.txt svn://svn-project/projExample projExample
但我不知道如何继续并将回购推送到 BitBucket。任何帮助将不胜感激!
还值得注意的是,我尝试了命令 git push origin master 并收到以下错误:
error: src refspec master does not match any.
error: failed to push refs to '[my bitbucket origin]'.
我发现的上一个问题的一个例子是 here。但这似乎没有帮助。也许我做错了什么?
以下命令 运行 得到上述初始错误:
- java -jar /svn-migration-scripts.jar 验证
- java -jar /svn-migration-scripts.jar 作者 svn://svn-project/projExample > authors.txt
- 编辑 authors.txt 文件以匹配所有当前用户名和电子邮件。
- git svn clone --trunk=/main --branches=/branches/Sprints/Iteration_1 --branches=/branches/Sprints/Iteration_2 --tags=/tags --authors-file=authors.txt svn://svn-project/projExample projExample
- java -DFile.encoding=utf-8 -jar /svn-migration-scripts.jar clean-git --force
- git svn fetch
- java -Dfile.encoding=utf-8 -jar /svn-migration-scripts.jar sync-rebase
- java -Dfile.encoding=utf-8 -jar /svn-migration-scripts.jar clean-git --force
- git远程添加源https://example@bitbucket.com/projExample.git
- git push -u origin --all
- 没有任何反应。
经过反复试验,我得出的结论是这里使用的 SVN 结构太复杂了。我将命令更新为
git svn clone --trunk=main --branches=branches/*/* --tags=tags/* --authors-file=authors.txt svn://svn-project/projExample projExample
这解决了问题,但导致命令需要 7 天才能到达 运行!这说明结构太复杂了!
因此我决定使用包含最新代码的 svn 分支作为 t运行k 成功添加了历史但没有创建所需的分支。我认为这已经足够好了,因为命令会在 2 小时内 运行。我执行的命令更像这样:
git svn clone --trunk=branches/Sprints/Iteration_2 --authors-file=authors.txt svn://svn-project/projExample projExample.
如果我就此向其他人提出建议,我会说直接执行上面的命令,因为它很快并且可以完成工作!
下面是将 SVN 同步到 Git 存储库所需的命令。基本上你需要合并 origin/trunk 和 master 然后 push
git svn fetch
git merge origin/trunk
git push origin master