我试图从过去使用 CVS 管理的一堆文件中恢复一些旧的源代码(纯文本)。我有一个目录,其中包含 CVS 的 *,v 文件格式的所有源代码文件。这看起来很像原始文件,但里面有很多 CVS 特定的头文件和修订信息。
有没有一种简单的方法可以删除所有 CVS 内容并保留文件的最新版本?
你甚至不需要使用 CVS。CVS 只是 RCS 的前端,而 *.v 文件实际上是 RCS 文件。只需检查一下即可。例如,如果你有 foo,v 只需执行:
合富
它会从 ,v 文件中检出 foo
是的,安装 CVS 客户端,将环境变量 CVSROOT 设置为指向存储库的根目录,然后键入cvs checkout dir
wheredir
是存储库中的顶级目录。
如果由于某种原因您只有单个,v
文件,它们是rcs
格式的,因此如果rcs
安装了该程序,它应该能够从任何,v
文件中获取最新版本。
最新的 windows 二进制文件可以在这里找到:
https://ftp.gnu.org/non-gnu/cvs/binary/stable/x86-woe/
例如:将您的存储库文件放在这里:c:\cvs(如 c:\cvs\PROJECT create c:\cvs\CVSROOT
在此处创建 c:\work 保存 cvs.exe
跑:
cvs -d c:\cvs checkout PROJECT
尝试设置 CVS 客户端并将您的文件作为本地 CVS 存储库读取。
根据您的平台,您可能会发现 rcs 运行良好,只要您一次只查看几个文件。在许多 Unix/Linux 系统上,如果我没记错的话,您可以直接从命令行使用 co(checkout)命令。
或者您可以利用 CVS 和 rcs 将文件的最新版本存储在文件顶部附近的事实,并且任何其他修订都是通过在内部应用差异来创建的。因此,您可能可以使用文本编辑器轻松删除最新版本,并可能使用 perl 脚本将其自动化。此技巧不适用于任何其他版本。
这些是在快速安装 CVS 服务器(如果尚未安装;它们往往与类 Unix 系统一起提供)和签出时出现问题的选项。
这通常发生在有人签入、更新文件和您访问目录/文件时。
这对我有用 - 只需关闭终端并打开一个新的 one.foo,v 文件将消失并显示正确的文件。