]> git.cworth.org Git - notmuch-wiki/blob - nmbug.mdwn
add missing article on nmbug page.
[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 can be obtained by
13
14     git clone --bare git://pivot.cs.unb.ca/nmbug.git $HOME/.nmbug
15
16 ## Using nmbug, simple example
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     # write the tag changes from the notmuch database
26     $ nmbug commit
27
28 ## Using nmbug, doing the same thing with more steps
29
30     # get the latest version of the tags
31     $ nmbug fetch
32
33     # Optionally inspect the fetched changes
34
35     $ nmbug status      
36      a   tags/id1/patch
37      d   tags/id2/pushed     
38     
39     # merge the fetched tags into notmuch
40     $ nmbug merge
41     
42     # observe status is clear now,
43     $ nmbug status
44
45     # make the tag changes
46     $ notmuch tag +notmuch::patch id
47
48     # double check your changes
49     $ nmbug status
50     A tags/id/patch
51     
52     # write the tag changes 
53     $ nmbug commit
54
55 ## Submitting tags.
56
57    For the moment, we are using a central repo, hosted at
58     
59         git@pivot.cs.unb.ca:pub/nmbug
60         
61    To get push access, send your public key (ideally in a gpg signed
62    email) to David Bremner.  There is a convenience command
63    
64        nmbug push
65        
66    But you will have to change your url with
67    
68        git remote origin set-url git@pivot.cs.unb.ca:pub/nmbug
69
70 ## Tagging conventions
71
72     notmuch::bug                is a bug report
73     notmuch::emacs              is a patch/bug for the emacs UI
74     notmuch::feature            provides a new feature
75     notmuch::fix                fixes a bug
76     notmuch::obsolete           replaced by some other patch
77     notmuch::patch           
78     notmuch::portability        improves portability
79     notmuch::pushed             is pushed to master
80     notmuch::review             is a review
81     notmuch::reviewed           has been (well) reviewed
82     notmuch::test               provides a new test/or improves testing
83     notmuch::wip                is "work in progress", posted for review or comment.
84
85 ## Tracking the patch queue
86
87     I use the following search (in my case as a saved search in emacs).
88     
89     tag:notmuch::patch and not tag:notmuch::pushed and 
90         not tag:notmuch::obsolete and not tag:notmuch::wip
91         
92 ## Design notes
93
94 ### Disk format.
95
96 The tags are stored in a bare-repo, which means they are not obviously
97 visible. There is an `nmbug archive` command analogous to `git
98 archive` Tags are represented as empty files in the tree; if you extra
99 them, the tree looks something like
100
101
102     tags/878waiwi0f.wl%25james@hackervisions.org/
103     tags/878waiwi0f.wl%25james@hackervisions.org/emacs
104     tags/878waiwi0f.wl%25james@hackervisions.org/patch
105     tags/87aa8j7hqu.fsf@zancas.localnet/
106     tags/87aa8j7hqu.fsf@zancas.localnet/patch
107     tags/87aa8j7hqu.fsf@zancas.localnet/pushed
108
109 The `%25` represents hex code for a character that cannot be used directly
110 (in this case %, only because it is needed as an escape).
111
112 ### Assumptions
113
114 - Currently the parser of nmbug (like that of notmuch restore) assumes 
115   that there are no spaces in message-ids.
116     
117     
118     
119