git - 使用什么 SCM 来跟踪应用程序和系统配置文件?

标签 git svn version-control mercurial

我需要跟踪不同软件的安装情况,方便文件的升级。

我计划使用 SCM 来跟踪修改,并能够在需要时快速回滚,或者简化向新机器的迁移。

最初我尝试使用 Mercurial (hg),但我发现它确实修改了文件的修改日期,这是 Not Acceptable 。而且我不愿意使用第三方插件来克服这个限制。

不过,我对替代方案持开放态度,gitsvn 是否支持此功能而不需要额外的扩展?

另外,如果我可以将我的自定义放入补丁队列或类似的东西中,这样我就可以轻松地将安装升级到新版本,那就太好了。

最佳答案

如果您配置 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/

相关文章:

git - 将 git 更改推送到共享网络驱动器

git - 重写 Git 历史 : How do I remove a sign-off?

git - git reset --soft 只更改哈希值吗?

windows - 如何以类似 SVN 的方式使用 Git?

java - 管理俱乐部项目的版本控制?

python - 版本控制历史是如何存储和计算的?

git - 为什么对远程存储库进行强制推送是危险的?

java - Eclipse SVN历史记录查看

svn - 使用 Tortoise SVN 合并两个分支

database - 你应该如何从源代码控制构建你的数据库?