aboutsummaryrefslogtreecommitdiffhomepage
path: root/contrib/nmbug
Commit message (Collapse)AuthorAge
* nmbug: check whether every forked process exit with (non)zero valueGravatar Tomi Ollila2012-06-03
| | | | | | 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.
* contrib/nmbug: new script for sharing tags with a given prefix.Gravatar David Bremner2011-11-12
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.