What's cooking (2013/07 #10)
[git.git] / whats-cooking.txt
blobeef6d9cf4cbc413a094bac9113395acee724d206
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 Subject: What's cooking in git.git (Jul 2013, #10; Wed, 31)
4 X-master-at: 8dc84fdc48a79c70682e6c361a82d0f3e1db9a03
5 X-next-at: 025c443e44c008c3a3dd7b83658f4e9734343e53
7 What's cooking in git.git (Jul 2013, #10; Wed, 31)
8 --------------------------------------------------
10 Here are the topics that have been cooking.  Commits prefixed with
11 '-' are only in 'pu' (proposed updates) while commits prefixed with
12 '+' are in 'next'.
14 Hopefully the 1.8.4-rc1 tomorrow with topics marked for 'master'
15 in this issue of "What's cooking" report.
17 You can find the changes described here in the integration branches
18 of the repositories listed at
20     http://git-blame.blogspot.com/p/git-public-repositories.html
22 --------------------------------------------------
23 [Graduated to "master"]
25 * bc/completion-for-bash-3.0 (2013-07-24) 1 commit
26   (merged to 'next' on 2013-07-24 at 913d89c)
27  + git-completion.bash: replace zsh notation that breaks bash 3.X
30 * ds/doc-two-kinds-of-tags (2013-07-29) 1 commit
31   (merged to 'next' on 2013-07-30 at 1201ca7)
32  + docs/git-tag: explain lightweight versus annotated tags
35 * jk/capabilities-doc (2013-07-26) 5 commits
36   (merged to 'next' on 2013-07-29 at cf3f07e)
37  + document 'allow-tip-sha1-in-want' capability
38   (merged to 'next' on 2013-07-24 at 5af9a33)
39  + document 'quiet' receive-pack capability
40  + document 'agent' protocol capability
41  + docs: note that receive-pack knows side-band-64k capability
42  + docs: fix 'report-status' protocol capability thinko
45 * jk/commit-how-to-abort-cherry-pick (2013-07-29) 1 commit
46   (merged to 'next' on 2013-07-30 at 7b1c49c)
47  + commit: tweak empty cherry pick advice for sequencer
50 * mh/packed-refs-do-one-ref-recursion (2013-07-17) 1 commit
51   (merged to 'next' on 2013-07-30 at d8cc1ee)
52  + do_one_ref(): save and restore value of current_ref
54  Fix a NULL-pointer dereference during nested iterations over
55  references (for example, when replace references are being used).
58 * rj/commit-slab-fix (2013-07-29) 1 commit
59   (merged to 'next' on 2013-07-30 at 1914f37)
60  + commit-slab.h: Fix memory allocation and addressing
63 * rr/maint-tilde-markup-in-doc (2013-07-26) 1 commit
64   (merged to 'next' on 2013-07-30 at c8f83d5)
65  + config doc: quote paths, fixing tilde-interpretation
68 * rr/rebase-autostash (2013-07-29) 1 commit
69   (merged to 'next' on 2013-07-30 at 0095e2d)
70  + git-rebase: fix typo
73 * sb/mailmap-updates (2013-07-24) 1 commit
74   (merged to 'next' on 2013-07-24 at 9f8e681)
75  + .mailmap: combine more (email, name) to individual persons
77 --------------------------------------------------
78 [New Topics]
80 * bc/unuse-packfile (2013-07-30) 1 commit
81  - sha1_file: introduce close_one_pack() to close packs on fd pressure
83  Will merge to and cook in 'next'.
86 * da/darwin (2013-07-30) 1 commit
87  - imap-send: use Apple's Security framework for base64 encoding
89  Will merge to and cook in 'next'.
92 * jc/rm-submodule-error-message (2013-07-25) 1 commit
93  - builtin/rm.c: consolidate error reporting for removing submodules
95  Consolidate two messages phrased subtly differently without a good
96  reason.
98  Will merge to 'next' and then to 'master', unless there is an objection.
101 * ms/subtree-install-fix (2013-07-30) 1 commit
102  - contrib/subtree: Fix make install target
104  Will merge to 'next' and then to 'master'.
107 * nd/sq-quote-buf (2013-07-30) 3 commits
108  - quote: remove sq_quote_print()
109  - tar-tree: remove dependency on sq_quote_print()
110  - for-each-ref, quote: convert *_quote_print -> *_quote_buf
112  Code simplification as a preparatory step to something larger.
114  Will merge to and cook in 'next'.
117 * jc/url-match (2013-07-31) 6 commits
118  - config: "git config --get-urlmatch" parses section.<url>.key
119  - builtin/config: refactor collect_config()
120  - config: parse http.<url>.<variable> using urlmatch
121  - config: add generic callback wrapper to parse section.<url>.key
122  - config: add helper to normalize and match URLs
123  - http.c: fix parsing of http.sslCertPasswordProtected variable
125  Reroll of km/http-curl-config-per-url topic.
127  Will merge to and cook in 'next'
129 --------------------------------------------------
130 [Stalled]
132 * tr/log-full-diff-keep-true-parents (2013-07-29) 2 commits
133  - SQUASH??? free saved-parents slab when done
134  - [PERHAPS LIKE THIS] log: use true parents for diff even when rewriting
137 * tf/gitweb-ss-tweak (2013-07-15) 4 commits
138  - gitweb: make search help link less ugly
139  - gitweb: omit the repository owner when it is unset
140  - gitweb: vertically centre contents of page footer
141  - gitweb: ensure OPML text fits inside its box
143  Comments?
146 * rj/read-default-config-in-show-ref-pack-refs (2013-06-17) 3 commits
147  - ### DONTMERGE: needs better explanation on what config they need
148  - pack-refs.c: Add missing call to git_config()
149  - show-ref.c: Add missing call to git_config()
151  The changes themselves are probably good, but it is unclear what
152  basic setting needs to be read for which exact operation.
154  Waiting for clarification.
155  $gmane/228294
158 * jh/shorten-refname (2013-05-07) 4 commits
159  - t1514: refname shortening is done after dereferencing symbolic refs
160  - shorten_unambiguous_ref(): Fix shortening refs/remotes/origin/HEAD to origin
161  - t1514: Demonstrate failure to correctly shorten "refs/remotes/origin/HEAD"
162  - t1514: Add tests of shortening refnames in strict/loose mode
164  When remotes/origin/HEAD is not a symbolic ref, "rev-parse
165  --abbrev-ref remotes/origin/HEAD" ought to show "origin", not
166  "origin/HEAD", which is fixed with this series (if it is a symbolic
167  ref that points at remotes/origin/something, then it should show
168  "origin/something" and it already does).
170  Expecting a reroll, as an early part of a larger series.
171  $gmane/225137
174 * jk/list-objects-sans-blobs (2013-06-06) 4 commits
175  . archive: ignore blob objects when checking reachability
176  . list-objects: optimize "revs->blob_objects = 0" case
177  . upload-archive: restrict remote objects with reachability check
178  . clear parsed flag when we free tree buffers
180  Attempt to allow "archive --remote=$there $arbitrary_sha1" while
181  keeping the reachability safety.
183  Seems to break some tests in a trivial and obvious way.
186 * mg/more-textconv (2013-05-10) 7 commits
187  - grep: honor --textconv for the case rev:path
188  - grep: allow to use textconv filters
189  - t7008: demonstrate behavior of grep with textconv
190  - cat-file: do not die on --textconv without textconv filters
191  - show: honor --textconv for blobs
192  - diff_opt: track whether flags have been set explicitly
193  - t4030: demonstrate behavior of show with textconv
195  Make "git grep" and "git show" pay attention to --textconv when
196  dealing with blob objects.
198  I thought this was pretty well designed and executed, but it seems
199  there are some doubts on the list; kicked back to 'pu'.
202 * jc/format-patch (2013-04-22) 2 commits
203  - format-patch: --inline-single
204  - format-patch: rename "no_inline" field
206  A new option to send a single patch to the standard output to be
207  appended at the bottom of a message.  I personally have no need for
208  this, but it was easy enough to cobble together.  Tests, docs and
209  stripping out more MIMEy stuff are left as exercises to interested
210  parties.
212  Not ready for inclusion.
214  Will discard unless we hear from anybody who is interested in
215  tying its loose ends.
218 * jk/gitweb-utf8 (2013-04-08) 4 commits
219  - gitweb: Fix broken blob action parameters on blob/commitdiff pages
220  - gitweb: Don't append ';js=(0|1)' to external links
221  - gitweb: Make feed title valid utf8
222  - gitweb: Fix utf8 encoding for blob_plain, blobdiff_plain, commitdiff_plain, and patch
224  Various fixes to gitweb.
226  Drew Northup volunteered to take a look into this.
227  $gmane/226216
230 * jc/show-branch (2013-06-07) 5 commits
231  - show-branch: use commit slab to represent bitflags of arbitrary width
232  - show-branch.c: remove "all_mask"
233  - show-branch.c: abstract out "flags" operation
234  - show-branch.c: lift all_mask/all_revs to a global static
235  - show-branch.c: update comment style
237  Waiting for the final step to lift the hard-limit before sending it out.
239 --------------------------------------------------
240 [Cooking]
242 * jl/submodule-mv (2013-07-30) 5 commits
243  - rm: delete .gitmodules entry of submodules removed from the work tree
244  - mv: update the path entry in .gitmodules for moved submodules
245  - submodule.c: add .gitmodules staging helper functions
246  - mv: move submodules using a gitfile
247  - mv: move submodules together with their work trees
248  (this branch uses nd/magic-pathspec.)
250  "git mv A B" when moving a submodule A does "the right thing",
251  inclusing relocating its working tree and adjusting the paths in
252  the .gitmodules file.
254  Waiting for a reroll.
257 * ob/typofixes (2013-07-29) 1 commit
258   (merged to 'next' on 2013-07-30 at ec2c897)
259  + many small typofixes
261  Will merge to 'next'.
264 * ma/hg-to-git (2013-07-23) 1 commit
265   (merged to 'next' on 2013-07-30 at 1dddc06)
266  + hg-to-git: --allow-empty-message in git commit
268  Will merge to 'master'.
271 * nd/clone-connectivity-shortcut (2013-07-23) 1 commit
272   (merged to 'next' on 2013-07-30 at 8d16721)
273  + smart http: use the same connectivity check on cloning
275  Will cook in 'next'.
278 * jx/clean-interactive (2013-07-24) 2 commits
279   (merged to 'next' on 2013-07-30 at b7fd474)
280  + git-clean: implement partial matching for selection
281   (merged to 'next' on 2013-07-24 at 1e63bb9)
282  + Documentation/git-clean: fix description for range
284  Will merge to 'master'.
287 * db/http-savecookies (2013-07-30) 1 commit
288   (merged to 'next' on 2013-07-30 at d2ad6e5)
289  + http: add http.savecookies option to write out HTTP cookies
291  Will cook in 'next'.
294 * lf/echo-n-is-not-portable (2013-07-29) 1 commit
295   (merged to 'next' on 2013-07-30 at e223ceb)
296  + Avoid using `echo -n` anywhere
298  Will merge to 'master'.
301 * sb/fsck-opt-bool (2013-07-29) 1 commit
302   (merged to 'next' on 2013-07-30 at 8a9964c)
303  + fsck: Replace deprecated OPT_BOOLEAN by OPT_BOOL
305  Will cook in 'next'.
308 * rr/feed-real-path-to-editor (2013-07-29) 1 commit
309   (merged to 'next' on 2013-07-30 at 72c9bcb)
310  + editor: use canonicalized absolute path
312  Will cook in 'next'.
315 * rj/doc-rev-parse (2013-07-22) 2 commits
316   (merged to 'next' on 2013-07-22 at 8188667)
317  + rev-parse(1): logically group options
318  + rev-parse: remove restrictions on some options
320  Will cook in 'next'.
323 * jk/fast-import-empty-ls (2013-06-23) 4 commits
324   (merged to 'next' on 2013-07-22 at d26dab6)
325  + fast-import: allow moving the root tree
326  + fast-import: allow ls or filecopy of the root tree
327  + fast-import: set valid mode on root tree in "ls"
328  + t9300: document fast-import empty path issues
330  Will cook in 'next'.
333 * jc/diff-filter-negation (2013-07-19) 6 commits
334   (merged to 'next' on 2013-07-22 at 80d167d)
335  + diff: deprecate -q option to diff-files
336  + diff: allow lowercase letter to specify what change class to exclude
337  + diff: reject unknown change class given to --diff-filter
338  + diff: preparse --diff-filter string argument
339  + diff: factor out match_filter()
340  + diff: pass the whole diff_options to diffcore_apply_filter()
341  (this branch is used by jc/hold-diff-remove-q-synonym-for-no-deletion.)
343  Teach "git diff --diff-filter" to express "I do not want to see
344  these classes of changes" more directly by listing only the
345  unwanted ones in lowercase (e.g. "--diff-filter=d" will show
346  everything but deletion) and deprecate "diff-files -q" which did
347  the same thing as "--diff-filter=d".
349  Will cook in 'next'.
352 * nd/magic-pathspec (2013-07-23) 48 commits
353   (merged to 'next' on 2013-07-23 at 784c3a1)
354  + rm: do not set a variable twice without intermediate reading.
355   (merged to 'next' on 2013-07-22 at 39f7194)
356  + t6131 - skip tests if on case-insensitive file system
357  + parse_pathspec: accept :(icase)path syntax
358  + pathspec: support :(glob) syntax
359  + pathspec: make --literal-pathspecs disable pathspec magic
360  + pathspec: support :(literal) syntax for noglob pathspec
361  + kill limit_pathspec_to_literal() as it's only used by parse_pathspec()
362  + parse_pathspec: preserve prefix length via PATHSPEC_PREFIX_ORIGIN
363  + parse_pathspec: make sure the prefix part is wildcard-free
364  + rename field "raw" to "_raw" in struct pathspec
365  + tree-diff: remove the use of pathspec's raw[] in follow-rename codepath
366  + remove match_pathspec() in favor of match_pathspec_depth()
367  + remove init_pathspec() in favor of parse_pathspec()
368  + remove diff_tree_{setup,release}_paths
369  + convert common_prefix() to use struct pathspec
370  + convert add_files_to_cache to take struct pathspec
371  + convert {read,fill}_directory to take struct pathspec
372  + convert refresh_index to take struct pathspec
373  + convert report_path_error to take struct pathspec
374  + checkout: convert read_tree_some to take struct pathspec
375  + convert unmerge_cache to take struct pathspec
376  + convert run_add_interactive to use struct pathspec
377  + convert read_cache_preload() to take struct pathspec
378  + line-log: convert to use parse_pathspec
379  + reset: convert to use parse_pathspec
380  + add: convert to use parse_pathspec
381  + check-ignore: convert to use parse_pathspec
382  + archive: convert to use parse_pathspec
383  + ls-files: convert to use parse_pathspec
384  + rm: convert to use parse_pathspec
385  + checkout: convert to use parse_pathspec
386  + rerere: convert to use parse_pathspec
387  + status: convert to use parse_pathspec
388  + commit: convert to use parse_pathspec
389  + clean: convert to use parse_pathspec
390  + guard against new pathspec magic in pathspec matching code
391  + parse_pathspec: support prefixing original patterns
392  + parse_pathspec: support stripping/checking submodule paths
393  + parse_pathspec: support stripping submodule trailing slashes
394  + parse_pathspec: add special flag for max_depth feature
395  + convert some get_pathspec() calls to parse_pathspec()
396  + parse_pathspec: add PATHSPEC_PREFER_{CWD,FULL} flags
397  + parse_pathspec: save original pathspec for reporting
398  + add parse_pathspec() that converts cmdline args to struct pathspec
399  + pathspec: add copy_pathspec
400  + pathspec: i18n-ize error strings in pathspec parsing code
401  + move struct pathspec and related functions to pathspec.[ch]
402  + clean: remove unused variable "seen"
403  (this branch is used by jl/submodule-mv.)
405  Use "struct pathspec" interface in more places, instead of array of
406  characters, the latter of which cannot express magic pathspecs
407  (e.g. ":(icase)makefile" that matches both Makefile and makefile).
409  Will cook in 'next'.
412 * jc/check-x-z (2013-07-11) 4 commits
413   (merged to 'next' on 2013-07-15 at 62751bc)
414  + check-attr -z: a single -z should apply to both input and output
415  + check-ignore -z: a single -z should apply to both input and output
416  + check-attr: the name of the character is NUL, not NULL
417  + check-ignore: the name of the character is NUL, not NULL
419  "git check-ignore -z" applied the NUL termination to both its input
420  (with --stdin) and its output, but "git check-attr -z" ignored the
421  option on the output side.
423  This is potentially a backward incompatible fix.  I am tempted to
424  merge this to and keep it in 'next' for a while to see if anybody
425  screams before deciding if we want to do anything to help existing
426  users (there may be none).
428  Will cook in 'next'.
431 * ms/fetch-prune-configuration (2013-07-18) 1 commit
432   (merged to 'next' on 2013-07-21 at 7ffb690)
433  + fetch: make --prune configurable
435  Allow fetch.prune and remote.*.prune configuration variables to be set,
436  and "git fetch" to behave as if "--prune" is given.
438  "git fetch" that honors remote.*.prune is fine, but I wonder if we
439  should somehow make "git push" aware of it as well.  Perhaps
440  remote.*.prune should not be just a boolean, but a 4-way "none",
441  "push", "fetch", "both"?
443  Will cook in 'next'.
446 * km/svn-1.8-serf-only (2013-07-18) 3 commits
447   (merged to 'next' on 2013-07-19 at ab8d034)
448  + Git.pm: revert _temp_cache use of temp_is_locked
449   (merged to 'next' on 2013-07-12 at 70e0b95)
450  + git-svn: allow git-svn fetching to work using serf
451  + Git.pm: add new temp_is_locked function
453  Subversion 1.8.0 that was recently released breaks older subversion
454  clients coming over http/https in various ways.
456  Will cook in 'next'.
459 * tr/merge-recursive-index-only (2013-07-07) 3 commits
460  - merge-recursive: -Xindex-only to leave worktree unchanged
461  - merge-recursive: untangle double meaning of o->call_depth
462  - merge-recursive: remove dead conditional in update_stages()
464  Will hold, until we get any user.
467 * jc/push-cas (2013-07-22) 6 commits
468   (merged to 'next' on 2013-07-23 at 72371b0)
469  + t5533: test "push --force-with-lease"
470  + push --force-with-lease: tie it all together
471  + push --force-with-lease: implement logic to populate old_sha1_expect[]
472  + remote.c: add command line option parser for "--force-with-lease"
473  + builtin/push.c: use OPT_BOOL, not OPT_BOOLEAN
474  + cache.h: move remote/connect API out of it
476  Allow a safer "rewind of the remote tip" push than blind "--force",
477  by requiring that the overwritten remote ref to be unchanged since
478  the new history to replace it was prepared.
480  The machinery is more or less ready.  The "--force" option is again
481  the big red button to override any safety, thanks to J6t's sanity
482  (the original round allowed --lockref to defeat --force).
484  The logic to choose the default implemented here is fragile
485  (e.g. "git fetch" after seeing a failure will update the
486  remote-tracking branch and will make the next "push" pass,
487  defeating the safety pretty easily).  It is suitable only for the
488  simplest workflows, and it may hurt users more than it helps them.
490  Will cook in 'next'.
493 * jc/pull-training-wheel (2013-07-19) 1 commit
494   (merged to 'next' on 2013-07-22 at 748180e)
495  + pull: require choice between rebase/merge on non-fast-forward pull
497  Make "git pull" (without arguments that say what branch to
498  integrate from where) refuse with "it does not fast forward; choose
499  between 'pull --merge' and 'pull --rebase'".
501  See
503  http://thread.gmane.org/gmane.comp.version-control.git/225146/focus=225326
504  http://thread.gmane.org/gmane.comp.version-control.git/225146/focus=229221
506  for full discussion.
508  Will cook in 'next'.
511 * rj/cygwin-clarify-use-of-cheating-lstat (2013-07-18) 1 commit
512  - cygwin: Remove the Win32 l/stat() implementation
514  Cygwin port added a "not quite correct but a lot faster and good
515  enough for many lstat() calls that are only used to see if the
516  working tree entity matches the index entry" lstat() emulation some
517  time ago, and it started biting us in places.  This removes it and
518  uses the standard lstat() that comes with Cygwin.
520  Will merge to and cook in 'next'.
523 * jc/reflog-doc (2013-06-19) 1 commit
524  - setup_reflog_action: document the rules for using GIT_REFLOG_ACTION
526  Document rules to use GIT_REFLOG_ACTION variable in the scripted
527  Porcelain.  git-rebase--interactive locally violates this, but it
528  is a leaf user that does not call out to or dot-sources other
529  scripts, so fixing it is not all that urgent.
532 * jn/add-2.0-u-A-sans-pathspec (2013-04-26) 1 commit
533  - git add: -u/-A now affects the entire working tree
535  Will cook in 'next' until Git 2.0.
538 * jc/core-checkstat-2.0 (2013-05-06) 1 commit
539  - core.statinfo: remove as promised in Git 2.0
541  Will cook in 'next' until Git 2.0.
544 * jc/push-2.0-default-to-simple (2013-06-18) 1 commit
545  - push: switch default from "matching" to "simple"
547  Will cook in 'next' until Git 2.0.
550 * jc/add-2.0-ignore-removal (2013-04-22) 1 commit
551  - git add <pathspec>... defaults to "-A"
553  Updated endgame for "git add <pathspec>" that defaults to "--all"
554  aka "--no-ignore-removal".
556  Will cook in 'next' until Git 2.0.
559 * jc/hold-diff-remove-q-synonym-for-no-deletion (2013-07-19) 1 commit
560  - diff: remove "diff-files -q" in a version of Git in a distant future
561  (this branch uses jc/diff-filter-negation.)
563  Will cook in 'next' until a distant future.
565 --------------------------------------------------
566 [Discarded]
568 * jh/remote-hg-fetch-fix (2013-07-25) 2 commits
569   (merged to 'next' on 2013-07-25 at 33161ad)
570  + Revert "remotes-hg: bugfix for fetching non local remotes"
571   (merged to 'next' on 2013-07-24 at 9c96641)
572  + remotes-hg: bugfix for fetching non local remotes
574  Reverted.
576  Waiting for the final patch to replace, after discussion settles.
579 * km/http-curl-config-per-url (2013-07-31) 7 commits
580   (merged to 'next' on 2013-07-31 at e88aad5)
581  + Revert km/http-curl-config-per-url in its entirety
582   (merged to 'next' on 2013-07-25 at 531e8cb)
583  + docs: update http.<url>.* options documentation
584   (merged to 'next' on 2013-07-23 at f84689b)
585  + config: allow http.<url>.* any user matching
586  + tests: add new test for the url_normalize function
587  + config: improve support for http.<url>.* settings
588  + config: add support for http.<url>.* settings
589  + http.c: fix parsing of http.sslCertPasswordProtected variable
591  Reverted to be replaced with a reroll (jc/url-match topic).