我想轉換一個稍微凌亂的svn倉庫git。我嘗試閱讀一些指南和其他SO問題,但在遵循最佳方法方面有點失落。轉換凌亂的svn存儲庫爲git
的SVN倉庫有一個頂層文件夾結構,文件夾,是這樣的:
|- client
|- server
|- website
|- misc
大多數這些文件夾中有「標準」的svn結構:即trunk
,branches
和tags
。但有些只是平面文件夾。
|- client
|- trunk
|- branches
|- tags
|- server
|- trunk
|- branches
|- tags
|- website
|- misc
分支和標籤可能在不同文件夾之間具有相同的名稱。例如,客戶端和服務器文件夾都可能有一個名爲1.0
的分支。
我設法使用svn2git單個文件夾進行轉換,而且似乎對歷史,以及優良的分支機構。我可以設法爲每個文件夾創建一個單獨的git存儲庫。但是,我想最終保留一切存儲在一個存儲庫。
什麼是這些文件夾中(現在的git倉庫)合併爲一個,同時保持每個文件夾的分支,標籤和歷史上最好的方法是什麼?使用this approach,我似乎失去了提交歷史記錄和來自合併存儲庫的分支......或許我只是錯過了一些重要步驟或做錯了什麼?
否則,也許使用svn2git
每個文件夾分別是不是從SVN遷移到Git的最好的方法?
謝謝。聽起來像一個有趣的方法,但你是否知道任何資源/工具來幫助安全地做到這一點?我快速查看了一個svn轉儲,我不知道該從哪裏開始(更不用說處理合並問題,例如,客戶端和服務器名稱相同的兩個分支...) – gingerlime
http:// svn。 apache.org/repos/asf/subversion/trunk/notes/dump-load-format.txt - 在轉儲文件中搜索「節點路徑」。如果您執行了複製/移動操作,則「Node-copyfrom-path」也可能是相關的。 – ThiefMaster
這東西似乎超過了我的頭,是非常誠實的......做一些正則表達式搜索/替換如此大規模的svn內部轉儲格式的混亂並不完全是我所希望的解決方案。感謝您提出這個方向! – gingerlime