場景:如何鏡像GitHub的SVN倉庫到SVN庫在其他地方舉辦
我有一個Git回購託管在GitHub上: https://[email protected]/Nerian/JPovray.git
可以通過SVN客戶端在訪問: http://svn.github.com/Nerian/JPovray.git
我還有另一臺託管在學校服務器上的SVN服務器。我希望這個服務器成爲GitHub回購的鏡像。
這是學校要求在學校使用SVN回購。
測試:
#Create the mirror repo
svnadmin create dest
#Make the hooks always pass
echo "#!/bin/sh" > dest/hooks/pre-revprop-change
echo "#!/bin/sh" > dest/hooks/start-commit
#Make the hooks executable
chmod +x dest/hooks/pre-revprop-change dest/hooks/start-commit
#Initialize the mirror repo to mirror the github repo
svnsync init file://`pwd`/dest http://svn.github.com/Nerian/JPovray.git
它給了我這個消息:
svnsync的:非正規屬性 ':WC:ra_dav:SVN版本的URL' 的存儲是通過儲存接口不允許和它說明您的客戶端有漏洞
#Start the mirroring process
svnsync sync file://`pwd`/dest
它給了我這個MES鼠尾草:
svnsync的:200 OK(http://svn.github.com)
#Checkout the mirror repo.
svn checkout file://`pwd`/dest client
它給我的留言: 'http://svn.github.com/Nerian/JPovray.git' 的報告
取出版本0
目前,有6個修訂t他Github回購。結帳說有0。所以這意味着同步無效。客戶回購是空的,而Github回購有兩個兩個文件。
約束:
它可以運行在學校SVN回購的命令,我只是有聯繫SVN經理。
GitHub倉庫的提交歷史記錄必須保留。我們是一個由3名成員組成的團隊,教授需要知道是誰執行了什麼。
編輯:
我聯繫GitHub上過這個問題,他們說,這是不可能的,以鏡像GitHub的svn的,因爲他們不是真正顛覆回購。這只是某種橋樑。
所以我已經開始編程解決方案:
https://github.com/Nerian/github_subversion_converter
這Ruby應用程序將允許從一個SVN提交轉移到另一個。目前,截至2010年10月23日,它的工作。但不保留提交作者姓名。我正在那裏工作。應該在一週內完成功能。對於當前狀態,請檢查回購頁面。(用於手動鏡像)
因爲我沒有找到合適的軟件解決方案....我正在構建一個。檢查編輯 – Nerian 2010-10-23 17:03:18
請考慮添加您的解決方案作爲答案,以便它可以關閉。這樣別人可以看到一個問題已經得到解答。 – 2011-09-15 15:51:29