Reintegrate: remove the "what next" markers from log messages
[git/jrn.git] / whats-cooking.txt
blobd344b14e41ff2d2ee875772a5da231c93d9a895f
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 Subject: What's cooking in git.git (May 2013, #07; Fri, 24)
4 X-master-at: edca4152560522a431a51fc0a06147fc680b5b18
5 X-next-at: ea353ceddcd1414717ea6ae8fce60c7b4d705849
7 What's cooking in git.git (May 2013, #07; Fri, 24)
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 There are topics that are still in 'next', not because they needed
15 more testing, but only because we already were in the -rc period.
16 Now that 1.8.3 is out, we will start merging them to 'master' (and
17 some to 'maint' for 1.8.3.1) in the middle of the next week, after
18 waiting for a few days to make sure we can have a clean start of the
19 post 1.8.3 maint branch (with brown paper bag fixes and nothing
20 else).
22 The post 1.8.3 cycle will start early next month, at which time the
23 'next' branch will be rewound and rebuilt.  Until then, I expect
24 that my patch queue may stay leaky while I take a bit of break.
26 You can find the changes described here in the integration branches
27 of the repositories listed at
29     http://git-blame.blogspot.com/p/git-public-repositories.html
31 --------------------------------------------------
32 [New Topics]
34 * mh/reflife (2013-05-22) 17 commits
35  - refs: document the lifetime of the refname passed to each_ref_fn
36  - object_array_entry: copy name before storing in name field
37  - find_first_merges(): remove unnecessary code
38  - find_first_merges(): initialize merges variable using initializer
39  - fsck: don't put a void*-shaped peg in a char*-shaped hole
40  - object_array_remove_duplicates(): rewrite to reduce copying
41  - object_array: add function object_array_filter()
42  - get_revision_internal(): make check less mysterious
43  - gc_boundary(): move the check "alloc <= nr" to caller
44  - revision: split some overly-long lines
45  - cmd_diff(): make it obvious which cases are exclusive of each other
46  - cmd_diff(): rename local variable "list" -> "entry"
47  - cmd_diff(): use an object_array for holding trees
48  - builtin_diff_tree(): make it obvious that function wants two entries
49  - add_rev_cmdline(): make a copy of the name argument
50  - fetch: make own copies of refnames
51  - describe: make own copy of refname
53  Define memory ownership and lifetime rules for what for-each-ref
54  feeds to its callbacks (in short, "you do not own it, so make a
55  copy if you want to keep it").
57  Some parts are still RFC.
60 * th/bisect-skip-report-range-fix (2013-05-22) 1 commit
61  - bisect: Fix log output for multi-parent skip ranges
63  Fix for an additional bisect log comments.
65  Will merge to 'next'.
68 * mm/mediawiki-https-fail-message (2013-05-23) 1 commit
69  - git-remote-mediawiki: better error message when HTTP(S) access fails
71  Hint users when https:// connection failed to check the
72  certificate; it is a good hint if we assumie that it is common
73  error for the end users to make.
75  Will merge to 'next'.
78 * tg/maint-zsh-svn-remote-prompt (2013-05-22) 1 commit
79  - prompt: fix show upstream with svn and zsh
81  zsh prompt script that borrowed from bash prompt script did not
82  work due to slight differences in array variable notation between
83  these two shells.
85  Will merge to 'next'.
88 * tr/push-no-verify-doc (2013-05-23) 1 commit
89  - Document push --no-verify
91  "git push --[no-]verify" was not documented.
93  Will merge to 'next'.
96 --------------------------------------------------
97 [Stalled]
99 * rj/mingw-cygwin (2013-05-08) 2 commits
100  - cygwin: Remove the CYGWIN_V15_WIN32API build variable
101  - mingw: rename WIN32 cpp macro to GIT_WINDOWS_NATIVE
103  Update build for Cygwin 1.[57].  There seems to have been some
104  discussion but did anything concrete come out of it???
107 * mh/multimail (2013-04-21) 1 commit
108  - git-multimail: a replacement for post-receive-email
110  Waiting for the initial history to pull from.
111  $gmane/223564
114 * jc/format-patch (2013-04-22) 2 commits
115  - format-patch: --inline-single
116  - format-patch: rename "no_inline" field
118  A new option to send a single patch to the standard output to be
119  appended at the bottom of a message.  I personally have no need for
120  this, but it was easy enough to cobble together.  Tests, docs and
121  stripping out more MIMEy stuff are left as exercises to interested
122  parties.
124  Not ready for inclusion.
127 * jk/gitweb-utf8 (2013-04-08) 4 commits
128  - gitweb: Fix broken blob action parameters on blob/commitdiff pages
129  - gitweb: Don't append ';js=(0|1)' to external links
130  - gitweb: Make feed title valid utf8
131  - gitweb: Fix utf8 encoding for blob_plain, blobdiff_plain, commitdiff_plain, and patch
133  Various fixes to gitweb.
135  Waiting for a reroll after a review.
138 * jk/commit-info-slab (2013-04-19) 3 commits
139  - commit-slab: introduce a macro to define a slab for new type
140  - commit-slab: avoid large realloc
141  - commit: allow associating auxiliary info on-demand
142  (this branch is used by jc/show-branch.)
144  Technology demonstration to show a way we could use unbound number
145  of flag bits on commit objects.
148 * jn/config-ignore-inaccessible (2013-04-15) 1 commit
149   (merged to 'next' on 2013-05-07 at 4f09e24)
150  + config: allow inaccessible configuration under $HOME
152  When $HOME is misconfigured to point at an unreadable directory, we
153  used to complain and die. This loosens the check.
155 --------------------------------------------------
156 [Cooking]
158 * dm/unbash-subtree (2013-05-21) 1 commit
159  - contrib/git-subtree: Use /bin/sh interpreter instead of /bin/bash
161  It turns out that git-subtree script does not have to be run with
162  bash.
164  Will merge to 'next'.
167 * fc/transport-helper-no-refspec (2013-05-21) 2 commits
168  - transport-helper: check if the dry-run is supported
169  - transport-helper: barf when user tries old:new
171  With "export" remote-helper protocol, (1) a push that tries to
172  update a remote ref whose name is different from the pushing side
173  does not work yet, and (2) the helper may not know how to do
174  --dry-run, so detect such problematic cases and disable them for
175  now.
177  Will merge to 'next'.
180 * rr/die-on-missing-upstream (2013-05-22) 2 commits
181  - sha1_name: fix error message for @{<N>}, @{<date>}
182  - sha1_name: fix error message for @{u}
184  When a reflog notation is used for implicit "current branch", we
185  did not say which branch and worse said "branch ''".
187  Waiting for series of rerolls to settle.
190 * jc/show-branch (2013-05-21) 5 commits
191  - show-branch: use commit slab to represent bitflags of arbitrary width
192  - show-branch.c: remove "all_mask"
193  - show-branch.c: abstract out "flags" operation
194  - show-branch.c: lift all_mask/all_revs to a global static
195  - show-branch.c: update comment style
196  (this branch uses jk/commit-info-slab.)
198  Waiting for the final step to lift the hard-limit before sending it out.
201 * fc/remote-bzr (2013-05-16) 6 commits
202  - remote-bzr: trivial cleanups
203  - remote-bzr: change global repo
204  - remote-bzr: delay cloning/pulling
205  - remote-bzr: simplify get_remote_branch()
206  - remote-bzr: fix for files with spaces
207  - remote-bzr: recover from failed clones
209  The ones near the tip conflicted with the hotfix for 1.8.3 so I
210  discarded them for now.
212  Expecting a reroll on top of 1.8.3
215 * jx/clean-interactive (2013-05-22) 15 commits
216  - test: add t7301 for git-clean--interactive
217  - git-clean: add documentation for interactive git-clean
218  - git-clean: add ask each interactive action
219  - git-clean: add select by numbers interactive action
220  - git-clean: add filter by pattern interactive action
221  - git-clean: use a git-add-interactive compatible UI
222  - git-clean: add colors to interactive git-clean
223  - git-clean: show items of del_list in columns
224  - git-clean: add support for -i/--interactive
225  - git-clean: refactor git-clean into two phases
226  - Refactor write_name_quoted_relative, remove unused params
227  - Refactor quote_path_relative, remove unused params
228  - quote.c: remove path_relative, use relative_path instead
229  - path.c: refactor relative_path(), not only strip prefix
230  - test: add test cases for relative_path
232  Still under discussion, e.g. $gmane/225139.
235 * tr/test-v-and-v-subtest-only (2013-05-16) 6 commits
236  - test-lib: support running tests under valgrind in parallel
237  - test-lib: allow prefixing a custom string before "ok N" etc.
238  - test-lib: valgrind for only tests matching a pattern
239  - test-lib: verbose mode for only tests matching a pattern
240  - test-lib: refactor $GIT_SKIP_TESTS matching
241  - test-lib: enable MALLOC_* for the actual tests
243  Allows N instances of tests run in parallel, each running 1/N parts
244  of the test suite under Valgrind, to speed things up.
246  The tip one may be useful in practice but is a tad ugly ;-)
249 * rh/merge-options-doc-fix (2013-05-16) 1 commit
250   (merged to 'next' on 2013-05-21 at f76baf3)
251  + Documentation/merge-options.txt: restore `-e` option
253  Will merge to 'master'.
256 * rr/zsh-color-prompt (2013-05-17) 3 commits
257  - prompt: colorize ZSH prompt
258  - prompt: factor out gitstring coloring logic
259  - prompt: introduce GIT_PS1_STATESEPARATOR
261  Will merge to 'next'.
264 * an/diff-index-doc (2013-05-20) 1 commit
265   (merged to 'next' on 2013-05-21 at 6e1459b)
266  + Documentation/diff-index: mention two modes of operation
268  Will merge to 'master'.
271 * fc/contrib-related (2013-05-20) 1 commit
272  - Add new git-related helper to contrib
274  Waiting the design review for this earliest part to settle.
277 * mc/describe-first-parent (2013-05-20) 1 commit
278   (merged to 'next' on 2013-05-21 at 2e02ffc)
279  + describe: Add --first-parent option
281  Will merge to 'master'.
284 * rs/tar-tests (2013-05-20) 6 commits
285   (merged to 'next' on 2013-05-21 at aed12a7)
286  + t5000: test long filenames
287  + t5000: simplify tar-tree tests
288  + t5000: use check_tar for prefix test
289  + t5000: factor out check_tar
290  + t5000, t5003: create directories for extracted files lazily
291  + t5000: integrate export-subst tests into regular tests
293  Will merge to 'master'.
296 * da/darwin (2013-05-21) 4 commits
297   (merged to 'next' on 2013-05-21 at 0497edb)
298  + imap-send: eliminate HMAC deprecation warnings on Mac OS X
299  + cache.h: eliminate SHA-1 deprecation warnings on Mac OS X
300  + Makefile: add support for Apple CommonCrypto facility
301  + Makefile: fix default regex settings on Darwin
303  Newer MacOS X encourages the programs to compile and link with
304  their CommonCrypto, not with OpenSSL.
306  Will merge to 'master'.
309 * fc/macos-x-clipped-write (2013-05-17) 1 commit
310   (merged to 'next' on 2013-05-21 at 510b0dd)
311  + compate/clipped-write.c: large write(2) fails on Mac OS X/XNU
313  Mac OS X does not like to write(2) more than INT_MAX number of
314  bytes.
316  Will merge to 'master'.
319 * fc/remote-hg (2013-05-21) 41 commits
320  - remote-hg: remove files before modifications
321  - remote-hg: improve lightweight tag author
322  - remote-hg: use remote 'default' not local one
323  - remote-hg: improve branch listing
324  - remote-hg: simplify branch_tip()
325  - remote-hg: check diverged bookmarks
326  - remote-hg: pass around revision refs
327  - remote-hg: implement custom checkheads()
328  - remote-hg: implement custom push()
329  - remote-hg: only update necessary revisions
330  - remote-hg: force remote bookmark push selectively
331  - remote-hg: reorganize bookmark handling
332  - remote-hg: add test for failed double push
333  - remote-hg: add test for big push
334  - remote-hg: add test for new bookmark special
335  - remote-hg: add test for bookmark diverge
336  - remote-hg: add test for diverged push
337  - remote-hg: add test to push new bookmark
338  - remote-hg: add remote tests
339  - remote-hg: add check_bookmark() test helper
340  - remote-bzr: simplify test checks
341  - remote-hg: always point HEAD to master
342  - remote-hg: improve progress calculation
343  - remote-hg: trivial cleanups
344  - remote-hg: ensure remote rebasing works
345  - remote-hg: upgrade version 1 marks
346  - remote-hg: switch from revisions to SHA-1 noteids
347  - remote-hg: add version checks to the marks
348  - remote-hg: improve node traversing
349  - remote-hg: shuffle some code
350  - remote-hg: use a shared repository store
351  - remote-hg: load all extensions
352  - remote-hg: test: simplify previous branch checkout
353  - remote-helpers: test: simplify remote URLs
354  - remote-helpers: tests: general improvements
355  - remote-helpers: test: cleanup style
356  - remote-helpers: test: cleanup white-spaces
357  - remote-hg: trivial reorganization
358  - remote-hg: test: be a little more quiet
359  - remote-hg: tests: fix hg merge
360  - remote-helpers: tests: use python directly
362  The remainder are to be rerolled on top of the bottom-two, so I
363  flipped the order of the series.
365  Will merge the bottom two to 'next'.
366  Leaving the remainder up to Felipe to reroll or advance to 'next'.
369 * hv/config-from-blob (2013-05-12) 5 commits
370  - do not die when error in config parsing of buf occurs
371  - teach config --blob option to parse config from database
372  - config: make parsing stack struct independent from actual data source
373  - config: drop cf validity check in get_next_char()
374  - config: factor out config file stack management
376  Will see a resubmit.
377  $gmane/223964
380 * jc/t5551-posix-sed-bre (2013-05-12) 1 commit
381   (merged to 'next' on 2013-05-21 at d597ca1)
382  + t5551: do not use unportable sed '\+'
384  POSIX fix for a test script.
386  Will merge to 'master'.
389 * jk/fetch-always-update-tracking (2013-05-12) 4 commits
390   (merged to 'next' on 2013-05-21 at f7e4b16)
391  + fetch: opportunistically update tracking refs
392  + refactor "ref->merge" flag
393  + fetch/pull doc: untangle meaning of bare <ref>
394  + t5510: start tracking-ref tests from a known state
396  "git fetch origin master" unlike "git fetch origin" or "git fetch"
397  does not update "refs/remotes/origin/master" and it was an early
398  design decision to keep the update of remote tracking branches
399  predictable, but in practice it turns out that people find it more
400  convenient to opportunisticly update them whenever we have a
401  chance, and we have been updating them when we run "git push" which
402  already breaks the original "predictability" anyway.
404  Will merge to 'master'.
407 * nd/clone-connectivity-shortcut (2013-05-11) 4 commits
408  - clone: open a shortcut for connectivity check
409  - index-pack: remove dead code (it should never happen)
410  - fetch-pack: prepare updated shallow file before fetching the pack
411  - clone: let the user know when check_everything_connected is run
413  Needs some minor fixups.
414  $gmane/223584
417 * rr/rebase-autostash (2013-05-12) 7 commits
418  - rebase: implement --[no-]autostash and rebase.autostash
419  - rebase --merge: return control to caller, for housekeeping
420  - rebase -i: return control to caller, for housekeeping
421  - am: return control to caller, for housekeeping
422  - rebase: prepare to do generic housekeeping
423  - rebase -i: don't error out if $state_dir already exists
424  - am: tighten a conditional that checks for $dotest
426  This is from v3 with some "Fixed" message in $gmane/224111 without
427  a reroll yet.  Also there was an attempt to follow-up, but it was
428  never completed.
429  $gmane/224125
432 * kb/ancestry-path-threedots (2013-05-16) 2 commits
433   (merged to 'next' on 2013-05-21 at 5d75bd3)
434  + revision.c: treat A...B merge bases as if manually specified
435  + t6019: demonstrate --ancestry-path A...B breakage
436  (this branch is used by kb/full-history-compute-treesame-carefully-2.)
438  "git log --ancestry-path A...B" did not work as expected, as it did
439  not pay attention to the fact that the merge base between A and B
440  was the bottom of the range being specified.
442  Will merge to 'master'.
445 * kb/full-history-compute-treesame-carefully-2 (2013-05-16) 15 commits
446  - revision.c: make default history consider bottom commits
447  - revision.c: don't show all merges for --parents
448  - revision.c: discount side branches when computing TREESAME
449  - revision.c: add BOTTOM flag for commits
450  - simplify-merges: drop merge from irrelevant side branch
451  - simplify-merges: never remove all TREESAME parents
452  - t6012: update test for tweaked full-history traversal
453  - revision.c: Make --full-history consider more merges
454  - Documentation: avoid "uninteresting"
455  - rev-list-options.txt: correct TREESAME for P
456  - t6111: add parents to tests
457  - t6111: allow checking the parents as well
458  - t6111: new TREESAME test set
459  - t6019: test file dropped in -s ours merge
460  - decorate.c: compact table when growing
461  (this branch uses kb/ancestry-path-threedots.)
463  Major update to a very core part of the system to improve culling
464  of irrelevant parents while traversing a mergy history.
466  Will not be a 1.8.3 material, but is an important topic.
468  Will merge to 'next'.
471 * jc/strbuf-branchname-fix (2013-05-16) 1 commit
472   (merged to 'next' on 2013-05-21 at 5db8872)
473  + strbuf_branchname(): do not double-expand @{-1}~22
475  "git merge @{-1}~22" was rewritten to "git merge frotz@{1}~22"
476  incorrectly when your previous branch was "frotz" (it should be
477  rewritten to "git merge frotz~22" instead).
479  Will merge to 'master'.
482 * mk/combine-diff-context-horizon-fix (2013-05-15) 1 commit
483   (merged to 'next' on 2013-05-21 at f462c02)
484  + combine-diff.c: Fix output when changes are exactly 3 lines apart
486  "git diff -c -p" was not showing a deleted line from a hunk when
487  another hunk immediately begins where the earlier one ends.
489  Will merge to 'master'.
492 * mm/color-auto-default (2013-05-15) 2 commits
493  - make color.ui default to 'auto'
494  - config: refactor management of color.ui's default value
496  Flip the default for color.ui to 'auto', which is what many
497  tutorials recommend new users to do.  The updated code claims the
498  switch happened at Git 2.0 in the past tense, but we might want to
499  expedite it, as this change is not all that important to deserve a
500  major version bump.
502  I'd vote for merging this without waiting for 2.0.
505 * tr/coverage (2013-05-13) 4 commits
506   (merged to 'next' on 2013-05-21 at 8480007)
507  + coverage: build coverage-untested-functions by default
508  + coverage: set DEFAULT_TEST_TARGET to avoid using prove
509  + coverage: do not delete .gcno files before building
510  + coverage: split build target into compile and test
512  Update the test coverage support that was left to bitrot for some
513  time.
515  Will merge to 'master'.
518 * mg/more-textconv (2013-05-10) 7 commits
519   (merged to 'next' on 2013-05-21 at 701cdb7)
520  + grep: honor --textconv for the case rev:path
521  + grep: allow to use textconv filters
522  + t7008: demonstrate behavior of grep with textconv
523  + cat-file: do not die on --textconv without textconv filters
524  + show: honor --textconv for blobs
525  + diff_opt: track whether flags have been set explicitly
526  + t4030: demonstrate behavior of show with textconv
528  Make "git grep" and "git show" pay attention to --textconv when
529  dealing with blob objects.
531  I thought this was pretty well designed and executed, but it seems
532  there are some doubts on the list.
535 * jh/shorten-refname (2013-05-07) 4 commits
536  - t1514: refname shortening is done after dereferencing symbolic refs
537  - shorten_unambiguous_ref(): Fix shortening refs/remotes/origin/HEAD to origin
538  - t1514: Demonstrate failure to correctly shorten "refs/remotes/origin/HEAD"
539  - t1514: Add tests of shortening refnames in strict/loose mode
541  When remotes/origin/HEAD is not a symbolic ref, "rev-parse
542  --abbrev-ref remotes/origin/HEAD" ought to show "origin", not
543  "origin/HEAD", which is fixed with this series (if it is a symbolic
544  ref that points at remotes/origin/something, then it should show
545  "origin/something" and it already does).
547  Expecting a reroll, as an early part of a larger series.
550 * nd/clone-local-with-colon (2013-05-07) 1 commit
551   (merged to 'next' on 2013-05-21 at 3e293bd)
552  + clone: allow cloning local paths with colons in them
554  "git clone foo/bar:baz" cannot be a request to clone from a remote
555  over git-over-ssh specified in the scp style.  Detect this case and
556  clone from a local repository at "foo/bar:baz".
558  Will merge to 'master'.
561 * nd/warn-ambiguous-object-name (2013-05-07) 1 commit
562  - get_sha1: improve ambiguity warning regarding SHA-1 and ref names
564  "git cmd <name>", when <name> happens to be a 40-hex string,
565  directly uses the 40-hex string as an object name, even if a ref
566  "refs/<some hierarchy>/<name>" exists.  This disambiguation order
567  is unlikely to change, but we should warn about the ambiguity just
568  like we warn when more than one refs/ hierachies share the same
569  name.
571  The message needs to be fixed up, as this is not "refname is
572  ambiguous".
575 * fc/zsh-leftover-bits (2013-05-08) 2 commits
576   (merged to 'next' on 2013-05-21 at 1b84ec1)
577  + completion: synchronize zsh wrapper
578  + completion: cleanup zsh wrapper
580  Will merge to 'master'.
583 * rs/empty-archive (2013-05-09) 2 commits
584   (merged to 'next' on 2013-05-21 at 3e9e288)
585  + t5004: resurrect original empty tar archive test
586  + t5004: avoid using tar for checking emptiness of archive
588  Fixes tests added in 1.8.2 era that are broken on BSDs.
590  Will merge to 'master'.
593 * vv/help-unknown-ref (2013-05-08) 2 commits
594   (merged to 'next' on 2013-05-21 at 77a2941)
595  + merge: use help_unknown_ref()
596  + help: add help_unknown_ref()
598  Detect "git merge foo" that might have meant "git merge origin/foo"
599  and give an error message that is more specific than "foo is not
600  something we can merge".
602  Will merge to 'master'.
605 * fc/fast-export-persistent-marks (2013-05-07) 3 commits
606   (merged to 'next' on 2013-05-21 at 10b8214)
607  + fast-{import,export}: use get_sha1_hex() to read from marks file
608  + fast-export: don't parse commits while reading marks file
609  + fast-export: do not parse non-commit objects while reading marks file
611  Optimization for fast-export by avoiding unnecessarily resolving
612  arbitrary object name and parsing object when only presence and
613  type information is necessary, etc.
615  Will merge to 'master'.
618 * jc/core-checkstat-2.0 (2013-05-06) 2 commits
619  - core.statinfo: remove as promised in Git 2.0
620  - deprecate core.statinfo at Git 2.0 boundary
622  The bottom one is a fix for a breakage of a new feature in 1.8.2.
624  Will merge to 'next' (the bottom one only).
627 * jk/packed-refs-race (2013-05-06) 4 commits
628  - for_each_ref: load all loose refs before packed refs
629  - get_packed_refs: reload packed-refs file when it changes
630  - add a stat_validity struct
631  - resolve_ref: close race condition for packed refs
633  What is the status of this thing?
636 * fc/at-head (2013-05-08) 13 commits
637  - sha1_name: compare variable with constant, not constant with variable
638  - Add new @ shortcut for HEAD
639  - sha1_name: refactor reinterpret()
640  - sha1_name: check @{-N} errors sooner
641  - sha1_name: reorganize get_sha1_basic()
642  - sha1_name: don't waste cycles in the @-parsing loop
643  - sha1_name: remove unnecessary braces
644  - sha1_name: remove no-op
645  - tests: at-combinations: @{N} versus HEAD@{N}
646  - tests: at-combinations: increase coverage
647  - tests: at-combinations: improve nonsense()
648  - tests: at-combinations: check ref names directly
649  - tests: at-combinations: simplify setup
651  Instead of typing four capital letters "HEAD", you can say "@"
652  instead.
654  Will merge to 'next'.
657 * jk/lookup-object-prefer-latest (2013-05-02) 1 commit
658   (merged to 'next' on 2013-05-06 at cc59dcc)
659  + lookup_object: prioritize recently found objects
661  Optimizes object lookup when the object hashtable starts to become
662  crowded.
664  Will merge to 'master'.
667 * jk/subtree-do-not-push-if-split-fails (2013-05-01) 1 commit
668   (merged to 'next' on 2013-05-06 at 81bdf37)
669  + contrib/subtree: don't delete remote branches if split fails
671  "git subtree" (in contrib/) had one codepath with loose error
672  checks to lose data at the remote side.
674  Will merge to 'master'.
677 * fc/completion (2013-04-27) 9 commits
678   (merged to 'next' on 2013-05-21 at aba6ef1)
679  + completion: remove __git_index_file_list_filter()
680  + completion: add space after completed filename
681  + completion: add hack to enable file mode in bash < 4
682  + completion: refactor __git_complete_index_file()
683  + completion: refactor diff_index wrappers
684  + completion: use __gitcompadd for __gitcomp_file
685  + completion; remove unuseful comments
686  + completion: document tilde expansion failure in tests
687  + completion: add file completion tests
689  Will merge to 'master'.
692 * jk/test-output (2013-05-06) 3 commits
693   (merged to 'next' on 2013-05-06 at 7c03af3)
694  + t/Makefile: don't define TEST_RESULTS_DIRECTORY recursively
695   (merged to 'next' on 2013-05-01 at 63827c9)
696  + test output: respect $TEST_OUTPUT_DIRECTORY
697  + t/Makefile: fix result handling with TEST_OUTPUT_DIRECTORY
699  When TEST_OUTPUT_DIRECTORY setting is used, it was handled somewhat
700  inconsistently between the test framework and t/Makefile, and logic
701  to summarize the results looked at a wrong place.
703  Will merge to 'master'.
706 * rj/sparse (2013-04-28) 10 commits
707   (merged to 'next' on 2013-05-01 at 649e16c)
708  + sparse: Fix mingw_main() argument number/type errors
709  + compat/mingw.c: Fix some sparse warnings
710  + compat/win32mmap.c: Fix some sparse warnings
711  + compat/poll/poll.c: Fix a sparse warning
712  + compat/win32/pthread.c: Fix a sparse warning
713  + compat/unsetenv.c: Fix a sparse warning
714  + compat/nedmalloc: Fix compiler warnings on linux
715  + compat/nedmalloc: Fix some sparse warnings
716  + compat/fnmatch/fnmatch.c: Fix a sparse error
717  + compat/regex/regexec.c: Fix some sparse warnings
719  Will merge to 'master'.
722 * mh/fetch-into-shallow (2013-05-02) 2 commits
723   (merged to 'next' on 2013-05-03 at 3fadc61)
724  + t5500: add test for fetching with an unknown 'shallow'
725   (merged to 'next' on 2013-04-29 at a167d3e)
726  + upload-pack: ignore 'shallow' lines with unknown obj-ids
728  Will merge to 'master'.
731 * jh/checkout-auto-tracking (2013-04-21) 8 commits
732   (merged to 'next' on 2013-04-22 at 2356700)
733  + glossary: Update and rephrase the definition of a remote-tracking branch
734  + branch.c: Validate tracking branches with refspecs instead of refs/remotes/*
735  + t9114.2: Don't use --track option against "svn-remote"-tracking branches
736  + t7201.24: Add refspec to keep --track working
737  + t3200.39: tracking setup should fail if there is no matching refspec.
738  + checkout: Use remote refspecs when DWIMming tracking branches
739  + t2024: Show failure to use refspec when DWIMming remote branch names
740  + t2024: Add tests verifying current DWIM behavior of 'git checkout <branch>'
742  Updates "git checkout foo" that DWIMs the intended "upstream" and
743  turns it into "git checkout -t -b foo remotes/origin/foo" to
744  correctly take existing remote definitions into account.  The
745  remote "origin" may be what uniquely map its own branch to
746  remotes/some/where/foo but that some/where may not be "origin".
748  Will merge to 'master'.
751 * jc/prune-all (2013-04-25) 4 commits
752   (merged to 'next' on 2013-04-26 at 97a7387)
753  + prune: introduce OPT_EXPIRY_DATE() and use it
754   (merged to 'next' on 2013-04-22 at b00ccf6)
755  + api-parse-options.txt: document "no-" for non-boolean options
756  + git-gc.txt, git-reflog.txt: document new expiry options
757  + date.c: add parse_expiry_date()
758  (this branch is used by mh/packed-refs-various.)
760  We used the approxidate() parser for "--expire=<timestamp>" options
761  of various commands, but it is better to treat --expire=all and
762  --expire=now a bit more specially than using the current timestamp.
763  Update "git gc" and "git reflog" with a new parsing function for
764  expiry dates.
766  Will merge to 'master'.
769 * as/check-ignore (2013-04-29) 6 commits
770   (merged to 'next' on 2013-04-30 at 646931f)
771  + t0008: use named pipe (FIFO) to test check-ignore streaming
772   (merged to 'next' on 2013-04-21 at 7515aa8)
773  + Documentation: add caveats about I/O buffering for check-{attr,ignore}
774  + check-ignore: allow incremental streaming of queries via --stdin
775  + check-ignore: move setup into cmd_check_ignore()
776  + check-ignore: add -n / --non-matching option
777  + t0008: remove duplicated test fixture data
779  Enhance "check-ignore" (1.8.2 update) to work more like "check-attr"
780  over bidi-pipes.
782  Will merge to 'master'.
785 * mh/packed-refs-various (2013-05-01) 33 commits
786   (merged to 'next' on 2013-05-01 at e527153)
787  + refs: handle the main ref_cache specially
788  + refs: change do_for_each_*() functions to take ref_cache arguments
789  + pack_one_ref(): do some cheap tests before a more expensive one
790  + pack_one_ref(): use write_packed_entry() to do the writing
791  + pack_one_ref(): use function peel_entry()
792  + refs: inline function do_not_prune()
793  + pack_refs(): change to use do_for_each_entry()
794  + refs: use same lock_file object for both ref-packing functions
795  + pack_one_ref(): rename "path" parameter to "refname"
796  + pack-refs: merge code from pack-refs.{c,h} into refs.{c,h}
797  + pack-refs: rename handle_one_ref() to pack_one_ref()
798  + refs: extract a function write_packed_entry()
799  + repack_without_ref(): write peeled refs in the rewritten file
800  + t3211: demonstrate loss of peeled refs if a packed ref is deleted
801  + refs: change how packed refs are deleted
802  + search_ref_dir(): return an index rather than a pointer
803  + repack_without_ref(): silence errors for dangling packed refs
804  + t3210: test for spurious error messages for dangling packed refs
805  + refs: change the internal reference-iteration API
806  + refs: extract a function peel_entry()
807  + peel_ref(): fix return value for non-peelable, not-current reference
808  + peel_object(): give more specific information in return value
809  + refs: extract function peel_object()
810  + refs: extract a function ref_resolves_to_object()
811  + repack_without_ref(): use function get_packed_ref()
812  + peel_ref(): use function get_packed_ref()
813  + get_packed_ref(): return a ref_entry
814  + do_for_each_ref_in_dirs(): remove dead code
815  + refs: define constant PEELED_LINE_LENGTH
816  + refs: document how current_ref is used
817  + refs: document do_for_each_ref() and do_one_ref()
818  + refs: document the fields of struct ref_value
819  + refs: document flags constants REF_*
820  (this branch uses jc/prune-all.)
822  Updates reading and updating packed-refs file, correcting corner
823  case bugs.
825  Will merge to 'master'.
828 * fc/transport-helper-error-reporting (2013-05-10) 12 commits
829   (merged to 'next' on 2013-05-10 at 2a9af4b)
830  + transport-helper: fix remote helper namespace regression
831  + test: remote-helper: add missing and
832   (merged to 'next' on 2013-04-25 at 3358f1a)
833  + t5801: "VAR=VAL shell_func args" is forbidden
834   (merged to 'next' on 2013-04-22 at 5ba6467)
835  + transport-helper: update remote helper namespace
836  + transport-helper: trivial code shuffle
837  + transport-helper: warn when refspec is not used
838  + transport-helper: clarify pushing without refspecs
839  + transport-helper: update refspec documentation
840  + transport-helper: clarify *:* refspec
841  + transport-helper: improve push messages
842  + transport-helper: mention helper name when it dies
843  + transport-helper: report errors properly
844  (this branch is tangled with js/transport-helper-error-reporting-fix.)
846  Update transport helper to report errors and maintain ref hierarchy
847  used to keep track of remote helper state better.
849  Will merge to 'master'.
852 * js/transport-helper-error-reporting-fix (2013-04-28) 13 commits
853   (merged to 'next' on 2013-04-29 at 8cc4bb8)
854  + git-remote-testgit: build it to run under $SHELL_PATH
855  + git-remote-testgit: further remove some bashisms
856  + git-remote-testgit: avoid process substitution
857   (merged to 'next' on 2013-04-25 at 3358f1a)
858  + t5801: "VAR=VAL shell_func args" is forbidden
859   (merged to 'next' on 2013-04-22 at 5ba6467)
860  + transport-helper: update remote helper namespace
861  + transport-helper: trivial code shuffle
862  + transport-helper: warn when refspec is not used
863  + transport-helper: clarify pushing without refspecs
864  + transport-helper: update refspec documentation
865  + transport-helper: clarify *:* refspec
866  + transport-helper: improve push messages
867  + transport-helper: mention helper name when it dies
868  + transport-helper: report errors properly
869  (this branch is tangled with fc/transport-helper-error-reporting.)
871  Finishing touches to fc/transport-helper-error-reporting topic.
873  Will merge to 'master'.
876 * jk/submodule-subdirectory-ok (2013-04-24) 3 commits
877   (merged to 'next' on 2013-04-24 at 6306b29)
878  + submodule: fix quoting in relative_path()
879   (merged to 'next' on 2013-04-22 at f211e25)
880  + submodule: drop the top-level requirement
881  + rev-parse: add --prefix option
883  Allow various subcommands of "git submodule" to be run not from the
884  top of the working tree of the superproject.
886  What's the status of this one?
889 * jl/submodule-mv (2013-04-23) 5 commits
890   (merged to 'next' on 2013-04-23 at c04f574)
891  + submodule.c: duplicate real_path's return value
892   (merged to 'next' on 2013-04-19 at 45ae3c9)
893  + rm: delete .gitmodules entry of submodules removed from the work tree
894  + Teach mv to update the path entry in .gitmodules for moved submodules
895  + Teach mv to move submodules using a gitfile
896  + Teach mv to move submodules together with their work trees
898  "git mv A B" when moving a submodule A does "the right thing",
899  inclusing relocating its working tree and adjusting the paths in
900  the .gitmodules file.
902  What's the status of this one?
905 * jn/add-2.0-u-A-sans-pathspec (2013-04-26) 1 commit
906  - git add: -u/-A now affects the entire working tree
908  Will cook in 'next' until Git 2.0.
911 * nd/magic-pathspecs (2013-03-31) 45 commits
912  . Rename field "raw" to "_raw" in struct pathspec
913  . pathspec: support :(glob) syntax
914  . pathspec: make --literal-pathspecs disable pathspec magic
915  . pathspec: support :(literal) syntax for noglob pathspec
916  . Kill limit_pathspec_to_literal() as it's only used by parse_pathspec()
917  . parse_pathspec: preserve prefix length via PATHSPEC_PREFIX_ORIGIN
918  . parse_pathspec: make sure the prefix part is wildcard-free
919  . tree-diff: remove the use of pathspec's raw[] in follow-rename codepath
920  . Remove match_pathspec() in favor of match_pathspec_depth()
921  . Remove init_pathspec() in favor of parse_pathspec()
922  . Remove diff_tree_{setup,release}_paths
923  . Convert common_prefix() to use struct pathspec
924  . Convert add_files_to_cache to take struct pathspec
925  . Convert {read,fill}_directory to take struct pathspec
926  . Convert refresh_index to take struct pathspec
927  . Convert report_path_error to take struct pathspec
928  . checkout: convert read_tree_some to take struct pathspec
929  . Convert unmerge_cache to take struct pathspec
930  . Convert run_add_interactive to use struct pathspec
931  . Convert read_cache_preload() to take struct pathspec
932  . reset: convert to use parse_pathspec
933  . add: convert to use parse_pathspec
934  . check-ignore: convert to use parse_pathspec
935  . archive: convert to use parse_pathspec
936  . ls-files: convert to use parse_pathspec
937  . rm: convert to use parse_pathspec
938  . checkout: convert to use parse_pathspec
939  . rerere: convert to use parse_pathspec
940  . status: convert to use parse_pathspec
941  . commit: convert to use parse_pathspec
942  . clean: convert to use parse_pathspec
943  . Guard against new pathspec magic in pathspec matching code
944  . parse_pathspec: support prefixing original patterns
945  . parse_pathspec: support stripping/checking submodule paths
946  . parse_pathspec: support stripping submodule trailing slashes
947  . parse_pathspec: a special flag for max_depth feature
948  . Convert some get_pathspec() calls to parse_pathspec()
949  . parse_pathspec: add PATHSPEC_PREFER_{CWD,FULL}
950  . parse_pathspec: save original pathspec for reporting
951  . Add parse_pathspec() that converts cmdline args to struct pathspec
952  . pathspec: add copy_pathspec
953  . pathspec: i18n-ize error strings in pathspec parsing code
954  . Move struct pathspec and related functions to pathspec.[ch]
955  . clean: remove unused variable "seen"
956  . setup.c: check that the pathspec magic ends with ")"
958  Migrate the rest of codebase to use "struct pathspec" more.
960  This has nasty conflicts with kb/status-ignored-optim-2,
961  as/check-ignore and tr/line-log; I've already asked Duy to hold
962  this and later rebase on top of them.
965 * tr/line-log (2013-04-22) 13 commits
966   (merged to 'next' on 2013-04-22 at 8f2c1de)
967  + git-log(1): remove --full-line-diff description
968   (merged to 'next' on 2013-04-21 at cd92620)
969  + line-log: fix documentation formatting
970   (merged to 'next' on 2013-04-15 at 504559e)
971  + log -L: improve comments in process_all_files()
972  + log -L: store the path instead of a diff_filespec
973  + log -L: test merge of parallel modify/rename
974  + t4211: pass -M to 'git log -M -L...' test
975   (merged to 'next' on 2013-04-05 at 5afb00c)
976  + log -L: fix overlapping input ranges
977  + log -L: check range set invariants when we look it up
978   (merged to 'next' on 2013-04-01 at 5be920c)
979  + Speed up log -L... -M
980  + log -L: :pattern:file syntax to find by funcname
981  + Implement line-history search (git log -L)
982  + Export rewrite_parents() for 'log -L'
983  + Refactor parse_loc
985  Will merge to 'master'.
988 * jc/push-2.0-default-to-simple (2013-04-03) 1 commit
989  - push: switch default from "matching" to "simple"
991  The early bits to adjust the tests have been merged to 'master'.
993  Will cook in 'next' until Git 2.0.
996 * jc/add-2.0-ignore-removal (2013-04-22) 1 commit
997  - git add <pathspec>... defaults to "-A"
999  Updated endgame for "git add <pathspec>" that defaults to "--all"
1000  aka "--no-ignore-removal".
1002  Will cook in 'next' until Git 2.0.
1004 --------------------------------------------------
1005 [Discarded]
1007 * kb/full-history-compute-treesame-carefully (2013-05-06) 11 commits
1008  . revision.c: treat A...B merge bases as if manually specified
1009  . revision.c: discount side branches when computing TREESAME
1010  . simplify-merges: drop merge from irrelevant side branch
1011  . simplify-merges: never remove all TREESAME parents
1012  . t6012: update test for tweaked full-history traversal
1013  . revision.c: Make --full-history consider more merges
1014  . rev-list-options.txt: correct TREESAME for P
1015  . t6111: allow checking the parents as well
1016  . t6111: new TREESAME test set
1017  . t6019: test file dropped in -s ours merge
1018  . decorate.c: compact table when growing
1020  Superseded by kb/full-history-compute-treesame-carefully-2