【发布时间】:2011-01-17 02:23:54
【问题描述】:
我试图从过去使用 CVS 管理的一堆文件中恢复一些旧的源代码(纯文本)。我有一个目录,其中包含 CVS 的 *,v 文件格式的所有源代码文件。这看起来很像原始文件,但里面有很多 CVS 特定的头文件和修订信息。
是否有一种简单的方法可以删除所有 CVS 内容并保留文件的最新版本?
【问题讨论】:
标签: unix scripting cvs recovery
我试图从过去使用 CVS 管理的一堆文件中恢复一些旧的源代码(纯文本)。我有一个目录,其中包含 CVS 的 *,v 文件格式的所有源代码文件。这看起来很像原始文件,但里面有很多 CVS 特定的头文件和修订信息。
是否有一种简单的方法可以删除所有 CVS 内容并保留文件的最新版本?
【问题讨论】:
标签: unix scripting cvs recovery
您甚至不需要使用 CVS。 CVS 只是 RCS 的前端,而 *.v 文件实际上是 RCS 文件。只需检查一下即可。例如,如果你有 foo,v 就执行:
合富它会从 ,v 文件中检出 foo
【讨论】:
是的,安装 CVS 客户端,将环境变量 CVSROOT 设置为指向存储库的根目录,然后键入 cvs checkout dir,其中 dir 是存储库中的顶级目录。
如果由于某种原因您只有单独的,v 文件,它们是rcs 格式,因此如果安装了rcs 程序,它应该能够从任何,v 文件中获取最新版本。
【讨论】:
最新的 windows 二进制文件可以在这里找到:
https://ftp.gnu.org/non-gnu/cvs/binary/stable/x86-woe/
例如: 将您的存储库文件放在这里:c:\cvs (如 c:\cvs\PROJECT 创建 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 文件将消失并显示正确的文件。
【讨论】: