1 To: git@vger.kernel.org
3 Subject: What's cooking in git.git (Jan 2014, #02; Fri, 10)
4 X-master-at: a25014bc4cef56712f7d005d7b76070d0270f454
5 X-next-at: 7559984f930784464fd0cfdd0a69e17c779ae117
7 What's cooking in git.git (Jan 2014, #02; Fri, 10)
8 --------------------------------------------------
10 Here are the topics that have been cooking. Commits prefixed with
11 '-' are only in 'pu' (proposed updates) while commits prefixed with
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 * ap/path-max (2013-12-16) 1 commit
23 (merged to 'next' on 2014-01-03 at affc620)
24 + Prevent buffer overflows when path is too long
27 * bc/log-decoration (2013-12-20) 1 commit
28 (merged to 'next' on 2014-01-03 at ff8873f)
29 + log: properly handle decorations with chained tags
31 "git log --decorate" did not handle a tag pointed by another tag
35 * bm/merge-base-octopus-dedup (2013-12-30) 2 commits
36 (merged to 'next' on 2014-01-06 at 355d62b)
37 + merge-base --octopus: reduce the result from get_octopus_merge_bases()
38 + merge-base: separate "--independent" codepath into its own helper
40 "git merge-base --octopus" used to leave cleaning up suboptimal
41 result to the caller, but now it does the clean-up itself.
44 * bs/mirbsd (2014-01-02) 1 commit
45 (merged to 'next' on 2014-01-06 at d5cecbb)
46 + Add MirBSD support to the build system.
49 * cc/replace-object-info (2013-12-30) 11 commits
50 (merged to 'next' on 2014-01-03 at 4473803)
51 + replace info: rename 'full' to 'long' and clarify in-code symbols
52 (merged to 'next' on 2013-12-17 at aeb9e18)
53 + Documentation/git-replace: describe --format option
54 + builtin/replace: unset read_replace_refs
55 + t6050: add tests for listing with --format
56 + builtin/replace: teach listing using short, medium or full formats
57 + sha1_file: perform object replacement in sha1_object_info_extended()
58 + t6050: show that git cat-file --batch fails with replace objects
59 + sha1_object_info_extended(): add an "unsigned flags" parameter
60 + sha1_file.c: add lookup_replace_object_extended() to pass flags
61 + replace_object: don't check read_replace_refs twice
62 + rename READ_SHA1_FILE_REPLACE flag to LOOKUP_REPLACE_OBJECT
64 read_sha1_file() that is the workhorse to read the contents given
65 an object name honoured object replacements, but there is no
66 corresponding mechanism to sha1_object_info() that is used to
67 obtain the metainfo (e.g. type & size) about the object, leading
68 callers to weird inconsistencies.
71 * jh/rlimit-nofile-fallback (2013-12-18) 1 commit
72 (merged to 'next' on 2014-01-03 at b56ae0c)
73 + get_max_fd_limit(): fall back to OPEN_MAX upon getrlimit/sysconf failure
75 When we figure out how many file descriptors to allocate for
76 keeping packfiles open, a system with non-working getrlimit() could
77 cause us to die(), but because we make this call only to get a
78 rough estimate of how many is available and we do not even attempt
79 to use up all file descriptors available ourselves, it is nicer to
80 fall back to a reasonable low value rather than dying.
83 * jk/credential-plug-leak (2014-01-02) 1 commit
84 (merged to 'next' on 2014-01-06 at 88e29a3)
85 + Revert "prompt: clean up strbuf usage"
87 An earlier "clean-up" introduced an unnecessary memory leak.
90 * jk/http-auth-tests-robustify (2014-01-02) 1 commit
91 (merged to 'next' on 2014-01-06 at 7e87bba)
92 + use distinct username/password for http auth tests
94 Using the same username and password during the tests would not
95 catch a potential breakage of sending one when we should be sending
99 * jk/oi-delta-base (2013-12-26) 2 commits
100 (merged to 'next' on 2014-01-06 at 8cf3ed2)
101 + cat-file: provide %(deltabase) batch format
102 + sha1_object_info_extended: provide delta base sha1s
104 Teach "cat-file --batch" to show delta-base object name for a
105 packed object that is represented as a delta.
108 * jk/sha1write-void (2013-12-26) 1 commit
109 (merged to 'next' on 2014-01-06 at d8cd8ff)
110 + do not pretend sha1write returns errors
115 * jk/test-framework-updates (2014-01-02) 3 commits
116 (merged to 'next' on 2014-01-06 at f81f373)
117 + t0000: drop "known breakage" test
118 + t0000: simplify HARNESS_ACTIVE hack
119 + t0000: set TEST_OUTPUT_DIRECTORY for sub-tests
121 The basic test used to leave unnecessary trash directories in the
125 * js/lift-parent-count-limit (2013-12-27) 1 commit
126 (merged to 'next' on 2014-01-06 at b74133c)
127 + Remove the line length limit for graft files
129 There is no reason to have a hardcoded upper limit of the number of
130 parents for an octopus merge, created via the graft mechanism.
133 * km/gc-eperm (2014-01-02) 1 commit
134 (merged to 'next' on 2014-01-06 at fe107de)
135 + gc: notice gc processes run by other users
137 A "gc" process running as a different user should be able to stop a
138 new "gc" process from starting.
141 * mh/path-max (2013-12-18) 2 commits
142 (merged to 'next' on 2014-01-03 at 5227c9b)
143 + builtin/prune.c: use strbuf to avoid having to worry about PATH_MAX
144 + prune-packed: use strbuf to avoid having to worry about PATH_MAX
146 A few places where we relied on a fixed length buffer to hold
147 pathnames in these two programs have been converted to use strbuf.
150 * nd/add-empty-fix (2013-12-26) 1 commit
151 (merged to 'next' on 2014-01-06 at 88a78c9)
152 + add: don't complain when adding empty project root
154 "git add -A" (no other arguments) in a totally empty working tree
155 used to emit an error.
158 * nd/commit-tree-constness (2013-12-26) 1 commit
159 (merged to 'next' on 2014-01-06 at a177c9f)
160 + commit.c: make "tree" a const pointer in commit_tree*()
165 * nd/daemon-informative-errors-typofix (2013-12-20) 1 commit
166 (merged to 'next' on 2014-01-03 at 1b87648)
167 + daemon: be strict at parsing parameters --[no-]informative-errors
170 * nd/negative-pathspec (2013-12-06) 3 commits
171 (merged to 'next' on 2013-12-12 at 9f340c8)
172 + pathspec.c: support adding prefix magic to a pathspec with mnemonic magic
173 + Support pathspec magic :(exclude) and its short form :!
174 + glossary-content.txt: rephrase magic signature part
176 Introduce "negative pathspec" magic, to allow "git log -- . ':!dir'" to
177 tell us "I am interested in everything but 'dir' directory".
180 * rr/completion-branch-config (2014-01-06) 4 commits
181 (merged to 'next' on 2014-01-06 at ed9eecc)
182 + completion: fix remote.pushdefault
183 + completion: fix branch.autosetup(merge|rebase)
184 + completion: introduce __gitcomp_nl_append ()
185 + zsh completion: find matching custom bash completion
187 Two-level configuration variable names in "branch.*" and "remote.*"
188 hierarchies whose variables are predominantly three-level where not
189 completed by hitting a <TAB> in bash and zsh completions.
192 * rt/bfg-ad-in-filter-branch-doc (2013-12-18) 1 commit
193 (merged to 'next' on 2014-01-03 at 2a45e3b)
194 + docs: add filter-branch notes on The BFG
197 * sb/diff-orderfile-config (2013-12-18) 3 commits
198 (merged to 'next' on 2014-01-03 at 744eba7)
199 + diff: add diff.orderfile configuration variable
200 + diff: let "git diff -O" read orderfile from any file and fail properly
201 + t4056: add new tests for "git diff -O"
203 Allow "git diff -O<file>" to be configured with a new configuration
207 * ss/builtin-cleanup (2014-01-06) 3 commits
208 (merged to 'next' on 2014-01-06 at ffcac50)
209 + builtin/help.c: speed up is_git_command() by checking for builtin commands first
210 + builtin/help.c: call load_command_list() only when it is needed
211 + git.c: consistently use the term "builtin" instead of "internal command"
213 "git help $cmd" unnecessarily enumerated potential command names
214 from the filesystem, even when $cmd is known to be a built-in.
216 Ideas for further optimization, primarily by killing the use of
217 is_in_cmdlist(), were suggested in the discussion, but they can
218 come as follow-ups on top of this series.
221 * ta/format-user-manual-as-an-article (2014-01-06) 1 commit
222 (merged to 'next' on 2014-01-06 at 37858f6)
223 + user-manual: improve html and pdf formatting
225 Update the way the user-manual is formatted via AsciiDoc to save
229 * tm/fetch-prune (2014-01-03) 2 commits
230 (merged to 'next' on 2014-01-03 at a58c6b4)
231 + fetch --prune: Run prune before fetching
232 + fetch --prune: always print header url
234 Fetching 'frotz' branch with "git fetch", while having
235 'frotz/nitfol' remote-tracking branch from an earlier fetch, would
236 error out, primarily because the command has not been told to
237 remove anything on our side. In such a case, "git fetch --prune"
238 can be used to remove 'frotz/nitfol' to make room to fetch and
239 store 'frotz' remote-tracking branch.
242 * vm/octopus-merge-bases-simplify (2014-01-03) 1 commit
243 (merged to 'next' on 2014-01-06 at 35df672)
244 + get_octopus_merge_bases(): cleanup redundant variable
246 --------------------------------------------------
249 * br/sha1-name-40-hex-no-disambiguation (2014-01-07) 1 commit
250 (merged to 'next' on 2014-01-10 at 2a0973b)
251 + sha1_name: don't resolve refs when core.warnambiguousrefs is false
252 (this branch is used by jk/warn-on-object-refname-ambiguity.)
254 When parsing a 40-hex string into the object name, the string is
255 checked to see if it can be interpreted as a ref so that a warning
256 can be given for ambiguity. The code kicked in even when the
257 core.warnambiguousrefs is set to false to squelch this warning, in
258 which case the cycles spent to look at the ref namespace were an
259 expensive no-op, as the result was discarded without being used.
261 Will merge to 'master'.
264 * jl/submodule-mv-checkout-caveat (2014-01-07) 2 commits
265 (merged to 'next' on 2014-01-10 at 8d3953c)
266 + rm: better document side effects when removing a submodule
267 + mv: better document side effects when moving a submodule
269 With a submodule that was initialized in an old fashioned way
270 without gitlinks, switching branches in the superproject between
271 the one with and without the submodule may leave the submodule
272 working tree with its embedded repository behind, as there may be
273 unexpendable state there. Document and warn users about this.
275 Will merge to 'master'.
278 * jn/pager-lv-default-env (2014-01-07) 1 commit
279 (merged to 'next' on 2014-01-10 at 22d4755)
280 + pager: set LV=-c alongside LESS=FRSX
282 Just like we give a reasonable default for "less" via the LESS
283 environment variable, specify a reasonable default for "lv" via the
284 "LV" environment variable when spawning the pager.
286 Will merge to 'master'.
289 * ow/stash-with-ifs (2014-01-07) 1 commit
290 (merged to 'next' on 2014-01-10 at 4fc9bdb)
291 + stash: handle specifying stashes with $IFS
293 The implementation of 'git stash $cmd "stash@{...}"' did not quote
294 the stash argument properly and left it split at IFS whitespace.
296 Will merge to 'master'.
299 * rr/completion-format-coverletter (2014-01-07) 1 commit
300 (merged to 'next' on 2014-01-10 at d2dbc9d)
301 + completion: complete format.coverLetter
303 The bash/zsh completion code did not know about format.coverLetter
304 among many format.* configuration variables.
306 Will merge to 'master'.
309 * wk/submodule-on-branch (2014-01-07) 2 commits
310 - DONTMERGE: RFC will be rerolled with tests ($gmane/239967)
311 - submodule: respect requested branch on all clones
313 Waiting for the discussion to settle.
316 * jk/branch-at-publish (2014-01-09) 5 commits
317 - implement @{publish} shorthand
318 - branch_get: provide per-branch pushremote pointers
319 - branch_get: return early on error
320 - interpret_branch_name: factor out upstream handling
321 - sha1_name: refactor upstream_mark
323 Give an easier access to the tracking branches from "other" side in
324 a triangular workflow by introducing B@{publish} that works in a
325 similar way to how B@{upstream} does.
330 * jk/pull-rebase-using-fork-point (2014-01-09) 1 commit
331 (merged to 'next' on 2014-01-10 at e86e59d)
332 + rebase: fix fork-point with zero arguments
334 Will merge to 'master'.
337 * jk/warn-on-object-refname-ambiguity (2014-01-09) 6 commits
338 - get_sha1: drop object/refname ambiguity flag
339 - get_sha1: speed up ambiguous 40-hex test
340 - FIXUP: teach DO_FOR_EACH_NO_RECURSE to prime_ref_dir()
341 - refs: teach for_each_ref a flag to avoid recursion
342 - cat-file: fix a minor memory leak in batch_objects
343 - cat-file: refactor error handling of batch_objects
344 (this branch uses br/sha1-name-40-hex-no-disambiguation.)
349 * mh/shorten-unambigous-ref (2014-01-09) 3 commits
350 - shorten_unambiguous_ref(): tighten up pointer arithmetic
351 - gen_scanf_fmt(): delete function and use snprintf() instead
352 - shorten_unambiguous_ref(): introduce a new local variable
354 Will merge to 'next'.
357 * mm/mv-file-to-no-such-dir-with-slash (2014-01-10) 1 commit
358 - mv: let 'git mv file no-such-dir/' error out on Windows, too
360 Will merge to 'next'.
362 --------------------------------------------------
365 * jc/graph-post-root-gap (2013-12-30) 3 commits
366 - WIP: document what we want at the end
367 - graph: remove unused code a bit
368 - graph: stuff the current commit into graph->columns[]
370 This was primarily a RFH ($gmane/239580).
373 * fc/transport-helper-fixes (2013-12-09) 6 commits
374 - remote-bzr: support the new 'force' option
375 - test-hg.sh: tests are now expected to pass
376 - transport-helper: check for 'forced update' message
377 - transport-helper: add 'force' to 'export' helpers
378 - transport-helper: don't update refs in dry-run
379 - transport-helper: mismerge fix
381 Updates transport-helper, fast-import and fast-export to allow the
382 ref mapping and ref deletion in a way similar to the natively
383 supported transports.
385 Reported to break t5541.
389 * fc/completion (2013-12-09) 1 commit
390 - completion: fix completion of certain aliases
392 SZEDER Gábor noticed that this breaks "git -c var=val alias" and
393 also suggested a better description of the change.
398 * mo/subtree-split-updates (2013-12-10) 3 commits
399 - subtree: add --edit option
400 - subtree: allow --squash and --message with push
401 - subtree: support split --rejoin --squash
406 * hv/submodule-ignore-fix (2013-12-06) 4 commits
407 - disable complete ignorance of submodules for index <-> HEAD diff
408 - always show committed submodules in summary after commit
409 - teach add -f option for ignored submodules
410 - fix 'git add' to skip submodules configured as ignored
412 Teach "git add" to be consistent with "git status" when changes to
413 submodules are set to be ignored, to avoid surprises after checking
414 with "git status" to see there isn't any change to be further added
415 and then see that "git add ." adds changes to them.
417 I think a reroll is coming, so this may need to be replaced, but I
418 needed some practice with heavy conflict resolution. It conflicts
419 with two changes to "git add" that have been scheduled for Git 2.0
420 quite badly, and I think I got the resolution right this time.
423 * kb/fast-hashmap (2014-01-03) 19 commits
424 - hashmap.h: make sure map entries are tightly packed
425 (merged to 'next' on 2014-01-03 at dc85001)
426 + name-hash: retire unused index_name_exists()
427 + hashmap.h: Use 'unsigned int' for hash-codes everywhere
428 (merged to 'next' on 2013-12-16 at bff99b1)
429 + Drop unnecessary #includes from test-hashmap
430 + Add test-hashmap to .gitignore
431 (merged to 'next' on 2013-12-06 at f90be3d)
432 + read-cache.c: fix memory leaks caused by removed cache entries
433 + builtin/update-index.c: cleanup update_one
434 + fix 'git update-index --verbose --again' output
435 + remove old hash.[ch] implementation
436 + name-hash.c: remove cache entries instead of marking them CE_UNHASHED
437 + name-hash.c: use new hash map implementation for cache entries
438 + name-hash.c: remove unreferenced directory entries
439 + name-hash.c: use new hash map implementation for directories
440 + diffcore-rename.c: use new hash map implementation
441 + diffcore-rename.c: simplify finding exact renames
442 + diffcore-rename.c: move code around to prepare for the next patch
443 + buitin/describe.c: use new hash map implementation
444 + add a hashtable implementation that supports O(1) removal
445 + submodule: don't access the .gitmodules cache entry after removing it
447 Improvements to our hash table to get it to meet the needs of the
448 msysgit fscache project, with some nice performance improvements.
450 The tip one does not seem to have reached concensus (yet).
453 * jc/create-directories-microopt (2013-11-11) 1 commit
454 - checkout: most of the time we have good leading directories
456 Of unknown value until tested on non-Linux platforms (especially
462 * jt/commit-fixes-footer (2013-10-30) 1 commit
463 - commit: Add -f, --fixes <commit> option to add Fixes: line
465 There is an ongoing discussion around this topic; in general I am
466 fairly negative on a new feature that is too narrow and prefer a
467 more generic solution that can be tailored for specific needs, as
468 many people stated in the thread.
470 It appears that the discussion stalled.
473 * np/pack-v4 (2013-09-18) 90 commits
474 . packv4-parse.c: add tree offset caching
475 . t1050: replace one instance of show-index with verify-pack
476 . index-pack, pack-objects: allow creating .idx v2 with .pack v4
477 . unpack-objects: decode v4 trees
478 . unpack-objects: allow to save processed bytes to a buffer
481 Nico and Duy advancing the eternal vaporware pack-v4. This is here
482 primarily for wider distribution of the preview edition.
484 Temporarily ejected from 'pu', to try out jk/pack-bitmap, which
485 this topic conflicts with.
488 * mf/graph-show-root (2013-10-25) 1 commit
489 . graph.c: mark root commit differently
491 In a repository with multiple-roots, "log --graph", especially with
492 "--oneline", does not give the reader enough visual cue to see
493 where one line of history ended and a separate history began.
495 This is the version that marks the roots 'x' when they would have
496 been marked as '*'; Keshav Kini suggested an alternative of giving
497 an extra blank line after every root, which I tend to think is a
498 better approach to the problem.
501 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
502 - perf-lib: add test_perf_cleanup target
503 - perf-lib: split starting the test from the execution
505 Add test_perf_cleanup shell function to the perf suite, that allows
506 the script writers to define a test with a clean-up action.
508 Holding until needed.
511 * yt/shortened-rename (2013-10-18) 2 commits
512 - SQUASH??? style fixes and s/omit/shorten/ where appropriate
513 - diff.c: keep arrow(=>) on show_stats()'s shortened filename part to make rename visible
515 Attempts to give more weight on the fact that a filepair represents
516 a rename than showing substring of the actual path when diffstat
517 lines are not wide enough.
519 I am not sure if that is solving a right problem, though.
522 * rv/send-email-cache-generated-mid (2013-08-21) 2 commits
523 - git-send-email: Cache generated message-ids, use them when prompting
524 - git-send-email: add optional 'choices' parameter to the ask sub
527 * rj/read-default-config-in-show-ref-pack-refs (2013-06-17) 3 commits
528 - ### DONTMERGE: needs better explanation on what config they need
529 - pack-refs.c: Add missing call to git_config()
530 - show-ref.c: Add missing call to git_config()
532 The changes themselves are probably good, but it is unclear what
533 basic setting needs to be read for which exact operation.
535 Waiting for clarification.
539 * jc/format-patch (2013-04-22) 2 commits
540 - format-patch: --inline-single
541 - format-patch: rename "no_inline" field
543 A new option to send a single patch to the standard output to be
544 appended at the bottom of a message. I personally have no need for
545 this, but it was easy enough to cobble together. Tests, docs and
546 stripping out more MIMEy stuff are left as exercises to interested
550 * jk/gitweb-utf8 (2013-04-08) 4 commits
551 - gitweb: Fix broken blob action parameters on blob/commitdiff pages
552 - gitweb: Don't append ';js=(0|1)' to external links
553 - gitweb: Make feed title valid utf8
554 - gitweb: Fix utf8 encoding for blob_plain, blobdiff_plain, commitdiff_plain, and patch
556 Various fixes to gitweb.
558 Drew Northup volunteered to take a look into this.
562 * jc/show-branch (2013-06-07) 5 commits
563 - show-branch: use commit slab to represent bitflags of arbitrary width
564 - show-branch.c: remove "all_mask"
565 - show-branch.c: abstract out "flags" operation
566 - show-branch.c: lift all_mask/all_revs to a global static
567 - show-branch.c: update comment style
569 Waiting for the final step to lift the hard-limit before sending it out.
571 --------------------------------------------------
574 * ap/remote-hg-skip-null-bookmarks (2014-01-02) 1 commit
575 - remote-hg: do not fail on invalid bookmarks
577 Reported to break tests ($gmane/240005)
581 * ss/safe-create-leading-dir-with-slash (2014-01-06) 1 commit
582 - safe_create_leading_directories(): on Windows, \ can separate path components
584 Expecting to be rolled into mh/safe-create-leading-directories
587 * fp/submodule-checkout-mode (2014-01-07) 1 commit
588 (merged to 'next' on 2014-01-10 at 647ba9b)
589 + git-submodule.sh: 'checkout' is a valid update mode
591 "submodule.*.update=checkout", when propagated from .gitmodules to
592 .git/config, turned into a "submodule.*.update=none", which did not
595 Will merge to 'master'.
598 * jl/submodule-recursive-checkout (2013-12-26) 5 commits
599 - Teach checkout to recursively checkout submodules
600 - submodule: teach unpack_trees() to update submodules
601 - submodule: teach unpack_trees() to repopulate submodules
602 - submodule: teach unpack_trees() to remove submodule contents
603 - submodule: prepare for recursive checkout of submodules
608 * mh/safe-create-leading-directories (2014-01-06) 17 commits
609 - rename_tmp_log(): on SCLD_VANISHED, retry
610 - rename_tmp_log(): limit the number of remote_empty_directories() attempts
611 - rename_tmp_log(): handle a possible mkdir/rmdir race
612 - rename_ref(): extract function rename_tmp_log()
613 - remove_dir_recurse(): handle disappearing files and directories
614 - remove_dir_recurse(): tighten condition for removing unreadable dir
615 - lock_ref_sha1_basic(): if locking fails with ENOENT, retry
616 - lock_ref_sha1_basic(): on SCLD_VANISHED, retry
617 - safe_create_leading_directories(): add new error value SCLD_VANISHED
618 - cmd_init_db(): when creating directories, handle errors conservatively
619 - safe_create_leading_directories(): introduce enum for return values
620 - safe_create_leading_directories(): always restore slash at end of loop
621 - safe_create_leading_directories(): split on first of multiple slashes
622 - safe_create_leading_directories(): rename local variable
623 - safe_create_leading_directories(): add explicit "slash" pointer
624 - safe_create_leading_directories(): reduce scope of local variable
625 - safe_create_leading_directories(): fix format of "if" chaining
627 Code clean-up and protection against concurrent write access to the
630 Asked Michael and Sebastian to work together to roll the latter's
631 "allow passing p\a\t\h to safe_create_leading_dir()" into this.
636 * jk/pack-bitmap (2013-12-30) 21 commits
637 (merged to 'next' on 2014-01-10 at bdbe0a4)
638 + pack-bitmap: implement optional name_hash cache
639 + t/perf: add tests for pack bitmaps
640 + t: add basic bitmap functionality tests
641 + count-objects: recognize .bitmap in garbage-checking
642 + repack: consider bitmaps when performing repacks
643 + repack: handle optional files created by pack-objects
644 + repack: turn exts array into array-of-struct
645 + repack: stop using magic number for ARRAY_SIZE(exts)
646 + pack-objects: implement bitmap writing
647 + rev-list: add bitmap mode to speed up object lists
648 + pack-objects: use bitmaps when packing objects
649 + pack-objects: split add_object_entry
650 + pack-bitmap: add support for bitmap indexes
651 + documentation: add documentation for the bitmap format
652 + ewah: compressed bitmap implementation
653 + compat: add endianness helpers
654 + sha1_file: export `git_open_noatime`
655 + revision: allow setting custom limiter function
656 + pack-objects: factor out name_hash
657 + pack-objects: refactor the packing list
658 + revindex: export new APIs
660 Borrows the bitmap index into packfiles from JGit to speed up
661 enumeration of objects involved in a commit range without having to
662 fully traverse the history.
667 * nv/commit-gpgsign-config (2013-12-17) 3 commits
668 (merged to 'next' on 2014-01-03 at 9780cbb)
669 + test the commit.gpgsign config option
670 + commit-tree: add and document --no-gpg-sign
671 + Add the commit.gpgsign option to sign all commits
673 Introduce commit.gpgsign configuration variable to force every
674 commit to be GPG signed. The variable cannot be overriden from the
675 command line of some of the commands that create commits except for
676 "git commit" and "git commit-tree", but I am not convinced that it
677 is a good idea to sprinkle support for --no-gpg-sign everywhere.
682 * nd/shallow-clone (2014-01-09) 31 commits
683 (merged to 'next' on 2014-01-09 at 6608634)
684 + t5537: fix incorrect expectation in test case 10
685 (merged to 'next' on 2014-01-06 at 3dc7fab)
686 + shallow: remove unused code
687 + send-pack.c: mark a file-local function static
688 (merged to 'next' on 2014-01-03 at a776065)
689 + git-clone.txt: remove shallow clone limitations
690 + prune: clean .git/shallow after pruning objects
691 + clone: use git protocol for cloning shallow repo locally
692 + send-pack: support pushing from a shallow clone via http
693 + receive-pack: support pushing to a shallow clone via http
694 + smart-http: support shallow fetch/clone
695 + remote-curl: pass ref SHA-1 to fetch-pack as well
696 + send-pack: support pushing to a shallow clone
697 + receive-pack: allow pushes that update .git/shallow
698 + connected.c: add new variant that runs with --shallow-file
699 + add GIT_SHALLOW_FILE to propagate --shallow-file to subprocesses
700 + receive/send-pack: support pushing from a shallow clone
701 + receive-pack: reorder some code in unpack()
702 + fetch: add --update-shallow to accept refs that update .git/shallow
703 + upload-pack: make sure deepening preserves shallow roots
704 + fetch: support fetching from a shallow repository
705 + clone: support remote shallow repository
706 + fetch-pack.h: one statement per bitfield declaration
707 + fetch-pack.c: move shallow update code out of fetch_pack()
708 + shallow.c: steps 6 and 7 to select new commits for .git/shallow
709 + shallow.c: the 8 steps to select new commits for .git/shallow
710 + shallow.c: extend setup_*_shallow() to accept extra shallow commits
711 + connect.c: teach get_remote_heads to parse "shallow" lines
712 + make the sender advertise shallow commits to the receiver
713 + clone: prevent --reference to a shallow repository
714 + send-pack: forbid pushing from a shallow repository
715 + remote.h: replace struct extra_have_objects with struct sha1_array
716 + transport.h: remove send_pack prototype, already defined in send-pack.h
718 Fetching from a shallow-cloned repository used to be forbidden,
719 primarily because the codepaths involved were not carefully vetted
720 and we did not bother supporting such usage. This attempts to allow
721 object transfer out of a shallow-cloned repository in a controlled
722 way (i.e. the receiver become a shallow repository with truncated
725 Will merge to 'master'.
728 * jn/git-gui-chmod+x (2013-11-25) 1 commit
729 - git-gui: chmod +x po2msg, windows/git-gui.sh
731 Parked here until I get the same change back from the upstream
735 * jn/gitk-chmod+x (2013-11-25) 1 commit
736 - gitk: chmod +x po2msg
738 Parked here until I get the same change back from the upstream gitk
742 * cc/starts-n-ends-with-endgame (2013-12-05) 1 commit
743 (merged to 'next' on 2014-01-07 at 4cdf8d0)
744 + strbuf: remove prefixcmp() and suffixcmp()
746 Endgame for the cc/starts-n-ends-with topic; this needs to be
747 evil-merged with other topics that introduce new uses of
748 prefix/suffix-cmp functions.
750 Will cook in 'next' until Git 2.0.
753 * gj/push-more-verbose-advice (2013-11-13) 1 commit
754 (merged to 'next' on 2013-12-06 at 574b18a)
755 + push: switch default from "matching" to "simple"
757 Originally merged to 'next' on 2013-11-21
759 Explain 'simple' and 'matching' in "git push" advice message; the
760 topmost patch is a rebase of jc/push-2.0-default-to-simple on top
763 Will cook in 'next' until Git 2.0.
766 * tr/merge-recursive-index-only (2013-10-28) 3 commits
767 - merge-recursive: -Xindex-only to leave worktree unchanged
768 - merge-recursive: internal flag to avoid touching the worktree
769 - merge-recursive: remove dead conditional in update_stages()
771 Will hold until using script appears.
774 * jn/add-2.0-u-A-sans-pathspec (2013-04-26) 1 commit
775 (merged to 'next' on 2013-12-06 at ead2ec8)
776 + git add: -u/-A now affects the entire working tree
778 Will cook in 'next' until Git 2.0.
781 * jc/core-checkstat-2.0 (2013-05-06) 1 commit
782 (merged to 'next' on 2013-12-06 at ae18007)
783 + core.statinfo: remove as promised in Git 2.0
785 Will cook in 'next' until Git 2.0.
788 * jc/push-2.0-default-to-simple (2013-06-18) 1 commit
789 (merged to 'next' on 2013-12-06 at 6fad61c)
790 + push: switch default from "matching" to "simple"
792 Will cook in 'next' until Git 2.0.
795 * jc/add-2.0-ignore-removal (2013-04-22) 1 commit
796 (merged to 'next' on 2013-12-06 at fbaa75a)
797 + git add <pathspec>... defaults to "-A"
799 Updated endgame for "git add <pathspec>" that defaults to "--all"
800 aka "--no-ignore-removal".
802 Will cook in 'next' until Git 2.0.
805 * jc/hold-diff-remove-q-synonym-for-no-deletion (2013-07-19) 1 commit
806 (merged to 'next' on 2013-12-06 at 083d67c)
807 + diff: remove "diff-files -q" in a version of Git in a distant future
809 Will cook in 'next' until a distant future.
811 --------------------------------------------------
814 * aa/transport-non-positive-depth-only (2013-11-26) 1 commit
815 . transport: catch non positive --depth option value
818 * cc/remote-remove-redundant-postfixcmp (2013-11-06) 2 commits
819 . Rename suffixcmp() to has_suffix() and invert its result
820 . builtin/remote: remove postfixcmp() and use suffixcmp() instead
823 * th/reflog-annotated-tag (2013-10-28) 1 commit
824 . reflog: handle lightweight and annotated tags equally
826 "git log -g $annotated_tag", when there is no reflog history, should
827 have produced a single output entry (i.e. the ref creation event),
828 but instead showed the history leading to the tag.
830 Broken at the design level. Any reflog entry that points at a non
831 commit needs to be handled with new code that does not exist yet,
832 and lifting the "this code handles only commits" without adding
833 such code does not solve anything.