What's cooking (2013/04 #02)
[git.git] / whats-cooking.txt
blobc670ae801ea8bb27405d81123e9ec93db269ea2c
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 Subject: What's cooking in git.git (Apr 2013, #02; Fri, 5)
4 X-master-at: 21ccebec0dd1d7e624ea2f22af6ac93686daf34f
5 X-next-at: 2c8b7bf47c81acd2a76c1f9c3be2a1f102b76d31
7 What's cooking in git.git (Apr 2013, #02; Fri, 5)
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 A handful of topics that have been stalled for quite a while have
15 been discarded; for those that are not superseded by something else,
16 interested parties can still resubmit a reroll, but without any
17 advances, we do not get any benefit from carrying them in my tree.
19 You can find the changes described here in the integration branches
20 of the repositories listed at
22     http://git-blame.blogspot.com/p/git-public-repositories.html
24 --------------------------------------------------
25 [Graduated to "master"]
27 * bk/document-commit-tree-S (2013-03-25) 1 commit
28   (merged to 'next' on 2013-03-26 at 8ee205f)
29  + commit-tree: document -S option consistently
32 * jc/apply-ws-fix-tab-in-indent (2013-03-29) 2 commits
33   (merged to 'next' on 2013-03-29 at 26eb6e9)
34  + test: resurrect q_to_tab
35   (merged to 'next' on 2013-03-26 at 46c6bda)
36  + apply --whitespace=fix: avoid running over the postimage buffer
38  "git apply --whitespace=fix" was not prepared to see a line getting
39  longer after fixing whitespaces (e.g. tab-in-indent aka Python).
42 * jc/directory-attrs-regression-fix (2013-03-28) 6 commits
43   (merged to 'next' on 2013-03-29 at a3dce2b)
44  + t: check that a pattern without trailing slash matches a directory
45  + dir.c::match_pathname(): pay attention to the length of string parameters
46  + dir.c::match_pathname(): adjust patternlen when shifting pattern
47  + dir.c::match_basename(): pay attention to the length of string parameters
48  + attr.c::path_matches(): special case paths that end with a slash
49  + attr.c::path_matches(): the basename is part of the pathname
51  Fix 1.8.1.x regression that stopped matching "dir" (without
52  trailing slash) to a directory "dir".
55 * jc/merge-tag-object (2013-04-01) 3 commits
56   (merged to 'next' on 2013-04-03 at 94b5c7d)
57  + t6200: test message for merging of an annotated tag
58  + t6200: use test_config/test_unconfig
59   (merged to 'next' on 2013-03-29 at aeec39c)
60  + merge: a random object may not necssarily be a commit
62  "git merge $(git rev-parse v1.8.2)" behaved quite differently from
63  "git merge v1.8.2" as if v1.8.2 were written as v1.8.2^0 and did
64  not pay much attention to the annotated tag payload.
66  This makes the code notice the type of the tag object, in addition
67  to the dwim_ref() based classification the current code uses
68  (i.e. the name appears in refs/tags/) to decide when to special
69  case merging of tags.
72 * jc/sha1-name-object-peeler (2013-03-31) 2 commits
73   (merged to 'next' on 2013-04-01 at cdb4a18)
74  + peel_onion(): teach $foo^{object} peeler
75  + peel_onion: disambiguate to favor tree-ish when we know we want a tree-ish
76  (this branch is used by mh/rev-parse-verify-doc.)
78  There was no good way to ask "I have a random string that came from
79  outside world. I want to turn it into a 40-hex object name while
80  making sure such an object exists".  A new peeling suffix ^{object}
81  can be used for that purpose, together with "rev-parse --verify".
84 * jc/t5516-pushInsteadOf-vs-pushURL (2013-03-28) 1 commit
85   (merged to 'next' on 2013-04-01 at bed2879)
86  + t5516: test interaction between pushURL and pushInsteadOf correctly
88  Update a test to match the documented interaction between pushURL
89  and pushInsteadOf.
92 * jk/check-corrupt-objects-carefully (2013-03-29) 10 commits
93   (merged to 'next' on 2013-03-29 at b6a04a7)
94  + clone: leave repo in place after checkout errors
95  + clone: run check_everything_connected
96  + clone: die on errors from unpack_trees
97  + add tests for cloning corrupted repositories
98  + streaming_write_entry: propagate streaming errors
99  + add test for streaming corrupt blobs
100  + avoid infinite loop in read_istream_loose
101  + read_istream_filtered: propagate read error from upstream
102  + check_sha1_signature: check return value from read_istream
103  + stream_blob_to_fd: detect errors reading from stream
105  Have the streaming interface and other codepaths more carefully
106  examine for corrupt objects.
109 * jk/config-with-empty-section (2013-03-29) 1 commit
110   (merged to 'next' on 2013-04-01 at 7972aa9)
111  + t1300: document some aesthetic failures of the config editor
113  Document that "git config --unset" does not remove an empty section
114  head after removing the last variable in a section, and adding a
115  new variable does not try to reuse a leftover empty section head.
118 * jk/difftool-no-overwrite-on-copyback (2013-03-29) 5 commits
119   (merged to 'next' on 2013-03-29 at 9f42d34)
120  + t7800: run --dir-diff tests with and without symlinks
121  + t7800: fix tests when difftool uses --no-symlinks
122  + t7800: don't hide grep output
123  + difftool: don't overwrite modified files
124  + t7800: move '--symlinks' specific test to the end
126  Try to be careful when difftool backend allows the user to write
127  into the temporary files being shown *and* the user makes changes
128  to the working tree at the same time. One of the changes has to be
129  lost in such a case, but at least tell the user what he did.
132 * jk/no-more-self-assignment (2013-03-25) 2 commits
133   (merged to 'next' on 2013-03-26 at 31ec9ac)
134  + match-trees: simplify score_trees() using tree_entry()
135  + submodule: clarify logic in show_submodule_summary
137  This started as a topic to reduce "type var = var" self assignment
138  tricks that were used to squelch "variable used uninitialized perhaps?"
139  warning from some compilers, but resulted in rewriting logic with
140  a version that is simpler and easier to understand for humans.
143 * jl/submodule-deinit (2013-04-01) 1 commit
144   (merged to 'next' on 2013-04-03 at 2ef485c)
145  + submodule deinit: clarify work tree removal message
147  A finishing touch to the new topic in 1.8.3.
150 * jm/branch-rename-nothing-error (2013-03-31) 1 commit
151   (merged to 'next' on 2013-04-01 at 5e5cdaf)
152  + branch: give better message when no names specified for rename
154  "git branch -m" without any argument noticed an error, but with an
155  incorrect error message.
158 * js/iterm-is-on-osx (2013-03-29) 1 commit
159   (merged to 'next' on 2013-04-01 at 201fed2)
160  + git-web--browse: recognize any TERM_PROGRAM as a GUI terminal on OS X
162  Add more logic to detect graphic environment of OS X by simply
163  checking TERM_PROGRAM has some value, not Apple_Terminal, to detect
164  iTerm.app and any other.
167 * js/log-gpg (2013-03-27) 1 commit
168   (merged to 'next' on 2013-03-29 at 9a1b2d3)
169  + log: read gpg settings for signed commit verification
171  Teach "show/log" honor gpg.program configuration just like other
172  parts of the code that use GnuPG.
175 * mh/rev-parse-verify-doc (2013-04-02) 1 commit
176   (merged to 'next' on 2013-04-03 at a09c332)
177  + rev-parse: clarify documentation for the --verify option
179  "rev-parse --verify" was documented in a misleading way.
182 * nd/checkout-paths-reduce-match-pathspec-calls (2013-03-27) 1 commit
183   (merged to 'next' on 2013-03-29 at fbcc004)
184  + checkout: avoid unnecessary match_pathspec calls
186  Consolidate repeated pathspec matches on the same paths, while
187  fixing a bug in "git checkout dir/" code started from an unmerged
188  index.
191 * rr/prompt-revert-head (2013-03-31) 1 commit
192   (merged to 'next' on 2013-04-01 at 1fc21eb)
193  + bash: teach __git_ps1 about REVERT_HEAD
195  The prompt string generator did not notice when we are in a middle
196  of a "git revert" session.
199 * rr/send-email-perl-critique (2013-03-31) 3 commits
200   (merged to 'next' on 2013-04-03 at d552868)
201  + send-email: use the three-arg form of open in recipients_cmd
202  + send-email: drop misleading function prototype
203  + send-email: use "return;" not "return undef;" on error codepaths
205  Broken down from an earlier discussion to pick up reasonable bits
206  with explanation, to demonstrate how it should be done.
209 * rs/submodule-summary-limit (2013-04-01) 1 commit
210   (merged to 'next' on 2013-04-01 at 3c18cfe)
211  + submodule summary: support --summary-limit=<n>
213  "submodule summary --summary-limit" option did not support
214  "--option=value" form.
217 * sg/gpg-sig (2013-03-31) 5 commits
218   (merged to 'next' on 2013-04-03 at 9c13a17)
219  + pretty printing: extend %G? to include 'N' and 'U'
220  + merge/pull Check for untrusted good GPG signatures
221  + merge/pull: verify GPG signatures of commits being merged
222  + commit.c/GPG signature verification: Also look at the first GPG status line
223  + Move commit GPG signature verification to commit.c
225  Teach "merge/pull" to optionally verify and reject commits that are
226  not signed properly.
229 * sw/safe-create-leading-dir-race (2013-03-26) 1 commit
230   (merged to 'next' on 2013-03-26 at 744bb50)
231  + safe_create_leading_directories: fix race that could give a false negative
234 * tb/cygwin-shared-repository (2013-03-25) 1 commit
235   (merged to 'next' on 2013-03-29 at dbeb068)
236  + Make core.sharedRepository work under cygwin 1.7
237  (this branch is used by tb/shared-perm.)
239  Cygwin port has a faster-but-lying lstat(2) emulation whose
240  incorrectness does not matter in practice except for a few
241  codepaths, and setting permission bits to directories is a codepath
242  that needs to use a more correct one.
245 * tr/log-tree-optim (2013-03-28) 1 commit
246   (merged to 'next' on 2013-03-29 at 5a6795d)
247  + Avoid loading commits twice in log with diffs
249  Optimize "log" that shows the difference between the parent and the
250  child.
253 * tr/valgrind (2013-04-01) 4 commits
254   (merged to 'next' on 2013-04-01 at a973c52)
255  + tests: notice valgrind error in test_must_fail
256  + tests --valgrind: provide a mode without --track-origins
257  + tests: parameterize --valgrind option
258  + t/README: --valgrind already implies -v
260  Let us use not just memgrind but other *grind debuggers.
262 --------------------------------------------------
263 [New Topics]
265 * cn/commit-amend-doc (2013-04-05) 1 commit
266   (merged to 'next' on 2013-04-05 at 4c42e59)
267  + Documentation/git-commit: reword the --amend explanation
268  (this branch is used by jc/detached-head-doc.)
270  Will merge to 'master'.
273 * fc/remote-helpers-test-updates (2013-04-04) 4 commits
274   (merged to 'next' on 2013-04-04 at 0612744)
275  + remote-hg: fix hg-git test-case
276  + remote-bzr: remove stale check code for tests
277  + remote-helpers: fix the run of all tests
278  + remote-bzr: avoid echo -n
279  (this branch is used by fc/transport-helper-waitpid.)
281  Will merge to 'master'.
284 * fc/remote-hg (2013-04-04) 13 commits
285  - remote-hg: push to the appropriate branch
286  - remote-hg: update tags globally
287  - remote-hg: force remote push
288  - remote-hg: update remote bookmarks
289  - remote-hg: refactor export
290  - remote-hg: split bookmark handling
291  - remote-hg: redirect buggy mercurial output
292  - remote-hg: trivial test cleanups
293  - remote-hg: make sure fake bookmarks are updated
294  - remote-hg: fix for files with spaces
295  - remote-hg: properly report errors on bookmark pushes
296  - remote-hg: add missing config variable in doc
297  - remote-hg: trivial cleanups
299  The "forced push" may need to become optional behaviour.
300  Also the tip one was found faulty.
302  Expecting a reroll.
305 * fc/transport-helper-waitpid (2013-04-04) 2 commits
306  - transport-helper: check if remote helper is alive
307  - run-command: add new check_command helper
308  (this branch uses fc/remote-helpers-test-updates.)
310  Seems to be solving a real problem at a wrong level.
313 * jk/bisect-prn-unsigned (2013-04-03) 1 commit
314   (merged to 'next' on 2013-04-04 at 2c4df36)
315  + bisect: avoid signed integer overflow
317  Will merge to 'master'.
320 * jk/diffcore-break-divzero (2013-04-03) 1 commit
321   (merged to 'next' on 2013-04-04 at b7632e0)
322  + diffcore-break: don't divide by zero
324  Will merge to 'master'.
327 * jk/filter-branch-come-back-to-original (2013-04-02) 1 commit
328   (merged to 'next' on 2013-04-04 at 621684a)
329  + filter-branch: return to original dir after filtering
331  Will merge to 'master'.
334 * jk/set-upstream-error-cases (2013-04-02) 5 commits
335   (merged to 'next' on 2013-04-04 at b58c26b)
336  + branch: give advice when tracking start-point is missing
337  + branch: mention start_name in set-upstream error messages
338  + branch: improve error message for missing --set-upstream-to ref
339  + branch: factor out "upstream is not a branch" error messages
340  + t3200: test --set-upstream-to with bogus refs
342  Will merge to 'master'.
345 * js/rerere-forget-protect-against-NUL (2013-04-04) 2 commits
346   (merged to 'next' on 2013-04-05 at 426d4e2)
347  + rerere forget: do not segfault if not all stages are present
348  + rerere forget: grok files containing NUL
350  A few bugfixes to "git rerere" working on corner case merge
351  conflicts.
353  Will merge to 'master'.
356 * mc/count-objects-kibibytes (2013-04-03) 1 commit
357   (merged to 'next' on 2013-04-05 at f4e50e8)
358  + count-objects: output "KiB" instead of "kilobytes"
360  The command reports the total diskspace used to store loose objects
361  in kibibytes, but it was labelled as "kilobytes".  The number now
362  is shown with "KiB", e.g. "6750 objects, 50928 KiB".
364  If you have scripts that decide when to run "git repack" by parsing
365  the output from "git count-objects", this release may break them.
366  Sorry about that.  One of the scripts shipped by git-core itself
367  also had to be adjusted.  You may want to consider updating such
368  scripts to always call "git gc --auto" to let it decide when to
369  repack for you.
371  Will merge to 'master'.
374 * mm/status-during-revert (2013-04-02) 2 commits
375   (merged to 'next' on 2013-04-04 at 1282528)
376  + status: show commit sha1 in "You are currently reverting" message
377  + status: show 'revert' state and status hint
379  Will merge to 'master'.
382 * po/help-guides (2013-04-03) 5 commits
383   (merged to 'next' on 2013-04-04 at 3d99b28)
384  + doc: include --guide option description for "git help"
385  + help: mention -a and -g option, and 'git help <concept>' usage.
386  + builtin/help.c: add list_common_guides_help() function
387  + builtin/help.c: add --guide option
388  + builtin/help.c: split "-a" processing into two
390  "git help" learned "-g" option to show the list of guides just like
391  list of commands are given with "-a".
393  Will merge to 'master'.
396 * jk/http-dumb-namespaces (2013-04-04) 1 commit
397  - http-backend: respect GIT_NAMESPACE with dumb clients
399  Allow smart-capable HTTP servers to be restricted via the
400  GIT_NAMESPACE mechanism when talking with commit-walker clients
401  (they already do so when talking with smart HTTP clients).
404 * jk/rm-removed-paths (2013-04-04) 3 commits
405   (merged to 'next' on 2013-04-05 at ce9a926)
406  + t3600: document failure of rm across symbolic links
407  + t3600: test behavior of reverse-d/f conflict
408  + rm: do not complain about d/f conflicts during deletion
410  A handful of test cases and a corner case bugfix for "git rm".
412  Will merge to 'master'.
415 * jl/submodule-mv (2013-04-03) 3 commits
416  - Teach mv to update the path entry in .gitmodules for moved submodules
417  - Teach mv to move submodules using a gitfile
418  - Teach mv to move submodules together with their work trees
420  "git mv A B" when moving a submodule A does "the right thing",
421  inclusing relocating its working tree and adjusting the paths in
422  the .gitmodules file.
424  Seems to break tests in 'pu' but it may be a mismerge with
425  nd/magic-pathspecs topic.
428 * mg/texinfo-5 (2013-04-03) 1 commit
429   (merged to 'next' on 2013-04-04 at bd84440)
430  + Documentation: Strip texinfo anchors to avoid duplicates
432  Strip @anchor elements in the texinfo output of the documentation,
433  as a single document created by concatenating our entire manual set
434  will produce many duplicates that makes newer texinfo unhappy.
436  Will merge to 'master'.
439 * sr/log-SG-no-textconv (2013-04-05) 6 commits
440   (merged to 'next' on 2013-04-05 at 7f06945)
441  + diffcore-pickaxe: unify code for log -S/-G
442  + diffcore-pickaxe: fix leaks in "log -S<block>" and "log -G<pattern>"
443  + diffcore-pickaxe: port optimization from has_changes() to diff_grep()
444  + diffcore-pickaxe: respect --no-textconv
445  + diffcore-pickaxe: remove fill_one()
446  + diffcore-pickaxe: remove unnecessary call to get_textconv()
448  "git log -S/-G" started paying attention to textconv filter, but
449  there was no way to disable this.  Make it honor --no-textconv
450  option.
452  Will merge to 'master'.
455 * tr/perl-keep-stderr-open (2013-04-04) 2 commits
456  - t9700: do not close STDERR
457  - perl: redirect stderr to /dev/null instead of closing
459  Closing (not redirecting to /dev/null) the standard error stream is
460  not a very smart thing to do.  Later open may return file
461  descriptor #2 for unrelated purpose, and error reporting code may
462  write into them.
464  Will merge to 'next'.
467 * jc/detached-head-doc (2013-04-05) 1 commit
468  - glossary: extend "detached HEAD" description
469  (this branch uses cn/commit-amend-doc.)
472 * jk/diff-algo-finishing-touches (2013-04-05) 2 commits
473  - diff: allow unstuck arguments with --diff-algorithm
474  - git-merge(1): document diff-algorithm option to merge-recursive
477 * jk/diff-graph-submodule-summary (2013-04-05) 1 commit
478  - submodule: print graph output next to submodule log
480 --------------------------------------------------
481 [Stalled]
483 * jc/format-patch (2013-02-21) 2 commits
484  - format-patch: --inline-single
485  - format-patch: rename "no_inline" field
487  A new option to send a single patch to the standard output to be
488  appended at the bottom of a message.  I personally have no need for
489  this, but it was easy enough to cobble together.  Tests, docs and
490  stripping out more MIMEy stuff are left as exercises to interested
491  parties.
493  Not ready for inclusion.
495 --------------------------------------------------
496 [Cooking]
498 * tb/shared-perm (2013-04-05) 2 commits
499   (merged to 'next' on 2013-04-05 at 2481155)
500  + path.c: optimize adjust_shared_perm()
501  + path.c: simplify adjust_shared_perm()
503  Simplifies adjust_shared_perm() implementation.
505  Will merge to 'master'.
508 * nd/pretty-formats (2013-04-01) 12 commits
509  - pretty: support %>> that steal trailing spaces
510  - pretty: support truncating in %>, %< and %><
511  - pretty: support padding placeholders, %< %> and %><
512  - pretty: add %C(auto) for auto-coloring on the next placeholder
513  - pretty: two phase conversion for non utf-8 commits
514  - utf8: keep NULs in reencode_string()
515  - pretty: get the correct encoding for --pretty:format=%e
516  - pretty: save commit encoding from logmsg_reencode if the caller needs it
517  - utf8.c: add utf8_strnwidth() with the ability to skip ansi sequences
518  - utf8.c: move display_mode_esc_sequence_len() for use by other functions
519  - pretty: share code between format_decoration and show_decorations
520  - pretty-formats.txt: wrap long lines
522  A mixed bag of a bugfix and two fun enhancements on pretty formats
523  placeholder.
525  Expecting a reroll.
528 * jk/merge-tree-added-identically (2013-03-27) 1 commit
529  - merge-tree: fix "same file added in subdir"
531  We would most likely want to change things the other way around.
533  Expecting a reroll.
536 * rr/triangle (2013-04-02) 6 commits
537   (merged to 'next' on 2013-04-04 at 2d2c8ee)
538  + remote.c: introduce branch.<name>.pushremote
539  + remote.c: introduce remote.pushdefault
540  + remote.c: introduce a way to have different remotes for fetch/push
541  + t5516 (fetch-push): drop implicit arguments from helper functions
542  + t5516 (fetch-push): update test description
543  + remote.c: simplify a bit of code using git_config_string()
545  Support "pull from one place, push to another place" workflow
546  better by introducing remote.pushdefault (overrides the "origin"
547  thing) and branch.*.pushremote (overrides the branch.*.remote).
549  Will merge to 'master'.
552 * ap/combine-diff-coalesce-lost (2013-03-25) 1 commit
553   (merged to 'next' on 2013-03-29 at f6a05ca)
554  + combine-diff: coalesce lost lines optimally
556  Attempts to minimize "diff -c/--cc" output by coalescing the same
557  lines removed from the parents better, but with an O(n^2)
558  complexity.
560  Will cook in 'next' to see if people with real-world usage scream.
563 * kb/status-ignored-optim (2013-03-19) 8 commits
564   (merged to 'next' on 2013-04-01 at 0c12ed9)
565  + dir.c: git-status: avoid is_excluded checks for tracked files
566  + dir.c: replace is_path_excluded with now equivalent is_excluded API
567  + dir.c: unify is_excluded and is_path_excluded APIs
568  + dir.c: move prep_exclude and factor out parts of last_exclude_matching
569  + dir.c: git-status --ignored: don't list empty directories as ignored
570  + dir.c: git-status --ignored: don't list empty ignored directories
571  + dir.c: git-status --ignored: don't list files in ignored directories
572  + dir.c: git-status --ignored: don't drop ignored directories
574  "git status --ignored" had many corner case bugs.  Also the command
575  has been optimized by taking advantage of the fact that paths that
576  are already known to the index do not have to be checked against
577  the .gitignore mechanism most of the time.
579  Will cook in 'next'.
581  This codepath is used not only by status but also in add and clean,
582  so a bug in it can result in lost data.  Extra sets of eyeballs are
583  very much appreciated.
586 * jn/add-2.0-u-A-sans-pathspec (2013-04-03) 6 commits
587  - git add: -u/-A now affects the entire working tree
588   (merged to 'next' on 2013-04-05 at eae93ef)
589  + add -A: only show pathless 'add -A' warning when changes exist outside cwd
590  + add -u: only show pathless 'add -u' warning when changes exist outside cwd
591  + add: make warn_pathless_add() a no-op after first call
592  + add: add a blank line at the end of pathless 'add [-u|-A]' warning
593  + add: make pathless 'add [-u|-A]' warning a file-global function
595  "git add -u/-A" without any pathspec traditionally limited its
596  operation to the current directory when run from a subdirectory,
597  but in Git 2.0, they will affect the entire working tree.  Start
598  training users to explicitly say "." or ":/" to smooth out the
599  transition hump with the earlier parts of this series, and flip the
600  default as the final step.
602  Will cook in 'next' until Git 2.0.
605 * tr/packed-object-info-wo-recursion (2013-03-27) 3 commits
606   (merged to 'next' on 2013-03-29 at b1c3858)
607  + sha1_file: remove recursion in unpack_entry
608  + Refactor parts of in_delta_base_cache/cache_or_unpack_entry
609  + sha1_file: remove recursion in packed_object_info
611  Attempts to reduce the stack footprint of sha1_object_info()
612  and unpack_entry() codepaths.
614  Will cook in 'next'.
617 * nd/magic-pathspecs (2013-03-31) 45 commits
618  - Rename field "raw" to "_raw" in struct pathspec
619  - pathspec: support :(glob) syntax
620  - pathspec: make --literal-pathspecs disable pathspec magic
621  - pathspec: support :(literal) syntax for noglob pathspec
622  - Kill limit_pathspec_to_literal() as it's only used by parse_pathspec()
623  - parse_pathspec: preserve prefix length via PATHSPEC_PREFIX_ORIGIN
624  - parse_pathspec: make sure the prefix part is wildcard-free
625  - tree-diff: remove the use of pathspec's raw[] in follow-rename codepath
626  - Remove match_pathspec() in favor of match_pathspec_depth()
627  - Remove init_pathspec() in favor of parse_pathspec()
628  - Remove diff_tree_{setup,release}_paths
629  - Convert common_prefix() to use struct pathspec
630  - Convert add_files_to_cache to take struct pathspec
631  - Convert {read,fill}_directory to take struct pathspec
632  - Convert refresh_index to take struct pathspec
633  - Convert report_path_error to take struct pathspec
634  - checkout: convert read_tree_some to take struct pathspec
635  - Convert unmerge_cache to take struct pathspec
636  - Convert run_add_interactive to use struct pathspec
637  - Convert read_cache_preload() to take struct pathspec
638  - reset: convert to use parse_pathspec
639  - add: convert to use parse_pathspec
640  - check-ignore: convert to use parse_pathspec
641  - archive: convert to use parse_pathspec
642  - ls-files: convert to use parse_pathspec
643  - rm: convert to use parse_pathspec
644  - checkout: convert to use parse_pathspec
645  - rerere: convert to use parse_pathspec
646  - status: convert to use parse_pathspec
647  - commit: convert to use parse_pathspec
648  - clean: convert to use parse_pathspec
649  - Guard against new pathspec magic in pathspec matching code
650  - parse_pathspec: support prefixing original patterns
651  - parse_pathspec: support stripping/checking submodule paths
652  - parse_pathspec: support stripping submodule trailing slashes
653  - parse_pathspec: a special flag for max_depth feature
654  - Convert some get_pathspec() calls to parse_pathspec()
655  - parse_pathspec: add PATHSPEC_PREFER_{CWD,FULL}
656  - parse_pathspec: save original pathspec for reporting
657  - Add parse_pathspec() that converts cmdline args to struct pathspec
658  - pathspec: add copy_pathspec
659  - pathspec: i18n-ize error strings in pathspec parsing code
660  - Move struct pathspec and related functions to pathspec.[ch]
661  - clean: remove unused variable "seen"
662  - setup.c: check that the pathspec magic ends with ")"
664  Migrate the rest of codebase to use "struct pathspec" more.
666  Will merge to 'next' after all the dust settles.
669 * jc/add-2.0-delete-default (2013-03-08) 3 commits
670  - git add <pathspec>... defaults to "-A"
671   (merged to 'next' on 2013-04-05 at 199442e)
672  + git add: start preparing for "git add <pathspec>..." to default to "-A"
673  + builtin/add.c: simplify boolean variables
675  In Git 2.0, "git add pathspec" will mean "git add -A pathspec".  If
676  you did this in a working tree that tracks dir/lost and dir/another:
678  $ rm dir/lost
679  $ edit dir/another
680  $ git add dir
682  The last step will not only notices and records updated
683  dir/another, but also notices and records the removal of dir/lost
684  in the index.
686  Start training the users for this change to say --no-all when they
687  want to ignore the removal to smooth the transition hump.
689  Will cook in 'next' until Git 2.0.
692 * tr/line-log (2013-04-05) 7 commits
693   (merged to 'next' on 2013-04-05 at 5afb00c)
694  + log -L: fix overlapping input ranges
695  + log -L: check range set invariants when we look it up
696   (merged to 'next' on 2013-04-01 at 5be920c)
697  + Speed up log -L... -M
698  + log -L: :pattern:file syntax to find by funcname
699  + Implement line-history search (git log -L)
700  + Export rewrite_parents() for 'log -L'
701  + Refactor parse_loc
703  Will merge down to 'master'
704  with warts and all, hoping they get fixed eventually in-tree.
707 * jc/push-2.0-default-to-simple (2013-04-03) 13 commits
708  - push: switch default from "matching" to "simple"
709   (merged to 'next' on 2013-04-05 at 1b42c19)
710  + t5570: do not assume the "matching" push is the default
711  + t5551: do not assume the "matching" push is the default
712  + t5550: do not assume the "matching" push is the default
713  + t9401: do not assume the "matching" push is the default
714  + t9400: do not assume the "matching" push is the default
715  + t7406: do not assume the "matching" push is the default
716  + t5531: do not assume the "matching" push is the default
717  + t5519: do not assume the "matching" push is the default
718  + t5517: do not assume the "matching" push is the default
719  + t5516: do not assume the "matching" push is the default
720  + t5505: do not assume the "matching" push is the default
721  + t5404: do not assume the "matching" push is the default
723  Update the test suite that still assumed the push.default will
724  forever be 'matching'.  In Git 2.0, that will no longer be the
725  case.
727  Will cook in 'next' until Git 2.0.