跨多台机器管理主目录有一些差异吗?

发布于 2024-07-22 20:30:14 字数 537 浏览 4 评论 0原文

所以我现在已经有了一个非常定制的点文件设置,并且我一直在寻找一种解决方案来保持机器之间的同步。 我喜欢拥有一个 ~/dotfiles 目录(或类似目录)的想法,其中包含一个处理符号链接创建的 makefile。 通过 rsync/unison/dvcs/whatever 将 dotfiles 目录从一台机器移动到另一台机器,我就可以开始了。

出现此问题的原因是某些计算机上的文件略有不同,我想要一种方法来跟踪此问题。 例如,我的 .xmobarrc(为那些不熟悉的人提供的面板应用程序)有一个配置设置,可以在我的笔记本电脑上显示电池寿命,但不能在我的台式机上显示电池寿命。

管理像这样的每台机器差异的文件的最佳方法是什么,这样,如果我在一台机器上更改应该影响所有机器的内容,我可以合并回来,如果我在一台机器上更改不应该得到的内容,我可以合并回来。合并了就不会了 显然,像 git 这样的 DVCS 是必要的,而不是 rsync/unison/etc,但我不知道如何设置它。

主分支,每台机器有一个分支,我可以从中来回合并/变基/樱桃选择? 这似乎有点乏味。 有没有更好的办法?

So I've got a pretty customized setup of dotfiles at this point, and I've been looking for a solution to keep things synchronized from machine to machine. I like the idea of having a ~/dotfiles dir (or similar) that contains a makefile that handles creation of symlinks. Move the dotfiles dir from machine to machine via rsync/unison/dvcs/whatever, and I'm good to go.

The problem with this occurs because the files differ slightly on some machines, and I would like a way to track this. For example, my .xmobarrc (a panel application for those not familiar), has a configuration setting to display battery life on my laptop, but not on my desktop.

What is the best way to manage files with per machine differences like this, in such a way that if I change on one machine something that should affect all machines, I can merge back, and if I change on one machine that shouldn't get merged, it won't. Obviously a DVCS like git is necessary for this as opposed to rsync/unison/etc, but I'm not sure how to set this up.

Master branch with one branch per machine that I merge/rebase/cherry pick back and forth from? This seems a bit tedious. Is there a better way?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

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

发布评论

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

评论(1

南城旧梦 2024-07-29 20:30:14

一种方法是:

  • 一个包含所有全局参数的全局配置(如果您更改它并将其合并回来,它将影响所有机器)
  • 每台机器一个配置文件(例如以机器 uname 命名)
  • 构建最终配置的脚本文件由全局文件和基于机器的文件组成。

考虑合并:

  • 当您将配置文件从一个分支合并到另一个分支时,您可以合并所有内容(不涉及挑选)
  • 或者您并不总是需要每台机器都有一个分支,因为基于机器的配置文件已经确保了分离和隔离这些参数(在不同的文件而不是不同的分支中)

One way would be to have:

  • a global config with all global parameters (if you change it and merge it back, it would affect all machines)
  • one config file per machine (named for instance after the machine uname)
  • a script building your final config file as the composition of the global one and the machine-based one.

Considering merges:

  • When you merge config files from one branch to another, you can merge everything (no cherry-picking involved)
  • Or you do not always have to have a branch per machines, since the machine-based config files already ensure separation and isolation of those parameters (in different files instead of different branches)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文