2017-06-30 151 views
0

我們目前有一個包含一堆數據(〜20Gb)的Subversion服務器。但是,每個人都使用git svn與該服務器交談。從git-svn遷移到純git

我們希望轉向使用純粹的git,但我們不想爲此設置一個服務器,只需在文件共享上安裝git存儲庫。

設置它的最佳方法是什麼?理想情況下,文件服務器上的版本應該是「裸露」的存儲庫,但理想情況下,也可以將svn更新拉一點,因爲在克隆時可能會完成一些提交。

[注:一切都是窗口]

回答

1

如果你想擁有一個純粹的「裸」的Git與SVN倉庫同步服務器,你可以嘗試SubGit

不僅每個SVN更新都會進入它,反之亦然:每次對Git存儲庫的推送都會被轉換爲SVN。

要設置這面鏡子來看

$ subgit configure --svn-url SVN_PROJECT_ROOT_URL --layout auto --trunk trunk repo.git 

然後調整repo.git/subgit/config中根據自己的需要,然後運行

$ subgit install repo.git 

後,如果您可以直接克隆repo.git:

$ git clone repo.git wt/ 

或設置對其的訪問例如與git-http-backend一起使用,並與正常的Git存儲庫一起使用。

有關更多詳細信息,請參見Quick Howto

聲明:我是SubGit開發人員之一。

+0

我沒有管理員權限到svn倉庫。這是否意味着我無法自動配置svn-> git更新? – xorsyst

+0

它根本不需要管理員權限,它只是一個SVN客戶端。你需要的是在「subgit configure」步驟之後立即在subgit/passwd中設置密碼,或者將憑證緩存在Subversion主目錄中(通常情況下,如果SVN沒有要求輸入密碼,就已經存在)。 –

0

嗯.....我猜你可以在服務器上設置一個回購站,你可以設置一個cronjob(或計劃任務,不管),它將運行git svn fetch來同步svn上顯示的內容然後移動一個「本地」分支到svn分支,以便人們可以「看到」它們。使用git的開發人員可以將此回購作爲遠程(例如:origin或「mainrepo」)添加,然後它就成爲了解您將如何設置回購以開始分享內容的問題(這本身就是一個整體主題)。