使用git与CVS存储库连接的最佳做法和技巧是什么?
答案 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)
答案 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,或其许多子项目,如mdocml或ports-readmes),特别是如果它像OpenBSD CVS树一样生疏是(例如偶尔甚至有历史重写),我发现简单地将基础git
文件直接提交到我的git
存储库中非常有用。
这使得不必拥有多个独立工作区变得非常容易,可以在任何计算机上使用cvs up
结帐,然后cvs diff
到位,或{{1}}生成正确的CVS补丁邮寄给上游的无git维护者。