2013-01-22 186 views
0

場景:Git&tortoise Svn - 遷移

我們一直在使用SVN來管理我們的代碼庫。 SVN repo安裝在linux服務器上,開發人員在Windows操作系統上使用tortoise svn工作。

現在,我們需要遷移到GIT,因爲我們在分支和合並時感到害怕svn。我已經提供了另一個Linux服務器,在那裏我可以建立一個git倉庫,然後培訓開發人員從svn移動到git。

我讀了git-svn官方文檔和其他一些Google搜索相關結果。我想我已經犯了一個錯誤,但不知道:

我使用svn log命令

又到Linux服務器,並使用混帳svn的克隆命令和-s標誌,因爲我們有一個標準的提取SVN用戶信息佈局。

在我的Windows機器上安裝了msysgit,並想到克隆git repo,以便我可以測試git repo,同時開發人員像往常一樣繼續將其更改推送到svn repo。有一次,人們接受了git的培訓,然後我們可以完全轉向git repo。

這裏的擔憂,我不確定這是否是正確的方法。因爲,所有的遷移鏈接,文檔討論* nix系統,不知道這是如何完成的。 有人可以提供一些什麼正確的程序應該是什麼投入,我應該如何繼續這種遷移。

+0

你需要移動到混帳?從我讀過的內容來看,這聽起來像Mercurial在Windows上比git更加兼容/可用。如果你需要去git,看看右邊的「相關」帖子;至少有兩個從SVN遷移到git。 – alroc

回答

0

我知道的唯一可能的問題是行尾。 Git for Windows通常在系統配置中打開core.autocrlf設置。當你在POSIX系統上執行git svn clone時,倉庫中的文件應該會以Windows行尾(CR + LF)結束(至少這是我自己的經驗),如果你隨後檢查這樣的回購一臺Windows機器的設置高於活動(並且沒有被覆蓋),然後修改一個文件並提交這個修改,Git可能會嘗試將該文件中的行結尾轉換爲LF,從而記錄100%的重寫,這不是預期的。

該解決方案可能會覆蓋每個開發人員的存儲庫中的該設置,或嘗試在切換到Git之前轉換歷史記錄(使用git filter-branch)在存儲庫中使用LF。

在這兩種情況下,首先嚐試使用新的存儲庫,看看會發生什麼。

查看this瞭解更多背景。