2009-09-21 121 views
1

我正在研究將當前保存在SCCS中的老化數字UNIX框上的源代碼存儲庫遷移到Windows盒子上的Subversion。我最初的搜索引導我編寫了一個python腳本,sccs2svn,看起來它可以完成這項工作 - 但有一些限制。 SCCS目錄上的du -sk顯示其大小約爲550MB。將SCCS存儲庫轉換爲SVN

從我所知道的,腳本運行在本地機器上,並在本地SCCS和SVN上運行:SCCS通過直接執行SCCS命令; SVN通過一個python模塊,但也調用svnadmin創建一個本地目錄。

不幸的是,我需要在不同的服務器上創建回購;從我在SVN郵件列表中讀到的內容等,如果平臺不同,SVN repo不能簡單地在服務器之間複製:需要svnadmin轉儲和恢復。

我認爲我能看到這個工作的唯一方法是作爲一個兩階段遷移:首先,在現有服務器上安裝SVN和python,在那裏運行腳本,然後轉儲出來並將其加載到Windows SVN - 應該可以工作,只需稍微耗費一點時間,並且需要多一點磁盤。

有沒有人知道我可以做到這一點,而不是在兩個階段做到這一點?如果創建回購庫的行被註釋掉了,python腳本是否可以修改爲在遠程倉庫上執行操作?我將對Python SVN模塊進行一些閱讀,但Python不是我以前玩過的腳本語言。

+0

是否有rcs2svn腳本?如果是這樣,它是否消除了您需要刪除的限制?重要的是我有一個體面的版本的sccs2rcs腳本,也許從SCCS遷移到RCS和從此到SVN會更順利嗎? – 2009-09-21 20:59:24

+0

@Jonathan:也考慮到了,但是作爲SVN,我需要安裝RCS(甚至是CVS)。 DEC OSF/1只帶有SCCS。 – 2009-09-22 08:30:47

回答

3

如果您使用FSFS後端,則可以將存儲庫移至目標平臺。 FSFS存儲庫是真正平臺獨立的。它們也是svn 1.3以來的標準設置,因此您不應該通過創建存儲庫而存在任何問題,然後通過任何文件傳輸將其複製到最終服務器。

+0

另外,您應該使用FSFS。 – 2009-09-22 01:43:00

+0

啊太棒了。這有幫助。 Windows SVN正在運行SVN 1.3.2(在某些時候,由於最新的SVN中有一些有用的東西,所以它將被升級,但目前存在「如果它工作並不能解決問題」的情況)。 – 2009-09-22 08:33:02

+0

只是爲了確保您確實獲得了FSFS存儲庫,請使用以下命令:svnadmin create --fs -type fsfs/PATH/TO/NEW/REPO – 2009-09-22 13:22:32

0

如果sccs2svn真的必須在本地工作,並且想要在Windows機器上運行SVN存儲庫,那麼請使用Cygwin版本的GNU CSSC在Windows機器上運行sccs2svn。 CSSC是一個SCCS工作模式:請參閱http://www.gnu.org/software/cssc/

如果您有更多的靈活性,另一種選擇是在GNU/Linux系統上同時使用CSSC和SVN。