2011-06-27 45 views
1

我們使用CVS作爲源代碼庫。服務器遠離本地工作場所,速度很慢。存儲庫的大小也很大(約2GB),我們需要將近12小時才能完成新的結帳。如何使用git作爲CVS的代理

我們希望將GIT服務器設置爲CVS的代理,以便我們可以在白天與GIT服務器一起工作,並讓它在夜間與CVS服務器同步。這有什麼好的做法嗎?

基本requrements是:

  1. 分行支持Git和CVS應該 進行雙向,並承諾到Git 由不同的用戶應同步 到CVS一個一對一之間
  2. 同步功能與相應的 用戶

謝謝。 順便說一句,我讀過這個線程How to export revision history from mercurial or git to cvs?但它沒有多大幫助。

+1

您確定退役您的CVS存儲庫不是一個選項嗎?一旦你使用了一個帶有「changeset」概念的客戶端(不是'git'如何工作,但足夠接近),文件重命名和合並跟蹤,我認爲你不會再忍受CVS。至少,'cvs2svn'可以爲你提供一個比CVS現在可以給你的CVS數據庫更好的_better_ SVN庫。 – sarnold

+1

你需要保持CVS的任何理由? –

+0

我們最終將我們的CVS存儲庫遷移到了顛覆版,並從顛覆版轉移到了git版,因爲這在保留歷史記錄和分支機構方面給了我們最好的結果。然後,我們花了一段時間,並決定它變得太大而無法使用(大量遺留的jar和圖像),所以我們修剪了開發分支並使舊的存儲庫只讀(如果你不得不去再看一些),同時保持歷史。它工作得非常好。 –

回答

1

你可以設置一個存在於CVS倉庫末尾的git倉庫。你不需要導入所有的歷史記錄。這不值得痛苦。你應該能夠推送和從遠程git回購。然後,從遠程git倉庫提交到CVS倉庫。這應該避免很多傳輸延遲,因爲git在發送新文件和壓縮文件方面做得非常出色。

最終,每個人​​都會看到遠程git回購作爲提供真正價值的回購,並且您將能夠放棄CVS球鏈。

希望這會有所幫助。

+0

聽起來很有趣。如果我需要分支操作該怎麼辦? –

+1

我會保留這些在CVS世界中的發佈。在CVS方面開始這樣的活動是明智的。 –

+0

我剛剛意識到這個解決方案需要大量的手動工作。我會等待更多的答案。 –