What's cooking

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