2010-03-05 59 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