使用git与CVS存储库交互的最佳实践和技巧是什么?在CVS中使用git的最佳实践
回答
我写了一个类似问题的答案here。
当您被迫继续将更改推送到中央CVS存储库时,这种方法非常有效。
我只使用Git-CVS交互来为朋友演示Git,但它非常简单。
- 您需要安装
cvsps
的当前副本。Git cvsimport
使用它来访问CVS历史记录。 我们发现,对于大型项目,inital的建立是多更快地取CVS回购的完整拷贝到您的计算机,并做
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
请注意,-x after -p非常重要。这将-x传递给cvsps。欲了解更多信息,请参阅cvsps man page。
我认为有错误/在第3步。 – 2009-03-01 03:22:56
@PeterBurns:那是...它应该是`git cvsimport -p -x -v -d:local:/ path/to/cvsroot yourproject` – Archenoth 2014-06-04 15:39:25
稍元回答。如果你被迫使用git'游击风格',即你的公司使用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的,这是不是有用旧的......
如果上游在CVS 100%(例如,OpenBSD的细节或许多子项目,如mdocml或ports-readmes),尤其是如果它与OpenBSD CVS树一样生锈(例如偶尔甚至有历史重写),我发现将基本CVS/{Entries,Repository,Root}
文件直接提交到我的git
库。
这使得它非常容易不必有多个独立的工作空间,使人们有可能在任何机器上git
签,然后在地方cvs up
,或cvs diff
产生正确的CVS补丁邮寄到GIT,少维护上游。
我会试着对SourceSafe提出同样的问题,但我真的不想摆脱(完全按照目标)的嘲笑。 – 2009-02-27 15:17:46