SVN到Git的迁移

我试图通过下载svn2git.sh脚本文件并使用以下命令从SVN迁移到Windows上的git。

 sh svn2git.sh [ProjectName] [SVN Repo link] [SVN Rev (Probably 0)] [Stash Repo Link] 

我是新手,并且在git-svn和svn2git用法之间非常困惑。 任何人都可以建议我使用svn2git工具进行svn git迁移的步骤吗?

我为svn创建了一个脚本来进行git迁移。 此脚本将svn repo迁移到git及其所有标记和历史记录。

先决条件:确保在继续迁移之前在您的计算机上安装了GIT和SVN。

所用变量的描述

SVN_REPO_LINK:http链接到您托管svn repo的位置

GIT_REPO_NAME:您要为您提供新git repo的名称

GIT_REPO_LINK:链接到您要托管回购的git服务器。 [它基本上是你想要添加的GIT遥控器]

作者文件:在svn中,提交仅与用户名相关联,但在git存储库中除了用户名之外还需要电子邮件地址。 为了在git中维护svn提交,需要用户电子邮件。 此文件用于此目的。 该文件的格式如下:

 svn user name = Name  Helen_david = Helen David  RobinR = Robin Rose  

脚本

 git svn clone --stdlayout --prefix 'svn/' -A authors.txt $SVN_REPO_LINK $GIT_REPO_NAME cd $GIT_REPO_NAME git for-each-ref refs/remotes/svn --format="%(refname:short)" | sed 's#svn/##' | grep -v '^tags'| while read aBranch; do git branch $aBranch svn/$aBranch; done git branch -d trunk git for-each-ref refs/remotes/svn/tags --format="%(refname:short)" | sed 's#svn/tags/##' | while read aTag; do git tag $aTag svn/tags/$aTag; done git remote add origin $GIT_REPO_LINK git push -u --all origin git push --tags origin 

现在,您的存储库将与其所有标记,分支和历史记录一起迁移。

我不得不从SVN迁移到git,我在atlassian找到了一个非常有用的教程。 它一步一步地向您展示如何迁移到git,实际上有一个svn-migration-scripts.jar可以帮助您完成流程并保留您的标签和分支,这是链接: https://www.atlassian .com / git / tutorials / migrating-overview 。
最后你不需要创建一个bibucket帐户,你可以使用github。 在我的情况下,一些命令行发生了变化,例如我必须通过用户进行身份validation并在转换步骤中创建authors.txt时传递 – 标准SVN布局,所以我在最后添加了用户名,更多信息以https: //bitbucket.org/atlassian/svn-migration-scripts/src

  java -jar /svn-migration-scripts.jar authors https:////  

我跳过了一些步骤,例如同步进程 – 更新作者文件,自动生成Git作者,获取新的SVN提交,与提取的提交同步,清理Git仓库(再次),因为在我的情况下我做了’在转换期间需要在svn中提交。 这取决于你是否与更多的开发人员合作,以及你对git的使用速度有多快。

我还必须在repo中配置ssh-key以防万一你需要它。 https://help.github.com/articles/generating-ssh-keys/

我希望这对你有帮助