源控制系统在多台机器之间共享设置

时间:2011-11-02 01:03:47

标签: version-control mercurial sh

我有多台linux机器。我想分享我的.vimrc.hgrc。但是,不同的机器之间存在一点差异。有智能方法吗?

我正在使用mercurial。

mkdir settings
ln ~/.vimrc settings/vimrc
ln ~/.hgrc settings/hgrc

然后使用mercurial来保持设置。 不同机器上的hgrc文件有一点差别。 我总是需要分支合并。 我想知道有更好的方法吗?

2 个答案:

答案 0 :(得分:2)

我通常做的是在所有系统上都有一个.bashrc等文件,然后我找到一个名为.bashrc.local的本地版本,或类似的东西,它不会保存在源代码管理中使用机器特定设置。

在.bashrc中:

. ~/.bashrc.local

在.vimrc中

:source ~/.vimrc.local


如果您想获得想象力,可以使用主机名作为本地文件名的鉴别器,将本地设置文件存储在源代码管理中。因此,您可以.vimrc.local代替.vimrc.machine1.local等。

答案 1 :(得分:0)

还有另一种(矫枉过正?)技术可以补充其他答案。

我使用puppet这是一个自动配置机器的工具。我编写了我的puppet配置(存储在版本控制中),然后将其部署在目标机器上。它提供了一个“模板”功能,适用于任何文件。

例如,您编写了一个.vimrc.erb文件:

ENV_VAR=<%= varvalue %>

“varvalue”取决于目标机器。使用正确的puppet声明(“用于机器xyz,将.vimrc文件放在从模板.vimrc.erb生成的home中,varvalue = xyz”),然后将配置部署到目标机器。

它使用强大的“嵌入式ruby”模板机制,因此您甚至可以编写一些ruby代码来生成值。您可能希望直接使用它而不使用木偶:erb