我需要跟踪不同软件的安装情况,方便文件的升级。
我计划使用 SCM 来跟踪修改,并能够在需要时快速回滚,或者简化向新机器的迁移。
最初我尝试使用 Mercurial (hg
),但我发现它确实修改了文件的修改日期,这是 Not Acceptable 。而且我不愿意使用第三方插件来克服这个限制。
不过,我对替代方案持开放态度,git
或 svn
是否支持此功能而不需要额外的扩展?
另外,如果我可以将我的自定义放入补丁队列或类似的东西中,这样我就可以轻松地将安装升级到新版本,那就太好了。
最佳答案
如果您配置 Subversion 客户端配置文件,Subversion 可以使用commit-time
而不是modification-time
。 (在 Unix 系统中,它位于 $HOME/.subversion/config 下)。
我不相信 Git 中有同等的东西。之前在 Stackoverflow 中讨论过这一点。最大的提示是这会破坏Make,这是事实,但大多数版本控制系统确实给你这个选项。
如果这是供您的公司使用而不是供个人使用,您可能需要查看 Perforce 。 Perforce 是一种需要花钱的专有工具。但也有异常(exception):小型项目(不超过两个用户)和开源项目可以免费使用该工具。
Perforce 的一大优点是它允许您覆盖目录结构。例如,您的服务器可能有一个默认结构,但每个服务器都会稍微修改该结构。您可以将默认服务器保留在一个目录中,并将每个单独服务器的自定义更改保留在另一目录中。当您进行 checkout 时,您将创建一个将两者结合起来的 View 。这有点难以解释,但我发现它非常适合跟踪多个服务器配置。
Perforce 的缺点(除了成本之外)是它比 Subversion 更复杂。在 Subversion 中,您可以简单地 checkout 目录。在 Perforce 中,您可以创建要 check out 内容的 View ,然后将其 check out 。这意味着学习 View 配置语言。 Perforce 的第三方工具插件也比 Subversion 少,因为它没有那么流行。不过,对于您的情况来说,这可能会很好。
关于git - 使用什么 SCM 来跟踪应用程序和系统配置文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9790568/