2010-04-08 145 views
0

我正在開發一個最初使用Subversion的項目,但遠程存儲庫已被刪除,我不想再使用Subversion。我想將它遷移到git。如何從本地SVN遷移到GIT

有沒有辦法做到這一點,沒有遠程存儲庫,保持所有修訂歷史(不做git init .)?

我已經使用git-svn做了一個顛覆git-svn的遷移,在其他項目上沒有問題,但是它們都在遠程存儲庫上,我找不到任何關於本地遷移的信息。

回答

5

Subversion不像Git,它不會將存儲庫保留在工作文件夾中,因此您將無法遷移它。

您將需要創建一個新的存儲庫並將其作爲新代碼進行檢查。

1

有一個辦法做到這一點沒有 遠程倉庫,保持所有 修訂歷史(沒有做一個git 初始化。)?

簡答:沒有。

與混帳,顛覆是集中版本控制系統,這意味着它存儲所有的修訂歷史服務器

相比之下,分佈式版本控制系統如Git,mercurialbazaar店內所有修訂歷史本地。在後一種情況下,您確實可以相對容易地在存儲庫之間導入/導出數據。在前者中,您需要服務器的存在才能這樣做。

0

「svn switch --relocate」to rescue [1]。

首先,您必須在任何普通服務器上設置一個臨時svn存儲庫,然後將您的本地svn存儲庫(又名工作副本)重定位到該服務器,將其提交到那裏,然後使用git-svn live you以前做過。


[1] http://webkit.org/blog/97/svn-repository-location-change/

+0

這並不保留所有修訂,因爲它們保存在* original *服務器上。這個提交只會有最新的一個。所以git-svn只會下載一個版本。 – 2010-04-09 07:40:30

0

你只能保持在顛覆歷史的信息,如果你設法讓你的手到已刪除的遠程Subversion版本庫的備份正確。

否則,歷史記錄會丟失,您只需從頭開始。

如果你有一個備份(如SVN回購的文件服務器上的rsync的副本),你可以在本地做使用git svn通過經file:// URL它指向本地SVN回購副本轉換,而不做首先是一個特殊的SVN服務器設置。