]> git.cworth.org Git - notmuch-wiki/blob - nmbug.mdwn
update the example of using nmbug
[notmuch-wiki] / nmbug.mdwn
1 # Experimental Tag Sharing / Pseudo-Bug-Tracking for/with notmuch
2
3 ## getting set up
4
5 1. The current set of patches against notmuch master is in branch nmbug, 
6
7     git://pivot.cs.unb.ca/notmuch.git
8
9     Currently you need at least the version of notmuch in master, and
10     the script in contrib/nmbug.
11       
12 2. The current tag repo is at
13
14     git clone --bare git://pivot.cs.unb.ca/nmbug.git $HOME/.nmbug
15
16 ## Using nmbug
17
18     # get the latest version of the tags
19     $ nmbug pull
20
21     # do some tagging; see below for conventions 
22     
23     $ notmuch tag +notmuch::patch $id
24     
25     # optionally inspect your changes
26     $ nmbug status      
27     A   tags/$id/patch
28     
29     # write the tag changes from the notmuch
30     $ nmbug commit
31     
32 ## Submitting tags.
33
34    For the moment, we are using a central repo, hosted at
35     
36         git@pivot.cs.unb.ca:pub/nmbug
37         
38    To get push access, send your public key (ideally in a gpg signed
39    email) to David Bremner.  There is a convenience command
40    
41        nmbug push
42        
43    But you will have to change your url with
44    
45        git remote origin set-url git@pivot.cs.unb.ca:pub/nmbug
46
47 ## Tagging conventions
48
49     notmuch::bug                is a bug report
50     notmuch::emacs              is a patch/bug for the emacs UI
51     notmuch::feature            provides a new feature
52     notmuch::fix                fixes a bug
53     notmuch::obsolete           replaced by some other patch
54     notmuch::patch           
55     notmuch::portability        improves portability
56     notmuch::pushed             is pushed to master
57     notmuch::review             is a review
58     notmuch::reviewed           has been (well) reviewed
59     notmuch::test               provides a new test/or improves testing
60
61 ## Design notes
62
63 ### Disk format.
64
65 The tags are stored in a bare-repo, which means they are not obviously
66 visible. There is an `nmbug archive` command analogous to `git
67 archive` Tags are represented as empty files in the tree; if you extra
68 them, the tree looks something like
69
70
71     tags/878waiwi0f.wl%25james@hackervisions.org/
72     tags/878waiwi0f.wl%25james@hackervisions.org/emacs
73     tags/878waiwi0f.wl%25james@hackervisions.org/patch
74     tags/87aa8j7hqu.fsf@zancas.localnet/
75     tags/87aa8j7hqu.fsf@zancas.localnet/patch
76     tags/87aa8j7hqu.fsf@zancas.localnet/pushed
77
78 The `%25` represents hex code for a character that cannot be used directly
79 (in this case %, only because it is needed as an escape).
80
81 ### Assumptions
82
83 - Currently the parser of nmbug (like that of notmuch restore) assumes 
84   that there are no spaces in message-ids.
85     
86     
87     
88