# Experimental Tag Sharing / Pseudo-Bug-Tracking for/with notmuch
-## getting set up
+## Getting set up
-1. The current set of patches against notmuch master is in branch nmbug,
+1. Install and use notmuch version notmuch 0.9+23~g556c5fa or newer (enter notmuch --version to check your version)
- git://pivot.cs.unb.ca/notmuch.git
+2. Get nmbug script using
- Currently you need at least the version of notmuch in master, and
- the script in contrib/nmbug.
+ git clone git://pivot.cs.unb.ca/notmuch.git notmuch-nmbug
+ cd notmuch-nmbug
+ git branch -b nmbug origin/nmbug
+
+ The script is now available in contrib/nmbug
-2. The current tag repo is at
+3. The current tag repo can be obtained by
+
+ git clone --bare git://pivot.cs.unb.ca/nmbug.git $HOME/.nmbug
+
+ Check that your git is recent enough by entering
- git clone --bare git://pivot.cs.unb.ca/nmbug.git $HOME/.nmbug
+ git --git-dir=$HOME/.nmbug fetch
+ If you get failures then you need to update your git (as well).
-## Using nmbug
+## Using nmbug, simple example
- # suck in the tags
- $ nmbug checkout
+ # get the latest version of the tags
+ $ nmbug pull
- [ do some tagging; see below for conventions ]
+ # do some tagging; see below for conventions
+ $ notmuch tag +notmuch::patch $id
+
+ # write the tag changes from the notmuch database
$ nmbug commit
+## Using nmbug, doing the same thing with more steps
+
+ # get the latest version of the tags
+ $ nmbug fetch
+
+ # Optionally inspect the fetched changes
+
+ $ nmbug status
+ a tags/id1/patch
+ d tags/id2/pushed
+
+ # merge the fetched tags into notmuch
+ $ nmbug merge
+
+ # observe status is clear now,
+ $ nmbug status
+
+ # make the tag changes
+ $ notmuch tag +notmuch::patch id
+
+ # double check your changes
+ $ nmbug status
+ A tags/id/patch
+
+ # write the tag changes
+ $ nmbug commit
## Submitting tags.
notmuch::emacs is a patch/bug for the emacs UI
notmuch::feature provides a new feature
notmuch::fix fixes a bug
+ notmuch::moreinfo waiting for feedback from patch proposer or others
notmuch::obsolete replaced by some other patch
notmuch::patch
notmuch::portability improves portability
notmuch::review is a review
notmuch::reviewed has been (well) reviewed
notmuch::test provides a new test/or improves testing
+ notmuch::wip is "work in progress", posted for review or comment.
+## Tracking the patch queue
+
+I use the following search (in my case as a saved search in emacs).
+
+ tag:notmuch::patch and not tag:notmuch::pushed and \
+ not tag:notmuch::obsolete and not tag:notmuch::wip \
+ and not tag:notmuch::moreinfo
+
+Another interesting search is
+
+ tag:notmuch::reviewed and not tag:notmuch::pushed
+
+
## Design notes
### Disk format.
tags/87aa8j7hqu.fsf@zancas.localnet/patch
tags/87aa8j7hqu.fsf@zancas.localnet/pushed
-The `%25` represents hex code for a character that cannut be used directly
+The `%25` represents hex code for a character that cannot be used directly
(in this case %, only because it is needed as an escape).
### Assumptions