Version control 通过源代码管理系统在多台计算机之间共享设置

Version control 通过源代码管理系统在多台计算机之间共享设置,version-control,mercurial,sh,Version Control,Mercurial,Sh,我有多台linux机器。我想分享我的.vimrc,.hgrc。但是,不同的机器之间有一点不同。有聪明的方法吗 我用的是mercurial mkdir settings ln ~/.vimrc settings/vimrc ln ~/.hgrc settings/hgrc 然后使用mercurial保留设置。 不同机器上的hgrc文件略有不同。 我需要始终合并分支。 我想知道有没有更好的方法?我通常会使用一个在所有系统上都通用的.bashrc等文件,然后我生成一个名为.bashrc.local或

我有多台linux机器。我想分享我的
.vimrc
.hgrc
。但是,不同的机器之间有一点不同。有聪明的方法吗

我用的是mercurial

mkdir settings
ln ~/.vimrc settings/vimrc
ln ~/.hgrc settings/hgrc
然后使用mercurial保留设置。 不同机器上的hgrc文件略有不同。 我需要始终合并分支。
我想知道有没有更好的方法?

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

在.bashrc中:

. ~/.bashrc.local
In.vimrc

:source ~/.vimrc.local
等等


如果您想获得更多的乐趣,您可以将您的本地设置文件存储在源代码管理中,方法是在本地文件名上使用主机名作为鉴别器。因此,除了
.vimrc.local
之外,您还可以执行
.vimrc.machine1.local
等操作。

还有一种(过度杀伤力?)技术可以补充其他答案

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

例如,您可以这样编写一个.vimrc.erb文件:

ENV_VAR=<%= varvalue %>
ENV_VAR=
根据目标机器使用“varvalue”。使用正确的puppet声明(“对于机器xyz,将一个.vimrc文件放在template.vimrc.erb中,varvalue=xyz”),然后将配置部署到目标机器


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

可能适合您想要做的事情。对于hgrc,包含指令是
%include file
。“看看这本书。”丹尼尔·达恩,这一页同时被删除了!我放了一个新的。如果您感兴趣,请向上投票;)