122
structured slightly differently. vX.Y.Z were feature releases while
123
vX.Y.Z.W were maintenance releases for vX.Y.Z.
124
125
+Because most of the lines of code in Git are written by individual
126
+contributors, and contributions come in the form of e-mailed patches
127
+published on the mailing list, the project maintains a mapping from
128
+individual commits to the Message-Id of the e-mail that resulted in
129
+the commit, to help tracking the origin of the changes. The notes
130
+in "refs/notes/amlog" are used for this purpose, and are published
131
+along with the broken-out branches to the maintainer's repository.
132
133
A Typical Git Day
134
-----------------
172
In practice, almost no patch directly goes to 'master' or
173
'maint'.
174
175
+ Applying the e-mailed patches using "git am" automatically records
176
+ the mappings from 'Message-Id' to the applied commit in the "amlog"
177
+ notes. Periodically check that this is working with "git show -s
178
+ --notes=amlog $commit".
179
+
180
+ This mapping is maintained with the aid of the "post-applypatch"
181
+ hook found in the 'todo' branch. That hook should be installed
182
+ before applying patches. It is also helpful to carry forward any
183
+ relevant amlog entries when rebasing, so the following config may
184
+ be useful:
185
+
186
+ [notes]
187
+ rewriteRef = refs/notes/amlog
188
+
189
+ Avoid "cherry-pick", as it does not propagate notes by design. Use
190
+ either "git commit --amend" or "git rebase" to make corrections to
191
+ an existing commit, even for a single-patch topic.
192
+
193
+ Make sure that a push refspec for 'refs/notes/amlog' is in the
194
+ remote configuration for publishing repositories. A few sample
195
+ configurations look like the following:
196
+
197
+ [remote "github"]
198
+ url = https://github.com/gitster/git
199
+ pushurl = github.com:gitster/git.git
200
+ mirror
201
+
202
+ [remote "github2"]
203
+ url = https://github.com/git/git
204
+ fetch = +refs/heads/*:refs/remotes/github2/*
205
+ pushurl = github.com:git/git.git
206
+ push = refs/heads/maint:refs/heads/maint
207
+ push = refs/heads/master:refs/heads/master
208
+ push = refs/heads/next:refs/heads/next
209
+ push = +refs/heads/seen:refs/heads/seen
210
+ push = +refs/notes/amlog
211
+
212
- Review the last issue of "What's cooking" message, review the
213
topics ready for merging (topic->master and topic->maint). Use
214
"Meta/cook -w" script (where Meta/ contains a checkout of the