大家都是怎么在多环境下维护自己的dot文件的?

2013-09-24 00:56:15 +08:00
 tywtyw2002
目前用git维护多环境的dot文件,一个环境一个branch。

结果遇到了问题就是,在一个branch修改了公共部分的文件就会导致其他branch更新太麻烦,而且merge来merge去的搞得git的history很混乱。

因为不同的环境下,权限不同,有很多变量也需要去修改,配置文件中还有公共的部分,感觉维护的好痛苦。

以前想过就一个配置文件,然后在里面加if xxx 去区分环境,但是配置文件的if功能也不是很强大。而且没有想倒有什么好方法去用if区分。

大家都是怎么维护多环境的配置文件呢?
2908 次点击
所在节点    Linux
5 条回复
dongsheng
2013-09-24 08:01:33 +08:00
用Dropbox同步,还有个Raspberry Pi是用BTSync同步过去的。

环境变量主要是bashrc/zshrc的问题吧,我是把所以机器公用的部分写到profile.sh,然后在主rc文件里激活它。
xell
2013-09-24 10:50:34 +08:00
楼上似乎没有理解楼主的意思,我来说说我的情况。

我曾经在三个颇为不同的多环境中并行工作(Windows/Cygwin,Mac,Ubuntu),也是用 git 维护,也是面对着分支合并修改等等带来的混乱。我记忆犹新的是维护 .vimrc 时候的惨状:写了无数的 if 来区分各种情况。

然后捏……然后我开始唯一地使用 Mac,丢掉其他两个平台,世界清净了。

我知道上述回答实属坑爹,但我想传达的意思就是这个:目前真的没有什么好方案,因为这其实并不是软件的问题,而是人的需求的问题。其实 git 已经很强大了,如果有心,写些 pre/post-hook 可以以自动化方式应对很多 merge 前后的问题,时常 rebase 一下解决 history 紊乱等等。但无论如何都相当耗费时间精力。所以,如果是硬需求,那就使用(各类)脚本去尽量让电脑帮你完成同步维护的核心工作吧。如果像我这种可以自行决定的,那就坚守一个环境(甚至一台硬件:是的,我只在一台电脑+nas上工作,因此连 dropbox 都不需要)好了。

说白了,我的建设性意见也就是 git 加上各类脚本,没有更好的。看看其他高手有啥好方案不?
HowardMei
2013-09-24 12:03:07 +08:00
有时候repeat yourself是最实用的解决方案,两个文件夹:available enabled
其它不在这两个地方的也都是软链接搞定,然后尽量多用Ansible/Salt这样的工具替代脚本,
有必要为个最常规的任务,搞那么复杂分支么?
tywtyw2002
2013-09-25 00:13:05 +08:00
@xell 一直很头疼呀,有些配置文件好像不支持if吧?
我在用if 都是直接在$HOME下touch一个新文件去作为区别。。。。

很多环境的配置也不同,lab的机器nfs share $home, 然后软件安装位置也头疼。
tywtyw2002
2013-09-25 00:15:18 +08:00
@HowardMei 问题的关键是变量不同。。。 比如zsh的位置等等,有几个环境是实验/测试,在那些机器上我都没有root权限的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/83423

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX