[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: keeping one's personal dotfiles under CVS

From: Glew, Andy
Subject: RE: keeping one's personal dotfiles under CVS
Date: Mon, 13 May 2002 10:31:36 -0700

> I was wondering what strategies do CVS gurus use to manage their
> personal collection of dotfiles. We all a favorite .vimrc, .exrc,
> .muttrc, ~/.w3m/bookmarks.html, etc. The problem is keeping 
> them in sync
> on all the machines we use. CVS seems like a nice tool for that.
> How would you go about keeping a repository of personal dotfiles?

I do exactly this: part of my CVS repository is a module
"glew-home", that contains my dot files, plus lots of other
things that I try to keep standard on multiple systems.

There are only a few queernesses in doing this:

(a) the usual oddities about importing.

     when I first started doing this, I imported my diverged files
     on different vendor branches, and took a while to merge
     them into a coherent system.  Whenever possible, of course,
     I try to use exactly the same files on multiple systems,
     but that doesn't always work - some stupid dot file formats
     don't have ifs, so then I typically diverge at first, and later
     create a meta file format.

(b) checking out the CVS archived glew-home directory
     on a system that is "fresh"

      I nearly always find that I need to do:

            cd ~glew
            cvs co glew-home
            cd glew-home
            find . -name CVS -print | xargs -n1 mv {} ../{}
            cd ..
            rm -f glew-home

     i.e. I need to check the archive out in a parallel tree,
     and then move all the CVS directories into the main tree.

     Then, in the main tree, I can do cvs update,
     verify any diffed files, and so on.

     I.e. the above is really a substitute for importing.
     I find it easier than importaing.

(c) By the way, often on a newly created account 
     there will be default DOT files.  I find it
     immensely helpful to archive these - either as
     a separate vendor branch, or by creating a special
     "original-dot-files" directory.

Anyway, I have ben doing this for around 5 years now,
and am pretty happy.


By the way, the people who say "just rsync your dot files"
are missing the point.   I'm tempted to say, are brain damaged,
but I've sworn off flaming such shortsightedness.

(1) CVS allows you to share dot files between different systems.
     E.g. my .emacs file is shared between Windoze and many
     UNIXes, as is my .bashrc, while other dot files are actually
     *BAD* to have on some systems.

     Do this with a combination of internal ifdeffing,
     branches for different systems,
     and "install" scripts (I highly deprecate the latter).

(2) version control matters for dot files.
     Often I have to go back to an old system on which my 
     current dot files do not work.  
     Having old dot files under CVS helps.

(3) I'd be even happier if I could use BitKeeper,
     or something that supported disconnected repositories.
     I want to check in changes to dot files on my laptop
     on a plane when disconnected (like right now).

(4) CVS gives you more freedom about updating than
     rsync does.  Again, sometimes you don't *want* to
     update, because the systems need to diverge.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]