­

將 svn 倉庫遷移到 git 倉庫

  • 2020 年 2 月 10 日
  • 筆記

我找到了一個很久很久以前編寫的項目,然而當時是使用 svn 進行版本管理的。然而現在的版本管理全部是 git,不願意再裝一個 svn 工具來管理這些古老的項目,於是打算將其遷移到 git 中。

本文介紹如何將古老的 svn 項目遷移到 git。


找回 svn 倉庫的 url

如果你能記得你 svn 倉庫的 url,或者這個倉庫是一個純本地倉庫,那麼你直接複製這個 url 就好了。

然而如果這是一個有 svn 遠程服務器的倉庫,那麼你可能依然需要臨時安裝一下 svn 工具。我們只是為了拿回 url 而已。

這裡我使用當時使用的小烏龜 TortoiseSVN。在 svn 倉庫空白處右擊選擇版本庫瀏覽器(Repo-browser),小烏龜會自動定位到當前倉庫所在的遠程 svn 服務器的對應文件夾。

我們所要做的只有一件事——複製頂部那個 url。

得到了這個 url 後,像我這種潔癖就卸載 TortoiseSVN 了。

將 svn 倉庫遷移到 git 倉庫

命令行

在一個新的文件夾中,我們輸入如下命令:

git.exe svn clone "https://svn.walterlv.com/LvYi/Timer" ".Walterlv.RepoFromSvn"

如果那個 svn 目錄中包含 trunkbranchestags 結構,那麼可以在後面添加相應的參數以便在 clone 完成後保留分支和標籤信息。

git.exe svn clone "https://svn.walterlv.com/LvYi/Timer" ".Walterlv.RepoFromSvn" -T trunk -b branches -t tags

需要注意的是,上面的 Walterlv.RepoFromSvn 文件夾是不允許提前存在的,如果存在將無法遷移成功。

TortoiseGit

這裡特地照顧一下從 TortoiseSVN 遷移來繼續考慮 TortoiseGit 的小夥伴。在 TortoiseGit 中的操作是:

  1. 在某個文件夾中右鍵(或者 Shift+右鍵)
  2. 選擇克隆
  3. 按照下圖填寫來自 url 的遠程服務器 url 和本地文件夾,並打勾「從SVN版本庫」

參考資料

本文會經常更新,請閱讀原文: https://blog.walterlv.com/post/m

本作品採用 知識共享署名-非商業性使用-相同方式共享 4.0 國際許可協議 進行許可。歡迎轉載、使用、重新發佈,但務必保留文章署名 呂毅 (包含鏈接: https://blog.walterlv.com ),不得用於商業目的,基於本文修改後的作品務必以相同的許可發佈。如有任何疑問,請 與我聯繫 (walter.lv@qq.com)