What's cooking (2013/03 #07)
[git.git] / whats-cooking.txt
blob12ee71c938ad125e94ed284b4f994899fb6dbd40
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 Subject: What's cooking in git.git (Mar 2013, #07; Tue, 26)
4 X-master-at: 2bba2f0e6542d541e9f27653d8c9d5fc8d0e679c
5 X-next-at: 21b325ca9d683712f5399553f0472ba31ad5cf0f
7 What's cooking in git.git (Mar 2013, #07; Tue, 26)
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 You can find the changes described here in the integration branches
15 of the repositories listed at
17     http://git-blame.blogspot.com/p/git-public-repositories.html
19 --------------------------------------------------
20 [Graduated to "master"]
22 * ap/maint-diff-rename-avoid-overlap (2013-03-06) 3 commits
23   (merged to 'next' on 2013-03-19 at c3276cf)
24  + tests: make sure rename pretty print works
25  + diff: prevent pprint_rename from underrunning input
26  + diff: Fix rename pretty-print when suffix and prefix overlap
28  Originally merged to 'next' on 2013-03-06
30  The logic used by "git diff -M --stat" to shorten the names of
31  files before and after a rename did not work correctly when the
32  common prefix and suffix between the two filenames overlapped.
35 * jc/describe (2013-02-28) 1 commit
36   (merged to 'next' on 2013-03-19 at 89e6e47)
37  + describe: --match=<pattern> must limit the refs even when used with --all
39  Originally merged to 'next' on 2013-03-05
41  The "--match=<pattern>" option of "git describe", when used with
42  "--all" to allow refs that are not annotated tags to be used as a
43  base of description, did not restrict the output from the command
44  to those that match the given pattern.
46  We may want to have a looser matching that does not restrict to tags,
47  but that can be done as a follow-up topic; this step is purely a bugfix.
50 * jc/maint-reflog-expire-clean-mark-typofix (2013-03-05) 1 commit
51   (merged to 'next' on 2013-03-19 at a4f9eac)
52  + reflog: fix typo in "reflog expire" clean-up codepath
54  Originally merged to 'next' on 2013-03-07
56  In "git reflog expire", REACHABLE bit was not cleared from the
57  correct objects.
60 * jc/push-follow-tag (2013-03-05) 4 commits
61   (merged to 'next' on 2013-03-19 at d302a10)
62  + push: --follow-tags
63  + commit.c: use clear_commit_marks_many() in in_merge_bases_many()
64  + commit.c: add in_merge_bases_many()
65  + commit.c: add clear_commit_marks_many()
67  Originally merged to 'next' on 2013-03-09
69  The new "--follow-tags" option tells "git push" to push relevant
70  annotated tags when pushing branches out.
73 * jc/reflog-reverse-walk (2013-03-23) 4 commits
74   (merged to 'next' on 2013-03-25 at 1bcc1c4)
75  + refs.c: fix fread error handling
76   (merged to 'next' on 2013-03-19 at 25beb2a)
77  + reflog: add for_each_reflog_ent_reverse() API
78  + for_each_recent_reflog_ent(): simplify opening of a reflog file
79  + for_each_reflog_ent(): extract a helper to process a single entry
80  (this branch is tangled with nd/branch-show-rebase-bisect-state.)
82  An internal function used to implement "git checkout @{-1}" was
83  hard to use correctly.
86 * jk/alias-in-bare (2013-03-08) 3 commits
87   (merged to 'next' on 2013-03-19 at d2b4227)
88  + setup: suppress implicit "." work-tree for bare repos
89  + environment: add GIT_PREFIX to local_repo_env
90  + cache.h: drop LOCAL_REPO_ENV_SIZE
92  Originally merged to 'next' on 2013-03-09
94  An aliased command spawned from a bare repository that does not say
95  it is bare with "core.bare = yes" is treated as non-bare by mistake.
98 * jk/empty-archive (2013-03-10) 2 commits
99   (merged to 'next' on 2013-03-19 at bb4eb61)
100  + archive: handle commits with an empty tree
101  + test-lib: factor out $GIT_UNZIP setup
103  Originally merged to 'next' on 2013-03-12
105  "git archive" reports a failure when asked to create an archive out
106  of an empty tree.  It would be more intuitive to give an empty
107  archive back in such a case.
110 * jk/fast-export-object-lookup (2013-03-17) 2 commits
111   (merged to 'next' on 2013-03-19 at 026ac3d)
112  + fast-export: do not load blob objects twice
113  + fast-export: rename handle_object function
115  Originally merged to 'next' on 2013-03-18
118 * jk/fully-peeled-packed-ref (2013-03-18) 4 commits
119   (merged to 'next' on 2013-03-19 at fa92bc7)
120  + pack-refs: add fully-peeled trait
121  + pack-refs: write peeled entry for non-tags
122  + use parse_object_or_die instead of die("bad object")
123  + avoid segfaults on parse_object failure
125  Originally merged to 'next' on 2013-03-18
127  Not that we do not actively encourage having annotated tags outside
128  refs/tags/ hierarchy, but they were not advertised correctly to the
129  ls-remote and fetch with recent version of Git.
132 * jk/peel-ref (2013-03-16) 3 commits
133   (merged to 'next' on 2013-03-19 at f0d4c16)
134  + upload-pack: load non-tip "want" objects from disk
135  + upload-pack: make sure "want" objects are parsed
136  + upload-pack: drop lookup-before-parse optimization
138  Originally merged to 'next' on 2013-03-18
140  Recent optimization broke shallow clones.
143 * jk/suppress-clang-warning (2013-02-25) 1 commit
144   (merged to 'next' on 2013-03-19 at 1fd6858)
145  + fix clang -Wtautological-compare with unsigned enum
147  Originally merged to 'next' on 2013-03-14
150 * jl/submodule-deinit (2013-03-04) 1 commit
151   (merged to 'next' on 2013-03-19 at d8367c5)
152  + submodule: add 'deinit' command
154  Originally merged to 'next' on 2013-03-05
156  There was no Porcelain way to say "I no longer am interested in
157  this submodule", once you express your interest in a submodule with
158  "submodule init".  "submodule deinit" is the way to do so.
161 * kb/p4merge (2013-03-25) 6 commits
162   (merged to 'next' on 2013-03-25 at 4db939e)
163  + merge-one-file: force content conflict for "both sides added" case
164  + git-merge-one-file: send "ERROR:" messages to stderr
165  + git-merge-one-file: style cleanup
166  + merge-one-file: remove stale comment
167   (merged to 'next' on 2013-03-19 at 43cc599)
168  + mergetools/p4merge: create a base if none available
169  + mergetools/p4merge: swap LOCAL and REMOTE
171  Originally merged to 'next' on 2013-03-14
173  Adjust the order mergetools feeds the files to the p4merge backend
174  to match the p4 convention.
177 * ks/rfc2047-one-char-at-a-time (2013-03-09) 1 commit
178   (merged to 'next' on 2013-03-19 at 577ddf2)
179  + format-patch: RFC 2047 says multi-octet character may not be split
181  Originally merged to 'next' on 2013-03-09
183  When "format-patch" quoted a non-ascii strings on the header files,
184  it incorrectly applied rfc2047 and chopped a single character in
185  the middle of it.
188 * lf/setup-prefix-pathspec (2013-03-14) 2 commits
189   (merged to 'next' on 2013-03-19 at 0017e9e)
190  + setup.c: check that the pathspec magic ends with ")"
191  + setup.c: stop prefix_pathspec() from looping past the end of string
193  Originally merged to 'next' on 2013-03-14
195  "git cmd -- ':(top'" was not diagnosed as an invalid syntax, and
196  instead the parser kept reading beyond the end of the string.
199 * mg/unsigned-time-t (2013-02-25) 2 commits
200   (merged to 'next' on 2013-03-19 at 1fc1ad6)
201  + Fix time offset calculation in case of unsigned time_t
202  + date.c: fix unsigned time_t comparison
204  Originally merged to 'next' on 2013-03-14
206  A few workarounds for systems with unsigned time_t.
209 * pe/pull-rebase-v-q (2013-03-16) 1 commit
210   (merged to 'next' on 2013-03-19 at 10b311c)
211  + pull: Apply -q and -v options to rebase mode as well
213  Originally merged to 'next' on 2013-03-18
215  Teach "git pull --rebase" to pass "-v/-q" command line options to
216  underlying "git rebase".
219 * ph/tag-force-no-warn-on-creation (2013-03-13) 1 commit
220   (merged to 'next' on 2013-03-19 at b273fd3)
221  + tag: --force does not have to warn when creating tags
223  Originally merged to 'next' on 2013-03-14
225  "git tag -f <tag>" always said "Updated tag '<tag>'" even when
226  creating a new tag (i.e. not overwriting nor updating).
229 * pw/p4-symlinked-root (2013-03-11) 3 commits
230   (merged to 'next' on 2013-03-19 at 9127e82)
231  + git p4: avoid expanding client paths in chdir
232  + git p4 test: should honor symlink in p4 client root
233  + git p4 test: make sure P4CONFIG relative path works
235  Originally merged to 'next' on 2013-03-12
237  "git p4" did not behave well when the path to the root of the P4
238  client was not its real path.
240 --------------------------------------------------
241 [New Topics]
243 * jc/apply-ws-fix-tab-in-indent (2013-03-22) 1 commit
244  - apply --whitespace=fix: avoid running over the postimage buffer
247 * jk/no-more-self-assignment (2013-03-25) 2 commits
248   (merged to 'next' on 2013-03-26 at 31ec9ac)
249  + match-trees: simplify score_trees() using tree_entry()
250  + submodule: clarify logic in show_submodule_summary
252  This started as a topic to reduce "type var = var" self assignment
253  tricks that were used to squelch "variable used uninitialized perhaps?"
254  warning from some compilers, but resulted in rewriting logic with
255  a version that is simpler and easier to understand for humans.
258 * jk/t7800-modernize (2013-03-23) 3 commits
259  - t7800: run --dir-diff tests with and without symlinks
260  - t7800: fix tests when difftool uses --no-symlinks
261  - t7800: don't hide grep output
263  Looked reasonable standalone; conflicts with other topics in flight
264  needs to be resolved carefully, though.
267 * kk/revwalk-slop-too-many-commit-within-a-second (2013-03-22) 1 commit
268   (merged to 'next' on 2013-03-26 at ea90e75)
269  + Fix revision walk for commits with the same dates
271  Allow the revision "slop" code to look deeper while commits with
272  exactly the same timestamps come next to each other (which can
273  often happen after a large "am" and "rebase" session).
276 * yd/use-test-config-unconfig (2013-03-25) 12 commits
277  - t7600: use test_config to set/unset git config variables
278  - t7502: remove clear_config
279  - t7502: use test_config to set/unset git config variables
280  - t9500: use test_config to set/unset git config variables
281  - t7508: use test_config to set/unset git config variables
282  - t7500: use test_config to set/unset git config variables
283  - t5541: use test_config to set/unset git config variables
284  - t5520: use test_config to set/unset git config variables
285  - t4202: use test_config/test_unconfig to set/unset git config variables
286  - t4034: use test_config/test_unconfig to set/unset git config variables
287  - t4304: use test_config to set/unset git config variables
288  - t3400: use test_config to set/unset git config variables
290  Bulk-update of the test suite.
293 * ap/combine-diff-coalesce-lost (2013-03-25) 1 commit
294  - combine-diff: coalesce lost lines optimally
295  (this branch uses ap/combine-diff-ignore-whitespace.)
297  Attempts to minimize "diff -c/--cc" output by coalescing the same
298  lines removed from the parents better, but with an O(n^2)
299  complexity.  I wonder
302 * bk/document-commit-tree-S (2013-03-25) 1 commit
303   (merged to 'next' on 2013-03-26 at 8ee205f)
304  + commit-tree: document -S option consistently
306  Will merge to 'master'.
309 * jk/check-corrupt-objects-carefully (2013-03-25) 9 commits
310  - clone: run check_everything_connected
311  - clone: die on errors from unpack_trees
312  - add tests for cloning corrupted repositories
313  - streaming_write_entry: propagate streaming errors
314  - add test for streaming corrupt blobs
315  - avoid infinite loop in read_istream_loose
316  - read_istream_filtered: propagate read error from upstream
317  - check_sha1_signature: check return value from read_istream
318  - stream_blob_to_fd: detect errors reading from stream
320  Have the streaming interface and other codepaths more carefully
321  examine for corrupt objects.
324 * js/iterm-is-on-osx (2013-03-25) 1 commit
325  - git-web--browse: recognize iTerm as a GUI terminal on OS X
327  Add more logic to detect graphic environment of OS X.
330 * tb/cygwin-shared-repository (2013-03-25) 2 commits
331  - optimize set_shared_perm()
332  - Make core.sharedRepository work under cygwin 1.7
334  Cygwin port has a faster-but-lying lstat(2) emulation whose
335  incorrectness does not matter in practice except for a few
336  codepaths, and setting permission bits to directories is a codepath
337  that needs to use a more correct one.
340 * jc/directory-attrs-regression-fix (2013-03-26) 4 commits
341  - make sure a pattern without trailing slash matches a directory
342  - attr.c::path_matches(): special case paths that end with a slash
343  - dir.c::match_basename(): pay attention to the length of string parameters
344  - attr.c::path_matches(): the basename is part of the pathname
346  Fix 1.8.1.x regression that stopped matching "dir" (without
347  trailing slash) to a directory "dir".
350 * nd/checkout-paths-reduce-match-pathspec-calls (2013-03-26) 1 commit
351  - [NEEDSTEST] checkout: avoid unnecessary match_pathspec calls
353 --------------------------------------------------
354 [Stalled]
356 * jc/format-patch (2013-02-21) 2 commits
357  - format-patch: --inline-single
358  - format-patch: rename "no_inline" field
360  A new option to send a single patch to the standard output to be
361  appended at the bottom of a message.  I personally have no need for
362  this, but it was easy enough to cobble together.  Tests, docs and
363  stripping out more MIMEy stuff are left as exercises to interested
364  parties.
366  Not ready for inclusion.
369 * mg/qnx6 (2013-02-25) 1 commit
370  - QNX: newer QNX 6.x.x is not so crippled
372  Not ready for inclusion.
375 * po/help-guides (2013-03-03) 5 commits
376  - help doc: include --guide option description
377  - help.c: add list_common_guides_help() function
378  - help.c: add --guide option
379  - help.c: use OPT_COUNTUP
380  - show 'git help <guide>' usage, with examples
382  Give more visibility to "concept guides" to help "git help" users.
384  Expecting a reroll.
385  $gmane/217384
388 * hv/config-from-strbuf (2013-03-10) 4 commits
389  - teach config parsing to read from strbuf
390  - config: make parsing stack struct independent from actual data source
391  - config: drop file pointer validity check in get_next_char()
392  - config: factor out config file stack management
394  Expecting a reroll.
395  $gmane/217811
398 * mb/gitweb-highlight-link-target (2012-12-20) 1 commit
399  - Highlight the link target line in Gitweb using CSS
401  Expecting a reroll.
402  $gmane/211935
405 * mb/remote-default-nn-origin (2012-07-11) 6 commits
406  - Teach get_default_remote to respect remote.default.
407  - Test that plain "git fetch" uses remote.default when on a detached HEAD.
408  - Teach clone to set remote.default.
409  - Teach "git remote" about remote.default.
410  - Teach remote.c about the remote.default configuration setting.
411  - Rename remote.c's default_remote_name static variables.
413  When the user does not specify what remote to interact with, we
414  often attempt to use 'origin'.  This can now be customized via a
415  configuration variable.
417  Expecting a reroll.
418  $gmane/210151
420  "The first remote becomes the default" bit is better done as a
421  separate step.
423 --------------------------------------------------
424 [Cooking]
426 * jc/merge-tag-object (2013-03-19) 1 commit
427  - merge: a random object may not necssarily be a commit
429  "git merge $(git rev-parse v1.8.2)" behaved quite differently from
430  "git merge v1.8.2" as if v1.8.2 were written as v1.8.2^0 and did
431  not pay much attention to the annotated tag payload.
433  This makes the code notice the type of the tag object, in addition
434  to the dwim_ref() based classification the current code uses
435  (i.e. the name appears in refs/tags/) to decide when to special
436  case merging of tags.
438  We may actually want to call the current behaviour a feature,
439  though.  After all, the user went to great length to feed something
440  different from the normal "v1.8.2" to the command.
443 * jk/index-pack-correct-depth-fix (2013-03-20) 1 commit
444  - index-pack: always zero-initialize object_entry list
446  "index-pack --fix-thin" used uninitialize value to compute delta
447  depths of objects it appends to the resulting pack.
450 * jn/push-tests (2013-03-19) 3 commits
451  - push test: rely on &&-chaining instead of 'if bad; then echo Oops; fi'
452  - push test: simplify check of push result
453  - push test: use test_config when appropriate
455  Update t5516 with style fixes.
458 * nd/index-pack-threaded-fixes (2013-03-19) 2 commits
459  - index-pack: guard nr_resolved_deltas reads by lock
460  - index-pack: protect deepest_delta in multithread code
462  "index-pack --verify-stat" used a few counters outside protection
463  of mutex, possibly showing incorrect numbers.
466 * kb/status-ignored-optim (2013-03-19) 8 commits
467  - dir.c: git-status: avoid is_excluded checks for tracked files
468  - dir.c: replace is_path_excluded with now equivalent is_excluded API
469  - dir.c: unify is_excluded and is_path_excluded APIs
470  - dir.c: move prep_exclude and factor out parts of last_exclude_matching
471  - dir.c: git-status --ignored: don't list empty directories as ignored
472  - dir.c: git-status --ignored: don't list empty ignored directories
473  - dir.c: git-status --ignored: don't list files in ignored directories
474  - dir.c: git-status --ignored: don't drop ignored directories
476  "git status --ignored" had many corner case bugs.  Also the command
477  has been optimized by taking advantage of the fact that paths that
478  are already known to the index do not have to be checked against
479  the .gitignore mechanism most of the time.
481  Expecting a review from others; this codepath is used not only by
482  status but also in add and clean, so a bug in it can result in lost
483  data.
486 * rr/tests-dedup-test-config (2013-03-19) 1 commit
487   (merged to 'next' on 2013-03-26 at d314299)
488  + t4018,7810,7811: remove test_config() redefinition
490  Will merge to 'master'.
493 * jn/add-2.0-u-A-sans-pathspec (2013-03-20) 5 commits
494  - git add: -u/-A now affects the entire working tree
495  - add -A: only show pathless 'add -A' warning when changes exist outside cwd
496  - add -u: only show pathless 'add -u' warning when changes exist outside cwd
497  - add: make warn_pathless_add() a no-op after first call
498  - add: make pathless 'add [-u|-A]' warning a file-global function
500  Replaces jc/add-2.0-u-A-sans-pathspec topic by not warning against
501  "add -u/-A" that is ran without pathspec when there is no change
502  outside the current directory.
505 * rr/test-3200-style (2013-03-20) 1 commit
506   (merged to 'next' on 2013-03-26 at 1214287)
507  + t3200 (branch): modernize style
509  Churns.
511  Will merge to 'master'.
514 * tr/packed-object-info-wo-recursion (2013-03-25) 3 commits
515  - sha1_file: remove recursion in unpack_entry
516  - Refactor parts of in_delta_base_cache/cache_or_unpack_entry
517  - sha1_file: remove recursion in packed_object_info
519  Attempts to reduce the stack footprint of sha1_object_info()
520  and unpack_entry() codepaths.
523 * sr/am-show-final-message-in-applying-indicator (2013-03-21) 1 commit
524   (merged to 'next' on 2013-03-26 at 9ecb143)
525  + git-am: show the final log message on "Applying:" indicator
527  In addition to the case where the user edits the log message with
528  the "e)dit" option of "am -i", replace the "Applying: this patch"
529  message with the final log message contents after applymsg hook
530  munges it.
532  Will merge to 'master'.
535 * yd/doc-merge-annotated-tag (2013-03-21) 1 commit
536   (merged to 'next' on 2013-03-26 at a11162f)
537  + Documentation: merging a tag is a special case
539  Document the 1.7.9 feature to merge a signed tag and keep that in
540  the mergetag header in the resulting commit better.
542  Will merge to 'master'.
545 * yd/doc-is-in-asciidoc (2013-03-21) 1 commit
546   (merged to 'next' on 2013-03-26 at a980af2)
547  + CodingGuidelines: our documents are in AsciiDoc
549  Will merge to 'master'.
552 * ap/combine-diff-ignore-whitespace (2013-03-14) 1 commit
553   (merged to 'next' on 2013-03-19 at dfb2c98)
554  + Allow combined diff to ignore white-spaces
555  (this branch is used by ap/combine-diff-coalesce-lost.)
557  Originally merged to 'next' on 2013-03-18
559  Teach "diff --cc" output to honor options to ignore various forms
560  of whitespace changes.
562  Will merge to 'master' in the 4th batch (Safe).
565 * jk/checkout-attribute-lookup (2013-03-20) 3 commits
566   (merged to 'next' on 2013-03-20 at 43a89e8)
567  + t2003: work around path mangling issue on Windows
568   (merged to 'next' on 2013-03-19 at b063a55)
569  + entry: fix filter lookup
570  + t2003: modernize style
572  Codepath to stream blob object contents directly from the object
573  store to filesystem did not use the correct path to find conversion
574  filters when writing to temporary files.
576  Will merge to 'master' in the 4th batch (Safe).
579 * jk/difftool-dir-diff-edit-fix (2013-03-14) 3 commits
580   (merged to 'next' on 2013-03-19 at e68014a)
581  + difftool --dir-diff: symlink all files matching the working tree
582  + difftool: avoid double slashes in symlink targets
583  + git-difftool(1): fix formatting of --symlink description
585  Originally merged to 'next' on 2013-03-15
587  "git difftool --dir-diff" made symlinks to working tree files when
588  preparing a temporary directory structure, so that accidental edits
589  of these files in the difftool are reflected back to the working
590  tree, but the logic to decide when to do so was not quite right.
592  Will merge to 'master' in the 4th batch (Safe).
595 * nd/magic-pathspecs (2013-03-22) 46 commits
596  - fixup
597  - Rename field "raw" to "_raw" in struct pathspec
598  - pathspec: support :(glob) syntax
599  - pathspec: make --literal-pathspecs disable pathspec magic
600  - pathspec: support :(literal) syntax for noglob pathspec
601  - Kill limit_pathspec_to_literal() as it's only used by parse_pathspec()
602  - parse_pathspec: preserve prefix length via PATHSPEC_PREFIX_ORIGIN
603  - parse_pathspec: make sure the prefix part is wildcard-free
604  - tree-diff: remove the use of pathspec's raw[] in follow-rename codepath
605  - Remove match_pathspec() in favor of match_pathspec_depth()
606  - Remove init_pathspec() in favor of parse_pathspec()
607  - Remove diff_tree_{setup,release}_paths
608  - Convert common_prefix() to use struct pathspec
609  - Convert add_files_to_cache to take struct pathspec
610  - Convert {read,fill}_directory to take struct pathspec
611  - Convert refresh_index to take struct pathspec
612  - Convert report_path_error to take struct pathspec
613  - checkout: convert read_tree_some to take struct pathspec
614  - Convert unmerge_cache to take struct pathspec
615  - Convert run_add_interactive to use struct pathspec
616  - Convert read_cache_preload() to take struct pathspec
617  - reset: convert to use parse_pathspec
618  - add: convert to use parse_pathspec
619  - check-ignore: convert to use parse_pathspec
620  - archive: convert to use parse_pathspec
621  - ls-files: convert to use parse_pathspec
622  - rm: convert to use parse_pathspec
623  - checkout: convert to use parse_pathspec
624  - rerere: convert to use parse_pathspec
625  - status: convert to use parse_pathspec
626  - commit: convert to use parse_pathspec
627  - clean: convert to use parse_pathspec
628  - Guard against new pathspec magic in pathspec matching code
629  - parse_pathspec: support prefixing original patterns
630  - parse_pathspec: support stripping/checking submodule paths
631  - parse_pathspec: support stripping submodule trailing slashes
632  - parse_pathspec: a special flag for max_depth feature
633  - Convert some get_pathspec() calls to parse_pathspec()
634  - parse_pathspec: add PATHSPEC_PREFER_{CWD,FULL}
635  - parse_pathspec: save original pathspec for reporting
636  - Add parse_pathspec() that converts cmdline args to struct pathspec
637  - pathspec: add copy_pathspec
638  - pathspec: i18n-ize error strings in pathspec parsing code
639  - Move struct pathspec and related functions to pathspec.[ch]
640  - clean: remove unused variable "seen"
641  - setup.c: check that the pathspec magic ends with ")"
643  Migrate the rest of codebase to use "struct pathspec" more.
645  Haven't picked up the reroll yet.
648 * rs/archive-zip-raw-compression (2013-03-16) 1 commit
649   (merged to 'next' on 2013-03-19 at 8cc1cb3)
650  + archive-zip: use deflateInit2() to ask for raw compressed data
652  Originally merged to 'next' on 2013-03-18
654  Will merge to 'master' in the 4th batch (Safe).
657 * sw/safe-create-leading-dir-race (2013-03-17) 2 commits
658  - SQUASH???
659  - safe_create_leading_directories: fix race that could give a false negative
661  Will merge to 'next' after squashing in the fix.
664 * nd/branch-show-rebase-bisect-state (2013-03-23) 7 commits
665  - status, branch: fix the misleading "bisecting" message
666  - branch: show more information when HEAD is detached
667  - status: show more info than "currently not on any branch"
668  - wt-status: move wt_status_get_state() out to wt_status_print()
669  - wt-status: split wt_status_state parsing function out
670  - wt-status: move strbuf into read_and_strip_branch()
671  - Merge branch 'jc/reflog-reverse-walk' into nd/branch-show-rebase-bisect-state
673  Will merge to 'next'.
676 * jc/add-2.0-delete-default (2013-03-08) 3 commits
677  - git add <pathspec>... defaults to "-A"
678  - git add: start preparing for "git add <pathspec>..." to default to "-A"
679  - builtin/add.c: simplify boolean variables
681  "git add dir/" updated modified files and added new files, but does
682  not notice removed files, which may be "Huh?" to some users.  They
683  can of course use "git add -A dir/", but why should they?
685  There seemed to be some interest in this topic, so resurrected and
686  rebased on top of recent documentation updates to propose a
687  possible transition plan.
689  Will cook in 'next' until Git 2.0.
692 * jc/nobody-sets-src-peer-ref (2013-03-04) 1 commit
693  - match_push_refs(): nobody sets src->peer_ref anymore
695  Dead code removal.
697  Even though I think this change is correct, please report
698  immediately if you find any unintended side effect.
700  Will merge to 'master' in the 4th batch (Risky).
703 * kb/name-hash (2013-02-27) 1 commit
704  - name-hash.c: fix endless loop with core.ignorecase=true
706  The code to keep track of what directory names are known to Git on
707  platforms with case insensitive filesystems can get confused upon
708  a hash collision between these pathnames and looped forever.
710  Even though I think this change is correct, please report
711  immediately if you find any unintended side effect.
713  Will merge to 'master' in the 4th batch (Risky).
716 * tr/line-log (2013-03-23) 6 commits
717  - Speed up log -L... -M
718  - log -L: :pattern:file syntax to find by funcname
719  - Implement line-history search (git log -L)
720  - Export rewrite_parents() for 'log -L'
721  - fixup
722  - Refactor parse_loc
724  Rerolled; collides with nd/magic-pathspecs.
727 * jk/common-make-variables-export-safety (2013-02-25) 1 commit
728  - Makefile: make mandir, htmldir and infodir absolute
730  Make the three variables safer to be exported to submakes by
731  ensuring that they are full paths so that they can be used as
732  installation location.
734  Even though I think this change is correct, please report
735  immediately if you find any unintended side effect.
737  Will merge to 'master' in the 4th batch (Risky).
740 * jk/pkt-line-cleanup (2013-03-21) 20 commits
741  - do not use GIT_TRACE_PACKET=3 in tests
742  - remote-curl: always parse incoming refs
743  - remote-curl: move ref-parsing code up in file
744  - remote-curl: pass buffer straight to get_remote_heads
745  - teach get_remote_heads to read from a memory buffer
746  - pkt-line: share buffer/descriptor reading implementation
747  - pkt-line: provide a LARGE_PACKET_MAX static buffer
748  - pkt-line: move LARGE_PACKET_MAX definition from sideband
749  - pkt-line: teach packet_read_line to chomp newlines
750  - pkt-line: provide a generic reading function with options
751  - pkt-line: drop safe_write function
752  - pkt-line: move a misplaced comment
753  - write_or_die: raise SIGPIPE when we get EPIPE
754  - upload-archive: use argv_array to store client arguments
755  - upload-archive: do not copy repo name
756  - send-pack: prefer prefixcmp over memcmp in receive_status
757  - fetch-pack: fix out-of-bounds buffer offset in get_ack
758  - upload-pack: remove packet debugging harness
759  - upload-pack: do not add duplicate objects to shallow list
760  - upload-pack: use get_sha1_hex to parse "shallow" lines
762  Cleans up pkt-line API, implementation and its callers to make them
763  more robust.  Even though I think this change is correct, please
764  report immediately if you find any unintended side effect.
766  Will merge to 'master' in the 3rd batch (Risky).
769 * jc/remove-export-from-config-mak-in (2013-03-05) 3 commits
770  - Fix `make install` when configured with autoconf
771  - Makefile: do not export mandir/htmldir/infodir
772  - config.mak.in: remove unused definitions
774  config.mak.in template had an "export" line to cause a few
775  common makefile variables to be exported; if they need to be
776  expoted for autoconf/configure users, they should also be exported
777  for people who write config.mak the same way.  Move the "export" to
778  the main Makefile.  Also, stop exporting mandir that used to be
779  exported (only) when config.mak.autogen was used.  It would have
780  broken installation of manpages (but not other documentation
781  formats).
783  Even though I think this change is correct, please report
784  immediately if you find any unintended side effect.
786  Will merge to 'master' in the 4th batch (Risky).
789 * jc/remove-treesame-parent-in-simplify-merges (2013-01-17) 1 commit
790  - simplify-merges: drop merge from irrelevant side branch
792  The --simplify-merges logic did not cull irrelevant parents from a
793  merge that is otherwise not interesting with respect to the paths
794  we are following.
796  This touches a fairly core part of the revision traversal
797  infrastructure; even though I think this change is correct, please
798  report immediately if you find any unintended side effect.
800  Will merge to 'master' in the 2nd batch (Risky).
803 * jc/push-2.0-default-to-simple (2013-03-18) 15 commits
804  - advice: Remove unused advice_push_non_ff_default
805  - t5570: do not assume the "matching" push is the default
806  - t5551: do not assume the "matching" push is the default
807  - t5550: do not assume the "matching" push is the default
808  - doc: push.default is no longer "matching"
809  - push: switch default from "matching" to "simple"
810  - t9401: do not assume the "matching" push is the default
811  - t9400: do not assume the "matching" push is the default
812  - t7406: do not assume the "matching" push is the default
813  - t5531: do not assume the "matching" push is the default
814  - t5519: do not assume the "matching" push is the default
815  - t5517: do not assume the "matching" push is the default
816  - t5516: do not assume the "matching" push is the default
817  - t5505: do not assume the "matching" push is the default
818  - t5404: do not assume the "matching" push is the default
820  Will cook in 'next' until Git 2.0.
823 * bc/append-signed-off-by (2013-02-23) 13 commits
824  - git-commit: populate the edit buffer with 2 blank lines before s-o-b
825  - Unify appending signoff in format-patch, commit and sequencer
826  - format-patch: update append_signoff prototype
827  - t4014: more tests about appending s-o-b lines
828  - sequencer.c: teach append_signoff to avoid adding a duplicate newline
829  - sequencer.c: teach append_signoff how to detect duplicate s-o-b
830  - sequencer.c: always separate "(cherry picked from" from commit body
831  - sequencer.c: require a conforming footer to be preceded by a blank line
832  - sequencer.c: recognize "(cherry picked from ..." as part of s-o-b footer
833  - t/t3511: add some tests of 'cherry-pick -s' functionality
834  - t/test-lib-functions.sh: allow to specify the tag name to test_commit
835  - commit, cherry-pick -s: remove broken support for multiline rfc2822 fields
836  - sequencer.c: rework search for start of footer to improve clarity
838  Consolidates codepaths that inspect log-message-to-be and decide to
839  add a new Signed-off-by line in various commands.  I think there is
840  no negative behaviour change in this series, but please report any
841  iffy behaviour change immediately if you notice one.
843  Will merge to 'master' in the 3rd batch (Risky).
845 --------------------------------------------------
846 [Discarded]
848 * nd/read-directory-recursive-optim (2013-02-17) 1 commit
849  . read_directory: avoid invoking exclude machinery on tracked files
851  "git status" has been optimized by taking advantage of the fact
852  that paths that are already known to the index do not have to be
853  checked against the .gitignore mechanism under some conditions.
854  Even though I think this change is correct, please report
855  immediately if you find any unintended side effect.
857  kb/status-ignored-optim may supersede this.
860 * jc/add-2.0-u-A-sans-pathspec (2013-03-14) 1 commit
861  . git add: -u/-A now affects the entire working tree
863  "git add -u/-A" without pathspec has traditonally limited its
864  operation to the current directory and its subdirectories, but in
865  Git 1.8.2 we started encouraging users to be more explicit to
866  specify "." when they mean it (and use ":/" to make it affect the
867  entire working tree).  With this, we finally change the behaviour
868  and make it affect the entire working tree in Git 2.0.
871 --------------------------------------------------
872 [Discarded]
874 * ja/directory-attrs (2013-03-20) 1 commit
875  . trailing slash required in .gitattributes
877  Now part of jc/directory-attrs-regression-fix.