我可以在本地机器上检出 CVS 存储库吗?

Can I checkout a CVS repo on my local machine?

Crunch:我可以检出本地计算机上映射的驱动器上的存储库,而该目录上没有服务器 运行 吗?

Fluff:我是 CVS 的新手。我正在处理一个旧项目,所有原始开发人员要么不再与我们在一起,要么忘记了他们是如何工作的。经过许多磨难,我终于找到了项目的源代码在哪里(在我映射到本地文件系统的公共驱动器上),但它是一个 CVS 存储库。我怎样才能检查出这段代码,以便我可以实际处理它?

我正在使用 Windows 7 系统。

通常这很简单:

cvs -d /path/to/repo checkout .

我假设使用的是 *nix 系统,如果在 Windows 系统上使用 MSYS 环境,这也是 "just works"。 MSYS 下的主要区别在于了解驱动器号的表示方式。以下示例假定存储库位于 C: 驱动器上。

cvs -d /c/path/to/repo checkout .

如果选择使用cygwin而不是MSYS,同样遵循该原则,但是cygwin 使用不同的方法来引用驱动器号:

cvs -d /cygdrive/c/path/to/repo checkout .

请注意,如果不熟悉 Windows GNU 环境,如 MSYScygwin,可能需要注意MSYS 是 "minimalist" GNU 环境实现,而 cygwin 绝对不是 "minimalist"。这可能意味着 MSYS 对新采用者的挑战可能较小 - MSYS 的 "minimalist" 方面不会产生负面影响相对于将它用于其 CVS 客户端。

在 Windows 上使用 CVS 客户端的一个潜在并发症是,大多数人倾向于更改检出文本文件的行终止格式以匹配客户端环境中通常使用的格式。作为解释,如果源文件最初是使用 LF 分隔符检入的,那么许多或大多数 Windows 下的 CVS 客户端 运行 将检出文件CRLF 行终止。虽然这可以正常工作,但如果编译器或构建环境对行终止敏感,它也会产生问题。受访者经历过无数这样的翻译弊大于利的情况。

与许多或大多数其他 CVS 客户端不同,MSYS cvs 实现不会在结帐时转换文本文件的行终止。如果存储库中的文件具有 LF 行终止符,则检出的副本具有 LF 行终止符,并且如果存储库副本是 CRLF终止,结帐副本也将结束。 (不过,可以使用 dos2unix and/or unix2dos 实用程序来更改检出文件的格式。)

警告:受访者有 MSYS 偏见,并在工程环境中经常使用 MSYS;当需要 Cygwin 提供的附加功能时,受访者更喜欢使用 *nix 系统而不是 Windows 系统。