2010-03-05 61 views
8

我的工作地點目前使用CVS。 git遷移計劃中,但可能需要很長時間。同時,我有一個單人項目,並決定使用git來實現我自己的個人發展。分支,分階段提交,重新裝訂等都非常棒!但不幸的是,在某個時候,這個項目及其歷史需要導入到CVS中,以便其他人可以檢查我的進度。如何在強迫使用CVS的同時在VC中使用git來操作?

什麼是最好的方式......

  • 導入當前項目(最好爲一組不同的提交/修改)到CVS
  • 讓未來的變化重複進口到CVS
  • (獎金問題 - 理想但不是必需的)將其他開發人員的任何CVS更改合併回git

CVS目前沒有任何內容,只要它很重要。 (如果我有我的方式在CVS中沒有任何東西,但我暫時堅持它!)提前致謝!

+0

git的工作流可以作爲CVS服務器辦事,我敢肯定它也可以從CVS拉(很像'混帳svn')。 – hasen 2010-03-05 22:27:04

+0

可能重複的[如何將修訂歷史記錄從mercurial或git導出到cvs?](http://stackoverflow.com/questions/584522/how-to-export-revision-history-from-mercurial-or-git-to -cvs) – Mark 2013-11-04 14:58:45

+0

謝謝,答案真的很好。幸運的是,我們現在已經轉移到git :) – rjh 2013-11-10 11:10:33

回答

2

雖然我沒有明確的CVS知識,我會建議以下設置。

  • Work\Project.git < - git倉庫
  • Sync\Project < - 在這個文件夾..\Work\Project.git + CVS 版本控制主 分支的git的克隆。

比你可以把你所有的混帳東西在Project.git,當你想導入到CVS,你去Sync\Project,做一個git pull重播在您的同步目錄(變動也許你需要做一個完整的目錄在CVS結賬?)。

對於相反的情況,您可能需要使用導入分支,但我認爲可以從同步文件夾中的同事獲取更改,但在新分支中導入並將其與您的合併master分支,你從你的主git倉庫中提取。合併後,您可以將git push更改回Work\Project.git

本質上,使用您的同步存儲庫就好像您是另一個開發人員一樣。您甚至可以讓常規存儲庫從您的同步中提取(因此向您發送pull請求;-))或使用git send修補程序機制來更新您的主git存儲庫。

導入git中的CVS變更集,有一個git-cvsimport,它應該可以幫助你。

+0

這聽起來不錯,它唯一不處理的是保留我現有的修訂歷史記錄。 git-cvsexportcommit有點不穩定。 – rjh 2010-03-06 11:34:11

+0

嗯..以及你可以從你的git倉庫生成補丁,並在你的同步倉庫中作爲提交進行重放。有時候你甚至可以爲它寫一個腳本。 – 2010-03-06 11:57:03

+0

我在做實驗,它會涉及很多手動工作,但它是可行的。感謝您的詳細回覆! – rjh 2010-03-07 12:24:18

2

git cvsimportgit cvsexportcommit可以給你類似git svn