【问题标题】:SVN to Git migrationSVN 到 Git 迁移
【发布时间】:2015-07-11 09:02:15
【问题描述】:

我正在尝试通过下载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 的步骤?

【问题讨论】:

  • 你使用的是哪个 svn2git.sh?我在谷歌搜索中发现了不止一个。你能给一个你正在使用的链接吗?
  • 嗯...我似乎无法加载该网页

标签: java git svn migration


【解决方案1】:

我为 svn 到 git 迁移创建了一个脚本。该脚本将 svn 存储库连同它的所有标签和维护的历史迁移到 git。

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

使用的变量说明

SVN_REPO_LINK : http 链接到您托管 svn 存储库的位置

GIT_REPO_NAME : 你想给你的新 git repo 的名字

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

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

svn user name = Name <email>

Helen_david = Helen David <helen.david@mycompany.com>

RobinR = Robin Rose <robin.rose@mycompany.com>

脚本

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

现在您的存储库连同它的所有标签、分支和历史记录一起迁移。

【讨论】:

  • 但没有外部?
【解决方案2】:

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

 java -jar  <your path>/svn-migration-scripts.jar authors https://<svn_repo>/<project>/ <username> 

我跳过了一些步骤,例如同步过程-更新作者文件、自动生成 Git 作者、获取新的 SVN 提交、与获取的提交同步、清理 Git 存储库(再次),因为在我的情况下在过渡期间,我不需要在 svn 中提交。这取决于您是否与更多开发人员合作,以及您习惯 git 的速度。

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

希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-30
    • 2020-04-04
    • 2019-01-30
    相关资源
    最近更新 更多