> 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, modules, 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. _______________________________________________ Info-cvs mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/info-cvs