What's cooking (2013-08 #03)
[alt-git.git] / whats-cooking.txt
blobe729858e912218eb5c5685b246e618c949b38a67
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 Subject: What's cooking in git.git (Aug 2013, #03; Tue, 13)
4 X-master-at: 425df881e08bed7a8fcc9a23f452cff792f9ec6c
5 X-next-at: 80e72f1fb22b04aabd28f14eb96d1beb23e37b9d
7 What's cooking in git.git (Aug 2013, #03; Tue, 13)
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 The -rc3 has been tagged; we will need to revert a7365313 (git
15 stash: avoid data loss when "git stash save" kills a directory,
16 2013-06-28) that is killing "git stash" in repositories with too
17 many untracked cruft and plan to reapply it after trying to whip
18 "ls-files --killed" into a reasonable performer before the final.
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 [Graduated to "master"]
28 * sb/mailmap-updates (2013-08-12) 1 commit
29  + .mailmap: update long-lost friends with multiple defunct addresses
31 --------------------------------------------------
32 [New Topics]
34 * es/blame-L-twice (2013-08-06) 16 commits
35   (merged to 'next' on 2013-08-08 at 9d6f821)
36  + line-range: reject -L line numbers less than 1
37  + t8001/t8002: blame: add tests of -L line numbers less than 1
38  + line-range: teach -L^:RE to search from start of file
39  + line-range: teach -L:RE to search from end of previous -L range
40  + line-range: teach -L^/RE/ to search from start of file
41  + line-range-format.txt: document -L/RE/ relative search
42  + log: teach -L/RE/ to search from end of previous -L range
43  + blame: teach -L/RE/ to search from end of previous -L range
44  + line-range: teach -L/RE/ to search relative to anchor point
45  + blame: document multiple -L support
46  + t8001/t8002: blame: add tests of multiple -L options
47  + blame: accept multiple -L ranges
48  + blame: inline one-line function into its lone caller
49  + range-set: publish API for re-use by git-blame -L
50  + line-range-format.txt: clarify -L:regex usage form
51  + git-log.txt: place each -L option variation on its own line
52  (this branch is used by es/contacts-blame-L-multi; uses es/blame-L-more.)
54  Teaches "git blame" to take more than one -L ranges.
56  Will cook in 'next'.
59 * mm/no-shell-escape-in-die-message (2013-08-07) 1 commit
60   (merged to 'next' on 2013-08-08 at bddff86)
61  + die_with_status: use "printf '%s\n'", not "echo"
63  Fixes a minor bug in "git rebase -i" (there could be others, as the
64  root cause is pretty generic) where the code feeds a random, data
65  dependeant string to 'echo' and expects it to come out literally.
67  Will cook in 'next'.
70 * tr/fd-gotcha-fixes (2013-08-06) 1 commit
71   (merged to 'next' on 2013-08-08 at f452c5b)
72  + t0070: test that git_mkstemps correctly checks return value of open()
74  Finishing touches to an earlier fix already in 'master'.
76  Will cook in 'next'.
79 * ap/remote-hg-tilde-is-home-directory (2013-08-09) 1 commit
80  - remote-hg: fix path when cloning with tilde expansion
82  Will merge to and cook in 'next'.
85 * es/rebase-i-no-abbrev (2013-08-11) 3 commits
86  - rebase: interactive: fix short SHA-1 collision
87  - t3404: rebase: interactive: demonstrate short SHA-1 collision
88  - t3404: restore specialized rebase-editor following commentchar test
90  Will merge to and cook in 'next'.
93 * fc/remote-hg-shared-setup (2013-08-11) 2 commits
94  - remote-hg: add shared repo upgrade
95  - remote-hg: ensure shared repo is initialized
97  Will merge to and cook in 'next'.
100 * jc/transport-do-not-use-connect-twice-in-fetch (2013-08-07) 5 commits
101  - fetch: work around "transport-take-over" hack
102  - fetch: refactor code that fetches leftover tags
103  - fetch: refactor code that prepares a transport
104  - fetch: rename file-scope global "transport" to "gtransport"
105  - t5802: add test for connect helper
107  The auto-tag-following code in "git fetch" tries to reuse the same
108  transport twice when the serving end does not cooperate and does
109  not give tags that point to commits that are asked for as part of
110  the primary transfer.  Unfortunately, Git-aware transport helper
111  interface is not designed to be used more than once, hence this
112  does not work over smart-http transfer.
114  I'll try to see if this workaround can be done in a cleaner way
115  before merging this to 'next'.
118 * ks/p4-view-spec (2013-08-11) 3 commits
119  - WAITING FOR ACK
120  - git p4: implement view spec wildcards with "p4 where"
121  - git p4 test: sanitize P4CHARSET
123  Waiting for an ack.
126 * mm/war-on-whatchanged (2013-08-13) 2 commits
127  - whatchanged: document its historical nature
128  - core-tutorial: trim the section on Inspecting Changes
130  Will merge to and cook in 'next'.
133 * nd/gc-lock-against-each-other (2013-08-09) 1 commit
134  - gc: reject if another gc is running, unless --force is given
136  Will merge to and cook in 'next'.
139 * rt/doc-merge-file-diff3 (2013-08-09) 1 commit
140  - Documentation/git-merge-file: document option "--diff3"
142  Will merge to and cook in 'next'.
145 * sb/misc-cleanup (2013-08-09) 3 commits
146  - rm: remove unneeded null pointer check
147  - diff: fix a possible null pointer dereference
148  - diff: remove ternary operator evaluating always to true
150  Will merge to and cook in 'next'.
153 * aj/p4-symlink-lose-nl (2013-08-12) 1 commit
154  - git-p4: Fix occasional truncation of symlink contents.
156  Will merge to and cook in 'next'.
159 * es/contacts-blame-L-multi (2013-08-13) 3 commits
160  - contacts: reduce git-blame invocations
161  - contacts: gather all blame sources prior to invoking git-blame
162  - contacts: validate hunk length earlier
163  (this branch uses es/blame-L-more and es/blame-L-twice.)
165  Will merge to and cook in 'next'.
168 * fc/unpack-trees-leakfix (2013-08-13) 1 commit
169  - unpack-trees: plug a memory leak
171  Will merge to and cook in 'next'.
174 * nd/push-no-thin (2013-08-13) 1 commit
175  - push: respect --no-thin
177  Will merge to and cook in 'next'.
180 * sh/pull-rebase-preserve (2013-08-13) 1 commit
181  - pull: Allow pull to preserve merges when rebasing.
183  Will merge to and cook in 'next'.
185 --------------------------------------------------
186 [Stalled]
188 * tf/gitweb-ss-tweak (2013-07-15) 4 commits
189  - gitweb: make search help link less ugly
190  - gitweb: omit the repository owner when it is unset
191  - gitweb: vertically centre contents of page footer
192  - gitweb: ensure OPML text fits inside its box
194  Comments?
197 * rj/read-default-config-in-show-ref-pack-refs (2013-06-17) 3 commits
198  - ### DONTMERGE: needs better explanation on what config they need
199  - pack-refs.c: Add missing call to git_config()
200  - show-ref.c: Add missing call to git_config()
202  The changes themselves are probably good, but it is unclear what
203  basic setting needs to be read for which exact operation.
205  Waiting for clarification.
206  $gmane/228294
209 * jh/shorten-refname (2013-05-07) 4 commits
210  - t1514: refname shortening is done after dereferencing symbolic refs
211  - shorten_unambiguous_ref(): Fix shortening refs/remotes/origin/HEAD to origin
212  - t1514: Demonstrate failure to correctly shorten "refs/remotes/origin/HEAD"
213  - t1514: Add tests of shortening refnames in strict/loose mode
215  When remotes/origin/HEAD is not a symbolic ref, "rev-parse
216  --abbrev-ref remotes/origin/HEAD" ought to show "origin", not
217  "origin/HEAD", which is fixed with this series (if it is a symbolic
218  ref that points at remotes/origin/something, then it should show
219  "origin/something" and it already does).
221  Expecting a reroll, as an early part of a larger series.
222  $gmane/225137
225 * jk/list-objects-sans-blobs (2013-06-06) 4 commits
226  . archive: ignore blob objects when checking reachability
227  . list-objects: optimize "revs->blob_objects = 0" case
228  . upload-archive: restrict remote objects with reachability check
229  . clear parsed flag when we free tree buffers
231  Attempt to allow "archive --remote=$there $arbitrary_sha1" while
232  keeping the reachability safety.
234  Seems to break some tests in a trivial and obvious way.
237 * mg/more-textconv (2013-05-10) 7 commits
238  - grep: honor --textconv for the case rev:path
239  - grep: allow to use textconv filters
240  - t7008: demonstrate behavior of grep with textconv
241  - cat-file: do not die on --textconv without textconv filters
242  - show: honor --textconv for blobs
243  - diff_opt: track whether flags have been set explicitly
244  - t4030: demonstrate behavior of show with textconv
246  Make "git grep" and "git show" pay attention to --textconv when
247  dealing with blob objects.
249  I thought this was pretty well designed and executed, but it seems
250  there are some doubts on the list; kicked back to 'pu'.
253 * jc/format-patch (2013-04-22) 2 commits
254  - format-patch: --inline-single
255  - format-patch: rename "no_inline" field
257  A new option to send a single patch to the standard output to be
258  appended at the bottom of a message.  I personally have no need for
259  this, but it was easy enough to cobble together.  Tests, docs and
260  stripping out more MIMEy stuff are left as exercises to interested
261  parties.
263  Not ready for inclusion.
265  Will discard unless we hear from anybody who is interested in
266  tying its loose ends.
269 * jk/gitweb-utf8 (2013-04-08) 4 commits
270  - gitweb: Fix broken blob action parameters on blob/commitdiff pages
271  - gitweb: Don't append ';js=(0|1)' to external links
272  - gitweb: Make feed title valid utf8
273  - gitweb: Fix utf8 encoding for blob_plain, blobdiff_plain, commitdiff_plain, and patch
275  Various fixes to gitweb.
277  Drew Northup volunteered to take a look into this.
278  $gmane/226216
281 * jc/show-branch (2013-06-07) 5 commits
282  - show-branch: use commit slab to represent bitflags of arbitrary width
283  - show-branch.c: remove "all_mask"
284  - show-branch.c: abstract out "flags" operation
285  - show-branch.c: lift all_mask/all_revs to a global static
286  - show-branch.c: update comment style
288  Waiting for the final step to lift the hard-limit before sending it out.
290 --------------------------------------------------
291 [Cooking]
293 * es/blame-L-more (2013-08-05) 11 commits
294   (merged to 'next' on 2013-08-06 at 2679f3e)
295  + blame: reject empty ranges -L,+0 and -L,-0
296  + t8001/t8002: blame: demonstrate acceptance of bogus -L,+0 and -L,-0
297  + blame: reject empty ranges -LX,+0 and -LX,-0
298  + t8001/t8002: blame: demonstrate acceptance of bogus -LX,+0 and -LX,-0
299  + log: fix -L bounds checking bug
300  + t4211: retire soon-to-be unimplementable tests
301  + t4211: log: demonstrate -L bounds checking bug
302  + blame: fix -L bounds checking bug
303  + t8001/t8002: blame: add empty file & partial-line tests
304  + t8001/t8002: blame: demonstrate -L bounds checking bug
305  + t8001/t8002: blame: decompose overly-large test
306  (this branch is used by es/blame-L-twice and es/contacts-blame-L-multi.)
308  More fixes to the code to parse the "-L" option in "log" and "blame".
310  Will cook in 'next'.
313 * jk/cat-file-batch-optim (2013-08-05) 1 commit
314   (merged to 'next' on 2013-08-06 at cd48621)
315  + cat-file: only split on whitespace when %(rest) is used
317  Rework the reverted change to `cat-file --batch-check`.
319  Will cook in 'next'.
322 * jn/post-receive-utf8 (2013-08-05) 3 commits
323  - hooks/post-receive-email: set declared encoding to utf-8
324  - hooks/post-receive-email: force log messages in UTF-8
325  - hooks/post-receive-email: use plumbing instead of git log/show
327  Update post-receive-email script to make sure the message contents
328  and pathnames are encoded consistently in UTF-8.
330  I have a feeling that it is a lost cause to solve the issue the
331  topic tries to address in general, because the patch text can have
332  payload in any encodings that are different from either the
333  pathnames or the log message.  Patches that touch paths that use an
334  encoding that conflicts with the encoding of the payload and/or the
335  log message could be transferred with core.quotepath set and patch
336  generated as all binary, but that would be pretty much useless.
339 * sb/parseopt-boolean-removal (2013-08-07) 9 commits
340   (merged to 'next' on 2013-08-08 at b138a2d)
341  + revert: use the OPT_CMDMODE for parsing, reducing code
342  + checkout-index: fix negations of even numbers of -n
343  + config parsing options: allow one flag multiple times
344  + hash-object: replace stdin parsing OPT_BOOLEAN by OPT_COUNTUP
345  + branch, commit, name-rev: ease up boolean conditions
346  + checkout: remove superfluous local variable
347  + log, format-patch: parsing uses OPT__QUIET
348  + Replace deprecated OPT_BOOLEAN by OPT_BOOL
349  + Remove deprecated OPTION_BOOLEAN for parsing arguments
350  (this branch uses jc/parseopt-command-modes.)
352  Convert most uses of OPT_BOOLEAN/OPTION_BOOLEAN that can use
353  OPT_BOOL/OPTION_BOOLEAN which have much saner semantics, and turn
354  remaining ones into OPT_SET_INT, OPT_COUNTUP, etc. as necessary;
355  there seems to be some misconversion that makes many tests fail,
356  though.
358  Will cook in 'next'.
361 * mb/docs-favor-en-us (2013-08-01) 1 commit
362   (merged to 'next' on 2013-08-06 at 763d868)
363  + Provide some linguistic guidance for the documentation.
365  Declare that the official grammar & spelling of the source of this
366  project is en_US, but strongly discourage patches only to "fix"
367  existing en_UK strings to avoid unnecessary churns.
369  Will cook in 'next'.
372 * jc/parseopt-command-modes (2013-07-30) 2 commits
373   (merged to 'next' on 2013-08-08 at 43abba9)
374  + tag: use OPT_CMDMODE
375  + parse-options: add OPT_CMDMODE()
376  (this branch is used by sb/parseopt-boolean-removal.)
378  Many commands use --dashed-option as a operation mode selector
379  (e.g. "git tag --delete") that the user can use at most one
380  (e.g. "git tag --delete --verify" is a nonsense) and you cannot
381  negate (e.g. "git tag --no-delete" is a nonsense).  Make it easier
382  for users of parse_options() to enforce these restrictions.
384  Will cook in 'next'.
387 * tr/log-full-diff-keep-true-parents (2013-08-05) 2 commits
388   (merged to 'next' on 2013-08-08 at 2fb633f)
389  + log: use true parents for diff when walking reflogs
390  + log: use true parents for diff even when rewriting
392  Output from "git log --full-diff -- <pathspec>" looked strange,
393  because comparison was done with the previous ancestor that touched
394  the specified <pathspec>, causing the patches for paths outside the
395  pathspec to show more than the single commit has changed.
397  Tweak "git reflog -p" for the same reason using the same mechanism.
399  Will cook in 'next'.
402 * bc/unuse-packfile (2013-08-02) 2 commits
403   (merged to 'next' on 2013-08-06 at 01aa4fd)
404  + Don't close pack fd when free'ing pack windows
405  + sha1_file: introduce close_one_pack() to close packs on fd pressure
407  Handle memory pressure and file descriptor pressure separately when
408  deciding to release pack windows to honor resource limits.
410  Will cook in 'next'.
413 * da/darwin (2013-08-05) 3 commits
414   (merged to 'next' on 2013-08-05 at 5c54cfa)
415  + OS X: Fix redeclaration of die warning
416  + Makefile: Fix APPLE_COMMON_CRYPTO with BLK_SHA1
417   (merged to 'next' on 2013-08-01 at d151a94)
418  + imap-send: use Apple's Security framework for base64 encoding
420  Will cook in 'next'.
423 * nd/sq-quote-buf (2013-07-30) 3 commits
424   (merged to 'next' on 2013-08-01 at dc7934a)
425  + quote: remove sq_quote_print()
426  + tar-tree: remove dependency on sq_quote_print()
427  + for-each-ref, quote: convert *_quote_print -> *_quote_buf
429  Code simplification as a preparatory step to something larger.
431  Will cook in 'next'.
434 * jc/url-match (2013-08-09) 7 commits
435   (merged to 'next' on 2013-08-12 at 381d358)
436  + builtin/config.c: compilation fix
437   (merged to 'next' on 2013-08-08 at c1ee470)
438  + config: "git config --get-urlmatch" parses section.<url>.key
439  + builtin/config: refactor collect_config()
440  + config: parse http.<url>.<variable> using urlmatch
441  + config: add generic callback wrapper to parse section.<url>.key
442  + config: add helper to normalize and match URLs
443  + http.c: fix parsing of http.sslCertPasswordProtected variable
445  Allow section.<urlpattern>.var configuration variables to be
446  treated as a "virtual" section.var given a URL, and use the
447  mechanism to enhance http.* configuration variables.
449  This is a reroll of Kyle J. McKay's work.
451  Will cook in 'next'.
454 * jl/submodule-mv (2013-08-06) 5 commits
455   (merged to 'next' on 2013-08-08 at 1a57bdf)
456  + rm: delete .gitmodules entry of submodules removed from the work tree
457  + mv: update the path entry in .gitmodules for moved submodules
458  + submodule.c: add .gitmodules staging helper functions
459  + mv: move submodules using a gitfile
460  + mv: move submodules together with their work trees
461  (this branch uses nd/magic-pathspec.)
463  "git mv A B" when moving a submodule A does "the right thing",
464  inclusing relocating its working tree and adjusting the paths in
465  the .gitmodules file.
467  Will cook in 'next'.
470 * nd/clone-connectivity-shortcut (2013-07-23) 1 commit
471   (merged to 'next' on 2013-07-30 at 8d16721)
472  + smart http: use the same connectivity check on cloning
474  Will cook in 'next'.
477 * db/http-savecookies (2013-08-05) 2 commits
478   (merged to 'next' on 2013-08-05 at be6f3a3)
479  + t5551: Remove header from curl cookie file
480   (merged to 'next' on 2013-07-30 at d2ad6e5)
481  + http: add http.savecookies option to write out HTTP cookies
483  Will cook in 'next'.
486 * sb/fsck-opt-bool (2013-07-29) 1 commit
487   (merged to 'next' on 2013-07-30 at 8a9964c)
488  + fsck: Replace deprecated OPT_BOOLEAN by OPT_BOOL
490  Will cook in 'next'.
493 * rr/feed-real-path-to-editor (2013-07-29) 1 commit
494   (merged to 'next' on 2013-07-30 at 72c9bcb)
495  + editor: use canonicalized absolute path
497  Will cook in 'next'.
500 * rj/doc-rev-parse (2013-07-22) 2 commits
501   (merged to 'next' on 2013-07-22 at 8188667)
502  + rev-parse(1): logically group options
503  + rev-parse: remove restrictions on some options
505  Will cook in 'next'.
508 * jk/fast-import-empty-ls (2013-06-23) 4 commits
509   (merged to 'next' on 2013-07-22 at d26dab6)
510  + fast-import: allow moving the root tree
511  + fast-import: allow ls or filecopy of the root tree
512  + fast-import: set valid mode on root tree in "ls"
513  + t9300: document fast-import empty path issues
515  Will cook in 'next'.
518 * jc/diff-filter-negation (2013-07-19) 6 commits
519   (merged to 'next' on 2013-07-22 at 80d167d)
520  + diff: deprecate -q option to diff-files
521  + diff: allow lowercase letter to specify what change class to exclude
522  + diff: reject unknown change class given to --diff-filter
523  + diff: preparse --diff-filter string argument
524  + diff: factor out match_filter()
525  + diff: pass the whole diff_options to diffcore_apply_filter()
526  (this branch is used by jc/hold-diff-remove-q-synonym-for-no-deletion.)
528  Teach "git diff --diff-filter" to express "I do not want to see
529  these classes of changes" more directly by listing only the
530  unwanted ones in lowercase (e.g. "--diff-filter=d" will show
531  everything but deletion) and deprecate "diff-files -q" which did
532  the same thing as "--diff-filter=d".
534  Will cook in 'next'.
537 * nd/magic-pathspec (2013-07-23) 48 commits
538   (merged to 'next' on 2013-07-23 at 784c3a1)
539  + rm: do not set a variable twice without intermediate reading.
540   (merged to 'next' on 2013-07-22 at 39f7194)
541  + t6131 - skip tests if on case-insensitive file system
542  + parse_pathspec: accept :(icase)path syntax
543  + pathspec: support :(glob) syntax
544  + pathspec: make --literal-pathspecs disable pathspec magic
545  + pathspec: support :(literal) syntax for noglob pathspec
546  + kill limit_pathspec_to_literal() as it's only used by parse_pathspec()
547  + parse_pathspec: preserve prefix length via PATHSPEC_PREFIX_ORIGIN
548  + parse_pathspec: make sure the prefix part is wildcard-free
549  + rename field "raw" to "_raw" in struct pathspec
550  + tree-diff: remove the use of pathspec's raw[] in follow-rename codepath
551  + remove match_pathspec() in favor of match_pathspec_depth()
552  + remove init_pathspec() in favor of parse_pathspec()
553  + remove diff_tree_{setup,release}_paths
554  + convert common_prefix() to use struct pathspec
555  + convert add_files_to_cache to take struct pathspec
556  + convert {read,fill}_directory to take struct pathspec
557  + convert refresh_index to take struct pathspec
558  + convert report_path_error to take struct pathspec
559  + checkout: convert read_tree_some to take struct pathspec
560  + convert unmerge_cache to take struct pathspec
561  + convert run_add_interactive to use struct pathspec
562  + convert read_cache_preload() to take struct pathspec
563  + line-log: convert to use parse_pathspec
564  + reset: convert to use parse_pathspec
565  + add: convert to use parse_pathspec
566  + check-ignore: convert to use parse_pathspec
567  + archive: convert to use parse_pathspec
568  + ls-files: convert to use parse_pathspec
569  + rm: convert to use parse_pathspec
570  + checkout: convert to use parse_pathspec
571  + rerere: convert to use parse_pathspec
572  + status: convert to use parse_pathspec
573  + commit: convert to use parse_pathspec
574  + clean: convert to use parse_pathspec
575  + guard against new pathspec magic in pathspec matching code
576  + parse_pathspec: support prefixing original patterns
577  + parse_pathspec: support stripping/checking submodule paths
578  + parse_pathspec: support stripping submodule trailing slashes
579  + parse_pathspec: add special flag for max_depth feature
580  + convert some get_pathspec() calls to parse_pathspec()
581  + parse_pathspec: add PATHSPEC_PREFER_{CWD,FULL} flags
582  + parse_pathspec: save original pathspec for reporting
583  + add parse_pathspec() that converts cmdline args to struct pathspec
584  + pathspec: add copy_pathspec
585  + pathspec: i18n-ize error strings in pathspec parsing code
586  + move struct pathspec and related functions to pathspec.[ch]
587  + clean: remove unused variable "seen"
588  (this branch is used by jl/submodule-mv.)
590  Use "struct pathspec" interface in more places, instead of array of
591  characters, the latter of which cannot express magic pathspecs
592  (e.g. ":(icase)makefile" that matches both Makefile and makefile).
594  Will cook in 'next'.
597 * jc/check-x-z (2013-07-11) 4 commits
598   (merged to 'next' on 2013-07-15 at 62751bc)
599  + check-attr -z: a single -z should apply to both input and output
600  + check-ignore -z: a single -z should apply to both input and output
601  + check-attr: the name of the character is NUL, not NULL
602  + check-ignore: the name of the character is NUL, not NULL
604  "git check-ignore -z" applied the NUL termination to both its input
605  (with --stdin) and its output, but "git check-attr -z" ignored the
606  option on the output side.
608  This is potentially a backward incompatible fix.  I am tempted to
609  merge this to and keep it in 'next' for a while to see if anybody
610  screams before deciding if we want to do anything to help existing
611  users (there may be none).
613  Will cook in 'next'.
616 * ms/fetch-prune-configuration (2013-07-18) 1 commit
617   (merged to 'next' on 2013-07-21 at 7ffb690)
618  + fetch: make --prune configurable
620  Allow fetch.prune and remote.*.prune configuration variables to be set,
621  and "git fetch" to behave as if "--prune" is given.
623  "git fetch" that honors remote.*.prune is fine, but I wonder if we
624  should somehow make "git push" aware of it as well.  Perhaps
625  remote.*.prune should not be just a boolean, but a 4-way "none",
626  "push", "fetch", "both"?
628  Will cook in 'next'.
631 * km/svn-1.8-serf-only (2013-07-18) 3 commits
632   (merged to 'next' on 2013-07-19 at ab8d034)
633  + Git.pm: revert _temp_cache use of temp_is_locked
634   (merged to 'next' on 2013-07-12 at 70e0b95)
635  + git-svn: allow git-svn fetching to work using serf
636  + Git.pm: add new temp_is_locked function
638  Subversion 1.8.0 that was recently released breaks older subversion
639  clients coming over http/https in various ways.
641  Will cook in 'next'.
644 * tr/merge-recursive-index-only (2013-07-07) 3 commits
645  - merge-recursive: -Xindex-only to leave worktree unchanged
646  - merge-recursive: untangle double meaning of o->call_depth
647  - merge-recursive: remove dead conditional in update_stages()
649  Will hold, until we get any user.
652 * jc/push-cas (2013-08-02) 9 commits
653   (merged to 'next' on 2013-08-05 at 34f4cf3)
654  + push: teach --force-with-lease to smart-http transport
655  + send-pack: fix parsing of --force-with-lease option
656   (merged to 'next' on 2013-08-01 at a7604ee)
657  + t5540/5541: smart-http does not support "--force-with-lease"
658   (merged to 'next' on 2013-07-23 at 72371b0)
659  + t5533: test "push --force-with-lease"
660  + push --force-with-lease: tie it all together
661  + push --force-with-lease: implement logic to populate old_sha1_expect[]
662  + remote.c: add command line option parser for "--force-with-lease"
663  + builtin/push.c: use OPT_BOOL, not OPT_BOOLEAN
664  + cache.h: move remote/connect API out of it
666  Allow a safer "rewind of the remote tip" push than blind "--force",
667  by requiring that the overwritten remote ref to be unchanged since
668  the new history to replace it was prepared.
670  The machinery is more or less ready.  The "--force" option is again
671  the big red button to override any safety, thanks to J6t's sanity
672  (the original round allowed --lockref to defeat --force).
674  The logic to choose the default implemented here is fragile
675  (e.g. "git fetch" after seeing a failure will update the
676  remote-tracking branch and will make the next "push" pass,
677  defeating the safety pretty easily).  It is suitable only for the
678  simplest workflows, and it may hurt users more than it helps them.
680  Will cook in 'next'.
683 * jc/pull-training-wheel (2013-07-19) 1 commit
684   (merged to 'next' on 2013-07-22 at 748180e)
685  + pull: require choice between rebase/merge on non-fast-forward pull
687  Make "git pull" (without arguments that say what branch to
688  integrate from where) refuse with "it does not fast forward; choose
689  between 'pull --merge' and 'pull --rebase'".
691  See
693  http://thread.gmane.org/gmane.comp.version-control.git/225146/focus=225326
694  http://thread.gmane.org/gmane.comp.version-control.git/225146/focus=229221
696  for full discussion.
698  Will cook in 'next'.
701 * jc/reflog-doc (2013-06-19) 1 commit
702  - setup_reflog_action: document the rules for using GIT_REFLOG_ACTION
704  Document rules to use GIT_REFLOG_ACTION variable in the scripted
705  Porcelain.  git-rebase--interactive locally violates this, but it
706  is a leaf user that does not call out to or dot-sources other
707  scripts, so fixing it is not all that urgent.
710 * jn/add-2.0-u-A-sans-pathspec (2013-04-26) 1 commit
711  - git add: -u/-A now affects the entire working tree
713  Will cook in 'next' until Git 2.0.
716 * jc/core-checkstat-2.0 (2013-05-06) 1 commit
717  - core.statinfo: remove as promised in Git 2.0
719  Will cook in 'next' until Git 2.0.
722 * jc/push-2.0-default-to-simple (2013-06-18) 1 commit
723  - push: switch default from "matching" to "simple"
725  Will cook in 'next' until Git 2.0.
728 * jc/add-2.0-ignore-removal (2013-04-22) 1 commit
729  - git add <pathspec>... defaults to "-A"
731  Updated endgame for "git add <pathspec>" that defaults to "--all"
732  aka "--no-ignore-removal".
734  Will cook in 'next' until Git 2.0.
737 * jc/hold-diff-remove-q-synonym-for-no-deletion (2013-07-19) 1 commit
738  - diff: remove "diff-files -q" in a version of Git in a distant future
739  (this branch uses jc/diff-filter-negation.)
741  Will cook in 'next' until a distant future.
743 --------------------------------------------------
744 [Discarded]
746 * jh/remote-hg-fetch-fix (2013-07-25) 2 commits
747   (merged to 'next' on 2013-07-25 at 33161ad)
748  + Revert "remotes-hg: bugfix for fetching non local remotes"
749   (merged to 'next' on 2013-07-24 at 9c96641)
750  + remotes-hg: bugfix for fetching non local remotes
752  Reverted.
754  Waiting for the final patch to replace, after discussion settles.
757 * km/http-curl-config-per-url (2013-07-31) 7 commits
758   (merged to 'next' on 2013-07-31 at e88aad5)
759  + Revert km/http-curl-config-per-url in its entirety
760   (merged to 'next' on 2013-07-25 at 531e8cb)
761  + docs: update http.<url>.* options documentation
762   (merged to 'next' on 2013-07-23 at f84689b)
763  + config: allow http.<url>.* any user matching
764  + tests: add new test for the url_normalize function
765  + config: improve support for http.<url>.* settings
766  + config: add support for http.<url>.* settings
767  + http.c: fix parsing of http.sslCertPasswordProtected variable
769  Reverted to be replaced with a reroll (jc/url-match topic).