将git与CVS一起使用的最佳实践

时间:2009-02-27 14:57:44

标签: git git-cvs

使用git与CVS存储库连接的最佳做法和技巧是什么?

5 个答案:

答案 0 :(得分:21)

我写了一个类似问题的答案here

当您被迫继续将更改推送到中央CVS存储库时,这非常有效。

答案 1 :(得分:11)

我只与Git-CVS互动合作为朋友演示Git,但它非常简单。

  • 您需要安装cvsps的当前副本。 Git cvsimport使用它来访问CVS历史记录。
  • 我们发现,对于一个大型项目,通过将CVS repo的完整副本带到您的计算机上并执行git cvsimport,可以更快地实现初始设置 本地:

    $ rsync rsync://yourprojecthost.com/cvsroot/yourproject/*  
    $ mkdir myproject.git  
    $ cd myproject.git  
    $ git cvsimport -p -x -v -d :local:/path/to/cvsroot/yourproject 
    

请注意-p之后的-x非常重要。这将-x传递给cvsps。有关详细信息,请参阅cvsps man page

答案 2 :(得分:8)

我写了我自己的workflow for remote CVS, local Git

的详细信息

答案 3 :(得分:1)

稍微有点回答。如果你被迫使用git'guerilla风格',即你的公司坚持使用cvs进行版本控制,你在工作站上使用git让生活更轻松,你可以考虑做这样的事情;

CVS=realCvsPath
# commit to the git first
if ($ARGV[0] && $ARGV[0] eq "commit")
{
system 'git commit -a';
}

# execute the appropriate cvs program
# ===================================
exec "$CVS", @ARGV

调用此文件'cvs'并将其包含在真正的CVS命令之前的路径中。否则你可以让git提交比cvs更旧,这不是那么有用......

答案 4 :(得分:1)

如果上游在CVS中是100%(例如,OpenBSD,或其许多子项目,如mdocmlports-readmes),特别是如果它像OpenBSD CVS树一样生疏是(例如偶尔甚至有历史重写),我发现简单地将基础git文件直接提交到我的git存储库中非常有用。

这使得不必拥有多个独立工作区变得非常容易,可以在任何计算机上使用cvs up结帐,然后cvs diff到位,或{{1}}生成正确的CVS补丁邮寄给上游的无git维护者。