1 To: git@vger.kernel.org
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
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
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
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
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
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
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 --------------------------------------------------
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
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
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)
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
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 --------------------------------------------------
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.
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.
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
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
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
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.
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
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.
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 --------------------------------------------------
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
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
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
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
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*()
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
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
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
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
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 --------------------------------------------------
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.