Welcome to HomeDir

HomeDir is a project to allow controlling the contents of my home directory via a version control system in a sane way.

The Story So Far…

Since about 1999 I've been keeping my home directory config files in CVS. As the number of config files I've been storing has grown and as the number of different systems I use it on (my work desktop, my home desktop, my laptop, Gerf, my pda) increases. As the complexity has grown it has become harder to maintain.

So, I started looking around for a better solution. I noticed that SVN is a much better version control system. I was already familiar with stow as well. So I tinkered around with combining them.

And thus homedir was born!

Since then, I rewrote HomeDir completely in python. This gives me more control over the help and error messages. I can do better when conflicts arrive. As well as I can add an elementry package format, which allows me to solve the problem that uninstalling a stow package can take forever if you have a lot of directories in your home.

Quick Install

The quick install requires sh and svn as well as one of wget, curl or lynx.

Once you're sure that you have the requirements, pick the correct command from below:

Assuming you prefer wget...

wget -q -O- http://svn.gerf.org/homedir/trunk/setup | sh

Alternative if you prefer curl...

curl -o- http://svn.gerf.org/homedir/trunk/setup | sh

Alternative if prefer lynx...

lynx -source http://svn.gerf.org/homedir/trunk/setup | sh

After this has run, you can use the homedir command to get help.

When will a release come?

Well, I don't know. Right now I'm running it out of trunk. I'm not sure what a "release" means for something like this. At the moment, I think that keeping everything up-to-date is a much better solution.

If someone wants me to create release versions, I'll happily do it occasionally, if it's really useful for someone.

Manual Install Instructions

The autostart script is really the best way to go, it's very fast and requires little to no thought.

However, if you really want to do this the hard way, then get the source from http://svn.gerf.org/

Example:

svn co http://svn.gerf.org/homedir/trunk/packages homedir

To set it up, do the following:

homedir/00homedir/bin/homedir install homedir

You'll have to run this command twice. The first time it creates a config file in your home directory called '.homedir/config'. You'll want to edit and point it at the directory that you just checked out of svn.

When you run it a second time it should be ready to work, where you can install and list all the packages.

There are more packages you might want to look at in http://svn.gerf.org/homedir/trunk/docwhat. These are my personal settings to make using homedir easier (for me, anyway).

Similar Ideas

I have also noticed that Joey Hess has also done something similar and written two articles about it: