Meta/Reintegrate: ignroe whitespace when comparing list of topics
[git/jrn.git] / whats-cooking.txt
blob9188c6625dfd5d812a642f2a7879c9da6f8267fe
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 Subject: What's cooking in git.git (Jul 2013, #06; Thu, 18)
4 X-master-at: b72c6161f1f34985e4a13f8c4c9ba9e55b3d1496
5 X-next-at: 6b4ca9f6d2ab38b0a886be8faea27be3a50ef9e1
7 What's cooking in git.git (Jul 2013, #06; Thu, 18)
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 code and documentation clean-up patches have been
15 applied to 'master'.
17 You can find the changes described here in the integration branches
18 of the repositories listed at
20     http://git-blame.blogspot.com/p/git-public-repositories.html
22 --------------------------------------------------
23 [Graduated to "master"]
25 * bc/commit-invalid-utf8 (2013-07-09) 3 commits
26   (merged to 'next' on 2013-07-11 at a2ee572)
27  + commit: reject non-characters
28  + commit: reject overlong UTF-8 sequences
29  + commit: reject invalid UTF-8 codepoints
31  Tighten up autodetection of UTF-8 encoded strings.
34 * bc/push-match-many-refs (2013-07-08) 1 commit
35   (merged to 'next' on 2013-07-11 at df4d56d)
36  + remote.c: avoid O(m*n) behavior in match_push_refs
38  Pushing to repositories with many refs employed O(m*n) algorithm
39  where n is the number of refs on the receiving end.
42 * bc/send-email-use-port-as-separate-param (2013-07-04) 1 commit
43   (merged to 'next' on 2013-07-09 at a569eb5)
44  + send-email: provide port separately from hostname
46  Pass port number as a separate argument when send-email initializes
47  Net::SMTP, instead of as a part of the hostname, i.e. host:port.
48  This allows GSSAPI codepath to match with the hostname given.
51 * bp/mediawiki-preview (2013-07-08) 7 commits
52   (merged to 'next' on 2013-07-12 at 870890a)
53  + git-remote-mediawiki: add preview subcommand into git mw
54  + git-remote-mediawiki: add git-mw command
55  + git-remote-mediawiki: factoring code between git-remote-mediawiki and Git::Mediawiki
56  + git-remote-mediawiki: update tests to run with the new bin-wrapper
57  + git-remote-mediawiki: add a git bin-wrapper for developement
58  + wrap-for-bin: make bin-wrappers chainable
59  + git-remote-mediawiki: introduction of Git::Mediawiki.pm
61  Add a command to allow previewing the contents locally before
62  pushing it out, when working with a MediaWiki remote.
64  I personally do not think this belongs to Git.  If you are working
65  on a set of AsciiDoc source files, you sure do want to locally
66  format to preview what you will be pushing out, and if you are
67  working on a set of C or Java source files, you do want to test it
68  before pushing it out, too.  That kind of thing belongs to your
69  build script, not to your SCM.
71  But I'll let it pass, as this is only a contrib/ thing.
74 * cp/submodule-custom-update (2013-07-03) 1 commit
75   (merged to 'next' on 2013-07-09 at 3d27516)
76  + submodule update: allow custom command to update submodule working tree
78  In addition to the choice from "rebase, merge, or checkout-detach",
79  allow a custom command to be used in "submodule update" to update
80  the working tree of submodules.
83 * es/overlapping-range-set (2013-07-09) 2 commits
84   (merged to 'next' on 2013-07-11 at 3df5a94)
85  + range_set: fix coalescing bug when range is a subset of another
86  + t4211: fix broken test when one -L range is subset of another
89 * fg/submodule-clone-depth (2013-07-03) 1 commit
90   (merged to 'next' on 2013-07-09 at ab156f3)
91  + Add --depth to submodule update/add
93  Allow shallow-cloning of submodules with "git submodule update".
96 * jc/revert-clone-doc-update-for-push-from-shallow (2013-07-15) 1 commit
97  + Revert "git-clone.txt: remove the restriction on pushing from a shallow clone"
100 * jk/fetch-pack-many-refs (2013-07-02) 3 commits
101   (merged to 'next' on 2013-07-09 at a53b7c7)
102  + fetch-pack: avoid quadratic behavior in rev_list_push
103  + commit.c: make compare_commits_by_commit_date global
104  + fetch-pack: avoid quadratic list insertion in mark_complete
106  Fetching between repositories with many refs employed O(n^2)
107  algorithm to match up the common objects, which has been corrected.
110 * jk/format-patch-from (2013-07-03) 2 commits
111   (merged to 'next' on 2013-07-09 at 6ed86d5)
112  + teach format-patch to place other authors into in-body "From"
113  + pretty.c: drop const-ness from pretty_print_context
115  "git format-patch" learned "--from[=whom]" option, which sets the
116  "From: " header to the specified person (or the person who runs the
117  command, if "=whom" part is missing) and move the original author
118  information to an in-body From: header as necessary.
121 * jk/in-pack-size-measurement (2013-07-12) 10 commits
122   (merged to 'next' on 2013-07-12 at 5ba720f)
123  + pack-revindex: radix-sort the revindex
124  + pack-revindex: use unsigned to store number of objects
125  + cat-file: split --batch input lines on whitespace
126  + cat-file: add %(objectsize:disk) format atom
127  + cat-file: add --batch-check=<format>
128  + cat-file: refactor --batch option parsing
129  + cat-file: teach --batch to stream blob objects
130  + t1006: modernize output comparisons
131  + teach sha1_object_info_extended a "disk_size" query
132  + zero-initialize object_info structs
133  (this branch is used by jk/cat-file-batch-optim.)
135  Allow on-disk footprint of objects in packfiles (often they are a
136  lot smaller than their true size, when expressed as deltas).
139 * jk/maint-clone-shared-no-connectivity-validation (2013-07-08) 1 commit
140   (merged to 'next' on 2013-07-11 at 8183412)
141  + clone: drop connectivity check for local clones
142  (this branch is used by jk/clone-shared-no-connectivity-validation.)
144  "git clone -s/-l" is a filesystem level copy and does not offer any
145  protection against source repository being corrupt.  While the
146  connectivity validation checks commits and trees being readable, it
147  made the otherwise instantaneous local modes of clone much more
148  expensive, without protecting blob data from bitflips.
151 * mv/merge-ff-tristate (2013-07-02) 1 commit
152   (merged to 'next' on 2013-07-09 at c32b95d)
153  + merge: handle --ff/--no-ff/--ff-only as a tri-state option
155  The configuration variable "merge.ff" was cleary a tri-state to
156  choose one from "favor fast-forward when possible", "always create
157  a merge even when the history could fast-forward" and "do not
158  create any merge, only update when the history fast-forwards", but
159  the command line parser did not implement the usual convention of
160  "last one wins, and command line overrides the configuration"
161  correctly.
164 * rr/rebase-reflog-message-reword (2013-06-23) 2 commits
165   (merged to 'next' on 2013-07-11 at 59921e0)
166  + rebase -i: use a better reflog message
167  + rebase: use a better reflog message
169  "git rebase [-i]" used to leave just "rebase" as its reflog message
170  for some operations. This rewords them to be more informative.
173 * rs/mailmap-himself (2013-07-17) 1 commit
174  + .mailmap: René Scharfe has a new email address
177 * sb/mailmap-updates (2013-07-17) 3 commits
178  + .mailmap: combine more (email, name) to individual persons
179   (merged to 'next' on 2013-07-15 at 61c965a)
180  + .mailmap: Combine more (email, name) to individual persons
181  + .mailmap: Map email addresses to names
183 --------------------------------------------------
184 [New Topics]
186 * db/show-ref-head (2013-07-17) 1 commit
187   (merged to 'next' on 2013-07-18 at 73797d0)
188  + show-ref: make --head always show the HEAD ref
190  The "--head" option to "git show-ref" was only to add "HEAD" to the
191  list of candidate refs to be filtered by the usual rules
192  (e.g. "--heads" that only show refs under refs/heads).  Change the
193  meaning of the option to always show "HEAD" regardless of what
194  filtering will be applied to any other ref (this is a backward
195  incompatible change, so I may need to add an entry to the Release
196  Notes).
198  Will merge to 'master'.
201 * dw/request-pull-diag (2013-07-17) 1 commit
202   (merged to 'next' on 2013-07-18 at d4406de)
203  + request-pull: improve error message for invalid revision args
205  Will merge to 'master'.
208 * es/blame-L-breakage (2013-07-17) 6 commits
209   (merged to 'next' on 2013-07-18 at cfd871a)
210  + blame-options.txt: explain that -L <start> and <end> are optional
211  + blame-options.txt: place each -L option variation on its own line
212  + t8001/t8002 (blame): add blame -L :funcname tests
213  + t8001/t8002 (blame): add blame -L tests
214  + t8001/t8002 (blame): modernize style
215  + line-range: fix "blame -L X,-N" regression
217  The refactoring made for parsing "-L" option recently to support
218  "git log -L" seems to have broken "git blame -L X,-5" to show 5
219  lines leading to X.
221  Will merge to 'master'.
224 * jc/diff-filter-negation (2013-07-17) 6 commits
225  - diff: deprecate -q option to diff-files
226  - diff: allow lowercase letter to specify what change class to exclude
227  - diff: reject unknown change class given to --diff-filter
228  - diff: preparse --diff-filter string argument
229  - diff: factor out match_filter()
230  - diff: pass the whole diff_options to diffcore_apply_filter()
231  (this branch is used by jc/diff-2.0-remove-q-synonym-for-no-deletion.)
233  Teach "git diff --diff-filter" to express "I do not want to see
234  these classes of changes" more directly by listing only the
235  unwanted ones in lowercase (e.g. "--diff-filter=d" will show
236  everything but deletion) and deprecate "diff-files -q" which did
237  the same thing as "--diff-filter=d".
239  Waiting for comments.
242 * mh/packed-refs-do-one-ref-recursion (2013-07-17) 1 commit
243  - do_one_ref(): save and restore value of current_ref
245  May want some tests?
248 * ml/avoid-using-grep-on-crlf-files (2013-07-18) 1 commit
249  - test-lib.sh - define and use GREP_STRIPS_CR
251  On systems that understand a CRLF as a line ending, tests in this
252  script that worked on files with CRLF line endings using "grep" to
253  extract matching lines may lose the CR at the end of lines that
254  match, causing the actual output not to match the expected output.
256  Waiting for success reports from folks on various flavours of
257  Windows ports.
260 * ml/cygwin-updates (2013-07-15) 2 commits
261  - Use compat/regex on Cygwin
262  - Cygwin has trustable filemode
264  This seems to depend heavily on Cygwin version differences.
267 * mm/diff-no-patch-synonym-to-s (2013-07-17) 6 commits
268   (merged to 'next' on 2013-07-18 at 3b893d6)
269  + Documentation/git-log.txt: capitalize section names
270  + Documentation: move description of -s, --no-patch to diff-options.txt
271  + Documentation/git-show.txt: include common diff options, like git-log.txt
272  + diff: allow --patch & cie to override -s/--no-patch
273  + diff: allow --no-patch as synonym for -s
274  + t4000-diff-format.sh: modernize style
276  "git show -s" was less discoverable than it should be.
278  Will merge to 'master'.
281 * nd/magic-pathspec (2013-07-17) 47 commits
282  - t6131 - skip tests if on case-insensitive file system
283  - parse_pathspec: accept :(icase)path syntax
284  - pathspec: support :(glob) syntax
285  - pathspec: make --literal-pathspecs disable pathspec magic
286  - pathspec: support :(literal) syntax for noglob pathspec
287  - kill limit_pathspec_to_literal() as it's only used by parse_pathspec()
288  - parse_pathspec: preserve prefix length via PATHSPEC_PREFIX_ORIGIN
289  - parse_pathspec: make sure the prefix part is wildcard-free
290  - rename field "raw" to "_raw" in struct pathspec
291  - tree-diff: remove the use of pathspec's raw[] in follow-rename codepath
292  - remove match_pathspec() in favor of match_pathspec_depth()
293  - remove init_pathspec() in favor of parse_pathspec()
294  - remove diff_tree_{setup,release}_paths
295  - convert common_prefix() to use struct pathspec
296  - convert add_files_to_cache to take struct pathspec
297  - convert {read,fill}_directory to take struct pathspec
298  - convert refresh_index to take struct pathspec
299  - convert report_path_error to take struct pathspec
300  - checkout: convert read_tree_some to take struct pathspec
301  - convert unmerge_cache to take struct pathspec
302  - convert run_add_interactive to use struct pathspec
303  - convert read_cache_preload() to take struct pathspec
304  - line-log: convert to use parse_pathspec
305  - reset: convert to use parse_pathspec
306  - add: convert to use parse_pathspec
307  - check-ignore: convert to use parse_pathspec
308  - archive: convert to use parse_pathspec
309  - ls-files: convert to use parse_pathspec
310  - rm: convert to use parse_pathspec
311  - checkout: convert to use parse_pathspec
312  - rerere: convert to use parse_pathspec
313  - status: convert to use parse_pathspec
314  - commit: convert to use parse_pathspec
315  - clean: convert to use parse_pathspec
316  - guard against new pathspec magic in pathspec matching code
317  - parse_pathspec: support prefixing original patterns
318  - parse_pathspec: support stripping/checking submodule paths
319  - parse_pathspec: support stripping submodule trailing slashes
320  - parse_pathspec: add special flag for max_depth feature
321  - convert some get_pathspec() calls to parse_pathspec()
322  - parse_pathspec: add PATHSPEC_PREFER_{CWD,FULL} flags
323  - parse_pathspec: save original pathspec for reporting
324  - add parse_pathspec() that converts cmdline args to struct pathspec
325  - pathspec: add copy_pathspec
326  - pathspec: i18n-ize error strings in pathspec parsing code
327  - move struct pathspec and related functions to pathspec.[ch]
328  - clean: remove unused variable "seen"
330  Use "struct pathspec" interface in more places, instead of array of
331  characters, the latter of which cannot express magic pathspecs
332  (e.g. ":(icase)makefile" that matches both Makefile and makefile).
334  Will merge to 'next'.
337 * rh/template-updates (2013-07-15) 3 commits
338  - templates: spell ASCII in uppercase in pre-commit hook
339  - templates: Reformat pre-commit hook's message
340  - templates: Use heredoc in pre-commit hook
342  This is an earlier part of a 6 patch series, with log message
343  corrected.
346 * sb/misc-fixes (2013-07-15) 3 commits
347  - diff.c: Do not initialize a variable, which gets reassigned anyway.
348  - commit: Fix a memory leak in determine_author_info
349  - daemon.c:handle: Remove unneeded check for null pointer.
351  Assorted code cleanups and a minor fix.
353  Will merge to 'next'.
356 * sb/parse-object-buffer-eaten (2013-07-17) 1 commit
357   (merged to 'next' on 2013-07-18 at 364689c)
358  + parse_object_buffer: correct freeing the buffer
360  Will merge to 'master'.
363 * tr/do-not-call-submodules-subprojects (2013-07-18) 2 commits
364   (merged to 'next' on 2013-07-18 at 6386fd5)
365  + show-branch: fix description of --date-order
366  + apply, entry: speak of submodules instead of subprojects
368  Will merge to 'master'.
371 * tr/protect-low-3-fds (2013-07-17) 2 commits
372   (merged to 'next' on 2013-07-18 at 504d972)
373  + git: ensure 0/1/2 are open in main()
374  + daemon/shell: refactor redirection of 0/1/2 from /dev/null
376  When "git" is spawned in such a way that any of the low 3 file
377  descriptors is closed, our first open() may yield file descriptor 2,
378  and writing error message to it would screw things up in a big way.
380  Will merge to 'master'.
383 * jc/diff-2.0-remove-q-synonym-for-no-deletion (2013-07-18) 1 commit
384  - diff: remove "diff-files -q" at Git 2.0 version boundary
385  (this branch uses jc/diff-filter-negation.)
387  This obviously has to wait until Git 2.0.
389 --------------------------------------------------
390 [Stalled]
392 * rj/read-default-config-in-show-ref-pack-refs (2013-06-17) 3 commits
393  - ### DONTMERGE: needs better explanation on what config they need
394  - pack-refs.c: Add missing call to git_config()
395  - show-ref.c: Add missing call to git_config()
397  The changes themselves are probably good, but it is unclear what
398  basic setting needs to be read for which exact operation.
400  Waiting for clarification.
401  $gmane/228294
404 * jh/shorten-refname (2013-05-07) 4 commits
405  - t1514: refname shortening is done after dereferencing symbolic refs
406  - shorten_unambiguous_ref(): Fix shortening refs/remotes/origin/HEAD to origin
407  - t1514: Demonstrate failure to correctly shorten "refs/remotes/origin/HEAD"
408  - t1514: Add tests of shortening refnames in strict/loose mode
410  When remotes/origin/HEAD is not a symbolic ref, "rev-parse
411  --abbrev-ref remotes/origin/HEAD" ought to show "origin", not
412  "origin/HEAD", which is fixed with this series (if it is a symbolic
413  ref that points at remotes/origin/something, then it should show
414  "origin/something" and it already does).
416  Expecting a reroll, as an early part of a larger series.
417  $gmane/225137
420 * jl/submodule-mv (2013-04-23) 5 commits
421  . submodule.c: duplicate real_path's return value
422  . rm: delete .gitmodules entry of submodules removed from the work tree
423  . Teach mv to update the path entry in .gitmodules for moved submodules
424  . Teach mv to move submodules using a gitfile
425  . Teach mv to move submodules together with their work trees
427  "git mv A B" when moving a submodule A does "the right thing",
428  inclusing relocating its working tree and adjusting the paths in
429  the .gitmodules file.
431  Ejected from 'pu', as it conflicts with nd/magic-pathspec.
434 * jk/list-objects-sans-blobs (2013-06-06) 4 commits
435  . archive: ignore blob objects when checking reachability
436  . list-objects: optimize "revs->blob_objects = 0" case
437  . upload-archive: restrict remote objects with reachability check
438  . clear parsed flag when we free tree buffers
440  Attempt to allow "archive --remote=$there $arbitrary_sha1" while
441  keeping the reachability safety.
443  Seems to break some tests in a trivial and obvious way.
446 * mg/more-textconv (2013-05-10) 7 commits
447  - grep: honor --textconv for the case rev:path
448  - grep: allow to use textconv filters
449  - t7008: demonstrate behavior of grep with textconv
450  - cat-file: do not die on --textconv without textconv filters
451  - show: honor --textconv for blobs
452  - diff_opt: track whether flags have been set explicitly
453  - t4030: demonstrate behavior of show with textconv
455  Make "git grep" and "git show" pay attention to --textconv when
456  dealing with blob objects.
458  I thought this was pretty well designed and executed, but it seems
459  there are some doubts on the list; kicked back to 'pu'.
462 * mh/multimail (2013-07-15) 2 commits
463  - post-receive-email: deprecate script in favor of git-multimail
464  - git-multimail: an improved replacement for post-receive-email
466  An enhanced "post-receive" hook to send e-mail messages.
468  Will wait for the review for the tip one to settle and then merge.
471 * jc/format-patch (2013-04-22) 2 commits
472  - format-patch: --inline-single
473  - format-patch: rename "no_inline" field
475  A new option to send a single patch to the standard output to be
476  appended at the bottom of a message.  I personally have no need for
477  this, but it was easy enough to cobble together.  Tests, docs and
478  stripping out more MIMEy stuff are left as exercises to interested
479  parties.
481  Not ready for inclusion.
483  Will discard unless we hear from anybody who is interested in
484  tying its loose ends.
487 * jk/gitweb-utf8 (2013-04-08) 4 commits
488  - gitweb: Fix broken blob action parameters on blob/commitdiff pages
489  - gitweb: Don't append ';js=(0|1)' to external links
490  - gitweb: Make feed title valid utf8
491  - gitweb: Fix utf8 encoding for blob_plain, blobdiff_plain, commitdiff_plain, and patch
493  Various fixes to gitweb.
495  Drew Northup volunteered to take a look into this.
496  $gmane/226216
499 * jc/show-branch (2013-06-07) 5 commits
500  - show-branch: use commit slab to represent bitflags of arbitrary width
501  - show-branch.c: remove "all_mask"
502  - show-branch.c: abstract out "flags" operation
503  - show-branch.c: lift all_mask/all_revs to a global static
504  - show-branch.c: update comment style
506  Waiting for the final step to lift the hard-limit before sending it out.
508 --------------------------------------------------
509 [Cooking]
511 * rr/send-email-ssl-verify (2013-07-18) 1 commit
512  - send-email: be explicit with SSL certificate verification
514  Waiting for test reports.
517 * es/check-mailmap (2013-07-13) 2 commits
518  - t4203: test check-mailmap command invocation
519  - builtin: add git-check-mailmap command
521  A new command to allow scripts to query the mailmap information.
523  Will merge to 'next'.
526 * jc/check-x-z (2013-07-11) 4 commits
527   (merged to 'next' on 2013-07-15 at 62751bc)
528  + check-attr -z: a single -z should apply to both input and output
529  + check-ignore -z: a single -z should apply to both input and output
530  + check-attr: the name of the character is NUL, not NULL
531  + check-ignore: the name of the character is NUL, not NULL
533  "git check-ignore -z" applied the NUL termination to both its input
534  (with --stdin) and its output, but "git check-attr -z" ignored the
535  option on the output side.
537  This is potentially a backward incompatible fix.  I am tempted to
538  merge this to and keep it in 'next' for a while to see if anybody
539  screams before deciding if we want to do anything to help existing
540  users (there may be none).
542  Waiting for failure reports ;-)
545 * jk/cat-file-batch-optim (2013-07-18) 9 commits
546  - Fix some sparse warnings
547  - sha1_object_info_extended: pass object_info to helpers
548  - sha1_object_info_extended: make type calculation optional
549  - packed_object_info: make type lookup optional
550  - packed_object_info: hoist delta type resolution to helper
551  - sha1_loose_object_info: make type lookup optional
552  - sha1_object_info_extended: rename "status" to "type"
553  - cat-file: disable object/refname ambiguity check for batch mode
554  - Merge branch 'nd/warn-ambiguous-object-name' into jk/cat-file-batch-optim
556  If somebody wants to only know on-disk footprint of an object
557  without having to know its type or payload size, we can bypass a
558  lot of code to cheaply learn it.
560  Will merge to 'next'.
563 * jk/t0008-sigpipe-fix (2013-07-12) 1 commit
564   (merged to 'next' on 2013-07-15 at cead4b2)
565  + t0008: avoid SIGPIPE race condition on fifo
567  Fix for recent test breakage on 'master'.
569  Will merge to 'master'.
572 * mk/upload-pack-off-by-one-dead-code-removal (2013-07-15) 1 commit
573   (merged to 'next' on 2013-07-15 at a8f55a2)
574  + upload-pack: remove a piece of dead code
576  Will merge to 'master'.
579 * tf/gitweb-ss-tweak (2013-07-15) 4 commits
580  - gitweb: make search help link less ugly
581  - gitweb: omit the repository owner when it is unset
582  - gitweb: vertically centre contents of page footer
583  - gitweb: ensure OPML text fits inside its box
585  Waiting for comments.
588 * tr/fd-gotcha-fixes (2013-07-12) 2 commits
589   (merged to 'next' on 2013-07-18 at 30f4fdf)
590  + run-command: dup_devnull(): guard against syscalls failing
591  + git_mkstemps: correctly test return value of open()
593  Two places we did not check return value (expected to be a file
594  descriptor) correctly.
596  Will merge to 'master'.
599 * jc/mailmap-case-insensitivity (2013-07-15) 9 commits
600   (merged to 'next' on 2013-07-18 at 83341ac)
601  + mailmap: style fixes
602  + mailmap: debug: avoid passing NULL to fprintf() '%s' conversion specification
603  + mailmap: debug: eliminate -Wformat field precision type warning
604  + mailmap: debug: fix malformed fprintf() format conversion specification
605  + mailmap: debug: fix out-of-order fprintf() arguments
606  + mailmap: do not downcase mailmap entries
607  + t4203: demonstrate loss of uppercase characters in canonical email
608  + mailmap: do not lose single-letter names
609  + t4203: demonstrate loss of single-character name in mailmap entry
611  The mailmap mechanism unnecessarily downcased the e-mail addresses
612  in the output, and also ignored the human name when it is a single
613  character name.
615  This now has become Eric Sunshine's series, even though it still is
616  under jc/ hierarchy.
618  Will merge to 'master'.
621 * ms/fetch-prune-configuration (2013-07-18) 1 commit
622  - fetch: make --prune configurable
624  Allow fetch.prune and remote.*.prune configuration variables to be set,
625  and "git fetch" to behave as if "--prune" is given.
627  Will merge to 'next'.
630 * jk/gcc-function-attributes (2013-07-09) 3 commits
631   (merged to 'next' on 2013-07-12 at 5a7081f)
632  + wt-status: use "format" function attribute for status_printf
633  + use "sentinel" function attribute for variadic lists
634  + add missing "format" function attributes
636  Use the function attributes extension to catch mistakes in use of
637  our own variadic functions that use NULL sentinel at the end
638  (i.e. like execl(3)) and format strings (i.e. like printf(3)).
640  Will merge to 'master'.
643 * km/http-curl-config-per-url (2013-07-12) 2 commits
644  - config: add support for http.<url>.* settings
645  - http.c: fix parsing of http.sslCertPasswordProtected variable
647  Allows custom curl configuration per URL when talking over http.
649  There is a reroll that needs to be picked up after discussion.
652 * hv/config-from-blob (2013-07-12) 5 commits
653   (merged to 'next' on 2013-07-15 at 9ab7f3f)
654  + do not die when error in config parsing of buf occurs
655  + teach config --blob option to parse config from database
656  + config: make parsing stack struct independent from actual data source
657  + config: drop cf validity check in get_next_char()
658  + config: factor out config file stack management
660  Allow configuration data to be read from in-tree blob objects,
661  which would help working in a bare repository and submodule
662  updates.
664  Will merge to 'master'.
667 * jc/name-rev-exact-ref (2013-07-18) 5 commits
668   (merged to 'next' on 2013-07-18 at c8bc00c)
669  + describe: fix --contains when a tag is given as input
670  + name-rev: differentiate between tags and commits they point at
671   (merged to 'next' on 2013-07-11 at fd5b30c)
672  + describe: use argv-array
673  + name-rev: allow converting the exact object name at the tip of a ref
674  + name-ref: factor out name shortening logic from name_ref()
676  Corrects the longstanding sloppiness in the implementation of
677  name-rev that conflated "we take commit-ish" and "differences
678  between tags and commits do not matter".
680  Will merge to 'master'.
683 * km/svn-1.8-serf-only (2013-07-07) 2 commits
684   (merged to 'next' on 2013-07-12 at 70e0b95)
685  + git-svn: allow git-svn fetching to work using serf
686  + Git.pm: add new temp_is_locked function
688  Subversion 1.8.0 that was recently released breaks older subversion
689  clients coming over http/https in various ways.
691  Are people on older Subversion happy with this change?
694 * tr/merge-recursive-index-only (2013-07-07) 3 commits
695  - merge-recursive: -Xindex-only to leave worktree unchanged
696  - merge-recursive: untangle double meaning of o->call_depth
697  - merge-recursive: remove dead conditional in update_stages()
700 * jc/push-cas (2013-07-17) 6 commits
701  - t5533: test "push --lockref"
702  - push --lockref: tie it all together
703  - push --lockref: implement logic to populate old_sha1_expect[]
704  - remote.c: add command line option parser for "--lockref"
705  - builtin/push.c: use OPT_BOOL, not OPT_BOOLEAN
706  - cache.h: move remote/connect API out of it
708  Allow a safer "rewind of the remote tip" push than blind "--force",
709  by requiring that the overwritten remote ref to be unchanged since
710  the new history to replace it was prepared.
712  The machinery is more or less ready.  The "--force" option is again
713  the big red button to override any safety, thanks to J6t's sanity
714  (the original round allowed --lockref to defeat --force).  The
715  logic to choose the default for --lockref is suitable only for the
716  simplest workflows, and may hurt users more than help them.
718  Waiting for comments.
721 * nd/const-struct-cache-entry (2013-07-09) 1 commit
722   (merged to 'next' on 2013-07-15 at 9ce0122)
723  + Convert "struct cache_entry *" to "const ..." wherever possible
725  Will merge to 'master'.
728 * es/contacts (2013-07-03) 3 commits
729  - contrib: contacts: interpret committish akin to format-patch
730  - contrib: contacts: add ability to parse from committish
731  - contrib: add git-contacts helper
733  A helper to read from a set of format-patch output files or a range
734  of commits and find those who may have insights to the code that
735  the changes touch by running a series of "git blame" commands.
737  Still needs to add mailmap support and other niceties but the
738  basics already look sound, and the enhancements can be done
739  in-tree. Assuming that "git contact" is something we may want to
740  have as a member of the official set of commands someday, that is.
742  Perhaps this should be rebased on es/check-mailmap to utilize it.
745 * jc/pull-training-wheel (2013-07-18) 1 commit
746  - pull: require choice between rebase/merge on non-fast-forward pull
748  Make "git pull" (without arguments that say what branch to
749  integrate from where) refuse with "it does not fast forward; choose
750  between 'pull --merge' and 'pull --rebase'".
752  See
754  http://thread.gmane.org/gmane.comp.version-control.git/225146/focus=225326
755  http://thread.gmane.org/gmane.comp.version-control.git/225146/focus=229221
757  for full discussion.
759  Waiting for reviews.
762 * jk/fast-import-empty-ls (2013-06-23) 4 commits
763  - fast-import: allow moving the root tree
764  - fast-import: allow ls or filecopy of the root tree
765  - fast-import: set valid mode on root tree in "ls"
766  - t9300: document fast-import empty path issues
768  Waiting for reviews.
769  $gmane/228741
772 * rj/cygwin-clarify-use-of-cheating-lstat (2013-07-18) 1 commit
773  - cygwin: Remove the Win32 l/stat() implementation
775  Waiting for the discussion to settle.
778 * jc/reflog-doc (2013-06-19) 1 commit
779  - setup_reflog_action: document the rules for using GIT_REFLOG_ACTION
781  Document rules to use GIT_REFLOG_ACTION variable in the scripted
782  Porcelain.  git-rebase--interactive locally violates this, but it
783  is a leaf user that does not call out to or dot-sources other
784  scripts, so fixing it is not all that urgent.
787 * mh/ref-races-optim-invalidate-cached (2013-06-20) 1 commit
788  - refs: do not invalidate the packed-refs cache unnecessarily
790  This requires the platform lstat() to be correct to avoid false
791  negatives.
794 * jx/clean-interactive (2013-06-26) 16 commits
795   (merged to 'next' on 2013-07-12 at 61dd42d)
796  + test: run testcases with POSIX absolute paths on Windows
797  + test: add t7301 for git-clean--interactive
798  + git-clean: add documentation for interactive git-clean
799  + git-clean: add ask each interactive action
800  + git-clean: add select by numbers interactive action
801  + git-clean: add filter by pattern interactive action
802  + git-clean: use a git-add-interactive compatible UI
803  + git-clean: add colors to interactive git-clean
804  + git-clean: show items of del_list in columns
805  + git-clean: add support for -i/--interactive
806   (merged to 'next' on 2013-06-26 at f7be2d8)
807  + git-clean: refactor git-clean into two phases
808  + write_name{_quoted_relative,}(): remove redundant parameters
809  + quote_path_relative(): remove redundant parameter
810  + quote.c: substitute path_relative with relative_path
811  + path.c: refactor relative_path(), not only strip prefix
812  + test: add test cases for relative_path
814  Add "interactive" mode to "git clean".
816  The early part to refactor relative path related helper functions
817  looked sensible.
819  Will merge to 'master'.
822 * jn/add-2.0-u-A-sans-pathspec (2013-04-26) 1 commit
823  - git add: -u/-A now affects the entire working tree
825  Will cook in 'next' until Git 2.0.
828 * jc/core-checkstat-2.0 (2013-05-06) 1 commit
829  - core.statinfo: remove as promised in Git 2.0
831  Will cook in 'next' until Git 2.0.
834 * jc/push-2.0-default-to-simple (2013-06-18) 1 commit
835  - push: switch default from "matching" to "simple"
837  Will cook in 'next' until Git 2.0.
840 * jc/add-2.0-ignore-removal (2013-04-22) 1 commit
841  - git add <pathspec>... defaults to "-A"
843  Updated endgame for "git add <pathspec>" that defaults to "--all"
844  aka "--no-ignore-removal".
846  Will cook in 'next' until Git 2.0.