我們一直在使用SVN,開發人員一直在慢慢遷移到git-svn。現在我們準備好了,並完全轉向git(使用gitolite)。我不確定如何將我們的存儲庫遷移到gitolite並保留歷史記錄。我不知道我是否應該嘗試直接轉換svn repo,或者使用我的本地git-svn副本並推送它。如何從git-svn遷移到gitolite並保留歷史記錄
什麼是最好的方法?
我們一直在使用SVN,開發人員一直在慢慢遷移到git-svn。現在我們準備好了,並完全轉向git(使用gitolite)。我不確定如何將我們的存儲庫遷移到gitolite並保留歷史記錄。我不知道我是否應該嘗試直接轉換svn repo,或者使用我的本地git-svn副本並推送它。如何從git-svn遷移到gitolite並保留歷史記錄
什麼是最好的方法?
我建議使用SubGit來將你的Subversion版本庫翻譯成Git。 以下單一命令,應該足以執行轉換:
$ subgit install svn_repos
後,你會得到Git倉庫中svn_repos/.git
或多個Git倉庫中svn_repos/git/
(如果你保留多個項目svn_repos)。
然後您可以繼續使用SubGit保留兩個Subversion和Git的訪問,或只是將其卸載,並使用svn_repos因爲只有一個Git倉庫:
$ subgit uninstall svn_repos
免責聲明:我SubGit的開發商。
作爲後續行動,我提出瞭如何從SVN遷移到Gitolite短HOWTO博客文章:看
感謝您的建議 - 我沒有聽說過該項目。然後,我將如何把這個git回購並推送到gitolite(我是遠程git回購的新手 - 我一直使用svn作爲回購。) – Yehosef 2012-01-03 17:12:09
@Yehosef SubGit是一個新項目,所以不要奇怪你還沒有聽說過它。 – 2012-01-03 21:05:39
至於push:在'subgit install svn_repos'完成翻譯之後,'svn_repos' _becomes_是一個正常的Git倉庫。所以只需運行'git --git-dir = svn_repos/.git push --all gitolite_repos_url'。 – 2012-01-03 21:14:09