Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SVN到Git的迁移_Java_Git_Svn_Migration - Fatal编程技术网

Java SVN到Git的迁移

Java SVN到Git的迁移,java,git,svn,migration,Java,Git,Svn,Migration,通过下载svn2git.sh脚本文件并使用以下命令,我试图在windows上从SVN迁移到git sh svn2git.sh [ProjectName] [SVN Repo link] [SVN Rev (Probably 0)] [Stash Repo Link] 我是新手,对git svn和svn2git的用法感到非常困惑。有谁能建议我使用svn2git工具将svn迁移到git的步骤吗?我不得不从svn迁移到git,我在atlassian找到了一个非常有用的教程。它一步一步地向您展示了如何

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

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

我是新手,对git svn和svn2git的用法感到非常困惑。有谁能建议我使用
svn2git
工具将svn迁移到git的步骤吗?

我不得不从svn迁移到git,我在atlassian找到了一个非常有用的教程。它一步一步地向您展示了如何迁移到git,事实上,有一个svn-migration-scripts.jar可以帮助您完成迁移过程,这将保留您的标记和分支,这是链接:。
最后,您不需要创建bibucket帐户,您可以使用github。在我的案例中,一些命令行发生了更改,例如,在convert step-Standard SVN layouts中创建authors.txt时,我必须向用户进行身份验证并通过,因此我在末尾添加了用户名,在

java-jar/svn-migration-scripts.jarhttps:////  
我跳过了一些步骤,例如同步过程-更新authors文件,自动生成Git authors,获取新的SVN提交,与获取的提交同步,清理Git repo(再次),因为在我的例子中,在转换期间我不需要在SVN中提交。这取决于您是否与更多的开发人员合作,以及您使用git的速度

我还必须在repo中配置ssh密钥,以防您需要它


我希望这能帮助您

我为svn到git的迁移创建了一个脚本。这个脚本将svn repo迁移到git,并维护它的所有标记和历史记录

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

所用变量的说明

SVN_REPO_链接:指向SVN REPO托管位置的http链接

GIT_REPO_NAME:您希望为新GIT REPO指定的名称

GIT_REPO_LINK:链接到您希望托管REPO的GIT服务器。 [它基本上是您想要添加的GIT remote]

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

svn user name = Name <email>

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

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

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

您使用的是哪个svn2git.sh?我在谷歌搜索中找到了不止一个。你能给我一个你正在使用的链接吗?嗯。。。我似乎无法加载该网页,但没有外部?
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