2015-05-01 256 views
-3

我想通過下載svn2git.sh腳本文件並使用以下命令從SVN遷移到git。SVN到Git遷移

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

我對此很陌生,在git-svn和svn2git之間的用法很混亂。任何人都可以使用svn2git工具向我建議svn使用git遷移的步驟嗎?

+0

您使用哪個svn2git.sh?我在我的谷歌搜索中發現了不止一個。你能給一個你正在使用的鏈接? – 1000000000

+0

嗯...我似乎無法加載該網頁 – 1000000000

回答

0

我不得不從SVN遷移到git,並且我在atlassian中發現了一個非常有用的教程。它一步一步向你展示如何遷移到git,事實上有一個svn-migration-scripts.jar可以幫助你完成這個過程,並且保留你的標籤和分支,這是鏈接:https://www.atlassian.com/git/tutorials/migrating-overview
最後你不需要創建一個bibucket賬戶,你可以使用github。在一些情況下,我改變了命令行,比如我曾與用戶進行身份驗證,當我創建了轉換步驟authors.txt合格 - 在https://bitbucket.org/atlassian/svn-migration-scripts/src

標準SVN的佈局,所以我在最後添加的用戶名,更多信息
java -jar <your path>/svn-migration-scripts.jar authors https://<svn_repo>/<project>/ <username> 

我跳過一些步驟,比如同步更新步驟 - 作者文件,自動生成的Git作者,獲取新的SVN提交,與獲取同步提交,清理的Git回購(再次),因爲在我的情況下,在轉換過程中我不需要在svn中提交。這取決於你是否與更多的開發人員合作,以及你使用git的速度。

我還必須在回購協議中配置ssh-key,以防萬一您需要它。 https://help.github.com/articles/generating-ssh-keys/

我希望這可以幫助您

+0

謝謝你的信息 – Java99

1

我創建了一個腳本SVN到git的遷移。這個腳本將svn repo遷移到git以及它的所有標籤和歷史記錄。

先決條件: 確保在您的機器上安裝GIT和SVN,然後再進行遷移。

描述爲變量使用

SVN_REPO_LINK:http鏈接到您svn的回購託管

GIT_REPO_NAME:鏈接:你想給你新的git回購

GIT_REPO_LINK名稱到您要在其中託管回購站的git服務器。 [它基本上是一個遠程Git,你想添加]

作者文件: 在SVN的提交僅與用戶名相關聯,但在Git倉庫中的電子郵件地址,還需要除用戶名。爲了維護git中的svn提交,需要用戶電子郵件。這個文件是爲了這個目的。 文件的格式如下:

svn user name = Name <email> 

Helen_david = Helen David <[email protected]> 

RobinR = Robin Rose <[email protected]> 

腳本

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 

現在你的資料庫與它的所有標籤,樹枝和歷史一起遷移。