ben's git page
I'm using git between my laptop and another host I maintain at a fixed site.
Laptop has rather sporadic connections to the world. Sometimes I remotely log
into the other host and use that - I want work done on either host to
propagate to the other. In the future I may add a third (and more) host
to this 'cluster' (although given the loose coupling, maybe 'constellation'
is a better word - its reflective that the components are far far away
from each other and unrelated from most peoples perspective but from
one person's viewpoint it appears as a Glorious Whole).
Things I'm doing with git:
- source control: pretty standard use of cogito
- web page: store all the files with cogito. Push to a directory on
Other Host. Actually the files from there end up (for historical reasons)
being rsynced out to a third host, the webserver; could extend the
git push/pull all the way to that host (which would also allow me to push
from laptop directly to webspace without stopping me also editing
on the Other Host).
- email: synchronising maildir folders both ways; have
an IMAP server running on laptop and an IMAP server running on the
Other Host; changes made on one will (eventually) be reflected on the
- I've been adding to some bash completion code for stg that
was posted to the git mailing list.
Using cogito, get the latest with:
cg clone http://www.hawaga.org.uk/gitcompletion.git
Things I would like to control:
- configuration files: eg bashrc and other stuff that normally appears in
homedirectory dotfiles - gives some of the advantages of keeping home
directory in a shared filesystem without some of the disadvantages
- plaintext scribblings - should be pretty easy - like webspace but without
- photo categorisation/captioning - part of my photo database (the bit that
isn't JPEGs-on-filesystem) is textfiles-on-filesystem listing which images
belong in which category, and captions for images. Putting this in git would
let me edit and categorise in coffeeshop.
Ideas/prototypes of more git-related code:
- keyword substitution on checkout / removal before checkin - CVS has the
ability to specify things like $Revision$ - I'd got used to that in some
places (notably when using RCS/CVS for web pages) - so perhaps can put in
a $Commit$, $Tree$, $Id$... need to make this not break change-detection,
though - fluff/defluff commandpairs, perhaps?
- stacked development tool that gives "development levels" rather like
StGit patch levels but with version control of each level - I think that
can use cogito for most stuff and just need a command to move up/down the
stack (with each level being its own branch, and the 'move up/down' command
performing appropriate local merges to keep the 'layered' effect). might
actually want to make this into a DAG rather than stack - some of the stuff
I've been doing with msnlib and globe applet could have benefited from
this kind of orthogonal feature composition...
- Proper maildir sync script (its rather wanky at the moment)