What's cooking
Junio C Hamano committed
Nov 29, 2009 at 02:02 UTC
f76e49350db6db1a1ea1355b14912f4691de2b9a
1 file changed
+422
whats/cooking/2009/11/07.txt
new
+422
@@ -0,0 +1,422 @@
1
+To: git@vger.kernel.org
2
+Subject: What's cooking in git.git (Nov 2009, #07; Sun, 29)
3
+X-master-at: 66abce05dd5b9da9c889034781dc3de38b6e231b
4
+X-next-at: c4469778c3a4538c370b02fd190f6ed5a8139b58
5
+
6
+What's cooking in git.git (Nov 2009, #07; Sun, 29)
7
+--------------------------------------------------
8
+
9
+Here are the topics that have been cooking. Commits prefixed with '-' are
10
+only in 'pu' while commits prefixed with '+' are in 'next'. The ones
11
+marked with '.' do not appear in any of the integration branches, but I am
12
+still holding onto them.
13
+
14
+In 1.7.0, we plan to correct handful of warts in the interfaces everybody
15
+agrees that they were mistakes. The resulting system may not be strictly
16
+backward compatible. Currently planned changes are:
17
+
18
+ * refuse push to update the checked out branch in a non-bare repo by
19
+ default
20
+
21
+ Make "git push" into a repository to update the branch that is checked
22
+ out fail by default. You can countermand this default by setting a
23
+ configuration variable in the receiving repository.
24
+
25
+ http://thread.gmane.org/gmane.comp.version-control.git/107758/focus=108007
26
+
27
+ * refuse push to delete the current branch by default
28
+
29
+ Make "git push $there :$killed" to delete the branch that is pointed at
30
+ by its HEAD fail by default. You can countermand this default by
31
+ setting a configuration variable in the receiving repository.
32
+
33
+ http://thread.gmane.org/gmane.comp.version-control.git/108862/focus=108936
34
+
35
+ * "git send-email" won't make deep threads by default
36
+
37
+ Many people said that by default when sending more than 2 patches the
38
+ threading git-send-email makes by default is hard to read, and they
39
+ prefer the default be one cover letter and each patch as a direct
40
+ follow-up to the cover letter. You can countermand this by setting a
41
+ configuration variable.
42
+
43
+ http://article.gmane.org/gmane.comp.version-control.git/109790
44
+
45
+ * "git status" won't be "git-commit --dry-run" anymore
46
+
47
+ http://thread.gmane.org/gmane.comp.version-control.git/125989/focus=125993
48
+
49
+ * "git diff -w --exit-code" will exit success if only differences it
50
+ found are whitespace changes that are stripped away from the output.
51
+
52
+ http://thread.gmane.org/gmane.comp.version-control.git/119731/focus=119751
53
+
54
+ * "git diff -w/-b" won't even produce "diff --git" header when all changes
55
+ are about whitespaces.
56
+
57
+ http://thread.gmane.org/gmane.comp.version-control.git/133256
58
+
59
+--------------------------------------------------
60
+[New Topics]
61
+
62
+* fc/maint-format-patch-pathspec-dashes (2009-11-26) 2 commits.
63
+ - format-patch: add test for parsing of "--"
64
+ - format-patch: fix parsing of "--" on the command line
65
+
66
+* bw/diff-color-hunk-header (2009-11-27) 2 commits
67
+ (merged to 'next' on 2009-11-29 at c446977)
68
+ + Give the hunk comment its own color
69
+ (merged to 'next' on 2009-11-27 at 42ab131)
70
+ + emit_line(): don't emit an empty <SET><RESET> followed by a newline
71
+
72
+* jc/maint-am-keep (2009-11-27) 1 commit.
73
+ (merged to 'next' on 2009-11-27 at 7663874)
74
+ + Remove dead code from "git am"
75
+
76
+* tr/http-updates (2009-11-27) 2 commits
77
+ - Add an option for using any HTTP authentication scheme, not only basic
78
+ - http: maintain curl sessions
79
+
80
+* jc/diff-whitespace-prepare (2009-11-28) 2 commits
81
+ - diff: flip the default diff.bwoutputonly to true
82
+ - diff: optionally allow traditional "-b/-w affects only output" semantics
83
+ (this branch uses gb/1.7.0-diff-whitespace-only-output and jc/1.7.0-diff-whitespace-only-status; is used by jc/1.7.0-diff-whitespace-prepare.)
84
+
85
+This is to redo the two -b/-w semantic changes to prepare the migration of
86
+existing users before 1.7.0 happens.
87
+
88
+* jc/1.7.0-diff-whitespace-prepare (2009-11-28) 2 commits
89
+ - diff: disable diff.bwoutputonly warning
90
+ - diff: flip the diff.bwoutputonly default to false
91
+ (this branch uses gb/1.7.0-diff-whitespace-only-output, jc/1.7.0-diff-whitespace-only-status and jc/diff-whitespace-prepare.)
92
+
93
+And this is to actually flip the default and eventually remove the warning.
94
+
95
+* ns/send-email-no-chain-reply-to (2009-11-29) 1 commit
96
+ - prepare send-email for smoother change of --chain-reply-to default
97
+ (this branch is used by ns/1.7.0-send-email-no-chain-reply-to.)
98
+
99
+Similarly, this is to start warning about the change to --no-chain-reply-to
100
+in 1.7.0 for smoother transition.
101
+
102
+* ns/1.7.0-send-email-no-chain-reply-to (2009-08-22) 1 commit
103
+ - send-email: make --no-chain-reply-to the default
104
+ (this branch uses ns/send-email-no-chain-reply-to.)
105
+
106
+And this is to actually flip the default in 1.7.0.
107
+
108
+--------------------------------------------------
109
+[Stalled]
110
+
111
+* je/send-email-no-subject (2009-08-05) 1 commit.
112
+ (merged to 'next' on 2009-10-11 at 1b99c56)
113
+ + send-email: confirm on empty mail subjects
114
+
115
+The existing tests cover the positive case (i.e. as long as the user says
116
+"yes" to the "do you really want to send this message that lacks subject",
117
+the message is sent) of this feature, but the feature itself needs its own
118
+test to verify the negative case (i.e. does it correctly stop if the user
119
+says "no"?)
120
+
121
+* jn/rfc-pull-rebase-error-message (2009-11-12) 1 commit
122
+ - git-pull.sh --rebase: overhaul error handling when no candidates are found
123
+
124
+I heard this needs at least retitling among other changes?
125
+
126
+* jh/notes (2009-11-20) 10 commits
127
+ - Add more testcases to test fast-import of notes
128
+ - Rename t9301 to t9350, to make room for more fast-import tests
129
+ - fast-import: Proper notes tree manipulation using the notes API
130
+ - Refactor notes concatenation into a flexible interface for combining notes
131
+ - Notes API: Allow multiple concurrent notes trees with new struct notes_tree
132
+ - Notes API: for_each_note(): Traverse the entire notes tree with a callback
133
+ - Notes API: get_note(): Return the note annotating the given object
134
+ - Notes API: add_note(): Add note objects to the internal notes tree structure
135
+ - Notes API: init_notes(): Initialize the notes tree from the given notes ref
136
+ - Notes API: get_commit_notes() -> format_note() + remove the commit restriction
137
+
138
+Johan waits for an Ack from Shawn on "fast-import" one.
139
+
140
+* tr/maint-merge-ours-clarification (2009-11-15) 1 commit
141
+ (merged to 'next' on 2009-11-21 at fadaf7b)
142
+ + rebase: refuse to rebase with -s ours
143
+
144
+I do not think we reached a concensus for solving conflicts between "give
145
+them rope" and "protect users from clearly meaningless combinations". The
146
+author obviously is for the latter (and I am inclined to agree); Dscho
147
+seems to think otherwise.
148
+
149
+* jc/fix-tree-walk (2009-10-22) 8 commits
150
+ (merged to 'next' on 2009-10-22 at 10c0c8f)
151
+ + Revert failed attempt since 353c5ee
152
+ + read-tree --debug-unpack
153
+ (merged to 'next' on 2009-10-11 at 0b058e2)
154
+ + unpack-trees.c: look ahead in the index
155
+ + unpack-trees.c: prepare for looking ahead in the index
156
+ + Aggressive three-way merge: fix D/F case
157
+ + traverse_trees(): handle D/F conflict case sanely
158
+ + more D/F conflict tests
159
+ + tests: move convenience regexp to match object names to test-lib.sh
160
+
161
+This has some stupid bugs and reverted from 'next' until I can fix it, but
162
+the "temporarily" turned out to be very loooong. Sigh...
163
+
164
+* sr/gfi-options (2009-09-06) 6 commits.
165
+ - fast-import: test the new option command
166
+ - fast-import: add option command
167
+ - fast-import: test the new feature command
168
+ - fast-import: add feature command
169
+ - fast-import: put marks reading in it's own function
170
+ - fast-import: put option parsing code in separate functions
171
+
172
+Sverre is working on a re-roll to address comments from Shawn.
173
+
174
+--------------------------------------------------
175
+[Cooking]
176
+
177
+* sr/vcs-helper (2009-11-18) 12 commits
178
+ (merged to 'next' on 2009-11-27 at 83268ab)
179
+ + Add Python support library for remote helpers
180
+ + Basic build infrastructure for Python scripts
181
+ + Allow helpers to report in "list" command that the ref is unchanged
182
+ + Fix various memory leaks in transport-helper.c
183
+ + Allow helper to map private ref names into normal names
184
+ + Add support for "import" helper command
185
+ + Allow specifying the remote helper in the url
186
+ + Add a config option for remotes to specify a foreign vcs
187
+ + Allow fetch to modify refs
188
+ + Use a function to determine whether a remote is valid
189
+ + Allow programs to not depend on remotes having urls
190
+ + Fix memory leak in helper method for disconnect
191
+
192
+* jc/grep-full-tree (2009-11-24) 1 commit.
193
+ - grep: --full-tree
194
+
195
+The interaction with this option and pathspecs need to be worked out
196
+better. I _think_ "grep --full-tree -e pattern -- '*.h'" should find from
197
+all the header files in the tree, for example.
198
+
199
+* uk/maint-shortlog-encoding (2009-11-25) 1 commit.
200
+ - shortlog: respect commit encoding
201
+
202
+The fix is a maint material but the patch was against next, so I
203
+back-rebased it myself. I tried to be careful but please double check the
204
+result.
205
+
206
+Perhaps merge it to 'master' before 1.6.6-rc1?
207
+
208
+* fc/send-email-envelope (2009-11-26) 2 commits.
209
+ (merged to 'next' on 2009-11-27 at 2d0257d)
210
+ + send-email: automatic envelope sender
211
+ + t9001: test --envelope-sender option of send-email
212
+
213
+Perhaps merge it to 'master' before 1.6.6-rc1?
214
+
215
+* jc/mailinfo-remove-brackets (2009-07-15) 1 commit.
216
+ (merged to 'next' on 2009-11-25 at 09d498f)
217
+ + mailinfo: -b option keeps [bracketed] strings that is not a [PATCH] marker
218
+
219
+Jim Meyering sent a patch to do a subset of what this does; to allow
220
+keeping '[SECURITY]' when the subject says '[SECURITY][PATCH]', you need
221
+to also teach "am" to pass the new -b option, but that is independent of
222
+what Jim showed the need in real-world, so I think this can go in as-is.
223
+
224
+Perhaps merge it to 'master' before 1.6.6-rc1?
225
+
226
+* jc/checkout-merge-base (2009-11-20) 2 commits
227
+ - "rebase --onto A...B" replays history on the merge base between A and B
228
+ - "checkout A...B" switches to the merge base between A and B
229
+
230
+I've been using the first one for a while myself but do not see many users
231
+want this (yet); the new feature is not urgent anyway.
232
+
233
+* tr/reset-checkout-patch (2009-11-19) 1 commit.
234
+ (merged to 'next' on 2009-11-22 at b224950)
235
+ + {checkout,reset} -p: make patch direction configurable
236
+
237
+I do not particularly like a configuration like this that changes the
238
+behaviour of a command in a drastic way---it will make helping others much
239
+harder.
240
+
241
+Perhaps merge it to 'master' before 1.6.6-rc1?
242
+
243
+* jn/gitweb-blame (2009-11-24) 8 commits.
244
+ (merged to 'next' on 2009-11-25 at 0a5b649)
245
+ + gitweb.js: fix padLeftStr() and its usage
246
+ + gitweb.js: Harden setting blamed commit info in incremental blame
247
+ + gitweb.js: fix null object exception in initials calculation
248
+ + gitweb: Minify gitweb.js if JSMIN is defined
249
+ + gitweb: Create links leading to 'blame_incremental' using JavaScript
250
+ (merged to 'next' on 2009-10-11 at 73c4a83)
251
+ + gitweb: Colorize 'blame_incremental' view during processing
252
+ + gitweb: Incremental blame (using JavaScript)
253
+ + gitweb: Add optional "time to generate page" info in footer
254
+
255
+Ajax-y blame, with further fixes. As this does not seem to break existing
256
+features, I am inclined to say that we push this out early, as a new
257
+feature with known breakages, to give it wider audience.
258
+
259
+* em/commit-claim (2009-11-04) 1 commit
260
+ (merged to 'next' on 2009-11-23 at b5df6fd)
261
+ + commit -c/-C/--amend: reset timestamp and authorship to committer with --reset-author
262
+
263
+I am not sure if the option name does a good job at explaining it to the
264
+end users, but I think the code and feature is solid.
265
+
266
+Perhaps merge it to 'master' before 1.6.6-rc1?
267
+
268
+* cc/bisect-doc (2009-11-08) 1 commit
269
+ (merged to 'next' on 2009-11-27 at c46d648)
270
+ + Documentation: add "Fighting regressions with git bisect" article
271
+
272
+Perhaps merge it to 'master' before 1.6.6-rc1?
273
+
274
+* nd/sparse (2009-11-25) 20 commits.
275
+ (merged to 'next' on 2009-11-25 at 71380f5)
276
+ + tests: rename duplicate t1009
277
+ (merged to 'next' on 2009-11-23 at f712a41)
278
+ + sparse checkout: inhibit empty worktree
279
+ + Add tests for sparse checkout
280
+ + read-tree: add --no-sparse-checkout to disable sparse checkout support
281
+ + unpack-trees(): ignore worktree check outside checkout area
282
+ + unpack_trees(): apply $GIT_DIR/info/sparse-checkout to the final index
283
+ + unpack-trees(): "enable" sparse checkout and load $GIT_DIR/info/sparse-checkout
284
+ + unpack-trees.c: generalize verify_* functions
285
+ + unpack-trees(): add CE_WT_REMOVE to remove on worktree alone
286
+ + Introduce "sparse checkout"
287
+ + dir.c: export excluded_1() and add_excludes_from_file_1()
288
+ + excluded_1(): support exclude files in index
289
+ + unpack-trees(): carry skip-worktree bit over in merged_entry()
290
+ + Read .gitignore from index if it is skip-worktree
291
+ + Avoid writing to buffer in add_excludes_from_file_1()
292
+ + Teach Git to respect skip-worktree bit (writing part)
293
+ + Teach Git to respect skip-worktree bit (reading part)
294
+ + Introduce "skip-worktree" bit in index, teach Git to get/set this bit
295
+ + Add test-index-version
296
+ + update-index: refactor mark_valid() in preparation for new options
297
+
298
+* jc/pretty-lf (2009-10-04) 1 commit.
299
+ (merged to 'next' on 2009-11-27 at 73651c4)
300
+ + Pretty-format: %[+-]x to tweak inter-item newlines
301
+
302
+Perhaps merge it to 'master' before 1.6.6-rc1?
303
+
304
+--------------------------------------------------
305
+[For 1.7.0]
306
+
307
+* jk/1.7.0-status (2009-11-27) 7 commits.
308
+ (merged to 'next' on 2009-11-27 at 91691ec)
309
+ + t7508-status.sh: Add tests for status -s
310
+ + status -s: respect the status.relativePaths option
311
+ (merged to 'next' on 2009-11-21 at 884bb56)
312
+ + docs: note that status configuration affects only long format
313
+ (merged to 'next' on 2009-10-11 at 65c8513)
314
+ + commit: support alternate status formats
315
+ + status: add --porcelain output format
316
+ + status: refactor format option parsing
317
+ + status: refactor short-mode printing to its own function
318
+ (this branch uses jc/1.7.0-status.)
319
+
320
+Gives the --short output format to post 1.7.0 "git commit --dry-run" that
321
+is similar to that of post 1.7.0 "git status".
322
+
323
+Immediately after 1.6.6 while rebuilding 'next', we may want to reorder a
324
+few commits at the tip, as "docs: affects only long format" describes a
325
+limitation that will disappear soon.
326
+
327
+* jc/1.7.0-status (2009-09-05) 4 commits.
328
+ (merged to 'next' on 2009-10-11 at 9558627)
329
+ + status: typo fix in usage
330
+ + git status: not "commit --dry-run" anymore
331
+ + git stat -s: short status output
332
+ + git stat: the beginning of "status that is not a dry-run of commit"
333
+ (this branch is used by jk/1.7.0-status.)
334
+
335
+With this, "git status" is no longer "git commit --dry-run".
336
+
337
+* jc/1.7.0-send-email-no-thread-default (2009-08-22) 1 commit.
338
+ (merged to 'next' on 2009-10-11 at 043acdf)
339
+ + send-email: make --no-chain-reply-to the default
340
+
341
+* jc/1.7.0-diff-whitespace-only-status (2009-08-30) 4 commits.
342
+ (merged to 'next' on 2009-10-11 at 546c74d)
343
+ + diff.c: fix typoes in comments
344
+ + Make test case number unique
345
+ + diff: Rename QUIET internal option to QUICK
346
+ + diff: change semantics of "ignore whitespace" options
347
+ (this branch is used by jc/1.7.0-diff-whitespace-prepare and jc/diff-whitespace-prepare.)
348
+
349
+This changes exit code from "git diff --ignore-whitespace" and friends
350
+when there is no actual output. It is a backward incompatible change,
351
+and jc/diff-whitespace-prepare topic is meant to ease the transition.
352
+
353
+* gb/1.7.0-diff-whitespace-only-output (2009-11-19) 1 commit
354
+ (merged to 'next' on 2009-11-21 at 3375bf4)
355
+ + No diff -b/-w output for all-whitespace changes
356
+ (this branch is used by jc/1.7.0-diff-whitespace-prepare and jc/diff-whitespace-prepare.)
357
+
358
+Likewise.
359
+
360
+* jc/1.7.0-push-safety (2009-02-09) 2 commits.
361
+ (merged to 'next' on 2009-10-11 at 81b8128)
362
+ + Refuse deleting the current branch via push
363
+ + Refuse updating the current branch in a non-bare repository via push
364
+
365
+--------------------------------------------------
366
+[Reverted from 'next']
367
+
368
+* jc/botched-maint-cygwin-count-objects (2009-11-24) 2 commits
369
+ (merged to 'next' on 2009-11-25 at 8aa62a0)
370
+ + Revert "ST_BLOCKS_COUNTS_IN_BLKSIZE to say on-disk size is (st_blksize * st_blocks)"
371
+ (merged to 'next' on 2009-11-22 at 4ba5880)
372
+ + ST_BLOCKS_COUNTS_IN_BLKSIZE to say on-disk size is (st_blksize * st_blocks)
373
+
374
+This is a revert of the tip one I merged prematurely to 'next'. The real
375
+fix from Ramsay is already in 'master'.
376
+
377
+* ks/precompute-completion (2009-11-15) 4 commits.
378
+ (merged to 'next' on 2009-11-15 at 23cdb96)
379
+ + Revert ks/precompute-completion series
380
+ (merged to 'next' on 2009-10-28 at cd5177f)
381
+ + completion: ignore custom merge strategies when pre-generating
382
+ (merged to 'next' on 2009-10-22 at f46a28a)
383
+ + bug: precomputed completion includes scripts sources
384
+ (merged to 'next' on 2009-10-14 at adf722a)
385
+ + Speedup bash completion loading
386
+
387
+Reverted out of 'next', to be replaced with jn/faster-completion-startup
388
+topic.
389
+
390
+--------------------------------------------------
391
+[I have been too busy to purge these]
392
+
393
+* jc/log-tz (2009-03-03) 1 commit.
394
+ - Allow --date=local --date=other-format to work as expected
395
+
396
+Maybe some people care about this. I dunno.
397
+
398
+* jc/1.7.0-no-commit-no-ff-2 (2009-10-22) 1 commit.
399
+ . git-merge: forbid fast-forward and up-to-date when --no-commit is given
400
+
401
+This makes "git merge --no-commit" fail when it results in fast-forward or
402
+up-to-date. It appears nobody wants to have this, so I dropped it.
403
+
404
+* ne/rev-cache (2009-10-19) 7 commits.
405
+ . support for commit grafts, slight change to general mechanism
406
+ . support for path name caching in rev-cache
407
+ . full integration of rev-cache into git, completed test suite
408
+ . administrative functions for rev-cache, start of integration into git
409
+ . support for non-commit object caching in rev-cache
410
+ . basic revision cache system, no integration or features
411
+ . man page and technical discussion for rev-cache
412
+
413
+The author indicated that there is another round coming. Does not seem to
414
+pass the tests when merged to 'pu', so it has been ejected for now.
415
+
416
+* pb/gitweb-no-project-list (2009-11-06) 3 commits.
417
+ . gitweb: Polish the content tags support
418
+ . gitweb: Support for no project list on gitweb front page
419
+ . gitweb: Refactor project list routines
420
+
421
+I picked these up but didn't queue as Warthog9's comments made certain
422
+amount of sense to me.