从部分存储库进行 CVS 检出

从部分存储库进行 CVS 检出

我有一个部分 CVS 存储库 - 主存储库中子文件夹的副本,我想签出 head。我尝试直接这样做:

$ cvs -d /path/B2MEj/ co B2MEj
cvs [checkout aborted]: /path/B2MEj/CVSROOT: No such file or directory

我的副本不包含 CVSROOT(因为我认为它是原始存储库根目录的子目录)。

我如何才能获得此文件夹中最新版本文件的清晰快照?我不在乎保留任何版本历史记录,因为对我来说这是单向提取。

答案1

如果没有 CVSROOT,cvs 根本就不知道您的文件夹中有什么,因为所有文件和版本信息都在那个 CVSROOT 目录中。

您要做的是使用 RCS,v分别提取每个文件的最新版本,这应该与 bash 中的以下命令类似:

for fn in *,v; do
  co ${fn%,v}
done

因为 RCS 的co命令需要原始文件名,所以我们必须找到所有,v文件并使用减去 ,v 的文件名运行 co。

一旦完成后,您将必须从 .v 文件中整理出代码。

答案2

似乎所有必要的信息都包含在我的部分存储库中的 .v 文件和 Attic 目录中。关键是只需创建一个空的 CVS 根目录,cvs -d /workingdir init然后将原始(部分)存储库文件夹复制到 中workingdir。此时,一个简单的cvs -d /workingdir co B2MEj(或任何项目名称)将完成完整签出。

相关内容