What's cooking (2014/01 #01)
[git/jrn.git] / whats-cooking.txt
blob4c6d26b7c9e40ae01a289e1e4de02cc74ded54b2
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 Subject: What's cooking in git.git (Jan 2014, #01; Mon, 6)
4 X-master-at: 932f7e47699993de0f6ad2af92be613994e40afe
5 X-next-at: 5ca323a946964afa14ca9712a4b3012b36f33b02
7 What's cooking in git.git (Jan 2014, #01; Mon, 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 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 [Graduated to "master"]
22 * fc/remote-helper-fixes (2013-12-26) 5 commits
23   (merged to 'next' on 2013-12-26 at ce5f872)
24  + remote-hg: test 'shared_path' in a moved clone
25   (merged to 'next' on 2013-12-17 at aa4dc07)
26  + remote-hg: add tests for special filenames
27  + remote-hg: fix 'shared path' path
28  + remote-helpers: add extra safety checks
29  + remote-hg: avoid buggy strftime()
32 * jc/push-refmap (2013-12-04) 3 commits
33   (merged to 'next' on 2013-12-12 at 71e358f)
34  + push: also use "upstream" mapping when pushing a single ref
35  + push: use remote.$name.push as a refmap
36  + builtin/push.c: use strbuf instead of manual allocation
38  Make "git push origin master" update the same ref that would be
39  updated by our 'master' when "git push origin" (no refspecs) is run
40  while the 'master' branch is checked out, which makes "git push"
41  more symmetric to "git fetch" and more usable for the triangular
42  workflow.
45 * jk/cat-file-regression-fix (2013-12-12) 2 commits
46   (merged to 'next' on 2013-12-13 at 3713e01)
47  + cat-file: handle --batch format with missing type/size
48  + cat-file: pass expand_data to print_object_or_die
50  "git cat-file --batch=", an admittedly useless command, did not
51  behave very well.
54 * jk/name-pack-after-byte-representation (2013-12-16) 3 commits
55   (merged to 'next' on 2013-12-17 at 0bc385c)
56  + pack-objects doc: treat output filename as opaque
57   (merged to 'next' on 2013-12-09 at 247b2d0)
58  + pack-objects: name pack files after trailer hash
59  + sha1write: make buffer const-correct
60  (this branch is tangled with jk/pack-bitmap.)
62  Two packfiles that contain the same set of objects have
63  traditionally been named identically, but that made repacking a
64  repository that is already fully packed without any cruft with a
65  different packing parameter cumbersome. Update the convention to
66  name the packfile after the bytestream representation of the data,
67  not after the set of objects in it.
70 * jk/pull-rebase-using-fork-point (2013-12-10) 2 commits
71   (merged to 'next' on 2013-12-13 at 1862c12)
72  + rebase: use reflog to find common base with upstream
73  + pull: use merge-base --fork-point when appropriate
76 * jk/rev-parse-double-dashes (2013-12-09) 2 commits
77   (merged to 'next' on 2013-12-13 at d26bac7)
78  + rev-parse: be more careful with munging arguments
79  + rev-parse: correctly diagnose revision errors before "--"
81  "git rev-parse <revs> -- <paths>" did not implement the usual
82  disambiguation rules the commands in the "git log" family used in
83  the same way.
86 * js/gnome-keyring (2013-12-16) 1 commit
87   (merged to 'next' on 2013-12-17 at 422fd61)
88  + contrib/git-credential-gnome-keyring.c: small stylistic cleanups
90  Style fix.
93 * tg/diff-no-index-refactor (2013-12-16) 4 commits
94   (merged to 'next' on 2013-12-17 at 009d8d8)
95  + diff: avoid some nesting
96  + diff: add test for --no-index executed outside repo
97   (merged to 'next' on 2013-12-13 at 523f7c4)
98  + diff: don't read index when --no-index is given
99  + diff: move no-index detection to builtin/diff.c
101  "git diff ../else/where/A ../else/where/B" when ../else/where is
102  clearly outside the repository, and "git diff --no-index A B", do
103  not have to look at the index at all, but we used to read the index
104  unconditionally.
107 * zk/difftool-counts (2013-12-16) 2 commits
108   (merged to 'next' on 2013-12-16 at 0e0d235)
109  + diff.c: fix some recent whitespace style violations
110   (merged to 'next' on 2013-12-12 at ba35694)
111  + difftool: display the number of files in the diff queue in the prompt
113  Show the total number of paths and the number of paths shown so far
114  when "git difftool" prompts to launch an external diff tool, which
115  would give users some sense of progress.
117 --------------------------------------------------
118 [New Topics]
120 * ta/format-user-manual-as-an-article (2014-01-06) 1 commit
121   (merged to 'next' on 2014-01-06 at 37858f6)
122  + user-manual: improve html and pdf formatting
124  Update the way the user-manual is formatted via AsciiDoc to save
125  trees.
127  Will merge to 'master'.
130 * bm/merge-base-octopus-dedup (2013-12-30) 2 commits
131   (merged to 'next' on 2014-01-06 at 355d62b)
132  + merge-base --octopus: reduce the result from get_octopus_merge_bases()
133  + merge-base: separate "--independent" codepath into its own helper
135  "git merge-base --octopus" used to leave cleaning up suboptimal
136  result to the caller, but now it does the clean-up itself.
138  Will merge to 'master'.
141 * jk/test-framework-updates (2014-01-02) 3 commits
142   (merged to 'next' on 2014-01-06 at f81f373)
143  + t0000: drop "known breakage" test
144  + t0000: simplify HARNESS_ACTIVE hack
145  + t0000: set TEST_OUTPUT_DIRECTORY for sub-tests
147  The basic test used to leave unnecessary trash directories in the
148  t/ directory.
150  Will merge to 'master'.
153 * js/lift-parent-count-limit (2013-12-27) 1 commit
154   (merged to 'next' on 2014-01-06 at b74133c)
155  + Remove the line length limit for graft files
157  There is no reason to have a hardcoded upper limit of the number of
158  parents for an octopus merge, created via the graft mechanism.
160  Will merge to 'master'.
163 * ap/remote-hg-skip-null-bookmarks (2014-01-02) 1 commit
164  - remote-hg: do not fail on invalid bookmarks
166  Reported to break tests ($gmane/240005)
167  Expecting a reroll.
170 * bs/mirbsd (2014-01-02) 1 commit
171   (merged to 'next' on 2014-01-06 at d5cecbb)
172  + Add MirBSD support to the build system.
174  Will merge to 'master'.
177 * jk/credential-plug-leak (2014-01-02) 1 commit
178   (merged to 'next' on 2014-01-06 at 88e29a3)
179  + Revert "prompt: clean up strbuf usage"
181  An earlier "clean-up" introduced an unnecessary memory leak.
183  Will merge to 'master'.
186 * jk/http-auth-tests-robustify (2014-01-02) 1 commit
187   (merged to 'next' on 2014-01-06 at 7e87bba)
188  + use distinct username/password for http auth tests
190  Using the same username and password during the tests would not
191  catch a potential breakage of sending one when we should be sending
192  the other.
194  Will merge to 'master'.
197 * km/gc-eperm (2014-01-02) 1 commit
198   (merged to 'next' on 2014-01-06 at fe107de)
199  + gc: notice gc processes run by other users
201  A "gc" process running as a different user should be able to stop a
202  new "gc" process from starting.
204  Will merge to 'master'.
207 * rr/completion-branch-config (2014-01-06) 4 commits
208   (merged to 'next' on 2014-01-06 at ed9eecc)
209  + completion: fix remote.pushdefault
210  + completion: fix branch.autosetup(merge|rebase)
211  + completion: introduce __gitcomp_nl_append ()
212  + zsh completion: find matching custom bash completion
214  Two-level configuration variable names in "branch.*" and "remote.*"
215  hierarchies whose variables are predominantly three-level where not
216  completed by hitting a <TAB> in bash and zsh completions.
218  Will merge to 'master'.
221 * ss/builtin-cleanup (2014-01-06) 3 commits
222   (merged to 'next' on 2014-01-06 at ffcac50)
223  + builtin/help.c: speed up is_git_command() by checking for builtin commands first
224  + builtin/help.c: call load_command_list() only when it is needed
225  + git.c: consistently use the term "builtin" instead of "internal command"
227  "git help $cmd" unnecessarily enumerated potential command names
228  from the filesystem, even when $cmd is known to be a built-in.
230  Ideas for further optimization, primarily by killing the use of
231  is_in_cmdlist(), were suggested in the discussion, but they can
232  come as follow-ups on top of this series.
234  Will merge to 'master'.
237 * ss/safe-create-leading-dir-with-slash (2014-01-06) 1 commit
238  - safe_create_leading_directories(): on Windows, \ can separate path components
241 * vm/octopus-merge-bases-simplify (2014-01-03) 1 commit
242   (merged to 'next' on 2014-01-06 at 35df672)
243  + get_octopus_merge_bases(): cleanup redundant variable
245  Will merge to 'master'.
248 * fp/submodule-checkout-mode (2014-01-06) 2 commits
249  - DONOTMERGE: needs sign-off
250  - git-submodule.sh: support 'checkout' as a valid update mode
252  Need to pick up a rerolled one.
254 --------------------------------------------------
255 [Stalled]
257 * jc/graph-post-root-gap (2013-12-30) 3 commits
258  - WIP: document what we want at the end
259  - graph: remove unused code a bit
260  - graph: stuff the current commit into graph->columns[]
262  This was primarily a RFH ($gmane/239580).
265 * fc/transport-helper-fixes (2013-12-09) 6 commits
266  - remote-bzr: support the new 'force' option
267  - test-hg.sh: tests are now expected to pass
268  - transport-helper: check for 'forced update' message
269  - transport-helper: add 'force' to 'export' helpers
270  - transport-helper: don't update refs in dry-run
271  - transport-helper: mismerge fix
273  Updates transport-helper, fast-import and fast-export to allow the
274  ref mapping and ref deletion in a way similar to the natively
275  supported transports.
277  Reported to break t5541.
278  Will hold.
281 * fc/completion (2013-12-09) 1 commit
282  - completion: fix completion of certain aliases
284  SZEDER Gábor noticed that this breaks "git -c var=val alias" and
285  also suggested a better description of the change.
287  Will hold.
290 * mo/subtree-split-updates (2013-12-10) 3 commits
291  - subtree: add --edit option
292  - subtree: allow --squash and --message with push
293  - subtree: support split --rejoin --squash
295  Comments?
298 * hv/submodule-ignore-fix (2013-12-06) 4 commits
299  - disable complete ignorance of submodules for index <-> HEAD diff
300  - always show committed submodules in summary after commit
301  - teach add -f option for ignored submodules
302  - fix 'git add' to skip submodules configured as ignored
304  Teach "git add" to be consistent with "git status" when changes to
305  submodules are set to be ignored, to avoid surprises after checking
306  with "git status" to see there isn't any change to be further added
307  and then see that "git add ." adds changes to them.
309  I think a reroll is coming, so this may need to be replaced, but I
310  needed some practice with heavy conflict resolution.  It conflicts
311  with two changes to "git add" that have been scheduled for Git 2.0
312  quite badly, and I think I got the resolution right this time.
315 * kb/fast-hashmap (2014-01-03) 19 commits
316  - hashmap.h: make sure map entries are tightly packed
317   (merged to 'next' on 2014-01-03 at dc85001)
318  + name-hash: retire unused index_name_exists()
319  + hashmap.h: Use 'unsigned int' for hash-codes everywhere
320   (merged to 'next' on 2013-12-16 at bff99b1)
321  + Drop unnecessary #includes from test-hashmap
322  + Add test-hashmap to .gitignore
323   (merged to 'next' on 2013-12-06 at f90be3d)
324  + read-cache.c: fix memory leaks caused by removed cache entries
325  + builtin/update-index.c: cleanup update_one
326  + fix 'git update-index --verbose --again' output
327  + remove old hash.[ch] implementation
328  + name-hash.c: remove cache entries instead of marking them CE_UNHASHED
329  + name-hash.c: use new hash map implementation for cache entries
330  + name-hash.c: remove unreferenced directory entries
331  + name-hash.c: use new hash map implementation for directories
332  + diffcore-rename.c: use new hash map implementation
333  + diffcore-rename.c: simplify finding exact renames
334  + diffcore-rename.c: move code around to prepare for the next patch
335  + buitin/describe.c: use new hash map implementation
336  + add a hashtable implementation that supports O(1) removal
337  + submodule: don't access the .gitmodules cache entry after removing it
339  Improvements to our hash table to get it to meet the needs of the
340  msysgit fscache project, with some nice performance improvements.
342  The tip one does not seem to have reached concensus (yet).
345 * jc/create-directories-microopt (2013-11-11) 1 commit
346  - checkout: most of the time we have good leading directories
348  Of unknown value until tested on non-Linux platforms (especially
349  Windows).
351  Will hold.
354 * jt/commit-fixes-footer (2013-10-30) 1 commit
355  - commit: Add -f, --fixes <commit> option to add Fixes: line
357  There is an ongoing discussion around this topic; in general I am
358  fairly negative on a new feature that is too narrow and prefer a
359  more generic solution that can be tailored for specific needs, as
360  many people stated in the thread.
362  It appears that the discussion stalled.
365 * np/pack-v4 (2013-09-18) 90 commits
366  . packv4-parse.c: add tree offset caching
367  . t1050: replace one instance of show-index with verify-pack
368  . index-pack, pack-objects: allow creating .idx v2 with .pack v4
369  . unpack-objects: decode v4 trees
370  . unpack-objects: allow to save processed bytes to a buffer
371  - ...
373  Nico and Duy advancing the eternal vaporware pack-v4.  This is here
374  primarily for wider distribution of the preview edition.
376  Temporarily ejected from 'pu', to try out jk/pack-bitmap, which
377  this topic conflicts with.
380 * mf/graph-show-root (2013-10-25) 1 commit
381  . graph.c: mark root commit differently
383  In a repository with multiple-roots, "log --graph", especially with
384  "--oneline", does not give the reader enough visual cue to see
385  where one line of history ended and a separate history began.
387  This is the version that marks the roots 'x' when they would have
388  been marked as '*'; Keshav Kini suggested an alternative of giving
389  an extra blank line after every root, which I tend to think is a
390  better approach to the problem.
393 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
394  - perf-lib: add test_perf_cleanup target
395  - perf-lib: split starting the test from the execution
397  Add test_perf_cleanup shell function to the perf suite, that allows
398  the script writers to define a test with a clean-up action.
400  Holding until needed.
403 * yt/shortened-rename (2013-10-18) 2 commits
404  - SQUASH??? style fixes and s/omit/shorten/ where appropriate
405  - diff.c: keep arrow(=>) on show_stats()'s shortened filename part to make rename visible
407  Attempts to give more weight on the fact that a filepair represents
408  a rename than showing substring of the actual path when diffstat
409  lines are not wide enough.
411  I am not sure if that is solving a right problem, though.
414 * rv/send-email-cache-generated-mid (2013-08-21) 2 commits
415  - git-send-email: Cache generated message-ids, use them when prompting
416  - git-send-email: add optional 'choices' parameter to the ask sub
419 * rj/read-default-config-in-show-ref-pack-refs (2013-06-17) 3 commits
420  - ### DONTMERGE: needs better explanation on what config they need
421  - pack-refs.c: Add missing call to git_config()
422  - show-ref.c: Add missing call to git_config()
424  The changes themselves are probably good, but it is unclear what
425  basic setting needs to be read for which exact operation.
427  Waiting for clarification.
428  $gmane/228294
431 * jc/format-patch (2013-04-22) 2 commits
432  - format-patch: --inline-single
433  - format-patch: rename "no_inline" field
435  A new option to send a single patch to the standard output to be
436  appended at the bottom of a message.  I personally have no need for
437  this, but it was easy enough to cobble together.  Tests, docs and
438  stripping out more MIMEy stuff are left as exercises to interested
439  parties.
442 * jk/gitweb-utf8 (2013-04-08) 4 commits
443  - gitweb: Fix broken blob action parameters on blob/commitdiff pages
444  - gitweb: Don't append ';js=(0|1)' to external links
445  - gitweb: Make feed title valid utf8
446  - gitweb: Fix utf8 encoding for blob_plain, blobdiff_plain, commitdiff_plain, and patch
448  Various fixes to gitweb.
450  Drew Northup volunteered to take a look into this.
451  $gmane/226216
454 * jc/show-branch (2013-06-07) 5 commits
455  - show-branch: use commit slab to represent bitflags of arbitrary width
456  - show-branch.c: remove "all_mask"
457  - show-branch.c: abstract out "flags" operation
458  - show-branch.c: lift all_mask/all_revs to a global static
459  - show-branch.c: update comment style
461  Waiting for the final step to lift the hard-limit before sending it out.
463 --------------------------------------------------
464 [Cooking]
466 * bc/log-decoration (2013-12-20) 1 commit
467   (merged to 'next' on 2014-01-03 at ff8873f)
468  + log: properly handle decorations with chained tags
470  "git log --decorate" did not handle a tag pointed by another tag
471  nicely.
473  Will merge to 'master'.
476 * jh/rlimit-nofile-fallback (2013-12-18) 1 commit
477   (merged to 'next' on 2014-01-03 at b56ae0c)
478  + get_max_fd_limit(): fall back to OPEN_MAX upon getrlimit/sysconf failure
480  When we figure out how many file descriptors to allocate for
481  keeping packfiles open, a system with non-working getrlimit() could
482  cause us to die(), but because we make this call only to get a
483  rough estimate of how many is available and we do not even attempt
484  to use up all file descriptors available ourselves, it is nicer to
485  fall back to a reasonable low value rather than dying.
487  Will merge to 'master'.
490 * rt/bfg-ad-in-filter-branch-doc (2013-12-18) 1 commit
491   (merged to 'next' on 2014-01-03 at 2a45e3b)
492  + docs: add filter-branch notes on The BFG
494  Will merge to 'master'.
497 * sb/diff-orderfile-config (2013-12-18) 3 commits
498   (merged to 'next' on 2014-01-03 at 744eba7)
499  + diff: add diff.orderfile configuration variable
500  + diff: let "git diff -O" read orderfile from any file and fail properly
501  + t4056: add new tests for "git diff -O"
503  Allow "git diff -O<file>" to be configured with a new configuration
504  variable.
506  Will merge to 'master'.
509 * nd/daemon-informative-errors-typofix (2013-12-20) 1 commit
510   (merged to 'next' on 2014-01-03 at 1b87648)
511  + daemon: be strict at parsing parameters --[no-]informative-errors
513  Will merge to 'master'.
516 * tm/fetch-prune (2014-01-03) 2 commits
517   (merged to 'next' on 2014-01-03 at a58c6b4)
518  + fetch --prune: Run prune before fetching
519  + fetch --prune: always print header url
521  Fetching 'frotz' branch with "git fetch", while having
522  'frotz/nitfol' remote-tracking branch from an earlier fetch, would
523  error out, primarily because the command has not been told to
524  remove anything on our side. In such a case, "git fetch --prune"
525  can be used to remove 'frotz/nitfol' to make room to fetch and
526  store 'frotz' remote-tracking branch.
528  Will merge to 'master'.
531 * jk/oi-delta-base (2013-12-26) 2 commits
532   (merged to 'next' on 2014-01-06 at 8cf3ed2)
533  + cat-file: provide %(deltabase) batch format
534  + sha1_object_info_extended: provide delta base sha1s
536  Teach "cat-file --batch" to show delta-base object name for a
537  packed object that is represented as a delta.
539  Will merge to 'master'.
542 * jk/sha1write-void (2013-12-26) 1 commit
543   (merged to 'next' on 2014-01-06 at d8cd8ff)
544  + do not pretend sha1write returns errors
546  Code clean-up.
548  Will merge to 'master'.
551 * jl/submodule-recursive-checkout (2013-12-26) 5 commits
552  - Teach checkout to recursively checkout submodules
553  - submodule: teach unpack_trees() to update submodules
554  - submodule: teach unpack_trees() to repopulate submodules
555  - submodule: teach unpack_trees() to remove submodule contents
556  - submodule: prepare for recursive checkout of submodules
558  What is the doneness of this one???
561 * mh/safe-create-leading-directories (2014-01-06) 17 commits
562  - rename_tmp_log(): on SCLD_VANISHED, retry
563  - rename_tmp_log(): limit the number of remote_empty_directories() attempts
564  - rename_tmp_log(): handle a possible mkdir/rmdir race
565  - rename_ref(): extract function rename_tmp_log()
566  - remove_dir_recurse(): handle disappearing files and directories
567  - remove_dir_recurse(): tighten condition for removing unreadable dir
568  - lock_ref_sha1_basic(): if locking fails with ENOENT, retry
569  - lock_ref_sha1_basic(): on SCLD_VANISHED, retry
570  - safe_create_leading_directories(): add new error value SCLD_VANISHED
571  - cmd_init_db(): when creating directories, handle errors conservatively
572  - safe_create_leading_directories(): introduce enum for return values
573  - safe_create_leading_directories(): always restore slash at end of loop
574  - safe_create_leading_directories(): split on first of multiple slashes
575  - safe_create_leading_directories(): rename local variable
576  - safe_create_leading_directories(): add explicit "slash" pointer
577  - safe_create_leading_directories(): reduce scope of local variable
578  - safe_create_leading_directories(): fix format of "if" chaining
580  Code clean-up and protection against concurrent write access to the
581  ref namespace.
583  Is ready for 'next', with or without minor nitfix.
586 * nd/add-empty-fix (2013-12-26) 1 commit
587   (merged to 'next' on 2014-01-06 at 88a78c9)
588  + add: don't complain when adding empty project root
590  "git add -A" (no other arguments) in a totally empty working tree
591  used to emit an error.
593  Will merge to 'master'.
596 * nd/commit-tree-constness (2013-12-26) 1 commit
597   (merged to 'next' on 2014-01-06 at a177c9f)
598  + commit.c: make "tree" a const pointer in commit_tree*()
600  Code clean-up.
602  Will merge to 'master'.
605 * jk/pack-bitmap (2013-12-30) 21 commits
606  - pack-bitmap: implement optional name_hash cache
607  - t/perf: add tests for pack bitmaps
608  - t: add basic bitmap functionality tests
609  - count-objects: recognize .bitmap in garbage-checking
610  - repack: consider bitmaps when performing repacks
611  - repack: handle optional files created by pack-objects
612  - repack: turn exts array into array-of-struct
613  - repack: stop using magic number for ARRAY_SIZE(exts)
614  - pack-objects: implement bitmap writing
615  - rev-list: add bitmap mode to speed up object lists
616  - pack-objects: use bitmaps when packing objects
617  - pack-objects: split add_object_entry
618  - pack-bitmap: add support for bitmap indexes
619  - documentation: add documentation for the bitmap format
620  - ewah: compressed bitmap implementation
621  - compat: add endianness helpers
622  - sha1_file: export `git_open_noatime`
623  - revision: allow setting custom limiter function
624  - pack-objects: factor out name_hash
625  - pack-objects: refactor the packing list
626  - revindex: export new APIs
628  Borrows the bitmap index into packfiles from JGit to speed up
629  enumeration of objects involved in a commit range without having to
630  fully traverse the history.
632  Will merge to 'next'.
635 * ap/path-max (2013-12-16) 1 commit
636   (merged to 'next' on 2014-01-03 at affc620)
637  + Prevent buffer overflows when path is too long
639  Will merge to 'master'.
642 * mh/path-max (2013-12-18) 2 commits
643   (merged to 'next' on 2014-01-03 at 5227c9b)
644  + builtin/prune.c: use strbuf to avoid having to worry about PATH_MAX
645  + prune-packed: use strbuf to avoid having to worry about PATH_MAX
647  A few places where we relied on a fixed length buffer to hold
648  pathnames in these two programs have been converted to use strbuf.
650  Will merge to 'master'.
653 * nv/commit-gpgsign-config (2013-12-17) 3 commits
654   (merged to 'next' on 2014-01-03 at 9780cbb)
655  + test the commit.gpgsign config option
656  + commit-tree: add and document --no-gpg-sign
657  + Add the commit.gpgsign option to sign all commits
659  Introduce commit.gpgsign configuration variable to force every
660  commit to be GPG signed.  The variable cannot be overriden from the
661  command line of some of the commands that create commits except for
662  "git commit" and "git commit-tree", but I am not convinced that it
663  is a good idea to sprinkle support for --no-gpg-sign everywhere.
666 * cc/replace-object-info (2013-12-30) 11 commits
667   (merged to 'next' on 2014-01-03 at 4473803)
668  + replace info: rename 'full' to 'long' and clarify in-code symbols
669   (merged to 'next' on 2013-12-17 at aeb9e18)
670  + Documentation/git-replace: describe --format option
671  + builtin/replace: unset read_replace_refs
672  + t6050: add tests for listing with --format
673  + builtin/replace: teach listing using short, medium or full formats
674  + sha1_file: perform object replacement in sha1_object_info_extended()
675  + t6050: show that git cat-file --batch fails with replace objects
676  + sha1_object_info_extended(): add an "unsigned flags" parameter
677  + sha1_file.c: add lookup_replace_object_extended() to pass flags
678  + replace_object: don't check read_replace_refs twice
679  + rename READ_SHA1_FILE_REPLACE flag to LOOKUP_REPLACE_OBJECT
681  read_sha1_file() that is the workhorse to read the contents given
682  an object name honoured object replacements, but there is no
683  corresponding mechanism to sha1_object_info() that is used to
684  obtain the metainfo (e.g. type & size) about the object, leading
685  callers to weird inconsistencies.
687  Will merge to 'master'.
690 * nd/shallow-clone (2014-01-06) 30 commits
691   (merged to 'next' on 2014-01-06 at 3dc7fab)
692  + shallow: remove unused code
693  + send-pack.c: mark a file-local function static
694   (merged to 'next' on 2014-01-03 at a776065)
695  + git-clone.txt: remove shallow clone limitations
696  + prune: clean .git/shallow after pruning objects
697  + clone: use git protocol for cloning shallow repo locally
698  + send-pack: support pushing from a shallow clone via http
699  + receive-pack: support pushing to a shallow clone via http
700  + smart-http: support shallow fetch/clone
701  + remote-curl: pass ref SHA-1 to fetch-pack as well
702  + send-pack: support pushing to a shallow clone
703  + receive-pack: allow pushes that update .git/shallow
704  + connected.c: add new variant that runs with --shallow-file
705  + add GIT_SHALLOW_FILE to propagate --shallow-file to subprocesses
706  + receive/send-pack: support pushing from a shallow clone
707  + receive-pack: reorder some code in unpack()
708  + fetch: add --update-shallow to accept refs that update .git/shallow
709  + upload-pack: make sure deepening preserves shallow roots
710  + fetch: support fetching from a shallow repository
711  + clone: support remote shallow repository
712  + fetch-pack.h: one statement per bitfield declaration
713  + fetch-pack.c: move shallow update code out of fetch_pack()
714  + shallow.c: steps 6 and 7 to select new commits for .git/shallow
715  + shallow.c: the 8 steps to select new commits for .git/shallow
716  + shallow.c: extend setup_*_shallow() to accept extra shallow commits
717  + connect.c: teach get_remote_heads to parse "shallow" lines
718  + make the sender advertise shallow commits to the receiver
719  + clone: prevent --reference to a shallow repository
720  + send-pack: forbid pushing from a shallow repository
721  + remote.h: replace struct extra_have_objects with struct sha1_array
722  + transport.h: remove send_pack prototype, already defined in send-pack.h
724  Fetching from a shallow-cloned repository used to be forbidden,
725  primarily because the codepaths involved were not carefully vetted
726  and we did not bother supporting such usage. This attempts to allow
727  object transfer out of a shallow-cloned repository in a controlled
728  way (i.e. the receiver become a shallow repository with truncated
729  history).
731  Will merge to 'master'.
734 * jn/git-gui-chmod+x (2013-11-25) 1 commit
735  - git-gui: chmod +x po2msg, windows/git-gui.sh
737  Parked here until I get the same change back from the upstream
738  git-gui tree.
741 * jn/gitk-chmod+x (2013-11-25) 1 commit
742  - gitk: chmod +x po2msg
744  Parked here until I get the same change back from the upstream gitk
745  tree.
748 * nd/negative-pathspec (2013-12-06) 3 commits
749   (merged to 'next' on 2013-12-12 at 9f340c8)
750  + pathspec.c: support adding prefix magic to a pathspec with mnemonic magic
751  + Support pathspec magic :(exclude) and its short form :!
752  + glossary-content.txt: rephrase magic signature part
754  Introduce "negative pathspec" magic, to allow "git log -- . ':!dir'" to
755  tell us "I am interested in everything but 'dir' directory".
757  Will merge to 'master'.
760 * cc/starts-n-ends-with-endgame (2013-12-05) 1 commit
761  - strbuf: remove prefixcmp() and suffixcmp()
763  Endgame for the cc/starts-n-ends-with topic; this needs to be
764  evil-merged with other topics that introduce new uses of
765  prefix/suffix-cmp functions.
767  Will merge to 'next' and cook until Git 2.0.
770 * gj/push-more-verbose-advice (2013-11-13) 1 commit
771   (merged to 'next' on 2013-12-06 at 574b18a)
772  + push: switch default from "matching" to "simple"
774  Originally merged to 'next' on 2013-11-21
776  Explain 'simple' and 'matching' in "git push" advice message; the
777  topmost patch is a rebase of jc/push-2.0-default-to-simple on top
778  of it.
780  Will cook in 'next' until Git 2.0.
783 * tr/merge-recursive-index-only (2013-10-28) 3 commits
784  - merge-recursive: -Xindex-only to leave worktree unchanged
785  - merge-recursive: internal flag to avoid touching the worktree
786  - merge-recursive: remove dead conditional in update_stages()
788  Will hold until using script appears.
791 * jn/add-2.0-u-A-sans-pathspec (2013-04-26) 1 commit
792   (merged to 'next' on 2013-12-06 at ead2ec8)
793  + git add: -u/-A now affects the entire working tree
795  Will cook in 'next' until Git 2.0.
798 * jc/core-checkstat-2.0 (2013-05-06) 1 commit
799   (merged to 'next' on 2013-12-06 at ae18007)
800  + core.statinfo: remove as promised in Git 2.0
802  Will cook in 'next' until Git 2.0.
805 * jc/push-2.0-default-to-simple (2013-06-18) 1 commit
806   (merged to 'next' on 2013-12-06 at 6fad61c)
807  + push: switch default from "matching" to "simple"
809  Will cook in 'next' until Git 2.0.
812 * jc/add-2.0-ignore-removal (2013-04-22) 1 commit
813   (merged to 'next' on 2013-12-06 at fbaa75a)
814  + git add <pathspec>... defaults to "-A"
816  Updated endgame for "git add <pathspec>" that defaults to "--all"
817  aka "--no-ignore-removal".
819  Will cook in 'next' until Git 2.0.
822 * jc/hold-diff-remove-q-synonym-for-no-deletion (2013-07-19) 1 commit
823   (merged to 'next' on 2013-12-06 at 083d67c)
824  + diff: remove "diff-files -q" in a version of Git in a distant future
826  Will cook in 'next' until a distant future.
828 --------------------------------------------------
829 [Discarded]
831 * aa/transport-non-positive-depth-only (2013-11-26) 1 commit
832  . transport: catch non positive --depth option value
835 * cc/remote-remove-redundant-postfixcmp (2013-11-06) 2 commits
836  . Rename suffixcmp() to has_suffix() and invert its result
837  . builtin/remote: remove postfixcmp() and use suffixcmp() instead
840 * th/reflog-annotated-tag (2013-10-28) 1 commit
841  . reflog: handle lightweight and annotated tags equally
843  "git log -g $annotated_tag", when there is no reflog history, should
844  have produced a single output entry (i.e. the ref creation event),
845  but instead showed the history leading to the tag.
847  Broken at the design level.  Any reflog entry that points at a non
848  commit needs to be handled with new code that does not exist yet,
849  and lifting the "this code handles only commits" without adding
850  such code does not solve anything.