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