Commit graph

4 commits

Author SHA1 Message Date
David Bremner
3e5fb88f11 contrib/nmbug: add nmbug-status script
This is (almost) the same script as has been used for
http://nmbug.tethera.net/status for a while now. The only change is
that the configuration is not hardcoded anymore. By default the config
is fetched from a special branch in the nmbug repo that contains only
config info. The idea is that push access to this branch can be
restricted a bit more than the tags, since it will change the
appearence of the web pages.
2012-07-10 15:43:32 -06:00
David Bremner
0d6d5fb812 contrib/nmbug: make nmbug a subdirectory
I want to ship the status tool here as well, along with a sample
config file.
2012-07-09 16:16:26 -06:00
Tomi Ollila
a114ac8b77 nmbug: check whether every forked process exit with (non)zero value
If any of the forked process exits with nonzero value, terminate
current operation -- nonzero exit value indicates failure and
then there is no point continuing.
2012-06-03 13:45:28 -03:00
David Bremner
ebd1adc55b contrib/nmbug: new script for sharing tags with a given prefix.
The main idea is consider the notmuch database as analogous to the
work-tree. A bare git repo is maintained in the users home directory,
with a tree of the form tags/$message-id/$tag

Like notmuch and git, we have a set of subcommnds, mainly modelled on
git.

Implementation wise, the heavy lifting is in the following functions.

   commit	xapian -> git
   checkout	git -> xapian
   merge	fetched git + git -> xapian
   status	find differences between xapian, git, and remote git.

The central implementation trick, from an idea I think due to
tomprince on IRC is manipulate the git index directly from the xapian
tag information.  The merge routine is still done using a temporary
checkout as I wasn't able to get it working with the index only.

There are also some convenience wrappers around git commands, like "fetch"
that essential just set GIT_DIR in the environment.

In order to encode tags (viewed as octet sequences) into filenames,
we whitelist a smallish set of characters and %hex escape anything outside.

The prefix is omitted in git, which lets one save and restore to
different prefixes (although this is only lightly tested).

Thanks to Tomi Ollila for a huge amount of feedback and patches while
putting this together.
2011-11-12 21:24:25 -04:00