我有一个多年前的生产 CVS 存储库,并且注意到它在 Attic 和给定位置的实际目录中都有同名的 comma-v 文件。这似乎是一个错误。
我的问题是这首先是如何发生的,当存在重复文件时 CVS 会做什么。
我的猜测(希望)是,当有非 Attic 版本时,它会一直忽略 Attic 版本。任何人都可以确认 CVS 在这种情况下是否一直表现良好。
顺便说一句,这个错误是由 cvs2svn 标记的,因为我正在进入一个“更新”的源代码控制系统。
这个问题是由于有人在 CVS 存储库中乱搞(即,不是通过 cvs 客户端)造成的。不幸的是,这样的修改很常见,例如为了绕过 CVS 不允许重命名文件的限制。也许有人试图通过移动文件来重命名FILENAME,v
文件,而没有注意到该文件名在项目历史的早期已被使用,因此已经有了一个Attic/FILENAME,v
文件。
我的猜测(希望)是,当有非 Attic 版本时,它会一直忽略 Attic 版本。任何人都可以确认 CVS 在这种情况下是否一直表现良好。
由于这是存储库损坏的一种形式,我怀疑 CVS 在这种情况下的行为是否被记录在案。您的猜测很可能是正确的,但确保它始终以这种方式运行可能需要分析 CVS 源代码——针对您曾经使用过的所有CVS 版本。我建议您对典型的 CVS 客户端和最重要的分支进行一些实验。
顺便说一句,这个错误是由 cvs2svn 标记的,因为我正在进入一个“更新”的源代码控制系统。
cvs2svn 有许多解决这个问题的建议。