代码之家  ›  专栏  ›  技术社区  ›  Brent.Longborough

版本控制在多大程度上可以帮助系统管理?

  •  4
  • Brent.Longborough  · 技术社区  · 17 年前

    由于这是相当实验性的(我是一个OpenBSD n00b,我已经把我的系统弄坏了3到4次),我想知道其他人在制作部分或全部文件系统(我特别想到/etc)的VCS或其他VCS的工作副本方面有什么经验。

    • 这是个好主意吗?

    • 我特别感兴趣的是,人们使用了哪些风投。我正在考虑颠覆、集市和git;这将不是一个共享存储库,因此我可能对基本的vcs功能比对分布式或非分布式参数更感兴趣。

    • 我还想听听人们所发现的假想或实际的陷阱。我可以想象保存文件的所有权和权限需要仔细考虑!

    • 当然,还有任何不涉及风投的替代方法

    7 回复  |  直到 17 年前
        1
  •  8
  •   Jonathan Leffler    17 年前

    Here 您有一个关于使用git将/etc/置于修订控制之下的详细修订。

    Another 一步一步的方法。

        2
  •  4
  •   Jonathan Leffler    17 年前

    pfsense .

    mercurial 正在被成功使用的 these projects

        3
  •  4
  •   Per Wiklander    16 年前

    我想没有人提到过 etckeeper 然而

    我已经在Ubuntu中成功地使用了一段时间。

        4
  •  2
  •   jtimberman    17 年前
        5
  •  2
  •   0fnt    10 年前

    我在《法国Gnu/Linux杂志》上读到了一些关于这方面的文章。

    我要引用杂志上的一些话。

    好的,在这个例子中,服务器运行freeBSD,并且是“sparky”,而要保存的机器在debian下,并且是“replica”。

    在/usr/local/etc/ssh/sshd_config中添加:

    Match User replica
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand /usr/local/bin/svnserv -t -r /home/replica/svnrepo -tunnel-user=replica
    

    创建存储库

    sparky#svnadmin创建/主页/副本/svnrepo

    固定权限:

    sparky # chown -R replica:nogroup /home/replica
    sparky # chown -R o-rwx /home/replica
    sparky # chown -R g-rwx /home/replica
    

    客户端:

    replica # mkdir -p /root/scripts/svnrepo
    replica # rsync -av /etc /root/scripts/svnrepo
    
    export SVN_SSH ="ssh -i /root/.ssh/id_rsa"
    svn import -m "replica config files" /root/scripts/svnrepos svn+ssh://replica@sparky/home/replica/svnrepo
    

    cd /root/scripts
    mv svnrepo svnrepo.old
    svn checkout svn+ssh://replica@sparky/home/replica/svnrepo
    

    现在尝试修改etc中的文件,例如hosts。

    再次同步。您应该只获取修改后的文件,其中/etc/hosts被复制。

    现在您可以提交:

    svn commit -m "backup 1" /root/scripts/svnrepo
    

    怎么办?

    svn status /root/scripts/svnrepo | grep -e '^!' | awk '{ print $2 }' | xargs -r svn delete 
    svn status /root/scripts/svnrepo | grep -e '^?' | awk '{ print $2 }' | xargs -r svn add
    

    (gtg,我将稍后编辑以设置标题,如果没有人这样做,则设置一个标题)

        6
  •  1
  •   Tim Post Samir J M Araujo    17 年前

    Mercurial . 为什么?

    • 对于曾经使用过SVN或CVS的任何人来说,它都很容易使用(如果您没有使用过,您就没有必要在我的生产机器上进行/etc业务)
    • 这使得从一台服务器的配置到许多其他服务器的更改变得很容易

    在这个例子中,Git的功能太强大,问题太少。由于HG是一个DVCS,提交和回滚是干净和容易的。我还使用HG来 manage most of my web sites .

    这不仅仅是源代码:)另一个更基本的选择是使用某种版本控制文件系统(CoW),它可以在写操作时获取快照,DVCS要容易得多。

        7
  •  0
  •   Brent.Longborough    16 年前

    反馈:我最终做了什么

    作为一个副作用,我从一个小项目开始,对subversion、git、bazaar、mercurial、Montone、darcs和fossil进行并行评估,尽管是在更一般的版本管理环境中(合并等)。


    我对你答案的反应

    @ 路易斯·梅尔格拉蒂


    康拉德,我很感激你的两个建议。

    我一定会调查的 pfsense


    @ Aif


    @

    感谢您对Mercurial的看法,我现在计划再次访问,尽管我对Bazaar很满意。


    佩尔·维克兰德