2010-10-20 69 views
2

場景:如何鏡像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日,它的工作。但不保留提交作者姓名。我正在那裏工作。應該在一週內完成功能。對於當前狀態,請檢查回購頁面。(用於手動鏡像)

+0

因爲我沒有找到合適的軟件解決方案....我正在構建一個。檢查編輯 – Nerian 2010-10-23 17:03:18

+1

請考慮添加您的解決方案作爲答案,以便它可以關閉。這樣別人可以看到一個問題已經得到解答。 – 2011-09-15 15:51:29

回答

0

與GIT-SVN純GIT中可能是更實用的方法:

  • GitHub庫acessed作爲GIT-回購
  • SVN回購只是額外的遠端與GIT - svn的