{"thread":{"id":"9804","subject":"[announce] colgit: manage git repository collections","startedAt":"2007-09-06T10:11:15Z","lastAt":"2007-10-22T14:23:48Z","messageCount":3,"participants":["martin f krafft"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"52727","messageId":"20070906101115.GA29360@piper.oerlikon.madduck.net","threadId":"9804","inReplyTo":null,"subject":"[announce] colgit: manage git repository collections","fromName":"martin f krafft","fromEmail":"madduck@madduck.net","sentAt":"2007-09-06T10:11:15Z","receivedAt":"2007-09-06T10:11:15Z","isPatch":false,"sender":{"key":"madduck@madduck.net","avatar":null},"body":"[Ob crosspost: please keep vcs-home on Cc all times. Please remove\ngit mailing list from Cc when the reply isn't enough about git]\n\nDear colleagues,\n\nLast night, while Andy Roddick was giving his best against bored\nworld champion Roger Federer (and still lost after a game of many\ncrazy shots), I reached what I think is a milestone in my attempt to\nlet git manage my home directory across several machines. I called\nit colgit, which attempts to hint at \"collection of gits\", and this\nis the birth announcement of this shell script.\n\n  http://git.madduck.net/v/bin/colgit.git\n\nThe problem I am trying to solve is that I maintain different\nprojects in different repos, including scripts in ~/.bin and\nconfiguration files, and that I use multiple computers on a daily\nbasis. Moreover, I might happen upon a new computer which I have to\nuse for a few days and would like to be able to set up my account\neasily.\n\nWith SVN, I'd have a repository for each machine, which existed only\nof svn:externals references pulling in other repos and thus\nassembling my home directory. git-submodule isn't quite designed for\nthis sort of stuff, and thus I came up with colgit.\n\nThe idea is simple: ~ is a git repository with a .colgit/ directory,\nwhich hosts a hierarchy of directories holding a selection of files\nfrom .git directories. For instance, ~/.colgit/.etc/mutt/config is\nthe git-config file for the repository that I want to have in\n~/.etc/mutt. Since all of ~/.colgit is checked in to the repo in ~,\nI can easily clone that for another machine, or branch from it and\nadd yet other repositories, or remove some.\n\nEach directory in ~/.colgit can also hold hooks, description, and\ninfo/exclude, which are used to seed the repository in the plain\n~ hierarchy. Right now, the design requires a central repository and\nappropriate remote.origin.*/branch.master.merge entries in the\nconfig file so that it can initialise repositories on new machines.\n\ncolgit currently is still very much a hack, but it already sports\nthe following commands:\n\n  update/init: for each leaf directory in ~/.colgit, create the\n  corresponding repository in ~, seed it, and run git-pull. If the\n  respository already exists, just pull.\n\n  register: given an existing repository somewhere under ~, obtain\n  the relevant config files from its $GIT_DIR and populate the\n  corresponding directory under ~/.colgit.\n\n  status: for each leaf directory in ~/.colgit, query the\n  corresponding repository in ~ and note to stdout if it has local\n  changes\n\nI also envision the following commands:\n\n  add: given a repository URL and a local path, clone the repository\n  and run register\n\n  do: run the given git commands over each known repository\n\nThe process of initialising an account on a remote machine thus\nbecomes:\n\n  git clone -n ssh://.../machines/base temp && mv temp/.git ~\n  cd ~ && git checkout HEAD\n  ...\n  colgit init\n\nThis is release early release often, so it's far from perfect and\nand probably buggy. But suggestions and patches are welcome!\n\n-- \nmartin;              (greetings from the heart of the sun.)\n  \\____ echo mailto: !#^.\"<*>\"|tr \"<*> mailto:\" net@madduck\n \n# vim:tw=70\n \nspamtraps: madduck.bogus@madduck.net\n"},{"id":"52747","messageId":"20070906131525.GA7261@piper.oerlikon.madduck.net","threadId":"9804","inReplyTo":"20070906101115.GA29360@piper.oerlikon.madduck.net","subject":"Re: [announce] colgit: manage git repository collections","fromName":"martin f krafft","fromEmail":"madduck@madduck.net","sentAt":"2007-09-06T13:15:25Z","receivedAt":"2007-09-06T13:15:25Z","isPatch":false,"sender":{"key":"madduck@madduck.net","avatar":null},"body":"also sprach martin f krafft <madduck@madduck.net> [2007.09.06.1211 +0200]:\n> With SVN, I'd have a repository for each machine, which existed only\n> of svn:externals references pulling in other repos and thus\n> assembling my home directory. git-submodule isn't quite designed for\n> this sort of stuff, and thus I came up with colgit.\n\nYou might want to read over this short discussion between Peter and\nI on why git-submodules aren't up for the task:\n\n  http://colabti.de/irclogger/irclogger_log/git?date=2007-09-06,Thu&sel=578#l979\n\nCheers,\n\n-- \nmartin;              (greetings from the heart of the sun.)\n  \\____ echo mailto: !#^.\"<*>\"|tr \"<*> mailto:\" net@madduck\n \n\"'the answer to the great question...'\n 'of life, the universe and everything...' said deep thought.\n 'is...' said deep thought, and paused.\n 'is...'\n 'forty-two,' said deep thought, with infinite majesty and calm.\"\n                                 -- hitchhiker's guide to the galaxy\n \nspamtraps: madduck.bogus@madduck.net\n"},{"id":"56885","messageId":"20071022142348.GA10083@piper.oerlikon.madduck.net","threadId":"9804","inReplyTo":"20070906131525.GA7261@piper.oerlikon.madduck.net","subject":"deprecating colgit","fromName":"martin f krafft","fromEmail":"madduck@madduck.net","sentAt":"2007-10-22T14:23:48Z","receivedAt":"2007-10-22T14:23:48Z","isPatch":false,"sender":{"key":"madduck@madduck.net","avatar":null},"body":"Dear list(s),\n\nI would like to deprecate colgit [0] in favour of Joey Hess' mr [1],\nwhich does everything colgit did, and much more.\n\n0. http://lists.zerezo.com/git/msg629629.html\n1. http://kitenet.net/~joey/code/mr/\n\nIf you have not seen mr, well, basically it manages collections of\nrepositories, like colgit aspired to do, but Joey made it\nvcs-agnostic and much more robust. It's definitely worth checking\nout.\n\n-- \nmartin;              (greetings from the heart of the sun.)\n  \\____ echo mailto: !#^.\"<*>\"|tr \"<*> mailto:\" net@madduck\n \n\"if a man treats life artistically, his brain is his heart.\"\n                                                        -- oscar wilde\n \nspamtraps: madduck.bogus@madduck.net\n"}]}