What's cooking (2013/12 #03)
[git/jrn.git] / whats-cooking.txt
blobeaf7ff90ad3000f404ddc35954669795393503a9
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 Subject: What's cooking in git.git (Dec 2013, #03; Thu, 12)
4 X-master-at: d7aced95cd681b761468635f8d2a8b82d7ed26fd
5 X-next-at: aaad5e77ff44962de7a1fccb0c9def6b6dd228aa
7 What's cooking in git.git (Dec 2013, #03; Thu, 12)
8 --------------------------------------------------
10 Here are the topics that have been cooking.  Commits prefixed with
11 '-' are only in 'pu' (proposed updates) while commits prefixed with
12 '+' are in 'next'.
14 You can find the changes described here in the integration branches
15 of the repositories listed at
17     http://git-blame.blogspot.com/p/git-public-repositories.html
19 --------------------------------------------------
20 [New Topics]
22 * bc/doc-merge-no-op-revert (2013-12-09) 1 commit
23  - Documentation: document pitfalls with 3-way merge
25  Will merge to 'next'.
28 * cc/replace-object-info (2013-12-12) 10 commits
29  - Documentation/git-replace: describe --format option
30  - builtin/replace: unset read_replace_refs
31  - t6050: add tests for listing with --format
32  - builtin/replace: teach listing using short, medium or full formats
33  - sha1_file: perform object replacement in sha1_object_info_extended()
34  - t6050: show that git cat-file --batch fails with replace objects
35  - sha1_object_info_extended(): add an "unsigned flags" parameter
36  - sha1_file.c: add lookup_replace_object_extended() to pass flags
37  - replace_object: don't check read_replace_refs twice
38  - rename READ_SHA1_FILE_REPLACE flag to LOOKUP_REPLACE_OBJECT
40  read_sha1_file() that is the workhorse to read the contents given
41  an object name honoured object replacements, but there is no
42  corresponding mechanism to sha1_object_info() that is used to
43  obtain the metainfo (e.g. type & size) about the object, leading
44  callers to weird inconsistencies.
46  Will merge to 'next'.
49 * fc/completion (2013-12-09) 1 commit
50  - completion: fix completion of certain aliases
52  Will merge to 'next'.
55 * fc/remote-helper-fixes (2013-12-09) 4 commits
56  - remote-hg: add tests for special filenames
57  - remote-hg: fix 'shared path' path
58  - remote-helpers: add extra safety checks
59  - remote-hg: avoid buggy strftime()
61  Will merge to 'next'.
64 * fc/trivial (2013-12-09) 4 commits
65  - remote: fix status with branch...rebase=preserve
66  - fetch: add missing documentation
67  - t: trivial whitespace cleanups
68  - abspath: trivial style fix
70  Will merge to 'next'.
73 * jk/cat-file-regression-fix (2013-12-12) 2 commits
74  - cat-file: handle --batch format with missing type/size
75  - cat-file: pass expand_data to print_object_or_die
77  Will merge to 'next'.
80 * jk/pull-rebase-using-fork-point (2013-12-10) 2 commits
81  - rebase: use reflog to find common base with upstream
82  - pull: use merge-base --fork-point when appropriate
84  Will merge to 'next'.
87 * jk/rev-parse-double-dashes (2013-12-09) 2 commits
88  - rev-parse: be more careful with munging arguments
89  - rev-parse: correctly diagnose revision errors before "--"
91  "git rev-parse <revs> -- <paths>" did not implement the usual
92  disambiguation rules the commands in the "git log" family used in
93  the same way.
95  Will merge to 'next'.
98 * mo/subtree-split-updates (2013-12-10) 3 commits
99  - subtree: add --edit option
100  - subtree: allow --squash and --message with push
101  - subtree: support split --rejoin --squash
103  Comments?
106 * nd/remove-opt-boolean (2013-12-09) 1 commit
107  - parse-options: remove OPT_BOOLEAN
109  Will merge to 'next'.
112 * nd/shallow-clone (2013-12-10) 28 commits
113  - git-clone.txt: remove shallow clone limitations
114  - prune: clean .git/shallow after pruning objects
115  - clone: use git protocol for cloning shallow repo locally
116  - send-pack: support pushing from a shallow clone via http
117  - receive-pack: support pushing to a shallow clone via http
118  - smart-http: support shallow fetch/clone
119  - remote-curl: pass ref SHA-1 to fetch-pack as well
120  - send-pack: support pushing to a shallow clone
121  - receive-pack: allow pushes that update .git/shallow
122  - connected.c: add new variant that runs with --shallow-file
123  - add GIT_SHALLOW_FILE to propagate --shallow-file to subprocesses
124  - receive/send-pack: support pushing from a shallow clone
125  - receive-pack: reorder some code in unpack()
126  - fetch: add --update-shallow to accept refs that update .git/shallow
127  - upload-pack: make sure deepening preserves shallow roots
128  - fetch: support fetching from a shallow repository
129  - clone: support remote shallow repository
130  - fetch-pack.h: one statement per bitfield declaration
131  - fetch-pack.c: move shallow update code out of fetch_pack()
132  - shallow.c: steps 6 and 7 to select new commits for .git/shallow
133  - shallow.c: the 8 steps to select new commits for .git/shallow
134  - shallow.c: extend setup_*_shallow() to accept extra shallow commits
135  - connect.c: teach get_remote_heads to parse "shallow" lines
136  - make the sender advertise shallow commits to the receiver
137  - clone: prevent --reference to a shallow repository
138  - send-pack: forbid pushing from a shallow repository
139  - remote.h: replace struct extra_have_objects with struct sha1_array
140  - transport.h: remove send_pack prototype, already defined in send-pack.h
142  Fetching from a shallow-cloned repository used to be forbidden,
143  primarily because the codepaths involved were not carefully vetted
144  and we did not bother supporting such usage. This attempts to allow
145  object transfer out of a shallow-cloned repository in a controlled
146  way (i.e. the receiver become a shallow repository with truncated
147  history).
150 * tg/diff-no-index-refactor (2013-12-12) 2 commits
151  - diff: don't read index when --no-index is given
152  - diff: move no-index detection to builtin/diff.c
154  "git diff ../else/where/A ../else/where/B" when ../else/where is
155  clearly outside the repository, and "git diff --no-index A B", do
156  not have to look at the index at all, but we used to read the index
157  unconditionally.
159  Will merge to 'next'.
162 * hv/submodule-ignore-fix (2013-12-06) 4 commits
163  - disable complete ignorance of submodules for index <-> HEAD diff
164  - always show committed submodules in summary after commit
165  - teach add -f option for ignored submodules
166  - fix 'git add' to skip submodules configured as ignored
168  Teach "git add" to be consistent with "git status" when changes to
169  submodules are set to be ignored, to avoid surprises after checking
170  with "git status" to see there isn't any change to be further added
171  and then see that "git add ." adds changes to them.
173  I think a reroll is coming, so this may need to be replaced, but I
174  needed some practice with heavy conflict resolution.  It conflicts
175  with two changes to "git add" that have been scheduled for Git 2.0
176  quite badly, and I think I got the resolution right this time (a
177  few nights ago I tried and failed and that was why it hasn't been
178  merged to 'pu' so far).
180 --------------------------------------------------
181 [Graduated to "master"]
183 * cl/p4-use-diff-tree (2013-11-22) 1 commit
184   (merged to 'next' on 2013-12-06 at fc3c89e)
185  + git p4: Use git diff-tree instead of format-patch
187  Originally merged to 'next' on 2013-11-27
190 * cn/thin-push-capability (2013-11-25) 1 commit
191   (merged to 'next' on 2013-12-06 at a7ae524)
192  + send-pack: don't send a thin pack to a server which doesn't support it
194  Allow receive-pack to insist on receiving a fat pack from "git
195  push" clients.
198 * jk/remove-deprecated (2013-12-05) 6 commits
199   (merged to 'next' on 2013-12-06 at c0c91a2)
200  + Sync with 1.8.5
201  + stop installing git-tar-tree link
202  + peek-remote: remove deprecated alias of ls-remote
203  + lost-found: remove deprecated command
204  + tar-tree: remove deprecated command
205  + repo-config: remove deprecated alias for "git config"
206  (this branch is used by cc/starts-n-ends-with and cc/starts-n-ends-with-endgame.)
208  Remove commands that have long been deprecated.
211 * jn/scripts-updates (2013-11-26) 7 commits
212   (merged to 'next' on 2013-12-06 at 60a7026)
213  + remove #!interpreter line from shell libraries
214  + test: replace shebangs with descriptions in shell libraries
215  + test: make FILEMODE a lazy prereq
216  + contrib: remove git-p4import
217  + mark contributed hooks executable
218  + mark perl test scripts executable
219  + mark Windows build scripts executable
222 * mh/fetch-tags-in-addition-to-normal-refs (2013-10-30) 23 commits
223   (merged to 'next' on 2013-12-06 at 3b9c44a)
224  + fetch: improve the error messages emitted for conflicting refspecs
225  + handle_duplicate(): mark error message for translation
226  + ref_remote_duplicates(): extract a function handle_duplicate()
227  + ref_remove_duplicates(): simplify loop logic
228  + t5536: new test of refspec conflicts when fetching
229  + ref_remove_duplicates(): avoid redundant bisection
230  + git-fetch.txt: improve description of tag auto-following
231  + fetch-options.txt: simplify ifdef/ifndef/endif usage
232  + fetch, remote: properly convey --no-prune options to subprocesses
233  + builtin/remote.c:update(): use struct argv_array
234  + builtin/remote.c: reorder function definitions
235  + query_refspecs(): move some constants out of the loop
236  + fetch --prune: prune only based on explicit refspecs
237  + fetch --tags: fetch tags *in addition to* other stuff
238  + fetch: only opportunistically update references based on command line
239  + get_expanded_map(): avoid memory leak
240  + get_expanded_map(): add docstring
241  + builtin/fetch.c: reorder function definitions
242  + get_ref_map(): rename local variables
243  + api-remote.txt: correct section "struct refspec"
244  + t5510: check that "git fetch --prune --tags" does not prune branches
245  + t5510: prepare test refs more straightforwardly
246  + t5510: use the correct tag name in test
248  Originally merged to 'next' on 2013-11-06
250  The "--tags" option to "git fetch" used to be literally a synonym to
251  a "refs/tags/*:refs/tags/*" refspec, which meant that (1) as an
252  explicit refspec given from the command line, it silenced the lazy
253  "git fetch" default that is configured, and (2) also as an explicit
254  refspec given from the command line, it interacted with "--prune"
255  to remove any tag that the remote we are fetching from does not
256  have.
258  This demotes it to an option; with it, we fetch all tags in
259  addition to what would be fetched without the option, and it does
260  not interact with the decision "--prune" makes to see what
261  remote-tracking refs the local has are missing the remote
262  counterpart.
265 * rs/doc-submitting-patches (2013-11-27) 1 commit
266   (merged to 'next' on 2013-12-06 at 0628818)
267  + SubmittingPatches: document how to handle multiple patches
270 * tr/commit-slab-cleanup (2013-12-02) 3 commits
271   (merged to 'next' on 2013-12-06 at faee247)
272  + commit-slab: sizeof() the right type in xrealloc
273  + commit-slab: declare functions "static inline"
274  + commit-slab: document clear_$slabname()
277 * tr/config-multivalue-lift-max (2013-12-06) 1 commit
278   (merged to 'next' on 2013-12-06 at 92afee2)
279  + config: arbitrary number of matches for --unset and --replace-all
282 * tr/doc-git-cherry (2013-11-27) 1 commit
283   (merged to 'next' on 2013-12-06 at 9a1ba7a)
284  + Documentation: revamp git-cherry(1)
286 --------------------------------------------------
287 [Stalled]
289 * jc/create-directories-microopt (2013-11-11) 1 commit
290  - checkout: most of the time we have good leading directories
292  Of unknown value until tested on non-Linux platforms (especially
293  Windows).
295  Will hold.
298 * nv/commit-gpgsign-config (2013-11-06) 1 commit
299  - Add the commit.gpgsign option to sign all commits
301  Introduce commit.gpgsign configuration variable to force every
302  commit to be GPG signed.
304  Needs tests, perhaps?
307 * jt/commit-fixes-footer (2013-10-30) 1 commit
308  - commit: Add -f, --fixes <commit> option to add Fixes: line
310  There is an ongoing discussion around this topic; in general I am
311  fairly negative on a new feature that is too narrow and prefer a
312  more generic solution that can be tailored for specific needs, as
313  many people stated in the thread.
315  It appears that the discussion stalled.
318 * np/pack-v4 (2013-09-18) 90 commits
319  . packv4-parse.c: add tree offset caching
320  . t1050: replace one instance of show-index with verify-pack
321  . index-pack, pack-objects: allow creating .idx v2 with .pack v4
322  . unpack-objects: decode v4 trees
323  . unpack-objects: allow to save processed bytes to a buffer
324  - ...
326  Nico and Duy advancing the eternal vaporware pack-v4.  This is here
327  primarily for wider distribution of the preview edition.
329  Temporarily ejected from 'pu', to try out jk/pack-bitmap, which
330  this topic conflicts with.
333 * jk/pack-bitmap (2013-11-18) 22 commits
334  - compat/mingw.h: Fix the MinGW and msvc builds
335  - pack-bitmap: implement optional name_hash cache
336  - t/perf: add tests for pack bitmaps
337  - t: add basic bitmap functionality tests
338  - count-objects: recognize .bitmap in garbage-checking
339  - repack: consider bitmaps when performing repacks
340  - repack: handle optional files created by pack-objects
341  - repack: turn exts array into array-of-struct
342  - repack: stop using magic number for ARRAY_SIZE(exts)
343  - pack-objects: implement bitmap writing
344  - rev-list: add bitmap mode to speed up object lists
345  - pack-objects: use bitmaps when packing objects
346  - pack-bitmap: add support for bitmap indexes
347  - documentation: add documentation for the bitmap format
348  - ewah: compressed bitmap implementation
349  - compat: add endianness helpers
350  - sha1_file: export `git_open_noatime`
351  - revision: allow setting custom limiter function
352  - pack-objects: factor out name_hash
353  - pack-objects: refactor the packing list
354  - revindex: export new APIs
355  + sha1write: make buffer const-correct
356  (this branch is tangled with jk/name-pack-after-byte-representation.)
358  Borrows the bitmap index into packfiles from JGit to speed up
359  enumeration of objects involved in a commit range without having to
360  fully traverse the history.
362  A reroll forthcoming?
365 * mf/graph-show-root (2013-10-25) 1 commit
366  . graph.c: mark root commit differently
368  In a repository with multiple-roots, "log --graph", especially with
369  "--oneline", does not give the reader enough visual cue to see
370  where one line of history ended and a separate history began.
372  This is the version that marks the roots 'x' when they would have
373  been marked as '*'; Keshav Kini suggested an alternative of giving
374  an extra blank line after every root, which I tend to think is a
375  better approach to the problem.
378 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
379  - perf-lib: add test_perf_cleanup target
380  - perf-lib: split starting the test from the execution
382  Add test_perf_cleanup shell function to the perf suite, that allows
383  the script writers to define a test with a clean-up action.
385  Holding until needed.
388 * yt/shortened-rename (2013-10-18) 2 commits
389  - SQUASH??? style fixes and s/omit/shorten/ where appropriate
390  - diff.c: keep arrow(=>) on show_stats()'s shortened filename part to make rename visible
392  Attempts to give more weight on the fact that a filepair represents
393  a rename than showing substring of the actual path when diffstat
394  lines are not wide enough.
396  I am not sure if that is solving a right problem, though.
399 * rv/send-email-cache-generated-mid (2013-08-21) 2 commits
400  - git-send-email: Cache generated message-ids, use them when prompting
401  - git-send-email: add optional 'choices' parameter to the ask sub
404 * rj/read-default-config-in-show-ref-pack-refs (2013-06-17) 3 commits
405  - ### DONTMERGE: needs better explanation on what config they need
406  - pack-refs.c: Add missing call to git_config()
407  - show-ref.c: Add missing call to git_config()
409  The changes themselves are probably good, but it is unclear what
410  basic setting needs to be read for which exact operation.
412  Waiting for clarification.
413  $gmane/228294
416 * jc/format-patch (2013-04-22) 2 commits
417  - format-patch: --inline-single
418  - format-patch: rename "no_inline" field
420  A new option to send a single patch to the standard output to be
421  appended at the bottom of a message.  I personally have no need for
422  this, but it was easy enough to cobble together.  Tests, docs and
423  stripping out more MIMEy stuff are left as exercises to interested
424  parties.
427 * jk/gitweb-utf8 (2013-04-08) 4 commits
428  - gitweb: Fix broken blob action parameters on blob/commitdiff pages
429  - gitweb: Don't append ';js=(0|1)' to external links
430  - gitweb: Make feed title valid utf8
431  - gitweb: Fix utf8 encoding for blob_plain, blobdiff_plain, commitdiff_plain, and patch
433  Various fixes to gitweb.
435  Drew Northup volunteered to take a look into this.
436  $gmane/226216
439 * jc/show-branch (2013-06-07) 5 commits
440  - show-branch: use commit slab to represent bitflags of arbitrary width
441  - show-branch.c: remove "all_mask"
442  - show-branch.c: abstract out "flags" operation
443  - show-branch.c: lift all_mask/all_revs to a global static
444  - show-branch.c: update comment style
446  Waiting for the final step to lift the hard-limit before sending it out.
448 --------------------------------------------------
449 [Cooking]
451 * fc/transport-helper-fixes (2013-12-09) 6 commits
452  - remote-bzr: support the new 'force' option
453  - test-hg.sh: tests are now expected to pass
454  - transport-helper: check for 'forced update' message
455  - transport-helper: add 'force' to 'export' helpers
456  - transport-helper: don't update refs in dry-run
457  - transport-helper: mismerge fix
459  Updates transport-helper, fast-import and fast-export to allow the
460  ref mapping and ref deletion in a way similar to the natively
461  supported transports.
463  Will merge to 'next'.
466 * jn/git-gui-chmod+x (2013-11-25) 1 commit
467  - git-gui: chmod +x po2msg, windows/git-gui.sh
469  Parked here until I get the same change back from the upstream
470  git-gui tree.
473 * jn/gitk-chmod+x (2013-11-25) 1 commit
474  - gitk: chmod +x po2msg
476  Parked here until I get the same change back from the upstream gitk
477  tree.
480 * jk/name-pack-after-byte-representation (2013-12-05) 2 commits
481   (merged to 'next' on 2013-12-09 at 247b2d0)
482  + pack-objects: name pack files after trailer hash
483  + sha1write: make buffer const-correct
484  (this branch is tangled with jk/pack-bitmap.)
486  Two packfiles that contain the same set of objects have
487  traditionally been named identically, but that made repacking a
488  repository that is already fully packed without any cruft with a
489  different packing parameter cumbersome. Update the convention to
490  name the packfile after the bytestream representation of the data,
491  not after the set of objects in it.
493  Will merge to 'master'.
496 * nd/negative-pathspec (2013-12-06) 3 commits
497   (merged to 'next' on 2013-12-12 at 9f340c8)
498  + pathspec.c: support adding prefix magic to a pathspec with mnemonic magic
499  + Support pathspec magic :(exclude) and its short form :!
500  + glossary-content.txt: rephrase magic signature part
502  Introduce "negative pathspec" magic, to allow "git log . ':!dir'" to
503  tell us "I am interested in everything but 'dir' directory".
506 * nd/transport-positive-depth-only (2013-12-06) 1 commit
507   (merged to 'next' on 2013-12-12 at f953cb8)
508  + clone,fetch: catch non positive --depth option value
510  "git fetch --depth=0" was a no-op, and was silently
511  ignored. Diagnose it as an error.
514 * zk/difftool-counts (2013-12-06) 1 commit
515   (merged to 'next' on 2013-12-12 at ba35694)
516  + difftool: display the number of files in the diff queue in the prompt
518  Show the total number of paths and the number of paths shown so far
519  when "git difftool" prompts to launch an external diff tool, which
520  would give users some sense of progress.
523 * jl/commit-v-strip-marker (2013-12-05) 1 commit
524   (merged to 'next' on 2013-12-09 at 2b85e9e)
525  + commit -v: strip diffs and submodule shortlogs from the commit message
527  "git commit -v" appends the patch to the log message before
528  editing, and then removed the patch when the editor returned
529  control. However, the patch was not stripped correctly when the
530  first modified path was a submodule.
533 * cc/starts-n-ends-with (2013-12-05) 4 commits
534   (merged to 'next' on 2013-12-12 at 76ee567)
535  + replace {pre,suf}fixcmp() with {starts,ends}_with()
536  + strbuf: introduce starts_with() and ends_with()
537  + builtin/remote: remove postfixcmp() and use suffixcmp() instead
538  + environment: normalize use of prefixcmp() by removing " != 0"
539  (this branch is used by cc/starts-n-ends-with-endgame.)
541  Remove a few duplicate implementations of prefix/suffix comparison
542  functions, and rename them to starts_with and ends_with.
545 * cc/starts-n-ends-with-endgame (2013-12-05) 1 commit
546  - strbuf: remove prefixcmp() and suffixcmp()
547  (this branch uses cc/starts-n-ends-with.)
549  Endgame for the above topic, that needs to be evil-merged with
550  other topics that introduce new uses of prefix/suffix-cmp
551  functions.
554 * jc/push-refmap (2013-12-04) 3 commits
555   (merged to 'next' on 2013-12-12 at 71e358f)
556  + push: also use "upstream" mapping when pushing a single ref
557  + push: use remote.$name.push as a refmap
558  + builtin/push.c: use strbuf instead of manual allocation
560  Make "git push origin master" update the same ref that would be
561  updated by our 'master' when "git push origin" (no refspecs) is run
562  while the 'master' branch is checked out, which makes "git push"
563  more symmetric to "git fetch" and more usable for the triangular
564  workflow.
567 * jk/t5000-gzip-simplify (2013-12-04) 1 commit
568   (merged to 'next' on 2013-12-09 at e9010f1)
569  + t5000: simplify gzip prerequisite checks
571  Test fix.
574 * js/gnome-keyring (2013-12-04) 1 commit
575  - contrib/git-credential-gnome-keyring.c: small stylistic cleanups
577  Style fix.
580 * kn/gitweb-extra-branch-refs (2013-12-12) 4 commits
581   (merged to 'next' on 2013-12-12 at ae75b02)
582  + gitweb: Denote non-heads, non-remotes branches
583  + gitweb: Add a feature for adding more branch refs
584  + gitweb: Return 1 on validation success instead of passed input
585  + gitweb: Move check-ref-format code into separate function
587  Allow gitweb to be configured to show refs out of refs/heads/ as if
588  they were branches.
591 * mm/mv-file-to-no-such-dir-with-slash (2013-12-04) 1 commit
592   (merged to 'next' on 2013-12-09 at f33bc0b)
593  + mv: let 'git mv file no-such-dir/' error out
596 * nd/gettext-vsnprintf (2013-12-04) 1 commit
597   (merged to 'next' on 2013-12-09 at e99106e)
598  + gettext.c: detect the vsnprintf bug at runtime
601 * tr/send-email-ssl (2013-12-04) 3 commits
602   (merged to 'next' on 2013-12-09 at facb859)
603  + send-email: set SSL options through IO::Socket::SSL::set_client_defaults
604  + send-email: --smtp-ssl-cert-path takes an argument
605  + send-email: pass Debug to Net::SMTP::SSL::new
607  SSL-related options were not passed correctly to underlying socket
608  layer in "git send-email".
611 * tb/clone-ssh-with-colon-for-port (2013-12-09) 10 commits
612   (merged to 'next' on 2013-12-12 at ae4ae39)
613  + git_connect(): use common return point
614  + connect.c: refactor url parsing
615  + git_connect(): refactor the port handling for ssh
616  + git fetch: support host:/~repo
617  + t5500: add test cases for diag-url
618  + git fetch-pack: add --diag-url
619  + git_connect: factor out discovery of the protocol and its parts
620  + git_connect: remove artificial limit of a remote command
621  + t5601: add tests for ssh
622  + t5601: remove clear_ssh, refactor setup_ssh_wrapper
624  Be more careful when parsing remote repository URL given in the
625  scp-style host:path notation.
628 * kb/doc-exclude-directory-semantics (2013-12-09) 1 commit
629   (merged to 'next' on 2013-12-09 at e54b2ec)
630  + gitignore.txt: clarify recursive nature of excluded directories
632  Will merge to 'master'.
635 * gj/push-more-verbose-advice (2013-11-13) 1 commit
636   (merged to 'next' on 2013-12-06 at 574b18a)
637  + push: switch default from "matching" to "simple"
639  Originally merged to 'next' on 2013-11-21
641  Explain 'simple' and 'matching' in "git push" advice message; the
642  topmost patch is a rebase of jc/push-2.0-default-to-simple on top
643  of it.
645  Will cook in 'next'.
648 * tr/merge-recursive-index-only (2013-10-28) 3 commits
649  - merge-recursive: -Xindex-only to leave worktree unchanged
650  - merge-recursive: internal flag to avoid touching the worktree
651  - merge-recursive: remove dead conditional in update_stages()
653  Will hold until using script appears.
656 * kb/fast-hashmap (2013-12-09) 15 commits
657  - hashmap.h: make sure map entries are tightly packed
658   (merged to 'next' on 2013-12-06 at f90be3d)
659  + read-cache.c: fix memory leaks caused by removed cache entries
660  + builtin/update-index.c: cleanup update_one
661  + fix 'git update-index --verbose --again' output
662  + remove old hash.[ch] implementation
663  + name-hash.c: remove cache entries instead of marking them CE_UNHASHED
664  + name-hash.c: use new hash map implementation for cache entries
665  + name-hash.c: remove unreferenced directory entries
666  + name-hash.c: use new hash map implementation for directories
667  + diffcore-rename.c: use new hash map implementation
668  + diffcore-rename.c: simplify finding exact renames
669  + diffcore-rename.c: move code around to prepare for the next patch
670  + buitin/describe.c: use new hash map implementation
671  + add a hashtable implementation that supports O(1) removal
672  + submodule: don't access the .gitmodules cache entry after removing it
674  Improvements to our hash table to get it to meet the needs of the
675  msysgit fscache project, with some nice performance improvements.
677  The tip one does not seem to have reached concensus (yet).
680 * jn/add-2.0-u-A-sans-pathspec (2013-04-26) 1 commit
681   (merged to 'next' on 2013-12-06 at ead2ec8)
682  + git add: -u/-A now affects the entire working tree
684  Will cook in 'next' until Git 2.0.
687 * jc/core-checkstat-2.0 (2013-05-06) 1 commit
688   (merged to 'next' on 2013-12-06 at ae18007)
689  + core.statinfo: remove as promised in Git 2.0
691  Will cook in 'next' until Git 2.0.
694 * jc/push-2.0-default-to-simple (2013-06-18) 1 commit
695   (merged to 'next' on 2013-12-06 at 6fad61c)
696  + push: switch default from "matching" to "simple"
698  Will cook in 'next' until Git 2.0.
701 * jc/add-2.0-ignore-removal (2013-04-22) 1 commit
702   (merged to 'next' on 2013-12-06 at fbaa75a)
703  + git add <pathspec>... defaults to "-A"
705  Updated endgame for "git add <pathspec>" that defaults to "--all"
706  aka "--no-ignore-removal".
708  Will cook in 'next' until Git 2.0.
711 * jc/hold-diff-remove-q-synonym-for-no-deletion (2013-07-19) 1 commit
712   (merged to 'next' on 2013-12-06 at 083d67c)
713  + diff: remove "diff-files -q" in a version of Git in a distant future
715  Will cook in 'next' until a distant future.
717 --------------------------------------------------
718 [Discarded]
720 * aa/transport-non-positive-depth-only (2013-11-26) 1 commit
721  . transport: catch non positive --depth option value
724 * cc/remote-remove-redundant-postfixcmp (2013-11-06) 2 commits
725  . Rename suffixcmp() to has_suffix() and invert its result
726  . builtin/remote: remove postfixcmp() and use suffixcmp() instead
729 * th/reflog-annotated-tag (2013-10-28) 1 commit
730  . reflog: handle lightweight and annotated tags equally
732  "git log -g $annotated_tag", when there is no reflog history, should
733  have produced a single output entry (i.e. the ref creation event),
734  but instead showed the history leading to the tag.
736  Broken at the design level.  Any reflog entry that points at a non
737  commit needs to be handled with new code that does not exist yet,
738  and lifting the "this code handles only commits" without adding
739  such code does not solve anything.