X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=nmbug.mdwn;h=c34fd36d18303cd488e0084f5d9145f6431f5d4c;hb=e3a39fd9e4e247df1855117a19a3f2a31916e555;hp=3a41aa29ab000841075cd496aabd650f160cba55;hpb=579c19e753e201466c72dc1ae38f582dd0023dbb;p=notmuch-wiki diff --git a/nmbug.mdwn b/nmbug.mdwn index 3a41aa2..c34fd36 100644 --- a/nmbug.mdwn +++ b/nmbug.mdwn @@ -1,28 +1,64 @@ # Experimental Tag Sharing / Pseudo-Bug-Tracking for/with notmuch -## getting set up +## Web View -1. The current set of patches against notmuch master is in branch nmbug, +There is a dump of (one view of) the nmbug [[status|nmbug/status]]. It is even more +experimental than everything else here, and currently manually updated. - git://pivot.cs.unb.ca/notmuch.git +## Getting set up - - you want the script contrib/nmbug, but you need the bleeding edge version - of notmuch as well. +1. Install and use notmuch version notmuch 0.9+63~gebd1adc or newer. + + The nmbug script is available in contrib/nmbug -2. The current tag repo is at +2. 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 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 restore + # 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. @@ -37,7 +73,7 @@ But you will have to change your url with - git remote origin set-url git@pivot.cs.unb.ca:pub/nmbug + git --git-dir=$HOME/.nmbug remote set-url origin git@pivot.cs.unb.ca:pub/nmbug ## Tagging conventions @@ -45,6 +81,7 @@ 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 @@ -52,28 +89,47 @@ 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 (David Bremner) 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 and not tag:notmuch::contrib + +You might or might not want as many exclusions. Another interesting +search is + tag:notmuch::reviewed and not tag:notmuch::pushed + + ## Design notes ### Disk format. -The on-disk format is a set of files $HOME/.nmbug/tags/$SHA1, where -$SHA1 is the hash of the message-id. This is mainly a simple way to -avoid problems with strange message-ids. Each file has the format +The tags are stored in a bare-repo, which means they are not obviously +visible. There is an `nmbug archive` command analogous to `git +archive` Tags are represented as empty files in the tree; if you extra +them, the tree looks something like - msg-id: $id - tag: - tag: - [...] - -The motivation is to make merges easier, relative to the notmuch dump -format. The msg-id: and tag: headers are not really needed, but it -does make the format extensible. + + tags/878waiwi0f.wl%25james@hackervisions.org/ + tags/878waiwi0f.wl%25james@hackervisions.org/emacs + tags/878waiwi0f.wl%25james@hackervisions.org/patch + tags/87aa8j7hqu.fsf@zancas.localnet/ + tags/87aa8j7hqu.fsf@zancas.localnet/patch + tags/87aa8j7hqu.fsf@zancas.localnet/pushed + +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 - Currently the parser of nmbug (like that of notmuch restore) assumes - that there are no spaces message-ids. + that there are no spaces in message-ids.