What's cooking (2013/12 #02)
[git/jrn.git] / whats-cooking.txt
blobc57225fb8480a0b4a08af17d73692de4ee33790a
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 Subject: What's cooking in git.git (Dec 2013, #02; Fri, 6)
4 X-master-at: 077f43447c4931dd2e7890f16e8728f7f7376b87
5 X-next-at: 083d67c40460583eb33253efa92cc809789c8f9b
7 What's cooking in git.git (Dec 2013, #02; Fri, 6)
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 tip of 'next' has been rewound, ejecting a few topics that
15 used to be there.
17 You can find the changes described here in the integration branches
18 of the repositories listed at
20     http://git-blame.blogspot.com/p/git-public-repositories.html
22 --------------------------------------------------
23 [New Topics]
25 * jn/git-gui-chmod+x (2013-11-25) 1 commit
26  - git-gui: chmod +x po2msg, windows/git-gui.sh
28  Parked here until I get the same change back from the upstream
29  git-gui tree.
32 * jn/gitk-chmod+x (2013-11-25) 1 commit
33  - gitk: chmod +x po2msg
35  Parked here until I get the same change back from the upstream gitk
36  tree.
39 * jk/name-pack-after-byte-representation (2013-12-05) 2 commits
40  - pack-objects: name pack files after trailer hash
41  - sha1write: make buffer const-correct
42  (this branch is tangled with jk/pack-bitmap.)
45 * nd/negative-pathspec (2013-12-06) 3 commits
46  - pathspec.c: support adding prefix magic to a pathspec with mnemonic magic
47  - Support pathspec magic :(exclude) and its short form :!
48  - glossary-content.txt: rephrase magic signature part
51 * nd/transport-positive-depth-only (2013-12-06) 1 commit
52  - clone,fetch: catch non positive --depth option value
55 * zk/difftool-counts (2013-12-06) 1 commit
56  - difftool: display the number of files in the diff queue in the prompt
58 --------------------------------------------------
59 [Graduated to "master"]
61 * ak/submodule-foreach-quoting (2013-09-27) 1 commit
62   (merged to 'next' on 2013-10-14 at d77c5f1)
63  + submodule foreach: skip eval for more than one argument
65  A behavior change, but maybe a worthwhile one: "git submodule
66  foreach" was treating its arguments as part of a single command to
67  be concatenated and passed to a shell, making writing buggy scripts
68  too easy.
70  This patch preserves the old "just pass it to the shell" behavior
71  when a single argument is passed to 'git submodule foreach' and
72  moves to a new "skip the shell and use the arguments passed
73  unmolested" behavior when more than one argument is passed.
75  The old behavior (always concatenating and passing to the shell)
76  was similar to the 'ssh' command, while the new behavior (switching
77  on the number of arguments) is what 'xterm -e' does.
79  May need more thought to make sure this change is advertised well;
80  scripts that used multiple arguments but added their own extra
81  layer of quoting are broken, and the users need to adjust them.
84 * bc/http-100-continue (2013-10-31) 3 commits
85   (merged to 'next' on 2013-11-01 at e12ae23)
86  + remote-curl: fix large pushes with GSSAPI
87  + remote-curl: pass curl slot_results back through run_slot
88  + http: return curl's AUTHAVAIL via slot_results
90  Issue "100 Continue" responses to help use of GSS-Negotiate
91  authentication scheme over HTTP transport when needed.
94 * jc/bundle (2013-11-12) 1 commit
95   (merged to 'next' on 2013-11-21 at 535b046)
96  + bundle: use argv-array
98  Code clean-up.
101 * jc/merge-base-reflog (2013-10-29) 2 commits
102   (merged to 'next' on 2013-11-01 at 6114764)
103  + merge-base: teach "--fork-point" mode
104  + merge-base: use OPT_CMDMODE and clarify the command line parsing
106  Code the logic in "pull --rebase" that figures out a fork point
107  from reflog entries in C.
110 * jc/ref-excludes (2013-11-01) 5 commits
111   (merged to 'next' on 2013-11-04 at fac1ed0)
112  + rev-parse: introduce --exclude=<glob> to tame wildcards
113  + rev-list --exclude: export add/clear-ref-exclusion and ref-excluded API
114  + rev-list --exclude: tests
115  + document --exclude option
116  + revision: introduce --exclude=<glob> to tame wildcards
118  People often wished a way to tell "git log --branches" (and "git
119  log --remotes --not --branches") to exclude some local branches
120  from the expansion of "--branches" (similarly for "--tags", "--all"
121  and "--glob=<pattern>").  Now they have one.
124 * jh/loose-object-dirs-creation-race (2013-10-28) 1 commit
125   (merged to 'next' on 2013-11-01 at 3169b0f)
126  + sha1_file.c:create_tmpfile(): Fix race when creating loose object dirs
128  Two processes creating loose objects at the same time could have
129  failed unnecessarily when they happened to have created objects
130  whose names share the same first byte.
133 * jk/remove-experimental-loose-object-support (2013-11-21) 1 commit
134   (merged to 'next' on 2013-11-21 at d37bab7)
135  + drop support for "experimental" loose objects
137  Read-only support for experimental loose-object format, in which
138  users could optionally choose to write in their loose objects for a
139  short while between v1.4.3 to v1.5.3 era, has been dropped.
142 * jk/replace-perl-in-built-scripts (2013-10-29) 1 commit
143   (merged to 'next' on 2013-11-01 at 2384e29)
144  + use @@PERL@@ in built scripts
147 * jk/robustify-parse-commit (2013-10-24) 6 commits
148   (merged to 'next' on 2013-11-01 at 2bfbaab)
149  + checkout: do not die when leaving broken detached HEAD
150  + use parse_commit_or_die instead of custom message
151  + use parse_commit_or_die instead of segfaulting
152  + assume parse_commit checks for NULL commit
153  + assume parse_commit checks commit->object.parsed
154  + log_tree_diff: die when we fail to parse a commit
157 * jk/two-way-merge-corner-case-fix (2013-11-04) 3 commits
158   (merged to 'next' on 2013-11-04 at 79f4fb0)
159  + t1005: add test for "read-tree --reset -u A B"
160  + t1005: reindent
161  + unpack-trees: fix "read-tree -u --reset A B" with conflicted index
163  Fix a rather longstanding corner-case bug in twoway "reset to
164  there" merge, which is most often seen in "git am --abort".
167 * jl/submodule-update-retire-orig-flags (2013-11-11) 1 commit
168   (merged to 'next' on 2013-11-13 at 4b70d15)
169  + submodule update: remove unnecessary orig_flags variable
171  Code clean-up.
174 * jn/mediawiki-makefile-updates (2013-11-11) 4 commits
175   (merged to 'next' on 2013-11-13 at 71c8d20)
176  + git-remote-mediawiki build: handle DESTDIR/INSTLIBDIR with whitespace
177  + git-remote-mediawiki build: make 'install' command configurable
178  + git-remote-mediawiki: honor DESTDIR in "make install"
179  + git-remote-mediawiki: do not remove installed files in "clean" target
181  Build and installation procedure clean-up.
184 * jn/perl-lib-extra (2013-11-18) 2 commits
185   (merged to 'next' on 2013-11-20 at 8c90afae)
186  + Makefile: add PERLLIB_EXTRA variable that adds to default perl path
187  + Makefile: rebuild perl scripts when perl paths change
189  The new PERLLIB_EXTRA makefile variable can be used to specify
190  additional directories Perl modules (e.g. the ones necessary to run
191  git-svn) are installed on the platform when building.
194 * nd/magic-pathspec (2013-11-20) 1 commit
195   (merged to 'next' on 2013-11-21 at f914a30)
196  + diff: restrict pathspec limitations to diff b/f case only
198  "git diff -- ':(icase)makefile'" was unnecessarily rejected at the
199  command line parser.
201  Needs to be merged to 'maint' later.
204 * nd/wt-status-align-i18n (2013-11-06) 1 commit
205   (merged to 'next' on 2013-11-13 at b033aa0)
206  + wt-status: take the alignment burden off translators
208  An attempt to automatically align the names in the "git status"
209  output, taking the display width of (translated) section labels
210  into account.
213 * nv/parseopt-opt-arg (2013-10-31) 2 commits
214   (merged to 'next' on 2013-11-01 at cd2afd9)
215  + rev-parse --parseopt: add the --stuck-long mode
216  + Use the word 'stuck' instead of 'sticked'
218  Enhance "rev-parse --parseopt" mode to help parsing options with
219  an optional parameter.
222 * rh/remote-hg-bzr-updates (2013-11-18) 8 commits
223   (merged to 'next' on 2013-11-20 at a36f3c4)
224  + remote-bzr, remote-hg: fix email address regular expression
225  + test-hg.sh: help user correlate verbose output with email test
226  + test-hg.sh: fix duplicate content strings in author tests
227  + test-hg.sh: avoid obsolete 'test' syntax
228  + test-hg.sh: eliminate 'local' bashism
229  + test-bzr.sh, test-hg.sh: prepare for change to push.default=simple
230  + test-bzr.sh, test-hg.sh: allow running from any dir
231  + test-lib.sh: convert $TEST_DIRECTORY to an absolute path
234 * rr/for-each-ref-decoration (2013-11-19) 6 commits
235   (merged to 'next' on 2013-11-21 at ee7b0ed)
236  + for-each-ref: avoid color leakage
237  + for-each-ref: introduce %(color:...) for color
238  + for-each-ref: introduce %(upstream:track[short])
239  + for-each-ref: introduce %(HEAD) asterisk marker
240  + t6300 (for-each-ref): don't hardcode SHA-1 hexes
241  + t6300 (for-each-ref): clearly demarcate setup
243  "git for-each-ref --format=..." learned a few formatting directives;
244  e.g. "%(color:red)%(HEAD)%(color:reset) %(refname:short) %(subject)".
247 * sb/sha1-loose-object-info-check-existence (2013-11-06) 1 commit
248   (merged to 'next' on 2013-11-06 at 1ea5b18)
249  + sha1_loose_object_info(): do not return success on missing object
251  "git cat-file --batch-check=ok" did not check the existence of the
252  named object.
254 --------------------------------------------------
255 [Stalled]
257 * fc/transport-helper-fixes (2013-11-13) 12 commits
258  - remote-bzr: support the new 'force' option
259  - transport-helper: add support to delete branches
260  - fast-export: add support to delete refs
261  - fast-import: add support to delete refs
262  - transport-helper: add support for old:new refspec
263  - fast-export: add new --refspec option
264  - fast-export: improve argument parsing
265  - test-hg.sh: tests are now expected to pass
266  - transport-helper: check for 'forced update' message
267  - transport-helper: add 'force' to 'export' helpers
268  - transport-helper: don't update refs in dry-run
269  - transport-helper: mismerge fix
271  Updates transport-helper, fast-import and fast-export to allow the
272  ref mapping and ref deletion in a way similar to the natively
273  supported transports.
275  The option name "--refspec" needs to be rethought. It does not mean
276  what refspec usually means, even though it shares the same syntax
277  with refspec; calling it --refspec only because it shares the same
278  syntax is like calling it --asciistring and does not make sense.
281 * nv/commit-gpgsign-config (2013-11-06) 1 commit
282  - Add the commit.gpgsign option to sign all commits
284  Introduce commit.gpgsign configuration variable to force every
285  commit to be GPG signed.
287  Needs tests, perhaps?
290 * jt/commit-fixes-footer (2013-10-30) 1 commit
291  - commit: Add -f, --fixes <commit> option to add Fixes: line
293  There is an ongoing discussion around this topic; in general I am
294  fairly negative on a new feature that is too narrow and prefer a
295  more generic solution that can be tailored for specific needs, as
296  many people stated in the thread.
298  It appears that the discussion stalled.
301 * np/pack-v4 (2013-09-18) 90 commits
302  . packv4-parse.c: add tree offset caching
303  . t1050: replace one instance of show-index with verify-pack
304  . index-pack, pack-objects: allow creating .idx v2 with .pack v4
305  . unpack-objects: decode v4 trees
306  . unpack-objects: allow to save processed bytes to a buffer
307  - ...
309  Nico and Duy advancing the eternal vaporware pack-v4.  This is here
310  primarily for wider distribution of the preview edition.
312  Temporarily ejected from 'pu', to try out jk/pack-bitmap, which
313  this topic conflicts with.
316 * jk/pack-bitmap (2013-11-18) 22 commits
317  - compat/mingw.h: Fix the MinGW and msvc builds
318  - pack-bitmap: implement optional name_hash cache
319  - t/perf: add tests for pack bitmaps
320  - t: add basic bitmap functionality tests
321  - count-objects: recognize .bitmap in garbage-checking
322  - repack: consider bitmaps when performing repacks
323  - repack: handle optional files created by pack-objects
324  - repack: turn exts array into array-of-struct
325  - repack: stop using magic number for ARRAY_SIZE(exts)
326  - pack-objects: implement bitmap writing
327  - rev-list: add bitmap mode to speed up object lists
328  - pack-objects: use bitmaps when packing objects
329  - pack-bitmap: add support for bitmap indexes
330  - documentation: add documentation for the bitmap format
331  - ewah: compressed bitmap implementation
332  - compat: add endianness helpers
333  - sha1_file: export `git_open_noatime`
334  - revision: allow setting custom limiter function
335  - pack-objects: factor out name_hash
336  - pack-objects: refactor the packing list
337  - revindex: export new APIs
338  - sha1write: make buffer const-correct
339  (this branch is tangled with jk/name-pack-after-byte-representation.)
341  Borrows the bitmap index into packfiles from JGit to speed up
342  enumeration of objects involved in a commit range without having to
343  fully traverse the history.
346 * mf/graph-show-root (2013-10-25) 1 commit
347  . graph.c: mark root commit differently
349  In a repository with multiple-roots, "log --graph", especially with
350  "--oneline", does not give the reader enough visual cue to see
351  where one line of history ended and a separate history began.
353  This is the version that marks the roots 'x' when they would have
354  been marked as '*'; Keshav Kini suggested an alternative of giving
355  an extra blank line after every root, which I tend to think is a
356  better approach to the problem.
359 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
360  - perf-lib: add test_perf_cleanup target
361  - perf-lib: split starting the test from the execution
363  Add test_perf_cleanup shell function to the perf suite, that allows
364  the script writers to define a test with a clean-up action.
366  Holding until needed.
369 * yt/shortened-rename (2013-10-18) 2 commits
370  - SQUASH??? style fixes and s/omit/shorten/ where appropriate
371  - diff.c: keep arrow(=>) on show_stats()'s shortened filename part to make rename visible
373  Attempts to give more weight on the fact that a filepair represents
374  a rename than showing substring of the actual path when diffstat
375  lines are not wide enough.
377  I am not sure if that is solving a right problem, though.
380 * rv/send-email-cache-generated-mid (2013-08-21) 2 commits
381  - git-send-email: Cache generated message-ids, use them when prompting
382  - git-send-email: add optional 'choices' parameter to the ask sub
385 * rj/read-default-config-in-show-ref-pack-refs (2013-06-17) 3 commits
386  - ### DONTMERGE: needs better explanation on what config they need
387  - pack-refs.c: Add missing call to git_config()
388  - show-ref.c: Add missing call to git_config()
390  The changes themselves are probably good, but it is unclear what
391  basic setting needs to be read for which exact operation.
393  Waiting for clarification.
394  $gmane/228294
397 * jc/format-patch (2013-04-22) 2 commits
398  - format-patch: --inline-single
399  - format-patch: rename "no_inline" field
401  A new option to send a single patch to the standard output to be
402  appended at the bottom of a message.  I personally have no need for
403  this, but it was easy enough to cobble together.  Tests, docs and
404  stripping out more MIMEy stuff are left as exercises to interested
405  parties.
408 * jk/gitweb-utf8 (2013-04-08) 4 commits
409  - gitweb: Fix broken blob action parameters on blob/commitdiff pages
410  - gitweb: Don't append ';js=(0|1)' to external links
411  - gitweb: Make feed title valid utf8
412  - gitweb: Fix utf8 encoding for blob_plain, blobdiff_plain, commitdiff_plain, and patch
414  Various fixes to gitweb.
416  Drew Northup volunteered to take a look into this.
417  $gmane/226216
420 * jc/show-branch (2013-06-07) 5 commits
421  - show-branch: use commit slab to represent bitflags of arbitrary width
422  - show-branch.c: remove "all_mask"
423  - show-branch.c: abstract out "flags" operation
424  - show-branch.c: lift all_mask/all_revs to a global static
425  - show-branch.c: update comment style
427  Waiting for the final step to lift the hard-limit before sending it out.
429 --------------------------------------------------
430 [Cooking]
432 * jl/commit-v-strip-marker (2013-12-05) 1 commit
433  - commit -v: strip diffs and submodule shortlogs from the commit message
436 * cl/p4-use-diff-tree (2013-11-22) 1 commit
437   (merged to 'next' on 2013-12-06 at fc3c89e)
438  + git p4: Use git diff-tree instead of format-patch
440  Originally merged to 'next' on 2013-11-27
442  Will merge to 'master'.
445 * jn/scripts-updates (2013-11-26) 7 commits
446   (merged to 'next' on 2013-12-06 at 60a7026)
447  + remove #!interpreter line from shell libraries
448  + test: replace shebangs with descriptions in shell libraries
449  + test: make FILEMODE a lazy prereq
450  + contrib: remove git-p4import
451  + mark contributed hooks executable
452  + mark perl test scripts executable
453  + mark Windows build scripts executable
455  Will merge to 'master'.
458 * tr/commit-slab-cleanup (2013-12-02) 3 commits
459   (merged to 'next' on 2013-12-06 at faee247)
460  + commit-slab: sizeof() the right type in xrealloc
461  + commit-slab: declare functions "static inline"
462  + commit-slab: document clear_$slabname()
464  Originally merged to 'next' on 2013-12-02
466  Will merge to 'master'.
469 * tr/doc-git-cherry (2013-11-27) 1 commit
470   (merged to 'next' on 2013-12-06 at 9a1ba7a)
471  + Documentation: revamp git-cherry(1)
473  Originally merged to 'next' on 2013-11-27
475  Will merge to 'master'.
478 * rs/doc-submitting-patches (2013-11-27) 1 commit
479   (merged to 'next' on 2013-12-06 at 0628818)
480  + SubmittingPatches: document how to handle multiple patches
482  Originally merged to 'next' on 2013-11-27
484  Will merge to 'master'.
487 * cc/starts-n-ends-with (2013-12-05) 4 commits
488  - replace {pre,suf}fixcmp() with {starts,ends}_with()
489  - strbuf: introduce starts_with() and ends_with()
490  - builtin/remote: remove postfixcmp() and use suffixcmp() instead
491  - environment: normalize use of prefixcmp() by removing " != 0"
492  (this branch is used by cc/starts-n-ends-with-endgame; uses jk/remove-deprecated.)
494  Remove a few duplicate implementations of prefix/suffix comparison
495  functions, and rename them to starts_with and ends_with.
497  To avoid unnecessary merge conflicts, this is queued on top of
498  jk/remove-deprecated topic.
501 * cc/starts-n-ends-with-endgame (2013-12-05) 1 commit
502  - strbuf: remove prefixcmp() and suffixcmp()
503  (this branch uses cc/starts-n-ends-with and jk/remove-deprecated.)
505  Endgame for the above topic, that needs to be evil-merged with
506  other topics that introduce new uses of prefix/suffix-cmp
507  functions.
510 * jc/push-refmap (2013-12-04) 3 commits
511  - push: also use "upstream" mapping when pushing a single ref
512  - push: use remote.$name.push as a refmap
513  - builtin/push.c: use strbuf instead of manual allocation
515  Make "git push origin master" update the same ref that would be
516  updated by our 'master' when "git push origin" (no refspecs) is run
517  while the 'master' branch is checked out, which makes "git push"
518  more symmetric to "git fetch" and more usable for the triangular
519  workflow.
522 * jk/t5000-gzip-simplify (2013-12-04) 1 commit
523  - t5000: simplify gzip prerequisite checks
525  Test fix.
528 * js/gnome-keyring (2013-12-04) 1 commit
529  - contrib/git-credential-gnome-keyring.c: small stylistic cleanups
531  Style fix.
534 * kn/gitweb-extra-branch-refs (2013-12-04) 4 commits
535  - gitweb: Denote non-heads, non-remotes branches
536  - gitweb: Add a feature for adding more branch refs
537  - gitweb: Return plain booleans in validation methods
538  - gitweb: Move check-ref-format code into separate function
540  Allow gitweb to be configured to show refs out of refs/heads/ as if
541  they were branches.
544 * mm/mv-file-to-no-such-dir-with-slash (2013-12-04) 1 commit
545  - mv: let 'git mv file no-such-dir/' error out
548 * nd/gettext-vsnprintf (2013-12-04) 1 commit
549  - gettext.c: detect the vsnprintf bug at runtime
552 * tr/send-email-ssl (2013-12-04) 3 commits
553  - send-email: set SSL options through IO::Socket::SSL::set_client_defaults
554  - send-email: --smtp-ssl-cert-path takes an argument
555  - send-email: pass Debug to Net::SMTP::SSL::new
558 * tb/clone-ssh-with-colon-for-port (2013-12-04) 10 commits
559  - git_connect(): use common return point
560  - connect.c: refactor url parsing
561  - git_connect(): refactor the port handling for ssh
562  - git fetch: support host:/~repo
563  - t5500: add test cases for diag-url
564  - git fetch-pack: add --diag-url
565  - git_connect: factor out discovery of the protocol and its parts
566  - git_connect: remove artificial limit of a remote command
567  - t5601: add tests for ssh
568  - t5601: remove clear_ssh, refactor setup_ssh_wrapper
571 * cn/thin-push-capability (2013-11-25) 1 commit
572   (merged to 'next' on 2013-12-06 at a7ae524)
573  + send-pack: don't send a thin pack to a server which doesn't support it
575  Allow receive-pack to insist on receiving a fat pack from "git
576  push" clients.
578  Will merge to 'master'.
581 * jk/remove-deprecated (2013-12-05) 6 commits
582   (merged to 'next' on 2013-12-06 at c0c91a2)
583  + Sync with 1.8.5
584  + stop installing git-tar-tree link
585  + peek-remote: remove deprecated alias of ls-remote
586  + lost-found: remove deprecated command
587  + tar-tree: remove deprecated command
588  + repo-config: remove deprecated alias for "git config"
589  (this branch is used by cc/starts-n-ends-with and cc/starts-n-ends-with-endgame.)
591  Originally merged to 'next' on 2013-12-03
593  Will merge to 'master'.
596 * tr/config-multivalue-lift-max (2013-12-06) 1 commit
597   (merged to 'next' on 2013-12-06 at 92afee2)
598  + config: arbitrary number of matches for --unset and --replace-all
600  Originally merged to 'next' on 2013-11-20
602  Will merge to 'master'.
605 * kb/doc-exclude-directory-semantics (2013-11-07) 1 commit
606  - gitignore.txt: clarify recursive nature of excluded directories
608  Originally merged to 'next' on 2013-11-13
610  Kicked back to 'pu' to replace with a newer reroll ($gmane/237814
611  looked OK but there seems to have some loose ends in the
612  discussion).
615 * jc/create-directories-microopt (2013-11-11) 1 commit
616  - checkout: most of the time we have good leading directories
618  Of unknown value until tested on non-Linux platforms (especially
619  Windows).
621  Will hold.
624 * gj/push-more-verbose-advice (2013-11-13) 1 commit
625   (merged to 'next' on 2013-12-06 at 574b18a)
626  + push: switch default from "matching" to "simple"
628  Originally merged to 'next' on 2013-11-21
630  Explain 'simple' and 'matching' in "git push" advice message; the
631  topmost patch is a rebase of jc/push-2.0-default-to-simple on top
632  of it.
634  Will cook in 'next'.
637 * tr/merge-recursive-index-only (2013-10-28) 3 commits
638  - merge-recursive: -Xindex-only to leave worktree unchanged
639  - merge-recursive: internal flag to avoid touching the worktree
640  - merge-recursive: remove dead conditional in update_stages()
642  Will hold until using script appears.
645 * mh/fetch-tags-in-addition-to-normal-refs (2013-10-30) 23 commits
646   (merged to 'next' on 2013-12-06 at 3b9c44a)
647  + fetch: improve the error messages emitted for conflicting refspecs
648  + handle_duplicate(): mark error message for translation
649  + ref_remote_duplicates(): extract a function handle_duplicate()
650  + ref_remove_duplicates(): simplify loop logic
651  + t5536: new test of refspec conflicts when fetching
652  + ref_remove_duplicates(): avoid redundant bisection
653  + git-fetch.txt: improve description of tag auto-following
654  + fetch-options.txt: simplify ifdef/ifndef/endif usage
655  + fetch, remote: properly convey --no-prune options to subprocesses
656  + builtin/remote.c:update(): use struct argv_array
657  + builtin/remote.c: reorder function definitions
658  + query_refspecs(): move some constants out of the loop
659  + fetch --prune: prune only based on explicit refspecs
660  + fetch --tags: fetch tags *in addition to* other stuff
661  + fetch: only opportunistically update references based on command line
662  + get_expanded_map(): avoid memory leak
663  + get_expanded_map(): add docstring
664  + builtin/fetch.c: reorder function definitions
665  + get_ref_map(): rename local variables
666  + api-remote.txt: correct section "struct refspec"
667  + t5510: check that "git fetch --prune --tags" does not prune branches
668  + t5510: prepare test refs more straightforwardly
669  + t5510: use the correct tag name in test
671  Originally merged to 'next' on 2013-11-06
673  The "--tags" option to "git fetch" used to be literally a synonym to
674  a "refs/tags/*:refs/tags/*" refspec, which meant that (1) as an
675  explicit refspec given from the command line, it silenced the lazy
676  "git fetch" default that is configured, and (2) also as an explicit
677  refspec given from the command line, it interacted with "--prune"
678  to remove any tag that the remote we are fetching from does not
679  have.
681  This demotes it to an option; with it, we fetch all tags in
682  addition to what would be fetched without the option, and it does
683  not interact with the decision "--prune" makes to see what
684  remote-tracking refs the local has are missing the remote
685  counterpart.
687  Will merge to 'master'.
690 * kb/fast-hashmap (2013-11-18) 14 commits
691   (merged to 'next' on 2013-12-06 at f90be3d)
692  + read-cache.c: fix memory leaks caused by removed cache entries
693  + builtin/update-index.c: cleanup update_one
694  + fix 'git update-index --verbose --again' output
695  + remove old hash.[ch] implementation
696  + name-hash.c: remove cache entries instead of marking them CE_UNHASHED
697  + name-hash.c: use new hash map implementation for cache entries
698  + name-hash.c: remove unreferenced directory entries
699  + name-hash.c: use new hash map implementation for directories
700  + diffcore-rename.c: use new hash map implementation
701  + diffcore-rename.c: simplify finding exact renames
702  + diffcore-rename.c: move code around to prepare for the next patch
703  + buitin/describe.c: use new hash map implementation
704  + add a hashtable implementation that supports O(1) removal
705  + submodule: don't access the .gitmodules cache entry after removing it
707  Improvements to our hash table to get it to meet the needs of the
708  msysgit fscache project, with some nice performance improvements.
710  Will cook in 'next'.
713 * jn/add-2.0-u-A-sans-pathspec (2013-04-26) 1 commit
714   (merged to 'next' on 2013-12-06 at ead2ec8)
715  + git add: -u/-A now affects the entire working tree
717  Will cook in 'next' until Git 2.0.
720 * jc/core-checkstat-2.0 (2013-05-06) 1 commit
721   (merged to 'next' on 2013-12-06 at ae18007)
722  + core.statinfo: remove as promised in Git 2.0
724  Will cook in 'next' until Git 2.0.
727 * jc/push-2.0-default-to-simple (2013-06-18) 1 commit
728   (merged to 'next' on 2013-12-06 at 6fad61c)
729  + push: switch default from "matching" to "simple"
731  Will cook in 'next' until Git 2.0.
734 * jc/add-2.0-ignore-removal (2013-04-22) 1 commit
735   (merged to 'next' on 2013-12-06 at fbaa75a)
736  + git add <pathspec>... defaults to "-A"
738  Updated endgame for "git add <pathspec>" that defaults to "--all"
739  aka "--no-ignore-removal".
741  Will cook in 'next' until Git 2.0.
744 * jc/hold-diff-remove-q-synonym-for-no-deletion (2013-07-19) 1 commit
745   (merged to 'next' on 2013-12-06 at 083d67c)
746  + diff: remove "diff-files -q" in a version of Git in a distant future
748  Will cook in 'next' until a distant future.
750 --------------------------------------------------
751 [Discarded]
753 * aa/transport-non-positive-depth-only (2013-11-26) 1 commit
754  . transport: catch non positive --depth option value
757 * cc/remote-remove-redundant-postfixcmp (2013-11-06) 2 commits
758  . Rename suffixcmp() to has_suffix() and invert its result
759  . builtin/remote: remove postfixcmp() and use suffixcmp() instead
762 * th/reflog-annotated-tag (2013-10-28) 1 commit
763  . reflog: handle lightweight and annotated tags equally
765  "git log -g $annotated_tag", when there is no reflog history, should
766  have produced a single output entry (i.e. the ref creation event),
767  but instead showed the history leading to the tag.
769  Broken at the design level.  Any reflog entry that points at a non
770  commit needs to be handled with new code that does not exist yet,
771  and lifting the "this code handles only commits" without adding
772  such code does not solve anything.