What's cooking (2013/08 #05)
[git.git] / whats-cooking.txt
bloba9a13bcb62bad346e9d49588217d5300c1e0db65
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 Subject: What's cooking in git.git (Aug 2013, #05; Mon, 19)
4 X-master-at: 4d06473928ee574910accbde05c19ef2263abdf6
5 X-next-at: fb33910d190a5cff4020f44651fc3a51f55c0a1f
7 What's cooking in git.git (Aug 2013, #05; Mon, 19)
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 An extra release candidate -rc4 has been tagged and pushed out.
15 Hopefully this will be the last one before the final release of
16 1.8.4.  As I expect we will have two more cycles of 1.8.x by the end
17 of the year and then 2.0 early next year, we may want to merge these
18 "for 2.0" topics to 'next' for real, starting the next cycle.
20 You can find the changes described here in the integration branches
21 of the repositories listed at
23     http://git-blame.blogspot.com/p/git-public-repositories.html
25 --------------------------------------------------
26 [New Topics]
28 * es/rebase-i-respect-core-commentchar (2013-08-18) 1 commit
29  - rebase -i: fix cases ignoring core.commentchar
31  Will merge to and cook in 'next'.
34 * jx/branch-vv-always-compare-with-upstream (2013-08-18) 3 commits
35  - status: always show tracking branch even no change
36  - branch: mark missing tracking branch as gone
37  - branch: not report invalid tracking branch
40 * nd/fetch-into-shallow (2013-08-18) 6 commits
41  - list-objects: mark more commits as edges in mark_edges_uninteresting
42  - list-objects: reduce one argument in mark_edges_uninteresting
43  - upload-pack: delegate rev walking in shallow fetch to pack-objects
44  - shallow: add setup_temporary_shallow()
45  - shallow: only add shallow graft points to new shallow file
46  - move setup_alternate_shallow and write_shallow_commits to shallow.c
49 * sb/diff-delta-remove-needless-comparison (2013-08-18) 1 commit
50  - create_delta_index: simplify condition always evaluating to true
52  Will merge to and cook in 'next'.
55 * sg/bash-prompt-lf-in-cwd-test (2013-08-18) 1 commit
56  - bash prompt: test the prompt with newline in repository path
58  Will merge to and cook in 'next'.
61 * jl/some-submodule-config-are-not-boolean (2013-08-19) 1 commit
62  - avoid segfault on submodule.*.path set to an empty "true"
64  Will merge to and cook in 'next'.
66 --------------------------------------------------
67 [Stalled]
69 * tf/gitweb-ss-tweak (2013-07-15) 4 commits
70  - gitweb: make search help link less ugly
71  - gitweb: omit the repository owner when it is unset
72  - gitweb: vertically centre contents of page footer
73  - gitweb: ensure OPML text fits inside its box
75  Comments?
78 * rj/read-default-config-in-show-ref-pack-refs (2013-06-17) 3 commits
79  - ### DONTMERGE: needs better explanation on what config they need
80  - pack-refs.c: Add missing call to git_config()
81  - show-ref.c: Add missing call to git_config()
83  The changes themselves are probably good, but it is unclear what
84  basic setting needs to be read for which exact operation.
86  Waiting for clarification.
87  $gmane/228294
90 * jh/shorten-refname (2013-05-07) 4 commits
91  - t1514: refname shortening is done after dereferencing symbolic refs
92  - shorten_unambiguous_ref(): Fix shortening refs/remotes/origin/HEAD to origin
93  - t1514: Demonstrate failure to correctly shorten "refs/remotes/origin/HEAD"
94  - t1514: Add tests of shortening refnames in strict/loose mode
96  When remotes/origin/HEAD is not a symbolic ref, "rev-parse
97  --abbrev-ref remotes/origin/HEAD" ought to show "origin", not
98  "origin/HEAD", which is fixed with this series (if it is a symbolic
99  ref that points at remotes/origin/something, then it should show
100  "origin/something" and it already does).
102  Expecting a reroll, as an early part of a larger series.
103  $gmane/225137
106 * jk/list-objects-sans-blobs (2013-06-06) 4 commits
107  . archive: ignore blob objects when checking reachability
108  . list-objects: optimize "revs->blob_objects = 0" case
109  . upload-archive: restrict remote objects with reachability check
110  . clear parsed flag when we free tree buffers
112  Attempt to allow "archive --remote=$there $arbitrary_sha1" while
113  keeping the reachability safety.
115  Seems to break some tests in a trivial and obvious way.
118 * mg/more-textconv (2013-05-10) 7 commits
119  - grep: honor --textconv for the case rev:path
120  - grep: allow to use textconv filters
121  - t7008: demonstrate behavior of grep with textconv
122  - cat-file: do not die on --textconv without textconv filters
123  - show: honor --textconv for blobs
124  - diff_opt: track whether flags have been set explicitly
125  - t4030: demonstrate behavior of show with textconv
127  Make "git grep" and "git show" pay attention to --textconv when
128  dealing with blob objects.
130  I thought this was pretty well designed and executed, but it seems
131  there are some doubts on the list; kicked back to 'pu'.
134 * jc/format-patch (2013-04-22) 2 commits
135  - format-patch: --inline-single
136  - format-patch: rename "no_inline" field
138  A new option to send a single patch to the standard output to be
139  appended at the bottom of a message.  I personally have no need for
140  this, but it was easy enough to cobble together.  Tests, docs and
141  stripping out more MIMEy stuff are left as exercises to interested
142  parties.
144  Not ready for inclusion.
146  Will discard unless we hear from anybody who is interested in
147  tying its loose ends.
150 * jk/gitweb-utf8 (2013-04-08) 4 commits
151  - gitweb: Fix broken blob action parameters on blob/commitdiff pages
152  - gitweb: Don't append ';js=(0|1)' to external links
153  - gitweb: Make feed title valid utf8
154  - gitweb: Fix utf8 encoding for blob_plain, blobdiff_plain, commitdiff_plain, and patch
156  Various fixes to gitweb.
158  Drew Northup volunteered to take a look into this.
159  $gmane/226216
162 * jc/show-branch (2013-06-07) 5 commits
163  - show-branch: use commit slab to represent bitflags of arbitrary width
164  - show-branch.c: remove "all_mask"
165  - show-branch.c: abstract out "flags" operation
166  - show-branch.c: lift all_mask/all_revs to a global static
167  - show-branch.c: update comment style
169  Waiting for the final step to lift the hard-limit before sending it out.
171 --------------------------------------------------
172 [Cooking]
174 * jc/ls-files-killed-optim (2013-08-15) 3 commits
175  - t3010: update to demonstrate "ls-files -k" optimization pitfalls
176  - ls-files -k: a directory only can be killed if the index has a non-directory
177  - dir.c: use the cache_* macro to access the current index
179  "git ls-files -k" needs to crawl only the part of the working tree
180  that may overlap the paths in the index to find killed files, but
181  shared code with the logic to find all the untracked files, which
182  made it unnecessarily inefficient.
184  Will merge to and cook in 'next'.
187 * es/blame-L-twice (2013-08-06) 16 commits
188   (merged to 'next' on 2013-08-08 at 9d6f821)
189  + line-range: reject -L line numbers less than 1
190  + t8001/t8002: blame: add tests of -L line numbers less than 1
191  + line-range: teach -L^:RE to search from start of file
192  + line-range: teach -L:RE to search from end of previous -L range
193  + line-range: teach -L^/RE/ to search from start of file
194  + line-range-format.txt: document -L/RE/ relative search
195  + log: teach -L/RE/ to search from end of previous -L range
196  + blame: teach -L/RE/ to search from end of previous -L range
197  + line-range: teach -L/RE/ to search relative to anchor point
198  + blame: document multiple -L support
199  + t8001/t8002: blame: add tests of multiple -L options
200  + blame: accept multiple -L ranges
201  + blame: inline one-line function into its lone caller
202  + range-set: publish API for re-use by git-blame -L
203  + line-range-format.txt: clarify -L:regex usage form
204  + git-log.txt: place each -L option variation on its own line
205  (this branch is used by es/contacts-blame-L-multi; uses es/blame-L-more.)
207  Teaches "git blame" to take more than one -L ranges.
209  Will cook in 'next'.
212 * mm/no-shell-escape-in-die-message (2013-08-07) 1 commit
213   (merged to 'next' on 2013-08-08 at bddff86)
214  + die_with_status: use "printf '%s\n'", not "echo"
216  Fixes a minor bug in "git rebase -i" (there could be others, as the
217  root cause is pretty generic) where the code feeds a random, data
218  dependeant string to 'echo' and expects it to come out literally.
220  Will cook in 'next'.
223 * tr/fd-gotcha-fixes (2013-08-06) 1 commit
224   (merged to 'next' on 2013-08-08 at f452c5b)
225  + t0070: test that git_mkstemps correctly checks return value of open()
227  Finishing touches to an earlier fix already in 'master'.
229  Will cook in 'next'.
232 * ap/remote-hg-tilde-is-home-directory (2013-08-09) 1 commit
233   (merged to 'next' on 2013-08-14 at cd963e3)
234  + remote-hg: fix path when cloning with tilde expansion
236  Will cook in 'next'.
239 * es/rebase-i-no-abbrev (2013-08-18) 4 commits
240  - rebase -i: fix core.commentchar regression
241   (merged to 'next' on 2013-08-14 at d449e0e)
242  + rebase: interactive: fix short SHA-1 collision
243  + t3404: rebase: interactive: demonstrate short SHA-1 collision
244  + t3404: restore specialized rebase-editor following commentchar test
246  Will cook in 'next'.
249 * fc/remote-hg-shared-setup (2013-08-11) 2 commits
250   (merged to 'next' on 2013-08-14 at aae6858)
251  + remote-hg: add shared repo upgrade
252  + remote-hg: ensure shared repo is initialized
254  Will cook in 'next'.
257 * jc/transport-do-not-use-connect-twice-in-fetch (2013-08-07) 5 commits
258  - fetch: work around "transport-take-over" hack
259  - fetch: refactor code that fetches leftover tags
260  - fetch: refactor code that prepares a transport
261  - fetch: rename file-scope global "transport" to "gtransport"
262  - t5802: add test for connect helper
264  The auto-tag-following code in "git fetch" tries to reuse the same
265  transport twice when the serving end does not cooperate and does
266  not give tags that point to commits that are asked for as part of
267  the primary transfer.  Unfortunately, Git-aware transport helper
268  interface is not designed to be used more than once, hence this
269  does not work over smart-http transfer.
271  I'll try to see if this workaround can be done in a cleaner way
272  before merging this to 'next'.
275 * ks/p4-view-spec (2013-08-11) 3 commits
276  - WAITING FOR ACK
277  - git p4: implement view spec wildcards with "p4 where"
278  - git p4 test: sanitize P4CHARSET
280  Waiting for an ack.
283 * mm/war-on-whatchanged (2013-08-13) 2 commits
284   (merged to 'next' on 2013-08-14 at fe77c11)
285  + whatchanged: document its historical nature
286  + core-tutorial: trim the section on Inspecting Changes
288  Will cook in 'next'.
291 * nd/gc-lock-against-each-other (2013-08-09) 1 commit
292   (merged to 'next' on 2013-08-14 at 6999651)
293  + gc: reject if another gc is running, unless --force is given
295  Will cook in 'next'.
298 * rt/doc-merge-file-diff3 (2013-08-09) 1 commit
299   (merged to 'next' on 2013-08-14 at 1e5847b)
300  + Documentation/git-merge-file: document option "--diff3"
302  Will cook in 'next'.
305 * sb/misc-cleanup (2013-08-09) 3 commits
306   (merged to 'next' on 2013-08-14 at 9e7ff9a)
307  + rm: remove unneeded null pointer check
308  + diff: fix a possible null pointer dereference
309  + diff: remove ternary operator evaluating always to true
311  Will cook in 'next'.
314 * aj/p4-symlink-lose-nl (2013-08-12) 1 commit
315   (merged to 'next' on 2013-08-14 at a4959b7)
316  + git-p4: Fix occasional truncation of symlink contents.
318  Will cook in 'next'.
321 * es/contacts-blame-L-multi (2013-08-13) 3 commits
322   (merged to 'next' on 2013-08-14 at 551ed3d)
323  + contacts: reduce git-blame invocations
324  + contacts: gather all blame sources prior to invoking git-blame
325  + contacts: validate hunk length earlier
326  (this branch uses es/blame-L-more and es/blame-L-twice.)
328  Will cook in 'next'.
331 * fc/unpack-trees-leakfix (2013-08-13) 1 commit
332   (merged to 'next' on 2013-08-14 at 989f329)
333  + unpack-trees: plug a memory leak
335  Will cook in 'next'.
338 * nd/push-no-thin (2013-08-13) 1 commit
339   (merged to 'next' on 2013-08-14 at b2d0fa9)
340  + push: respect --no-thin
342  Will cook in 'next'.
345 * sh/pull-rebase-preserve (2013-08-13) 1 commit
346   (merged to 'next' on 2013-08-14 at 99a85dd)
347  + pull: Allow pull to preserve merges when rebasing.
349  Will cook in 'next'.
352 * es/blame-L-more (2013-08-05) 11 commits
353   (merged to 'next' on 2013-08-06 at 2679f3e)
354  + blame: reject empty ranges -L,+0 and -L,-0
355  + t8001/t8002: blame: demonstrate acceptance of bogus -L,+0 and -L,-0
356  + blame: reject empty ranges -LX,+0 and -LX,-0
357  + t8001/t8002: blame: demonstrate acceptance of bogus -LX,+0 and -LX,-0
358  + log: fix -L bounds checking bug
359  + t4211: retire soon-to-be unimplementable tests
360  + t4211: log: demonstrate -L bounds checking bug
361  + blame: fix -L bounds checking bug
362  + t8001/t8002: blame: add empty file & partial-line tests
363  + t8001/t8002: blame: demonstrate -L bounds checking bug
364  + t8001/t8002: blame: decompose overly-large test
365  (this branch is used by es/blame-L-twice and es/contacts-blame-L-multi.)
367  More fixes to the code to parse the "-L" option in "log" and "blame".
369  Will cook in 'next'.
372 * jk/cat-file-batch-optim (2013-08-05) 1 commit
373   (merged to 'next' on 2013-08-06 at cd48621)
374  + cat-file: only split on whitespace when %(rest) is used
376  Rework the reverted change to `cat-file --batch-check`.
378  Will cook in 'next'.
381 * jn/post-receive-utf8 (2013-08-05) 3 commits
382  - hooks/post-receive-email: set declared encoding to utf-8
383  - hooks/post-receive-email: force log messages in UTF-8
384  - hooks/post-receive-email: use plumbing instead of git log/show
386  Update post-receive-email script to make sure the message contents
387  and pathnames are encoded consistently in UTF-8.
389  I have a feeling that it is a lost cause to solve the issue the
390  topic tries to address in general, because the patch text can have
391  payload in any encodings that are different from either the
392  pathnames or the log message.  Patches that touch paths that use an
393  encoding that conflicts with the encoding of the payload and/or the
394  log message could be transferred with core.quotepath set and patch
395  generated as all binary, but that would be pretty much useless.
398 * sb/parseopt-boolean-removal (2013-08-07) 9 commits
399   (merged to 'next' on 2013-08-08 at b138a2d)
400  + revert: use the OPT_CMDMODE for parsing, reducing code
401  + checkout-index: fix negations of even numbers of -n
402  + config parsing options: allow one flag multiple times
403  + hash-object: replace stdin parsing OPT_BOOLEAN by OPT_COUNTUP
404  + branch, commit, name-rev: ease up boolean conditions
405  + checkout: remove superfluous local variable
406  + log, format-patch: parsing uses OPT__QUIET
407  + Replace deprecated OPT_BOOLEAN by OPT_BOOL
408  + Remove deprecated OPTION_BOOLEAN for parsing arguments
409  (this branch uses jc/parseopt-command-modes.)
411  Convert most uses of OPT_BOOLEAN/OPTION_BOOLEAN that can use
412  OPT_BOOL/OPTION_BOOLEAN which have much saner semantics, and turn
413  remaining ones into OPT_SET_INT, OPT_COUNTUP, etc. as necessary.
415  Will cook in 'next'.
418 * mb/docs-favor-en-us (2013-08-01) 1 commit
419   (merged to 'next' on 2013-08-06 at 763d868)
420  + Provide some linguistic guidance for the documentation.
422  Declare that the official grammar & spelling of the source of this
423  project is en_US, but strongly discourage patches only to "fix"
424  existing en_UK strings to avoid unnecessary churns.
426  Will cook in 'next'.
429 * jc/parseopt-command-modes (2013-07-30) 2 commits
430   (merged to 'next' on 2013-08-08 at 43abba9)
431  + tag: use OPT_CMDMODE
432  + parse-options: add OPT_CMDMODE()
433  (this branch is used by sb/parseopt-boolean-removal.)
435  Many commands use --dashed-option as a operation mode selector
436  (e.g. "git tag --delete") that the user can use at most one
437  (e.g. "git tag --delete --verify" is a nonsense) and you cannot
438  negate (e.g. "git tag --no-delete" is a nonsense).  Make it easier
439  for users of parse_options() to enforce these restrictions.
441  Will cook in 'next'.
444 * tr/log-full-diff-keep-true-parents (2013-08-05) 2 commits
445   (merged to 'next' on 2013-08-08 at 2fb633f)
446  + log: use true parents for diff when walking reflogs
447  + log: use true parents for diff even when rewriting
449  Output from "git log --full-diff -- <pathspec>" looked strange,
450  because comparison was done with the previous ancestor that touched
451  the specified <pathspec>, causing the patches for paths outside the
452  pathspec to show more than the single commit has changed.
454  Tweak "git reflog -p" for the same reason using the same mechanism.
456  Will cook in 'next'.
459 * bc/unuse-packfile (2013-08-02) 2 commits
460   (merged to 'next' on 2013-08-06 at 01aa4fd)
461  + Don't close pack fd when free'ing pack windows
462  + sha1_file: introduce close_one_pack() to close packs on fd pressure
464  Handle memory pressure and file descriptor pressure separately when
465  deciding to release pack windows to honor resource limits.
467  Will cook in 'next'.
470 * da/darwin (2013-08-05) 3 commits
471   (merged to 'next' on 2013-08-05 at 5c54cfa)
472  + OS X: Fix redeclaration of die warning
473  + Makefile: Fix APPLE_COMMON_CRYPTO with BLK_SHA1
474   (merged to 'next' on 2013-08-01 at d151a94)
475  + imap-send: use Apple's Security framework for base64 encoding
477  Will cook in 'next'.
480 * nd/sq-quote-buf (2013-07-30) 3 commits
481   (merged to 'next' on 2013-08-01 at dc7934a)
482  + quote: remove sq_quote_print()
483  + tar-tree: remove dependency on sq_quote_print()
484  + for-each-ref, quote: convert *_quote_print -> *_quote_buf
486  Code simplification as a preparatory step to something larger.
488  Will cook in 'next'.
491 * jc/url-match (2013-08-09) 7 commits
492   (merged to 'next' on 2013-08-12 at 381d358)
493  + builtin/config.c: compilation fix
494   (merged to 'next' on 2013-08-08 at c1ee470)
495  + config: "git config --get-urlmatch" parses section.<url>.key
496  + builtin/config: refactor collect_config()
497  + config: parse http.<url>.<variable> using urlmatch
498  + config: add generic callback wrapper to parse section.<url>.key
499  + config: add helper to normalize and match URLs
500  + http.c: fix parsing of http.sslCertPasswordProtected variable
502  Allow section.<urlpattern>.var configuration variables to be
503  treated as a "virtual" section.var given a URL, and use the
504  mechanism to enhance http.* configuration variables.
506  This is a reroll of Kyle J. McKay's work.
508  Will cook in 'next'.
511 * jl/submodule-mv (2013-08-06) 5 commits
512   (merged to 'next' on 2013-08-08 at 1a57bdf)
513  + rm: delete .gitmodules entry of submodules removed from the work tree
514  + mv: update the path entry in .gitmodules for moved submodules
515  + submodule.c: add .gitmodules staging helper functions
516  + mv: move submodules using a gitfile
517  + mv: move submodules together with their work trees
518  (this branch uses nd/magic-pathspec.)
520  "git mv A B" when moving a submodule A does "the right thing",
521  inclusing relocating its working tree and adjusting the paths in
522  the .gitmodules file.
524  Will cook in 'next'.
527 * nd/clone-connectivity-shortcut (2013-07-23) 1 commit
528   (merged to 'next' on 2013-07-30 at 8d16721)
529  + smart http: use the same connectivity check on cloning
531  Will cook in 'next'.
534 * db/http-savecookies (2013-08-05) 2 commits
535   (merged to 'next' on 2013-08-05 at be6f3a3)
536  + t5551: Remove header from curl cookie file
537   (merged to 'next' on 2013-07-30 at d2ad6e5)
538  + http: add http.savecookies option to write out HTTP cookies
540  Will cook in 'next'.
543 * sb/fsck-opt-bool (2013-07-29) 1 commit
544   (merged to 'next' on 2013-07-30 at 8a9964c)
545  + fsck: Replace deprecated OPT_BOOLEAN by OPT_BOOL
547  Will drop.
549  sb/parseopt-boolean-removal contains the moral equivalent of this
550  change.
553 * rr/feed-real-path-to-editor (2013-07-29) 1 commit
554   (merged to 'next' on 2013-07-30 at 72c9bcb)
555  + editor: use canonicalized absolute path
557  Will cook in 'next'.
560 * rj/doc-rev-parse (2013-07-22) 2 commits
561   (merged to 'next' on 2013-07-22 at 8188667)
562  + rev-parse(1): logically group options
563  + rev-parse: remove restrictions on some options
565  Will cook in 'next'.
568 * jk/fast-import-empty-ls (2013-06-23) 4 commits
569   (merged to 'next' on 2013-07-22 at d26dab6)
570  + fast-import: allow moving the root tree
571  + fast-import: allow ls or filecopy of the root tree
572  + fast-import: set valid mode on root tree in "ls"
573  + t9300: document fast-import empty path issues
575  Will cook in 'next'.
578 * jc/diff-filter-negation (2013-07-19) 6 commits
579   (merged to 'next' on 2013-07-22 at 80d167d)
580  + diff: deprecate -q option to diff-files
581  + diff: allow lowercase letter to specify what change class to exclude
582  + diff: reject unknown change class given to --diff-filter
583  + diff: preparse --diff-filter string argument
584  + diff: factor out match_filter()
585  + diff: pass the whole diff_options to diffcore_apply_filter()
586  (this branch is used by jc/hold-diff-remove-q-synonym-for-no-deletion.)
588  Teach "git diff --diff-filter" to express "I do not want to see
589  these classes of changes" more directly by listing only the
590  unwanted ones in lowercase (e.g. "--diff-filter=d" will show
591  everything but deletion) and deprecate "diff-files -q" which did
592  the same thing as "--diff-filter=d".
594  Will cook in 'next'.
597 * nd/magic-pathspec (2013-07-23) 48 commits
598   (merged to 'next' on 2013-07-23 at 784c3a1)
599  + rm: do not set a variable twice without intermediate reading.
600   (merged to 'next' on 2013-07-22 at 39f7194)
601  + t6131 - skip tests if on case-insensitive file system
602  + parse_pathspec: accept :(icase)path syntax
603  + pathspec: support :(glob) syntax
604  + pathspec: make --literal-pathspecs disable pathspec magic
605  + pathspec: support :(literal) syntax for noglob pathspec
606  + kill limit_pathspec_to_literal() as it's only used by parse_pathspec()
607  + parse_pathspec: preserve prefix length via PATHSPEC_PREFIX_ORIGIN
608  + parse_pathspec: make sure the prefix part is wildcard-free
609  + rename field "raw" to "_raw" in struct pathspec
610  + tree-diff: remove the use of pathspec's raw[] in follow-rename codepath
611  + remove match_pathspec() in favor of match_pathspec_depth()
612  + remove init_pathspec() in favor of parse_pathspec()
613  + remove diff_tree_{setup,release}_paths
614  + convert common_prefix() to use struct pathspec
615  + convert add_files_to_cache to take struct pathspec
616  + convert {read,fill}_directory to take struct pathspec
617  + convert refresh_index to take struct pathspec
618  + convert report_path_error to take struct pathspec
619  + checkout: convert read_tree_some to take struct pathspec
620  + convert unmerge_cache to take struct pathspec
621  + convert run_add_interactive to use struct pathspec
622  + convert read_cache_preload() to take struct pathspec
623  + line-log: convert to use parse_pathspec
624  + reset: convert to use parse_pathspec
625  + add: convert to use parse_pathspec
626  + check-ignore: convert to use parse_pathspec
627  + archive: convert to use parse_pathspec
628  + ls-files: convert to use parse_pathspec
629  + rm: convert to use parse_pathspec
630  + checkout: convert to use parse_pathspec
631  + rerere: convert to use parse_pathspec
632  + status: convert to use parse_pathspec
633  + commit: convert to use parse_pathspec
634  + clean: convert to use parse_pathspec
635  + guard against new pathspec magic in pathspec matching code
636  + parse_pathspec: support prefixing original patterns
637  + parse_pathspec: support stripping/checking submodule paths
638  + parse_pathspec: support stripping submodule trailing slashes
639  + parse_pathspec: add special flag for max_depth feature
640  + convert some get_pathspec() calls to parse_pathspec()
641  + parse_pathspec: add PATHSPEC_PREFER_{CWD,FULL} flags
642  + parse_pathspec: save original pathspec for reporting
643  + add parse_pathspec() that converts cmdline args to struct pathspec
644  + pathspec: add copy_pathspec
645  + pathspec: i18n-ize error strings in pathspec parsing code
646  + move struct pathspec and related functions to pathspec.[ch]
647  + clean: remove unused variable "seen"
648  (this branch is used by jl/submodule-mv.)
650  Use "struct pathspec" interface in more places, instead of array of
651  characters, the latter of which cannot express magic pathspecs
652  (e.g. ":(icase)makefile" that matches both Makefile and makefile).
654  Will cook in 'next'.
657 * jc/check-x-z (2013-07-11) 4 commits
658   (merged to 'next' on 2013-07-15 at 62751bc)
659  + check-attr -z: a single -z should apply to both input and output
660  + check-ignore -z: a single -z should apply to both input and output
661  + check-attr: the name of the character is NUL, not NULL
662  + check-ignore: the name of the character is NUL, not NULL
664  "git check-ignore -z" applied the NUL termination to both its input
665  (with --stdin) and its output, but "git check-attr -z" ignored the
666  option on the output side.
668  This is potentially a backward incompatible fix.  I am tempted to
669  merge this to and keep it in 'next' for a while to see if anybody
670  screams before deciding if we want to do anything to help existing
671  users (there may be none).
673  Will cook in 'next'.
676 * ms/fetch-prune-configuration (2013-07-18) 1 commit
677   (merged to 'next' on 2013-07-21 at 7ffb690)
678  + fetch: make --prune configurable
680  Allow fetch.prune and remote.*.prune configuration variables to be set,
681  and "git fetch" to behave as if "--prune" is given.
683  "git fetch" that honors remote.*.prune is fine, but I wonder if we
684  should somehow make "git push" aware of it as well.  Perhaps
685  remote.*.prune should not be just a boolean, but a 4-way "none",
686  "push", "fetch", "both"?
688  Will cook in 'next'.
691 * km/svn-1.8-serf-only (2013-07-18) 3 commits
692   (merged to 'next' on 2013-07-19 at ab8d034)
693  + Git.pm: revert _temp_cache use of temp_is_locked
694   (merged to 'next' on 2013-07-12 at 70e0b95)
695  + git-svn: allow git-svn fetching to work using serf
696  + Git.pm: add new temp_is_locked function
698  Subversion 1.8.0 that was recently released breaks older subversion
699  clients coming over http/https in various ways.
701  Will cook in 'next'.
704 * tr/merge-recursive-index-only (2013-07-07) 3 commits
705  - merge-recursive: -Xindex-only to leave worktree unchanged
706  - merge-recursive: untangle double meaning of o->call_depth
707  - merge-recursive: remove dead conditional in update_stages()
709  Will hold, until we get any user.
712 * jc/push-cas (2013-08-02) 9 commits
713   (merged to 'next' on 2013-08-05 at 34f4cf3)
714  + push: teach --force-with-lease to smart-http transport
715  + send-pack: fix parsing of --force-with-lease option
716   (merged to 'next' on 2013-08-01 at a7604ee)
717  + t5540/5541: smart-http does not support "--force-with-lease"
718   (merged to 'next' on 2013-07-23 at 72371b0)
719  + t5533: test "push --force-with-lease"
720  + push --force-with-lease: tie it all together
721  + push --force-with-lease: implement logic to populate old_sha1_expect[]
722  + remote.c: add command line option parser for "--force-with-lease"
723  + builtin/push.c: use OPT_BOOL, not OPT_BOOLEAN
724  + cache.h: move remote/connect API out of it
726  Allow a safer "rewind of the remote tip" push than blind "--force",
727  by requiring that the overwritten remote ref to be unchanged since
728  the new history to replace it was prepared.
730  The machinery is more or less ready.  The "--force" option is again
731  the big red button to override any safety, thanks to J6t's sanity
732  (the original round allowed --lockref to defeat --force).
734  The logic to choose the default implemented here is fragile
735  (e.g. "git fetch" after seeing a failure will update the
736  remote-tracking branch and will make the next "push" pass,
737  defeating the safety pretty easily).  It is suitable only for the
738  simplest workflows, and it may hurt users more than it helps them.
740  Will cook in 'next'.
743 * jc/pull-training-wheel (2013-07-19) 1 commit
744   (merged to 'next' on 2013-07-22 at 748180e)
745  + pull: require choice between rebase/merge on non-fast-forward pull
747  Make "git pull" (without arguments that say what branch to
748  integrate from where) refuse with "it does not fast forward; choose
749  between 'pull --merge' and 'pull --rebase'".
751  See
753  http://thread.gmane.org/gmane.comp.version-control.git/225146/focus=225326
754  http://thread.gmane.org/gmane.comp.version-control.git/225146/focus=229221
756  for full discussion.
758  Will cook in 'next'.
761 * jc/reflog-doc (2013-06-19) 1 commit
762  - setup_reflog_action: document the rules for using GIT_REFLOG_ACTION
764  Document rules to use GIT_REFLOG_ACTION variable in the scripted
765  Porcelain.  git-rebase--interactive locally violates this, but it
766  is a leaf user that does not call out to or dot-sources other
767  scripts, so fixing it is not all that urgent.
770 * jn/add-2.0-u-A-sans-pathspec (2013-04-26) 1 commit
771  - git add: -u/-A now affects the entire working tree
773  Will cook in 'next' until Git 2.0.
776 * jc/core-checkstat-2.0 (2013-05-06) 1 commit
777  - core.statinfo: remove as promised in Git 2.0
779  Will cook in 'next' until Git 2.0.
782 * jc/push-2.0-default-to-simple (2013-06-18) 1 commit
783  - push: switch default from "matching" to "simple"
785  Will cook in 'next' until Git 2.0.
788 * jc/add-2.0-ignore-removal (2013-04-22) 1 commit
789  - git add <pathspec>... defaults to "-A"
791  Updated endgame for "git add <pathspec>" that defaults to "--all"
792  aka "--no-ignore-removal".
794  Will cook in 'next' until Git 2.0.
797 * jc/hold-diff-remove-q-synonym-for-no-deletion (2013-07-19) 1 commit
798  - diff: remove "diff-files -q" in a version of Git in a distant future
799  (this branch uses jc/diff-filter-negation.)
801  Will cook in 'next' until a distant future.
803 --------------------------------------------------
804 [Discarded]
806 * jh/remote-hg-fetch-fix (2013-07-25) 2 commits
807   (merged to 'next' on 2013-07-25 at 33161ad)
808  + Revert "remotes-hg: bugfix for fetching non local remotes"
809   (merged to 'next' on 2013-07-24 at 9c96641)
810  + remotes-hg: bugfix for fetching non local remotes
812  Reverted.
814  Waiting for the final patch to replace, after discussion settles.
817 * km/http-curl-config-per-url (2013-07-31) 7 commits
818   (merged to 'next' on 2013-07-31 at e88aad5)
819  + Revert km/http-curl-config-per-url in its entirety
820   (merged to 'next' on 2013-07-25 at 531e8cb)
821  + docs: update http.<url>.* options documentation
822   (merged to 'next' on 2013-07-23 at f84689b)
823  + config: allow http.<url>.* any user matching
824  + tests: add new test for the url_normalize function
825  + config: improve support for http.<url>.* settings
826  + config: add support for http.<url>.* settings
827  + http.c: fix parsing of http.sslCertPasswordProtected variable
829  Reverted to be replaced with a reroll (jc/url-match topic).