What's cooking (2016/09 #03)

This commit is contained in:
Junio C Hamano
2016-09-09 15:44:21 -07:00
parent fa7f92e128
commit 2d155428fb

View File

@@ -1,10 +1,10 @@
To: git@vger.kernel.org
Bcc: lwn@lwn.net
Subject: What's cooking in git.git (Sep 2016, #02; Thu, 8)
X-master-at: 6ebdac1bab966b720d776aa43ca188fe378b1f4b
X-next-at: f2ff48496e8dc270b21b0290a2a3e4ef98e352ed
Subject: What's cooking in git.git (Sep 2016, #03; Fri, 9)
X-master-at: cda1bbd474805e653dda8a71d4ea3790e2a66cbb
X-next-at: 1e96ab9c6aed24fcda3720972963c6f1bc62496f
What's cooking in git.git (Sep 2016, #02; Thu, 8)
What's cooking in git.git (Sep 2016, #03; Fri, 9)
--------------------------------------------------
Here are the topics that have been cooking. Commits prefixed with
@@ -12,261 +12,165 @@ Here are the topics that have been cooking. Commits prefixed with
'+' are in 'next'. The ones marked with '.' do not appear in any of
the integration branches, but I am still holding onto them.
There are a few more topics in flight that may be ready to be picked
up but I haven't, and other topics in flight that may not be quite
ready. I'll start merging topics that have been cooking in 'next'
to 'master', rewind and rebuild 'next', and merge those that have
been waiting in 'pu' to 'next' before picking them up.
I've started merging topics that have been cooking in 'next' to
'master', and the next step will be to rewind and rebuild 'next',
and merge those that have been waiting in 'pu' to 'next'. There are
a few more topics in flight that may be ready to be picked up but I
haven't, and other topics in flight that may not be quite ready.
They will be picked up after topics that have already been in-tree
starts quieting down.
You can find the changes described here in the integration branches
of the repositories listed at
http://git-blame.blogspot.com/p/git-public-repositories.html
--------------------------------------------------
[Graduated to "master"]
* bh/diff-highlight-graph (2016-08-31) 6 commits
(merged to 'next' on 2016-08-31 at 523a15f)
+ diff-highlight: avoid highlighting combined diffs
+ diff-highlight: add multi-byte tests
+ diff-highlight: ignore test cruft
+ diff-highlight: add support for --graph output
+ diff-highlight: add failing test for handling --graph output
+ diff-highlight: add some tests
"diff-highlight" script (in contrib/) learned to work better with
"git log -p --graph" output.
* cc/receive-pack-limit (2016-08-24) 3 commits
(merged to 'next' on 2016-08-25 at bc74b5b)
+ receive-pack: allow a maximum input size to be specified
+ unpack-objects: add --max-input-size=<size> option
+ index-pack: add --max-input-size=<size> option
An incoming "git push" that attempts to push too many bytes can now
be rejected by setting a new configuration variable at the receiving
end.
* hv/doc-commit-reference-style (2016-08-26) 1 commit
(merged to 'next' on 2016-08-31 at 68fb778)
+ SubmittingPatches: use gitk's "Copy commit summary" format
A small doc update.
* jh/status-v2-porcelain (2016-08-12) 9 commits
(merged to 'next' on 2016-08-31 at e71f595)
+ status: unit tests for --porcelain=v2
+ test-lib-functions.sh: add lf_to_nul helper
+ git-status.txt: describe --porcelain=v2 format
+ status: print branch info with --porcelain=v2 --branch
+ status: print per-file porcelain v2 status data
+ status: collect per-file data for --porcelain=v2
+ status: support --porcelain[=<version>]
+ status: cleanup API to wt_status_print
+ status: rename long-format print routines
Enhance "git status --porcelain" output by collecting more data on
the state of the index and the working tree files, which may
further be used to teach git-prompt (in contrib/) to make fewer
calls to git.
* jk/delta-base-cache (2016-08-23) 7 commits
(merged to 'next' on 2016-08-25 at f1c141a)
+ t/perf: add basic perf tests for delta base cache
+ delta_base_cache: use hashmap.h
+ delta_base_cache: drop special treatment of blobs
+ delta_base_cache: use list.h for LRU
+ release_delta_base_cache: reuse existing detach function
+ clear_delta_base_cache_entry: use a more descriptive name
+ cache_or_unpack_entry: drop keep_cache parameter
The delta-base-cache mechanism has been a key to the performance in
a repository with a tightly packed packfile, but it did not scale
well even with a larger value of core.deltaBaseCacheLimit.
* jk/format-patch-number-singleton-patch-with-cover (2016-08-23) 1 commit
(merged to 'next' on 2016-08-25 at a4737fb)
+ format-patch: show 0/1 and 1/1 for singleton patch with cover letter
"git format-patch --cover-letter HEAD^" to format a single patch
with a separate cover letter now numbers the output as [PATCH 0/1]
and [PATCH 1/1] by default.
* po/range-doc (2016-08-13) 12 commits
(merged to 'next' on 2016-08-31 at d29870b)
+ doc: revisions: sort examples and fix alignment of the unchanged
+ doc: revisions: show revision expansion in examples
+ doc: revisions - clarify reachability examples
+ doc: revisions - define `reachable`
+ doc: gitrevisions - clarify 'latter case' is revision walk
+ doc: gitrevisions - use 'reachable' in page description
+ doc: revisions: single vs multi-parent notation comparison
+ doc: revisions: extra clarification of <rev>^! notation effects
+ doc: revisions: give headings for the two and three dot notations
+ doc: show the actual left, right, and boundary marks
+ doc: revisions - name the left and right sides
+ doc: use 'symmetric difference' consistently
Clarify various ways to specify the "revision ranges" in the
documentation.
* rt/help-unknown (2016-08-30) 3 commits
(merged to 'next' on 2016-08-30 at db2a5b0)
+ help: make option --help open man pages only for Git commands
+ help: introduce option --exclude-guides
+ Merge branch 'js/no-html-bypass-on-windows' into rt/help-unknown
"git nosuchcommand --help" said "No manual entry for gitnosuchcommand",
which was not intuitive, given that "git nosuchcommand" said "git:
'nosuchcommand' is not a git command".
* sb/submodule-clone-rr (2016-08-17) 8 commits
(merged to 'next' on 2016-08-31 at 08b4b7d)
+ clone: recursive and reference option triggers submodule alternates
+ clone: implement optional references
+ clone: clarify option_reference as required
+ clone: factor out checking for an alternate path
+ submodule--helper update-clone: allow multiple references
+ submodule--helper module-clone: allow multiple references
+ t7408: merge short tests, factor out testing method
+ t7408: modernize style
"git clone --resurse-submodules --reference $path $URL" is a way to
reduce network transfer cost by borrowing objects in an existing
$path repository when cloning the superproject from $URL; it
learned to also peek into $path for presense of corresponding
repositories of submodules and borrow objects from there when able.
--------------------------------------------------
[New Topics]
* bc/object-id (2016-09-07) 20 commits
- builtin/reset: convert to use struct object_id
- builtin/commit-tree: convert to struct object_id
- builtin/am: convert to struct object_id
- refs: add an update_ref_oid function.
- sha1_name: convert get_sha1_mb to struct object_id
- builtin/update-index: convert file to struct object_id
- notes: convert init_notes to use struct object_id
- builtin/rm: convert to use struct object_id
- builtin/blame: convert file to use struct object_id
- Convert read_mmblob to take struct object_id.
- notes-merge: convert struct notes_merge_pair to struct object_id
- builtin/checkout: convert some static functions to struct object_id
- streaming: make stream_blob_to_fd take struct object_id
- builtin: convert textconv_object to use struct object_id
- builtin/cat-file: convert some static functions to struct object_id
- builtin/cat-file: convert struct expand_data to use struct object_id
- builtin/log: convert some static functions to use struct object_id
- builtin/blame: convert struct origin to use struct object_id
- builtin/apply: convert static functions to struct object_id
- cache: convert struct cache_entry to use struct object_id
* jk/patch-ids-no-merges (2016-09-09) 2 commits
- patch-ids: define patch-id of merge commits as "null"
- patch-ids: turn off rename detection
The "unsigned char sha1[20]" to "struct object_id" conversion
continues. Notable changes in this round includes that ce->sha1,
i.e. the object name recorded in the cache_entry, turns into an
object_id.
It had merge conflicts with a few topics in flight (Christian's
"apply.c split", Dscho's "cat-file --filters" and Jeff Hostetler's
"status --porcelain-v2"). Extra sets of eyes double-checking for
mismerges are highly appreciated.
* ep/use-git-trace-curl-in-tests (2016-09-07) 4 commits
- t5551-http-fetch-smart.sh: use the GIT_TRACE_CURL environment var
- t5550-http-fetch-dumb.sh: use the GIT_TRACE_CURL environment var
- test-lib.sh: preserve GIT_TRACE_CURL from the environment
- t5541-http-push-smart.sh: use the GIT_TRACE_CURL environment var
Update a few tests that used to use GIT_CURL_VERBOSE to use the
newer GIT_TRACE_CURL.
"git log --cherry-pick" used to include merge commits as candidates
to be matched up with other commits, resulting a lot of wasted time.
The patch-id generation logic has been updated to ignore merges to
avoid the wastage.
Will merge to 'next'.
* jk/pack-tag-of-tag (2016-09-07) 5 commits
- pack-objects: walk tag chains for --include-tag
- t5305: simplify packname handling
- t5305: use "git -C"
- t5305: drop "dry-run" of unpack-objects
- t5305: move cleanup into test block
* js/git-gui-commit-gpgsign (2016-09-09) 2 commits
- Merge branch 'js/commit-gpgsign' of ../git-gui into js/git-gui-commit-gpgsign
- git-gui: respect commit.gpgsign again
"git pack-objects --include-tag" was taught that when we know that
we are sending an object C, we want a tag B that directly points at
C but also a tag A that points at the tag B. We used to miss the
intermediate tag B in some cases.
* js/t6026-clean-up (2016-09-07) 1 commit
- t6026-merge-attr: clean up background process at end of test case
A test spawned a short-lived background process, which sometimes
prevented the test directory from getting removed at the end of the
script on some platforms.
Will merge to 'next'.
* js/t9903-chaining (2016-09-07) 1 commit
- t9903: fix broken && chain
Will merge to 'next'.
* jt/accept-capability-advertisement-when-fetching-from-void (2016-09-07) 2 commits
- connect: advertized capability is not a ref
- tests: move test_lazy_prereq JGIT to test-lib.sh
JGit can show a fake ref "capabilities^{}" to "git fetch" when it
does not advertise any refs, but "git fetch" was not prepared to
see such an advertisement.
Waiting for a reroll.
Rewording the log, and avoiding making it overly loose are needed.
cf. <20160908013431.GC25016@google.com>
* rs/compat-strdup (2016-09-07) 1 commit
- compat: move strdup(3) replacement to its own file
Will merge to 'next'.
* rs/hex2chr (2016-09-07) 1 commit
- introduce hex2chr() for converting two hexadecimal digits to a character
Will merge to 'next'.
* rt/rebase-i-broken-insn-advise (2016-09-07) 1 commit
- rebase -i: improve advice on bad instruction lines
When "git rebase -i" is given a broken instruction, it told the
user to fix it with "--edit-todo", but didn't say what the step
after that was (i.e. "--continue").
Will hold.
Dscho's "rebase -i" hopefully will become available in 'pu', by
which time an equivalent of this fix would be ported to C. This is
queued merely as a reminder.
* sb/xdiff-remove-unused-static-decl (2016-09-07) 1 commit
- xdiff: remove unneeded declarations
Code cleanup.
Will merge to 'next'.
* sy/git-gui-i18n-ja (2016-09-07) 7 commits
- Merge branch 'sy/i18n' of git-gui
- git-gui: update Japanese information
- git-gui: update Japanese translation
- git-gui: add Japanese language code
- git-gui: apply po template to Japanese translation
- git-gui: consistently use the same word for "blame" in Japanese
- git-gui: consistently use the same word for "remote" in Japanese
Update Japanese translation for "git-gui".
* ah/misc-message-fixes (2016-09-08) 5 commits
- unpack-trees: do not capitalize "working"
- git-merge-octopus: do not capitalize "octopus"
- git-rebase--interactive: fix English grammar
- cat-file: put spaces around pipes in usage string
- am: put spaces around pipe in usage string
Message cleanup.
Will merge to 'next'.
* jk/fix-remote-curl-url-wo-proto (2016-09-08) 1 commit
- remote-curl: handle URLs without protocol
"git fetch http::/site/path" did not die correctly and segfaulted
instead.
Will merge to 'next'.
* jn/fix-connect-unexpected-hangup-diag (2016-09-08) 1 commit
- connect: tighten check for unexpected early hang up
When the other side disconnects without giving any ref
advertisement, we used to say "there may not be a repository at
that URL", but we may have seen other advertisement like "shallow"
and ".have" in which case we definitely know that a repository is
there. The code to detect this case has been updated.
Waiting for a reroll with test.
cf. <20160908015040.GF25016@google.com>
* jt/format-patch-base-info-above-sig (2016-09-08) 1 commit
- format-patch: show base info before email signature
"git format-patch --base=..." feature that was recently added
showed the base commit information after "-- " e-mail signature
line, which turned out to be inconvenient. The base information
has been moved above the signature line.
Needs rephrasing of the log message to describe an accidental bugfix.
cf. <xmqqd1kef5k5.fsf@gitster.mtv.corp.google.com>
* nd/checkout-disambiguation (2016-09-08) 3 commits
- checkout: fix ambiguity check in subdir
- checkout.txt: document a common case that ignores ambiguation rules
- checkout: add some spaces between code and comment
"git checkout <word>" does not follow the usual disambiguation
rules when the <word> can be both a rev and a path, to allow
checking out a branch 'foo' in a project that happens to have a
file 'foo' in the working tree without having to disambiguate.
This was poorly documented and the check was incorrect when the
command was run from a subdirectory.
Waiting for a reroll.
cf. <xmqq7famgnwo.fsf@gitster.mtv.corp.google.com>
* sb/diff-cleanup (2016-09-08) 3 commits
- diff: remove dead code
- diff: omit found pointer from emit_callback
- diff.c: use diff_options directly
Code cleanup.
Will merge to 'next'.
* sb/transport-report-missing-submodule-on-stderr (2016-09-08) 1 commit
- transport: report missing submodule pushes consistently on stderr
Message cleanup.
Will merge to 'next'.
* sg/fix-versioncmp-with-common-suffix (2016-09-08) 5 commits
- versioncmp: cope with common leading parts in versionsort.prereleaseSuffix
- versioncmp: pass full tagnames to swap_prereleases()
- t7004-tag: add version sort tests to show prerelease reordering issues
- t7004-tag: use test_config helper
- t7004-tag: delete unnecessary tags with test_when_finished
The prereleaseSuffix feature of version comparison that is used in
"git tag -l" did not correctly when two or more prereleases for the
same release were present (e.g. when 2.0, 2.0-beta1, and 2.0-beta2
are there and the code needs to compare 2.0-beta1 and 2.0-beta2).
Waiting for a reroll.
cf. <20160908223727.Horde.jVOOJ278ssZ3qkyjkmyqZD-@webmail.informatik.kit.edu>
* va/i18n (2016-09-08) 10 commits
- i18n: update-index: mark warning for translation
- i18n: show-branch: mark error messages for translation
- i18n: receive-pack: mark messages for translation
- notes: lowercase first word of error messages
- i18n: notes: mark error messages for translation
- i18n: merge-recursive: mark verbose message for translation
- i18n: merge-recursive: mark error messages for translation
- i18n: config: mark error message for translation
- i18n: branch: mark option description for translation
- i18n: blame: mark error messages for translation
More i18n.
"git commit-tree" stopped reading commit.gpgsign configuration
variable that was meant for Porcelain "git commit" in Git 2.9; we
forgot to update "git gui" to look at the configuration to match
this change.
Will merge to 'next'.
@@ -523,53 +427,288 @@ of the repositories listed at
--------------------------------------------------
[Cooking]
* jc/submodule-anchor-git-dir (2016-09-01) 1 commit
- submodule: avoid auto-discovery in prepare_submodule_repo_env()
* bc/object-id (2016-09-07) 20 commits
- builtin/reset: convert to use struct object_id
- builtin/commit-tree: convert to struct object_id
- builtin/am: convert to struct object_id
- refs: add an update_ref_oid function.
- sha1_name: convert get_sha1_mb to struct object_id
- builtin/update-index: convert file to struct object_id
- notes: convert init_notes to use struct object_id
- builtin/rm: convert to use struct object_id
- builtin/blame: convert file to use struct object_id
- Convert read_mmblob to take struct object_id.
- notes-merge: convert struct notes_merge_pair to struct object_id
- builtin/checkout: convert some static functions to struct object_id
- streaming: make stream_blob_to_fd take struct object_id
- builtin: convert textconv_object to use struct object_id
- builtin/cat-file: convert some static functions to struct object_id
- builtin/cat-file: convert struct expand_data to use struct object_id
- builtin/log: convert some static functions to use struct object_id
- builtin/blame: convert struct origin to use struct object_id
- builtin/apply: convert static functions to struct object_id
- cache: convert struct cache_entry to use struct object_id
Having a submodule whose ".git" repository is somehow corrupt
caused a few commands that recurse into submodules loop forever.
The "unsigned char sha1[20]" to "struct object_id" conversion
continues. Notable changes in this round includes that ce->sha1,
i.e. the object name recorded in the cache_entry, turns into an
object_id.
It had merge conflicts with a few topics in flight (Christian's
"apply.c split", Dscho's "cat-file --filters" and Jeff Hostetler's
"status --porcelain-v2"). Extra sets of eyes double-checking for
mismerges are highly appreciated.
* ep/use-git-trace-curl-in-tests (2016-09-07) 4 commits
(merged to 'next' on 2016-09-08 at 04372de)
+ t5551-http-fetch-smart.sh: use the GIT_TRACE_CURL environment var
+ t5550-http-fetch-dumb.sh: use the GIT_TRACE_CURL environment var
+ test-lib.sh: preserve GIT_TRACE_CURL from the environment
+ t5541-http-push-smart.sh: use the GIT_TRACE_CURL environment var
Update a few tests that used to use GIT_CURL_VERBOSE to use the
newer GIT_TRACE_CURL.
Will merge to 'master'.
* jk/pack-tag-of-tag (2016-09-07) 5 commits
- pack-objects: walk tag chains for --include-tag
- t5305: simplify packname handling
- t5305: use "git -C"
- t5305: drop "dry-run" of unpack-objects
- t5305: move cleanup into test block
"git pack-objects --include-tag" was taught that when we know that
we are sending an object C, we want a tag B that directly points at
C but also a tag A that points at the tag B. We used to miss the
intermediate tag B in some cases.
Will merge to 'next'.
* js/t6026-clean-up (2016-09-07) 1 commit
(merged to 'next' on 2016-09-08 at 5ad2fc1)
+ t6026-merge-attr: clean up background process at end of test case
A test spawned a short-lived background process, which sometimes
prevented the test directory from getting removed at the end of the
script on some platforms.
Will merge to 'master'.
* js/t9903-chaining (2016-09-07) 1 commit
(merged to 'next' on 2016-09-08 at 162a3c9)
+ t9903: fix broken && chain
Will merge to 'master'.
* jt/accept-capability-advertisement-when-fetching-from-void (2016-09-09) 3 commits
- connect: advertized capability is not a ref
- connect: tighten check for unexpected early hang up
- tests: move test_lazy_prereq JGIT to test-lib.sh
JGit can show a fake ref "capabilities^{}" to "git fetch" when it
does not advertise any refs, but "git fetch" was not prepared to
see such an advertisement. When the other side disconnects without
giving any ref advertisement, we used to say "there may not be a
repository at that URL", but we may have seen other advertisement
like "shallow" and ".have" in which case we definitely know that a
repository is there. The code to detect this case has also been
updated.
Will merge to 'next'.
* rs/compat-strdup (2016-09-07) 1 commit
(merged to 'next' on 2016-09-08 at 46acfdf)
+ compat: move strdup(3) replacement to its own file
Will merge to 'master'.
* rs/hex2chr (2016-09-07) 1 commit
(merged to 'next' on 2016-09-08 at 7266d5b)
+ introduce hex2chr() for converting two hexadecimal digits to a character
Will merge to 'master'.
* rt/rebase-i-broken-insn-advise (2016-09-07) 1 commit
- rebase -i: improve advice on bad instruction lines
When "git rebase -i" is given a broken instruction, it told the
user to fix it with "--edit-todo", but didn't say what the step
after that was (i.e. "--continue").
Will hold.
Dscho's "rebase -i" hopefully will become available in 'pu', by
which time an equivalent of this fix would be ported to C. This is
queued merely as a reminder.
* sb/xdiff-remove-unused-static-decl (2016-09-07) 1 commit
(merged to 'next' on 2016-09-08 at 39e41dd)
+ xdiff: remove unneeded declarations
Code cleanup.
Will merge to 'master'.
* sy/git-gui-i18n-ja (2016-09-07) 7 commits
- Merge branch 'sy/i18n' of git-gui
- git-gui: update Japanese information
- git-gui: update Japanese translation
- git-gui: add Japanese language code
- git-gui: apply po template to Japanese translation
- git-gui: consistently use the same word for "blame" in Japanese
- git-gui: consistently use the same word for "remote" in Japanese
Update Japanese translation for "git-gui".
Will merge to 'next'.
* ah/misc-message-fixes (2016-09-08) 5 commits
- unpack-trees: do not capitalize "working"
- git-merge-octopus: do not capitalize "octopus"
- git-rebase--interactive: fix English grammar
- cat-file: put spaces around pipes in usage string
- am: put spaces around pipe in usage string
Message cleanup.
Will merge to 'next'.
* jk/fix-remote-curl-url-wo-proto (2016-09-08) 1 commit
- remote-curl: handle URLs without protocol
"git fetch http::/site/path" did not die correctly and segfaulted
instead.
Will merge to 'next'.
* jt/format-patch-base-info-above-sig (2016-09-09) 1 commit
- format-patch: show base info before email signature
"git format-patch --base=..." feature that was recently added
showed the base commit information after "-- " e-mail signature
line, which turned out to be inconvenient. The base information
has been moved above the signature line.
Needs an extra blank line before the baseinfo.
* nd/checkout-disambiguation (2016-09-09) 4 commits
- fixup! checkout.txt: document a common case that ignores ambiguation rules
- checkout: fix ambiguity check in subdir
- checkout.txt: document a common case that ignores ambiguation rules
- checkout: add some spaces between code and comment
"git checkout <word>" does not follow the usual disambiguation
rules when the <word> can be both a rev and a path, to allow
checking out a branch 'foo' in a project that happens to have a
file 'foo' in the working tree without having to disambiguate.
This was poorly documented and the check was incorrect when the
command was run from a subdirectory.
Waiting for an Ack for fixup!
* sb/diff-cleanup (2016-09-08) 3 commits
- diff: remove dead code
- diff: omit found pointer from emit_callback
- diff.c: use diff_options directly
Code cleanup.
Will merge to 'next'.
* sb/transport-report-missing-submodule-on-stderr (2016-09-08) 1 commit
(merged to 'next' on 2016-09-08 at 3550831)
+ transport: report missing submodule pushes consistently on stderr
Message cleanup.
Will merge to 'master'.
* sg/fix-versioncmp-with-common-suffix (2016-09-08) 5 commits
- versioncmp: cope with common leading parts in versionsort.prereleaseSuffix
- versioncmp: pass full tagnames to swap_prereleases()
- t7004-tag: add version sort tests to show prerelease reordering issues
- t7004-tag: use test_config helper
- t7004-tag: delete unnecessary tags with test_when_finished
The prereleaseSuffix feature of version comparison that is used in
"git tag -l" did not correctly when two or more prereleases for the
same release were present (e.g. when 2.0, 2.0-beta1, and 2.0-beta2
are there and the code needs to compare 2.0-beta1 and 2.0-beta2).
Waiting for a reroll.
cf. <20160908223727.Horde.jVOOJ278ssZ3qkyjkmyqZD-@webmail.informatik.kit.edu>
* va/i18n (2016-09-09) 10 commits
- i18n: update-index: mark warning for translation
- i18n: show-branch: mark error messages for translation
- i18n: receive-pack: mark messages for translation
- notes: downcase the first word of error messages
- i18n: notes: mark error messages for translation
- i18n: merge-recursive: mark verbose message for translation
- i18n: merge-recursive: mark error messages for translation
- i18n: config: mark error message for translation
- i18n: branch: mark option description for translation
- i18n: blame: mark error messages for translation
More i18n.
Will merge to 'next'.
* jc/submodule-anchor-git-dir (2016-09-01) 1 commit
(merged to 'next' on 2016-09-08 at b6f20cf)
+ submodule: avoid auto-discovery in prepare_submodule_repo_env()
Having a submodule whose ".git" repository is somehow corrupt
caused a few commands that recurse into submodules loop forever.
Will merge to 'master'.
* jc/forbid-symbolic-ref-d-HEAD (2016-09-02) 1 commit
- symbolic-ref -d: do not allow removal of HEAD
(merged to 'next' on 2016-09-08 at cd8c1b3)
+ symbolic-ref -d: do not allow removal of HEAD
"git symbolic-ref -d HEAD" happily removes the symbolic ref, but
the resulting repository becomes an invalid one. Teach the command
to forbid removal of HEAD.
Will merge to 'next'.
* bh/diff-highlight-graph (2016-08-31) 6 commits
(merged to 'next' on 2016-08-31 at 523a15f)
+ diff-highlight: avoid highlighting combined diffs
+ diff-highlight: add multi-byte tests
+ diff-highlight: ignore test cruft
+ diff-highlight: add support for --graph output
+ diff-highlight: add failing test for handling --graph output
+ diff-highlight: add some tests
"diff-highlight" script (in contrib/) learned to work better with
"git log -p --graph" output.
Will merge to 'master'.
* jc/am-read-author-file (2016-08-30) 1 commit
- am: refactor read_author_script()
(merged to 'next' on 2016-09-08 at d2db42f)
+ am: refactor read_author_script()
Extract a small helper out of the function that reads the authors
script file "git am" internally uses.
Will merge to 'next'.
Will merge to 'master'.
This by itself is not useful until a second caller appears in the
future for "rebase -i" helper.
* jk/test-lib-drop-pid-from-results (2016-08-30) 1 commit
- test-lib: drop PID from test-results/*.count
(merged to 'next' on 2016-09-08 at 0967b0b)
+ test-lib: drop PID from test-results/*.count
The test framework left the number of tests and success/failure
count in the t/test-results directory, keyed by the name of the
@@ -577,10 +716,13 @@ of the repositories listed at
to serve any useful purpose. The process ID part of the filename
has been removed.
Will merge to 'next'.
Will merge to 'master'.
* js/sequencer-wo-die (2016-08-29) 14 commits
* js/sequencer-wo-die (2016-09-09) 17 commits
- sequencer: ensure to release the lock when we could not read the index
- sequencer: lib'ify checkout_fast_forward()
- sequencer: lib'ify fast_forward_to()
- sequencer: lib'ify save_opts()
- sequencer: lib'ify save_todo()
- sequencer: lib'ify save_head()
@@ -600,44 +742,13 @@ of the repositories listed at
sequencer.c files so that more helper functions in it can be used
by callers that want to handle error conditions themselves.
Waiting for a reroll.
Will merge to 'next' after waiting for a few days for further comments.
* jk/squelch-false-warning-from-gcc-o3 (2016-08-31) 2 commits
- color_parse_mem: initialize "struct color" temporary
- error_errno: use constant return similar to error()
Will merge to 'next'.
* hv/doc-commit-reference-style (2016-08-26) 1 commit
(merged to 'next' on 2016-08-31 at 68fb778)
+ SubmittingPatches: use gitk's "Copy commit summary" format
A small doc update.
Will merge to 'master'.
* cc/receive-pack-limit (2016-08-24) 3 commits
(merged to 'next' on 2016-08-25 at bc74b5b)
+ receive-pack: allow a maximum input size to be specified
+ unpack-objects: add --max-input-size=<size> option
+ index-pack: add --max-input-size=<size> option
An incoming "git push" that attempts to push too many bytes can now
be rejected by setting a new configuration variable at the receiving
end.
Will merge to 'master'.
* jk/format-patch-number-singleton-patch-with-cover (2016-08-23) 1 commit
(merged to 'next' on 2016-08-25 at a4737fb)
+ format-patch: show 0/1 and 1/1 for singleton patch with cover letter
"git format-patch --cover-letter HEAD^" to format a single patch
with a separate cover letter now numbers the output as [PATCH 0/1]
and [PATCH 1/1] by default.
(merged to 'next' on 2016-09-08 at c9a2af6)
+ color_parse_mem: initialize "struct color" temporary
+ error_errno: use constant return similar to error()
Will merge to 'master'.
@@ -652,24 +763,8 @@ of the repositories listed at
Waiting for a review.
* jk/delta-base-cache (2016-08-23) 7 commits
(merged to 'next' on 2016-08-25 at f1c141a)
+ t/perf: add basic perf tests for delta base cache
+ delta_base_cache: use hashmap.h
+ delta_base_cache: drop special treatment of blobs
+ delta_base_cache: use list.h for LRU
+ release_delta_base_cache: reuse existing detach function
+ clear_delta_base_cache_entry: use a more descriptive name
+ cache_or_unpack_entry: drop keep_cache parameter
The delta-base-cache mechanism has been a key to the performance in
a repository with a tightly packed packfile, but it did not scale
well even with a larger value of core.deltaBaseCacheLimit.
Will merge to 'master'.
* js/cat-file-filters (2016-08-24) 4 commits
* js/cat-file-filters (2016-09-09) 5 commits
- SQUASH??? "cat-file --filters" passes data as-is by default
- cat-file: support --textconv/--filters in batch mode
- cat-file --textconv/--filters: allow specifying the path separately
- cat-file: introduce the --filters option
@@ -685,8 +780,7 @@ of the repositories listed at
lacked an equivalent mechanism to run the "Git-to-outside-world"
conversion. The command learned the "--filters" option to do so.
Waiting for a reroll.
cf. <xmqqmvk2qcv8.fsf@gitster.mtv.corp.google.com>
Waiting for an ack to SQUASH???
* sb/push-make-submodule-check-the-default (2016-08-24) 1 commit
@@ -710,40 +804,6 @@ of the repositories listed at
Needs review and testing.
* rt/help-unknown (2016-08-30) 3 commits
(merged to 'next' on 2016-08-30 at db2a5b0)
+ help: make option --help open man pages only for Git commands
+ help: introduce option --exclude-guides
+ Merge branch 'js/no-html-bypass-on-windows' into rt/help-unknown
"git nosuchcommand --help" said "No manual entry for gitnosuchcommand",
which was not intuitive, given that "git nosuchcommand" said "git:
'nosuchcommand' is not a git command".
Will merge to 'master'.
* po/range-doc (2016-08-13) 12 commits
(merged to 'next' on 2016-08-31 at d29870b)
+ doc: revisions: sort examples and fix alignment of the unchanged
+ doc: revisions: show revision expansion in examples
+ doc: revisions - clarify reachability examples
+ doc: revisions - define `reachable`
+ doc: gitrevisions - clarify 'latter case' is revision walk
+ doc: gitrevisions - use 'reachable' in page description
+ doc: revisions: single vs multi-parent notation comparison
+ doc: revisions: extra clarification of <rev>^! notation effects
+ doc: revisions: give headings for the two and three dot notations
+ doc: show the actual left, right, and boundary marks
+ doc: revisions - name the left and right sides
+ doc: use 'symmetric difference' consistently
Clarify various ways to specify the "revision ranges" in the
documentation.
Will merge to 'master'.
* jk/diff-submodule-diff-inline (2016-08-31) 8 commits
(merged to 'next' on 2016-09-02 at 734e42c)
+ diff: teach diff to display submodule difference with an inline diff
@@ -778,51 +838,12 @@ of the repositories listed at
- pack-objects: use reachability bitmap index when generating non-stdout pack
- pack-objects: respect --local/--honor-pack-keep/--incremental when bitmap is in use
What is the state of this thing?
Waiting for the review discussion to settle.
cf. <20160818175222.bmm3ivjheokf2qzl@sigill.intra.peff.net>
cf. <20160818180615.q25p57v35m2xxtww@sigill.intra.peff.net>
* sb/submodule-clone-rr (2016-08-17) 8 commits
(merged to 'next' on 2016-08-31 at 08b4b7d)
+ clone: recursive and reference option triggers submodule alternates
+ clone: implement optional references
+ clone: clarify option_reference as required
+ clone: factor out checking for an alternate path
+ submodule--helper update-clone: allow multiple references
+ submodule--helper module-clone: allow multiple references
+ t7408: merge short tests, factor out testing method
+ t7408: modernize style
"git clone --resurse-submodules --reference $path $URL" is a way to
reduce network transfer cost by borrowing objects in an existing
$path repository when cloning the superproject from $URL; it
learned to also peek into $path for presense of corresponding
repositories of submodules and borrow objects from there when able.
Will merge to 'master'.
* jh/status-v2-porcelain (2016-08-12) 9 commits
(merged to 'next' on 2016-08-31 at e71f595)
+ status: unit tests for --porcelain=v2
+ test-lib-functions.sh: add lf_to_nul helper
+ git-status.txt: describe --porcelain=v2 format
+ status: print branch info with --porcelain=v2 --branch
+ status: print per-file porcelain v2 status data
+ status: collect per-file data for --porcelain=v2
+ status: support --porcelain[=<version>]
+ status: cleanup API to wt_status_print
+ status: rename long-format print routines
Enhance "git status --porcelain" output by collecting more data on
the state of the index and the working tree files, which may
further be used to teach git-prompt (in contrib/) to make fewer
calls to git.
Will merge to 'master'.
* mh/diff-indent-heuristic (2016-09-07) 9 commits
- SQAUSH???
- blame: honor the diff heuristic options and config
@@ -840,8 +861,8 @@ of the repositories listed at
are the same. A command line option is added to help with the
experiment to find a good heuristics.
Rerolled.
Needs adjustment of test numbers. Otherwise looked OK.
Waiting for an ack to SQUASH???
* cc/apply-am (2016-09-07) 41 commits
@@ -890,7 +911,7 @@ of the repositories listed at
"git am" has been taught to make an internal call to "git apply"'s
innards without spawning the latter as a separate process.
Will merge to 'next'.
Will merge to 'next' after waiting for a few days for further comments.
* jk/pack-objects-optim-mru (2016-08-11) 4 commits
@@ -961,7 +982,7 @@ of the repositories listed at
Will hold to see if people scream.
* mh/ref-store (2016-06-20) 38 commits
* mh/ref-store (2016-09-09) 38 commits
- refs: implement iteration over only per-worktree refs
- refs: make lock generic
- refs: add method to rename refs
@@ -1004,8 +1025,8 @@ of the repositories listed at
The ref-store abstraction was introduced to the refs API so that we
can plug in different backends to store references.
Needs a fixup.
cf. <576D9885.2020901@ramsayjones.plus.com>
Will merge to 'next' after waiting for a few days for further comments.
* nd/shallow-deepen (2016-06-13) 27 commits
@@ -1123,3 +1144,12 @@ of the repositories listed at
It has been reported that git-gui still uses the deprecated syntax,
which needs to be fixed before this final step can proceed.
cf. <5671DB28.8020901@kdbg.org>
--------------------------------------------------
[Discarded]
* jn/fix-connect-unexpected-hangup-diag (2016-09-08) 1 commit
. connect: tighten check for unexpected early hang up
Now part of jt/accept-capability-advertisement-when-fetching-from-void
topic.