[ANNOUNCE] Example Cogito Addon - cogito-bundle
From: Petr Baudis <hidden>
Date: 2016-06-15 22:42:44
Dear diary, on Wed, Oct 18, 2006 at 04:52:25PM CEST, I got a letter where Linus Torvalds [off-list ref] said that...
In other words, to get such a pack, we'd _literally_ just do something like git-rev-list --objects-edge origin.. | git-pack-objects --stdout | uuencode and that would be it. You'd still need to add a "diffstat" to the thing, and tell the other end what the current HEAD is (so that it knows what it's supposed to fast-forward to), but it _literally_ is that simple. "plug-in architecture" my ass. "I recognize this - it's UNIX!".
Took me exactly an hour from mkdir cogito-bundle to cg-push to kernel.org. :-) cogito-bundle is an example on how to create third-party addons or plugins adding own commands to Cogito and using Cogito's infrastructure. It's not _that_ easy currently since you have to replicate large part of the build infrastructure locally; that could be fixed by installing some "library makefiles" and asciidoc toolkit to /usr/share or something, if there would be a real demand for such an addon API. cg-help and the cg wrapper will pick up the newly installed commands automagically. The only thing missing is updating cogito(7) to list the addon commands, which would take a bit more work. Though it's an example, it's actually supposed to be useful, by doing exactly what is outlined above - l - it lets you exchange commits over mail by so-called "bundles", similar to e.g. Bazaar bundles - basically, it is like push or fetch, but over email, and the commit ids are preserved when transferred in bundles (if you just send patches, the commit ids will end up different). The provided cg-bundle and cg-unbundle commands are rather crude and don't support many things - they don't actually include a diff, only a diffstat, etc. The uuencoded bundle is inlined in the mail, which I suspect isn't very useful; perhaps it would be more practical to just attach it binarily. Feel free to send patches (or bundles ;). An example bundle is available at http://pasky.or.cz/~pasky/cp/example-bundle.txt as generated by cogito.master$ cg-bundle -r v0.18 -m"Subject is this" \ -m"And some body now..." --stdout and cogito-bundle is available at git://git.kernel.org/pub/scm/cogito/cogito-bundle.git/ (gitweb http://kernel.org/git/?p=cogito/cogito-bundle.git) -- Petr "Pasky" Baudis Stuff: http://pasky.or.cz/ #!/bin/perl -sp0777i<X+d*lMLa^*lN%0]dsXx++lMlN/dsM0<j]dsj $/=unpack('H*',$_);$_=`echo 16dio\U$k"SK$/SM$n\EsN0p[lN*1 lK[d2%Sa2/d0$^Ixp"|dc`;s/\W//g;$_=pack('H*',/((..)*)$/)