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

发布于 2024-12-13 02:59:46 字数 271 浏览 2 评论 0原文

我有多台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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

酒绊 2024-12-20 02:59:46

我通常做的是拥有一个在所有系统上通用的 .bashrc 等文件,然后我获取一个名为 .bashrc.local 或类似文件的本地版本,该文件不会被保存在具有机器特定设置的源代码控制中。

在 .bashrc 中:

. ~/.bashrc.local

在 .vimrc

:source ~/.vimrc.local


中。如果您想变得更奇特,您可以使用主机名作为本地文件名的鉴别器,将本地设置文件存储在源代码管理中。因此,您可以执行 .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:

. ~/.bashrc.local

In .vimrc

:source ~/.vimrc.local

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.

荒芜了季节 2024-12-20 02:59:46

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

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

例如,您编写一个 .vimrc.erb 文件,如下所示:

ENV_VAR=<%= varvalue %>

根据目标计算机使用“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 :

ENV_VAR=<%= varvalue %>

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文