通过源代码控制系统在多台机器之间共享设置
我有多台linux机器。我想分享我的 .vimrc
、.hgrc
。但是,不同机器之间存在一些差异。有聪明的方法吗?
我正在使用水银。
mkdir settings
ln ~/.vimrc settings/vimrc
ln ~/.hgrc settings/hgrc
然后使用 Mercurial 保留设置。 不同机器上的hgrc文件有一点差异。 我总是需要分支合并。 我想知道有更好的方法吗?
I have multiple linux machine. I want to share my .vimrc
, .hgrc
. But, there are a little difference between different machines. Is there smart method?
I'm using mercurial.
mkdir settings
ln ~/.vimrc settings/vimrc
ln ~/.hgrc settings/hgrc
then use mercurial to keep settings.
There are a little difference of hgrc file on different machine.
I require to branch merge always.
I'm wonder is there better method?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我通常做的是拥有一个在所有系统上通用的 .bashrc 等文件,然后我获取一个名为
.bashrc.local
或类似文件的本地版本,该文件不会被保存在具有机器特定设置的源代码控制中。在 .bashrc 中:
在 .vimrc
等
中。如果您想变得更奇特,您可以使用主机名作为本地文件名的鉴别器,将本地设置文件存储在源代码管理中。因此,您可以执行
.vimrc.machine1.local
等,而不是.vimrc.local
。What I typically do is have a .bashrc, etc. file that is common on all systems, and then I source a local version called
.bashrc.local
or something like that, that doesn't get saved in source control with the machine specific settings.In .bashrc:
In .vimrc
etc.
If you want to get fancy you can store your local settings files in source control by using your hostname as a discriminator on the local file name. So instead of
.vimrc.local
you could do.vimrc.machine1.local
, etc.还有另一种(矫枉过正?)技术可以补充其他答案。
我使用 puppet 这是一个自动配置机器的工具。我编写我的 puppet 配置(存储在版本控制中),然后将其部署到目标计算机上。它提供了适用于任何文件的“模板”功能。
例如,您编写一个 .vimrc.erb 文件,如下所示:
根据目标计算机使用“varvalue”。使用正确的 puppet 声明(“对于机器 xyz,将 .vimrc 文件放在从模板 .vimrc.erb 生成的 home 中,其中 varvalue=xyz”),然后将配置部署到目标机器。
它使用强大的“嵌入式 ruby”模板机制,因此您甚至可以编写一些 ruby 代码来生成值。您可能想直接使用它而不使用 puppet : erb
There is another (overkill ?) technique that may complement other answers.
I use puppet which is a tool for automatically configuring machines. I write my puppet config (stored in version control) then deploy it on the target machines. It offers a "template" feature which works for any file.
For example, you write a .vimrc.erb file like that :
with "varvalue" depending on the target machine. With correct puppet declarations ("for machine xyz, put a .vimrc file in home generated from template .vimrc.erb with varvalue=xyz") you then deploy the config to the target machine.
It uses the powerful "embedded ruby" templating mechanism, so you can even write some ruby code to generate the values. You may want to use it directly without puppet : erb