What's cooking
Junio C Hamano committed
Dec 6, 2009 at 00:17 UTC
eed883c8777409e4d15a9f3e047345de32cdcb04
1 file changed
+398
whats/cooking/2009/12/02.txt
new
+398
@@ -0,0 +1,398 @@
1
+To: git@vger.kernel.org
2
+Subject: What's cooking in git.git (Dec 2009, #02; Sat, 05)
3
+X-master-at: 9a424b276c409a3510e7735b6ecc012f50dc2a49
4
+X-next-at: d8fe1b5dc75e54be82e59239a8d5a430ae072fd8
5
+
6
+What's cooking in git.git (Dec 2009, #02; Sat, 05)
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
+Note: Ilari's vcs-helper series hasn't been queued yet, as its first round
63
+generated a healthy amount of discussion and he made it clear that the
64
+second round is being prepared, addressing the comments given on the list.
65
+Hopefully trivial coding style issues in the first round will also be
66
+fixed (e.g. keyword "if" lacked a SP after it before opening parenthesis
67
+of the condition) in the second round.
68
+
69
+* jn/maint-pull-rebase-error-message (2009-11-27) 1 commit.
70
+ (merged to 'next' on 2009-12-03 at 2ced03c)
71
+ + pull: clarify advice for the unconfigured error case
72
+
73
+Replaces old 'jn/rfc-pull-rebase-error-message' topic.
74
+
75
+* fc/opt-quiet-gc-reset (2009-12-02) 1 commit
76
+ - General --quiet improvements
77
+
78
+* mv/commit-date (2009-12-03) 2 commits
79
+ - Document date formats accepted by parse_date()
80
+ - builtin-commit: add --date option
81
+
82
+* mh/rebase-fixup (2009-12-05) 4 commits
83
+ - [squash to Add a command "fix"] Avoid "\(alternatives\|choices\)" in sed script
84
+ - Add a command "fix" to rebase --interactive.
85
+ - t3404: set a couple more tags in the original repository
86
+ - t3404: Better document the original repository layout
87
+
88
+--------------------------------------------------
89
+[Stalled]
90
+
91
+* je/send-email-no-subject (2009-08-05) 1 commit.
92
+ (merged to 'next' on 2009-10-11 at 1b99c56)
93
+ + send-email: confirm on empty mail subjects
94
+
95
+The existing tests cover the positive case (i.e. as long as the user says
96
+"yes" to the "do you really want to send this message that lacks subject",
97
+the message is sent) of this feature, but the feature itself needs its own
98
+test to verify the negative case (i.e. does it correctly stop if the user
99
+says "no"?)
100
+
101
+* jc/checkout-merge-base (2009-11-20) 2 commits
102
+ - "rebase --onto A...B" replays history on the merge base between A and B
103
+ - "checkout A...B" switches to the merge base between A and B
104
+
105
+I've been using the first one for a while myself but do not see many users
106
+want this (yet); the new feature is not urgent anyway.
107
+
108
+* jh/notes (2009-12-02) 11 commits
109
+ - Refactor notes concatenation into a flexible interface for combining notes
110
+ - Notes API: Allow multiple concurrent notes trees with new struct notes_tree
111
+ - Notes API: for_each_note(): Traverse the entire notes tree with a callback
112
+ - Notes API: get_note(): Return the note annotating the given object
113
+ - Notes API: add_note(): Add note objects to the internal notes tree structure
114
+ - Notes API: init_notes(): Initialize the notes tree from the given notes ref
115
+ - Notes API: get_commit_notes() -> format_note() + remove the commit restriction
116
+ - Minor style fixes to notes.c
117
+ - Add more testcases to test fast-import of notes
118
+ - Rename t9301 to t9350, to make room for more fast-import tests
119
+ - fast-import: Proper notes tree manipulation
120
+
121
+Rerolled (waiting for Acks).
122
+
123
+* tr/maint-merge-ours-clarification (2009-11-15) 1 commit
124
+ (merged to 'next' on 2009-11-21 at fadaf7b)
125
+ + rebase: refuse to rebase with -s ours
126
+
127
+I do not think we reached a concensus for solving conflicts between "give
128
+them rope" and "protect users from clearly meaningless combinations". The
129
+author obviously is for the latter (and I am inclined to agree); Dscho
130
+seems to think otherwise.
131
+
132
+* jc/fix-tree-walk (2009-10-22) 8 commits
133
+ (merged to 'next' on 2009-10-22 at 10c0c8f)
134
+ + Revert failed attempt since 353c5ee
135
+ + read-tree --debug-unpack
136
+ (merged to 'next' on 2009-10-11 at 0b058e2)
137
+ + unpack-trees.c: look ahead in the index
138
+ + unpack-trees.c: prepare for looking ahead in the index
139
+ + Aggressive three-way merge: fix D/F case
140
+ + traverse_trees(): handle D/F conflict case sanely
141
+ + more D/F conflict tests
142
+ + tests: move convenience regexp to match object names to test-lib.sh
143
+
144
+This has some stupid bugs and reverted from 'next' until I can fix it, but
145
+the "temporarily" turned out to be very loooong. Sigh. We won't have a
146
+proper fix in 1.6.6.
147
+
148
+* jc/grep-full-tree (2009-11-24) 1 commit.
149
+ - grep: --full-tree
150
+
151
+The interaction with this option and pathspecs need to be worked out
152
+better. I _think_ "grep --full-tree -e pattern -- '*.h'" should find from
153
+all the header files in the tree, for example.
154
+
155
+--------------------------------------------------
156
+[Cooking]
157
+
158
+* sr/gfi-options (2009-12-04) 7 commits
159
+ - fast-import: add (non-)relative-marks feature
160
+ - fast-import: allow for multiple --import-marks= arguments
161
+ - fast-import: test the new option command
162
+ - fast-import: add option command
163
+ - fast-import: add feature command
164
+ - fast-import: put marks reading in its own function
165
+ - fast-import: put option parsing code in separate functions
166
+
167
+Rerolled.
168
+
169
+* ap/merge-backend-opts (2008-07-18) 6 commits
170
+ - Document that merge strategies can now take their own options
171
+ - Extend merge-subtree tests to test -Xsubtree=dir.
172
+ - Make "subtree" part more orthogonal to the rest of merge-recursive.
173
+ - Teach git-pull to pass -X<option> to git-merge
174
+ - git merge -X<option>
175
+ - git-merge-file --ours, --theirs
176
+
177
+"git pull" patch needs sq-then-eval fix to protect it from $IFS
178
+but otherwise seemed good.
179
+
180
+* mo/bin-wrappers (2009-12-02) 3 commits
181
+ - INSTALL: document a simpler way to run uninstalled builds
182
+ - run test suite without dashed git-commands in PATH
183
+ - build dashless "bin-wrappers" directory similar to installed bindir
184
+
185
+Rerolled.
186
+
187
+* tr/http-updates (2009-12-01) 3 commits
188
+ - Allow curl to rewind the RPC read buffer
189
+ - Add an option for using any HTTP authentication scheme, not only basic
190
+ - http: maintain curl sessions
191
+
192
+There was a discussion on a better structure not to require rewinding in
193
+the first place? I didn't follow it closely...
194
+
195
+* jc/diff-whitespace-prepare (2009-11-28) 2 commits
196
+ - diff: flip the default diff.bwoutputonly to true
197
+ - diff: optionally allow traditional "-b/-w affects only output" semantics
198
+ (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.)
199
+
200
+This is to redo the two -b/-w semantic changes to prepare the migration of
201
+existing users before 1.7.0 happens.
202
+
203
+* sr/vcs-helper (2009-12-04) 13 commits
204
+ (merged to 'next' on 2009-12-03 at e45b562)
205
+ + builtin-push: don't access freed transport->url
206
+ (merged to 'next' on 2009-11-27 at 83268ab)
207
+ + Add Python support library for remote helpers
208
+ + Basic build infrastructure for Python scripts
209
+ + Allow helpers to report in "list" command that the ref is unchanged
210
+ + Fix various memory leaks in transport-helper.c
211
+ + Allow helper to map private ref names into normal names
212
+ + Add support for "import" helper command
213
+ + Allow specifying the remote helper in the url
214
+ + Add a config option for remotes to specify a foreign vcs
215
+ + Allow fetch to modify refs
216
+ + Use a function to determine whether a remote is valid
217
+ + Allow programs to not depend on remotes having urls
218
+ + Fix memory leak in helper method for disconnect
219
+
220
+Should be among the first to graduate after 1.6.6 final.
221
+
222
+* tr/reset-checkout-patch (2009-11-19) 1 commit.
223
+ (merged to 'next' on 2009-11-22 at b224950)
224
+ + {checkout,reset} -p: make patch direction configurable
225
+
226
+I do not particularly like a configuration like this that changes the
227
+behaviour of a command in a drastic way---it will make helping others
228
+much harder.
229
+
230
+* nd/sparse (2009-11-25) 20 commits.
231
+ (merged to 'next' on 2009-11-25 at 71380f5)
232
+ + tests: rename duplicate t1009
233
+ (merged to 'next' on 2009-11-23 at f712a41)
234
+ + sparse checkout: inhibit empty worktree
235
+ + Add tests for sparse checkout
236
+ + read-tree: add --no-sparse-checkout to disable sparse checkout support
237
+ + unpack-trees(): ignore worktree check outside checkout area
238
+ + unpack_trees(): apply $GIT_DIR/info/sparse-checkout to the final index
239
+ + unpack-trees(): "enable" sparse checkout and load $GIT_DIR/info/sparse-checkout
240
+ + unpack-trees.c: generalize verify_* functions
241
+ + unpack-trees(): add CE_WT_REMOVE to remove on worktree alone
242
+ + Introduce "sparse checkout"
243
+ + dir.c: export excluded_1() and add_excludes_from_file_1()
244
+ + excluded_1(): support exclude files in index
245
+ + unpack-trees(): carry skip-worktree bit over in merged_entry()
246
+ + Read .gitignore from index if it is skip-worktree
247
+ + Avoid writing to buffer in add_excludes_from_file_1()
248
+ + Teach Git to respect skip-worktree bit (writing part)
249
+ + Teach Git to respect skip-worktree bit (reading part)
250
+ + Introduce "skip-worktree" bit in index, teach Git to get/set this bit
251
+ + Add test-index-version
252
+ + update-index: refactor mark_valid() in preparation for new options
253
+
254
+There were some test glitches reported and at least one test seems to
255
+be broken in the sense that it is not testing what it is trying to.
256
+Fix-up expected.
257
+
258
+--------------------------------------------------
259
+[For 1.7.0]
260
+
261
+* jk/1.7.0-status (2009-12-05) 9 commits.
262
+ (merged to 'next' on 2009-12-05 at 44dcefd)
263
+ + status -s: obey color.status
264
+ + builtin-commit: refactor short-status code into wt-status.c
265
+ (merged to 'next' on 2009-11-27 at 91691ec)
266
+ + t7508-status.sh: Add tests for status -s
267
+ + status -s: respect the status.relativePaths option
268
+ (merged to 'next' on 2009-11-21 at 884bb56)
269
+ + docs: note that status configuration affects only long format
270
+ (merged to 'next' on 2009-10-11 at 65c8513)
271
+ + commit: support alternate status formats
272
+ + status: add --porcelain output format
273
+ + status: refactor format option parsing
274
+ + status: refactor short-mode printing to its own function
275
+ (this branch uses jc/1.7.0-status.)
276
+
277
+Gives the --short output format to post 1.7.0 "git commit --dry-run" that
278
+is similar to that of post 1.7.0 "git status".
279
+
280
+Immediately after 1.6.6 while rebuilding 'next', we may want to reorder a
281
+few commits at the tip, as "docs: affects only long format" describes a
282
+limitation that will disappear soon.
283
+
284
+* jc/1.7.0-status (2009-09-05) 4 commits.
285
+ (merged to 'next' on 2009-10-11 at 9558627)
286
+ + status: typo fix in usage
287
+ + git status: not "commit --dry-run" anymore
288
+ + git stat -s: short status output
289
+ + git stat: the beginning of "status that is not a dry-run of commit"
290
+ (this branch is used by jk/1.7.0-status.)
291
+
292
+With this, "git status" is no longer "git commit --dry-run".
293
+
294
+* jc/1.7.0-send-email-no-thread-default (2009-08-22) 1 commit.
295
+ (merged to 'next' on 2009-10-11 at 043acdf)
296
+ + send-email: make --no-chain-reply-to the default
297
+
298
+As the title says.
299
+
300
+* jc/1.7.0-push-safety (2009-02-09) 2 commits.
301
+ (merged to 'next' on 2009-10-11 at 81b8128)
302
+ + Refuse deleting the current branch via push
303
+ + Refuse updating the current branch in a non-bare repository via push
304
+
305
+* jc/1.7.0-diff-whitespace-only-status (2009-08-30) 4 commits.
306
+ (merged to 'next' on 2009-10-11 at 546c74d)
307
+ + diff.c: fix typoes in comments
308
+ + Make test case number unique
309
+ + diff: Rename QUIET internal option to QUICK
310
+ + diff: change semantics of "ignore whitespace" options
311
+ (this branch is used by jc/1.7.0-diff-whitespace-prepare and jc/diff-whitespace-prepare.)
312
+
313
+This changes exit code from "git diff --ignore-whitespace" and friends
314
+when there is no actual output. It is a backward incompatible change,
315
+and jc/diff-whitespace-prepare topic is meant to ease the transition.
316
+
317
+* gb/1.7.0-diff-whitespace-only-output (2009-11-19) 1 commit
318
+ (merged to 'next' on 2009-11-21 at 3375bf4)
319
+ + No diff -b/-w output for all-whitespace changes
320
+ (this branch is used by jc/1.7.0-diff-whitespace-prepare and jc/diff-whitespace-prepare.)
321
+
322
+Likewise but for the output of "diff --git" headers.
323
+
324
+* jc/1.7.0-diff-whitespace-prepare (2009-11-28) 2 commits
325
+ - diff: disable diff.bwoutputonly warning
326
+ - diff: flip the diff.bwoutputonly default to false
327
+ (this branch uses gb/1.7.0-diff-whitespace-only-output, jc/1.7.0-diff-whitespace-only-status and jc/diff-whitespace-prepare.)
328
+
329
+And this is to actually flip the default and eventually remove the warning.
330
+
331
+* ns/1.7.0-send-email-no-chain-reply-to (2009-08-22) 1 commit
332
+ - send-email: make --no-chain-reply-to the default
333
+
334
+And this is to actually flip the default in 1.7.0.
335
+
336
+--------------------------------------------------
337
+[Reverted from 'next']
338
+
339
+* jc/botched-maint-cygwin-count-objects (2009-11-24) 2 commits.
340
+ (merged to 'next' on 2009-11-25 at 8aa62a0)
341
+ + Revert "ST_BLOCKS_COUNTS_IN_BLKSIZE to say on-disk size is (st_blksize * st_blocks)"
342
+ (merged to 'next' on 2009-11-22 at 4ba5880)
343
+ + ST_BLOCKS_COUNTS_IN_BLKSIZE to say on-disk size is (st_blksize * st_blocks)
344
+
345
+This is a revert of the tip one I merged prematurely to 'next'. The real
346
+fix from Ramsay is already in 'master'.
347
+
348
+* ks/precompute-completion (2009-11-15) 4 commits.
349
+ (merged to 'next' on 2009-11-15 at 23cdb96)
350
+ + Revert ks/precompute-completion series
351
+ (merged to 'next' on 2009-10-28 at cd5177f)
352
+ + completion: ignore custom merge strategies when pre-generating
353
+ (merged to 'next' on 2009-10-22 at f46a28a)
354
+ + bug: precomputed completion includes scripts sources
355
+ (merged to 'next' on 2009-10-14 at adf722a)
356
+ + Speedup bash completion loading
357
+
358
+Reverted out of 'next', to be replaced with jn/faster-completion-startup
359
+topic.
360
+
361
+--------------------------------------------------
362
+[I have been too busy to purge these]
363
+
364
+* jn/rfc-pull-rebase-error-message (2009-11-12) 1 commit
365
+ . git-pull.sh --rebase: overhaul error handling when no candidates are found
366
+
367
+Replaced.
368
+
369
+* jc/log-tz (2009-03-03) 1 commit.
370
+ - Allow --date=local --date=other-format to work as expected
371
+
372
+Maybe some people care about this. I dunno.
373
+
374
+* jc/1.7.0-no-commit-no-ff-2 (2009-10-22) 1 commit.
375
+ . git-merge: forbid fast-forward and up-to-date when --no-commit is given
376
+
377
+This makes "git merge --no-commit" fail when it results in fast-forward or
378
+up-to-date. It appears nobody wants to have this, so I dropped it.
379
+
380
+* ne/rev-cache (2009-10-19) 7 commits.
381
+ . support for commit grafts, slight change to general mechanism
382
+ . support for path name caching in rev-cache
383
+ . full integration of rev-cache into git, completed test suite
384
+ . administrative functions for rev-cache, start of integration into git
385
+ . support for non-commit object caching in rev-cache
386
+ . basic revision cache system, no integration or features
387
+ . man page and technical discussion for rev-cache
388
+
389
+The author indicated that there is another round coming. Does not seem to
390
+pass the tests when merged to 'pu', so it has been ejected for now.
391
+
392
+* pb/gitweb-no-project-list (2009-11-06) 3 commits.
393
+ . gitweb: Polish the content tags support
394
+ . gitweb: Support for no project list on gitweb front page
395
+ . gitweb: Refactor project list routines
396
+
397
+I picked these up but didn't queue as Warthog9's comments made certain
398
+amount of sense to me.