大家都是怎么在多环境下维护自己的dot文件的? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
tywtyw2002
V2EX    Linux

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

  •  
  •   tywtyw2002 Sep 24, 2013 3360 views
    This topic created in 4604 days ago, the information mentioned may be changed or developed.
    目前用git维护多环境的dot文件,一个环境一个branch。

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

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

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

    大家都是怎么维护多环境的配置文件呢?
    5 replies    1970-01-01 08:00:00 +08:00
    dongsheng
        1
    dongsheng  
       Sep 24, 2013
    用Dropbox同步,还有个Raspberry Pi是用BTSync同步过去的。

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

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

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

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

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

    很多环境的配置也不同,lab的机器nfs share $home, 然后软件安装位置也头疼。
    tywtyw2002
        5
    tywtyw2002  
    OP
       Sep 25, 2013
    @HowardMei 问题的关键是变量不同。。。 比如zsh的位置等等,有几个环境是实验/测试,在那些机器上我都没有root权限的
    About     Help     Advertise     Blog     API     FAQ     Solana     899 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 35ms UTC 23:23 PVG 07:23 LAX 16:23 JFK 19:23
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86