1

我希望 RCS 对 /var/spool/cron/crontabs/ 中的所有文件以及在那里创建的任何新文件进行版本控制。但是从文档中可以看出,您必须为其提供文件名而不是目录名。

可以使用 RCS 来执行此操作吗?有没有更好的工具可以使用?

4

2 回答 2

1

我可以使用一个名为 etckeeper 的程序,我只需要进行一些修改,因为默认情况下它用于版本控制 /etc。

于 2016-10-26T18:58:55.947 回答
1

TL;博士

如果您需要与 RCS 兼容的文件,但还需要使用目录,请使用 CVS。否则,请使用更现代的源代码管理 (SCM) 系统,以您想要的方式处理目录。在某些情况下,转换脚本可以减轻迁移的痛苦,您可以选择这样做。示例包括svn importrcs-fast-export管道到git-fast-import

用于文件的 RCS;用于“带有目录的 RCS”的 CVS

RCS 适用于单个文件。CVS使用 RCS 文件格式,但也允许您添加目录。但是,目录在 CVS 中并不是真正的一流对象,RCS 根本没有这个概念。如果您迁移到 CVS 只是为了在存在更现代的替代方案时提供目录支持,请谨慎行事。

作为一级对象的目录

如果目录对您来说真的很重要,您可能需要考虑迁移到将目录视为一流对象的 SCM。Subversion (svn) 和 Bazaar (bzr) 都将目录视为版本化对象,对您来说可能是不错的选择。

其他系统(尤其是 Git)将目录作为树对象的一部分进行处理,但并不真正直接对它们进行版本控制。相反,出于实际目的,您可以将 Git 中的目录版本控制视为从树和文件对象计算出来的东西。这通常可以正常工作,但同样可能不是您的项目所需要的。

您的里程会因其他 SCM 而异。如有疑问,请查阅他们的文档。

于 2017-05-26T04:45:18.267 回答