【发布时间】:2016-12-15 20:45:46
【问题描述】:
我希望 RCS 对 /var/spool/cron/crontabs/ 中的所有文件以及在那里创建的任何新文件进行版本控制。但是从文档中可以看出,您必须为其提供文件名而不是目录名。
可以使用 RCS 来执行此操作吗?有没有更好的工具可以使用?
【问题讨论】:
标签: version-control backup rcs
我希望 RCS 对 /var/spool/cron/crontabs/ 中的所有文件以及在那里创建的任何新文件进行版本控制。但是从文档中可以看出,您必须为其提供文件名而不是目录名。
可以使用 RCS 来执行此操作吗?有没有更好的工具可以使用?
【问题讨论】:
标签: version-control backup rcs
我可以使用一个名为 etckeeper 的程序,我只需要进行一些修改,因为默认情况下它用于版本控制 /etc。
【讨论】:
如果您需要与 RCS 兼容的文件,但还需要使用目录,请使用 CVS。否则,请使用更现代的源代码管理 (SCM) 系统,以您想要的方式处理目录。在某些情况下,转换脚本可以减轻迁移的痛苦,您可以选择这样做。示例包括 svn import 和 rcs-fast-export 通过管道传输到 git-fast-import。
RCS 适用于单个文件。 CVS 使用 RCS 文件格式,还允许您使用 add directories。但是,目录在 CVS 中并不是真正的一流对象,RCS 根本没有这个概念。如果您迁移到 CVS 只是为了在存在更现代的替代方案时提供目录支持,请谨慎行事。
如果目录对您来说真的很重要,您可能需要考虑迁移到将目录视为一流对象的 SCM。 Subversion (svn) 和 Bazaar (bzr) 都将目录视为版本化对象,对您来说可能是不错的选择。
其他系统(尤其是 Git)将目录作为树对象的一部分进行处理,但并不真正直接对它们进行版本控制。相反,出于实际目的,您可以将 Git 中的目录版本控制视为从树和文件对象计算 的东西。这通常可以正常工作,但同样可能不是您的项目所需要的。
您的里程会因其他 SCM 而异。如有疑问,请查阅他们的文档。
【讨论】: