2009-01-29 163 views
4

自從我在微軟工作以來,我有一個本地Source Depot版本控制存儲庫。最近,我一直想遷移到SVN,並與我一起改變歷史,但似乎沒有腳本遷移到SVN。從源代碼庫遷移到SVN

由於有很多微軟公司在這裏閒逛,我以爲我會在這裏嘗試。我基本上是在尋找一個簡單的遷移腳本來爲我處理事情。

除此之外,歡迎任何其他勸告讓我走。僅供參考,Source Depot基於Perforce,並且我已經嘗試過執行遷移tools,但沒有取得任何成功。

回答

3

Source Depot是否有類似於Perforce的命令行?

大約一年前,我使用Python腳本在幾步之內將我的SCC庫從Perforce移到SVN。雖然我不再有腳本,但它非常簡單,並在一個下午寫完。

基本上,腳本從第一個perforce更改列表開始,然後按順序遍歷它們。它會同步到每個更改列表並將文件分成編輯/添加/分支列表。這些文件將被複制到SVN路徑,並使用適當的命令更新/添加/分支。然後他們會使用原始更改列表中的評論進行提交。

這給了我一個完整的我的Perforce軟件倉庫的SVN鏡像,它保留了所有的歷史/評論和分支信息。我只有一個用戶(我!),但支持多個用戶並不困難。

我甚至想到讓腳本改變系統時鐘,以便歷史日期是正確的,但這似乎不值得。對我而言,歷史和分支/標籤信息是最重要的。

1

也許我誤解了你的問題,但是什麼阻止你從源代碼庫完成代碼檢查,然後將它檢入Subversion?

除非您還意味着要導入已設置的任何用戶/組控件,在這種情況下,檢出/檢入無法完全實現該功能。

+1

他想保留更改歷史記錄。 – Malfist 2009-02-02 20:42:24

+0

我想,或許正確地(如果我錯了,請糾正我)每個結帳都包含變更記錄的元文件?也許這只是我在工作中使用的源代碼控制工具(或配置) – warren 2009-02-02 20:51:39

2

我的公司有一個承包商訪問我們的信息會議,回來一下從MKS遷移到SVN的所有源代碼和版本歷史。事實證明,通過遷移過程保持版本歷史記錄實際上非常困難,因爲它們都有自己的存儲歷史記錄的方法。我從那次訪問中拿走的是,有一些昂貴的第三方工具可以進行遷移,但是很難找到,實際上並不是那麼好。

我們最終決定,對於大多數項目,我們會咬緊牙關,只用現有的源代碼創建新的源代碼管理項目,丟失新軟件的版本歷史記錄並將舊版本保留在磁盤上。當然,我們的情況有所不同,因爲我們的基礎版本歷史記錄格式不同(我的是MKS,你的是SD)。但是,我不相信它會很容易找到一個用於轉換它的魔法腳本。我可能是錯的,但這就是我從那次會議中得到的結果,無論如何。