What's cooking (2017/12 #02)

This commit is contained in:
Junio C Hamano
2017-12-07 10:01:31 -08:00
parent ff1e38d73d
commit ae2e7b79d3

View File

@@ -1,10 +1,10 @@
To: git@vger.kernel.org
Bcc: lwn@lwn.net
Subject: What's cooking in git.git (Dec 2017, #01; Mon, 4)
X-master-at: 1a4e40aa5dc16564af879142ba9dfbbb88d1e5ff
X-next-at: 49b39d22972bb18690a282774c8bc54bea6b63b7
Subject: What's cooking in git.git (Dec 2017, #02; Thu, 7)
X-master-at: 95ec6b1b3393eb6e26da40c565520a8db9796e9f
X-next-at: ccaef8de5710194b7bd728194833ea8322a3477a
What's cooking in git.git (Dec 2017, #01; Mon, 4)
What's cooking in git.git (Dec 2017, #02; Thu, 7)
--------------------------------------------------
Here are the topics that have been cooking. Commits prefixed with
@@ -17,76 +17,266 @@ of the repositories listed at
http://git-blame.blogspot.com/p/git-public-repositories.html
--------------------------------------------------
[Graduated to "master"]
* ac/complete-pull-autostash (2017-11-22) 1 commit
(merged to 'next' on 2017-11-27 at 802d204eda)
+ completion: add --autostash and --no-autostash to pull
The shell completion (in contrib/) learned that "git pull" can take
the "--autostash" option.
* bw/protocol-v1 (2017-10-17) 11 commits
(merged to 'next' on 2017-11-27 at 55040d09ec)
+ Documentation: document Extra Parameters
+ ssh: introduce a 'simple' ssh variant
+ i5700: add interop test for protocol transition
+ http: tell server that the client understands v1
+ connect: tell server that the client understands v1
+ connect: teach client to recognize v1 server response
+ upload-pack, receive-pack: introduce protocol version 1
+ daemon: recognize hidden request arguments
+ protocol: introduce protocol extension mechanisms
+ pkt-line: add packet_write function
+ connect: in ref advertisement, shallows are last
(this branch is used by jn/ssh-wrappers.)
A new mechanism to upgrade the wire protocol in place is proposed
and demonstrated that it works with the older versions of Git
without harming them.
* cc/git-packet-pm (2017-11-22) 2 commits
(merged to 'next' on 2017-11-27 at 1527ab3519)
+ Git/Packet.pm: use 'if' instead of 'unless'
+ Git/Packet: clarify that packet_required_key_val_read allows EOF
Code clean-up.
* cc/perf-run-config (2017-09-24) 9 commits
(merged to 'next' on 2017-11-27 at d75a2469eb)
+ perf: store subsection results in "test-results/$GIT_PERF_SUBSECTION/"
+ perf/run: show name of rev being built
+ perf/run: add run_subsection()
+ perf/run: update get_var_from_env_or_config() for subsections
+ perf/run: add get_subsections()
+ perf/run: add calls to get_var_from_env_or_config()
+ perf/run: add GIT_PERF_DIRS_OR_REVS
+ perf/run: add get_var_from_env_or_config()
+ perf/run: add '--config' option to the 'run' script
* hm/config-parse-expiry-date (2017-11-18) 1 commit
(merged to 'next' on 2017-11-27 at 20014f5541)
+ config: add --expiry-date
"git config --expiry-date gc.reflogexpire" can read "2.weeks" from
the configuration and report it as a timestamp, just like "--int"
would read "1k" and report 1024, to help consumption by scripts.
* jk/fewer-pack-rescan (2017-11-22) 5 commits
(merged to 'next' on 2017-11-27 at 2c35a2d831)
+ sha1_file: fast-path null sha1 as a missing object
+ everything_local: use "quick" object existence check
+ p5551: add a script to test fetch pack-dir rescans
+ t/perf/lib-pack: use fast-import checkpoint to create packs
+ p5550: factor out nonsense-pack creation
Internaly we use 0{40} as a placeholder object name to signal the
codepath that there is no such object (e.g. the fast-forward check
while "git fetch" stores a new remote-tracking ref says "we know
there is no 'old' thing pointed at by the ref, as we are creating
it anew" by passing 0{40} for the 'old' side), and expect that a
codepath to locate an in-core object to return NULL as a sign that
the object does not exist. A look-up for an object that does not
exist however is quite costly with a repository with large number
of packfiles. This access pattern has been optimized.
* jn/reproducible-build (2017-11-22) 3 commits
(merged to 'next' on 2017-11-27 at 6ae6946f8c)
+ Merge branch 'jn/reproducible-build' of ../git-gui into jn/reproducible-build
+ git-gui: sort entries in optimized tclIndex
+ generate-cmdlist: avoid non-deterministic output
The build procedure has been taught to avoid some unnecessary
instability in the build products.
* jn/ssh-wrappers (2017-11-21) 9 commits
(merged to 'next' on 2017-11-27 at 00a2bb7a3c)
+ connect: correct style of C-style comment
+ ssh: 'simple' variant does not support --port
+ ssh: 'simple' variant does not support -4/-6
+ ssh: 'auto' variant to select between 'ssh' and 'simple'
+ connect: split ssh option computation to its own function
+ connect: split ssh command line options into separate function
+ connect: split git:// setup into a separate function
+ connect: move no_fork fallback to git_tcp_connect
+ ssh test: make copy_ssh_wrapper_as clean up after itself
(this branch uses bw/protocol-v1.)
The ssh-variant 'simple' introduced earlier broke existing
installations by not passing --port/-4/-6 and not diagnosing an
attempt to pass these as an error. Instead, default to
automatically detect how compatible the GIT_SSH/GIT_SSH_COMMAND is
to OpenSSH convention and then error out an invocation to make it
easier to diagnose connection errors.
* jt/submodule-tests-cleanup (2017-11-22) 1 commit
(merged to 'next' on 2017-11-27 at 5f0e4bcde1)
+ Tests: clean up submodule recursive helpers
Further test clean-up.
* ph/stash-save-m-option-fix (2017-11-24) 1 commit
(merged to 'next' on 2017-11-27 at 96eadf9372)
+ stash: learn to parse -m/--message like commit does
In addition to "git stash -m message", the command learned to
accept "git stash -mmessage" form.
* rd/doc-notes-prune-fix (2017-11-22) 1 commit
(merged to 'next' on 2017-11-27 at 4a657474ee)
+ notes: correct 'git notes prune' options to '[-n] [-v]'
Doc update.
* rd/man-prune-progress (2017-11-22) 1 commit
(merged to 'next' on 2017-11-27 at 1680e6a2f5)
+ prune: add "--progress" to man page and usage msg
Doc update.
* rd/man-reflog-add-n (2017-11-22) 1 commit
(merged to 'next' on 2017-11-27 at eacb065aa6)
+ doc: add missing "-n" (dry-run) option to reflog man page
Doc update.
* sb/submodule-recursive-checkout-detach-head (2017-07-28) 2 commits
(merged to 'next' on 2017-11-27 at 6584ec1a65)
+ Documentation/checkout: clarify submodule HEADs to be detached
+ recursive submodules: detach HEAD from new state
"git checkout --recursive" may overwrite and rewind the history of
the branch that happens to be checked out in submodule
repositories, which might not be desirable. Detach the HEAD but
still allow the recursive checkout to succeed in such a case.
* sp/doc-info-attributes (2017-11-24) 1 commit
(merged to 'next' on 2017-11-27 at 4e509c2d25)
+ doc: Mention info/attributes in gitrepository-layout
Doc update.
* tg/deprecate-stash-save (2017-11-22) 1 commit
(merged to 'next' on 2017-11-27 at 6bcb61b267)
+ doc: prefer 'stash push' over 'stash save'
Doc update.
* tz/branch-doc-remove-set-upstream (2017-11-17) 1 commit
(merged to 'next' on 2017-11-27 at 8fcad3f6e7)
+ branch doc: remove --set-upstream from synopsis
"git branch --set-upstream" has been deprecated and (sort of)
removed, as "--set-upstream-to" is the preferred one these days.
The documentation still had "--set-upstream" listed on its
synopsys section, which has been corrected.
--------------------------------------------------
[New Topics]
* ab/simplify-perl-makefile (2017-12-04) 1 commit
- Makefile: replace perl/Makefile.PL with simple make rules
* bw/pathspec-match-submodule-boundary (2017-12-05) 1 commit
- pathspec: only match across submodule boundaries when requested
The build procedure for perl/ part has been greatly simplified by
weaning ourselves off of MakeMaker.
An v2.12-era regression in pathspec match logic, which made it look
into submodule tree even when it is not desired, has been fixed.
Will merge to 'next'.
* cc/object-filtering-typofix (2017-12-04) 1 commit
- list-objects-filter-options: fix 'keword' typo in comment
(this branch uses jh/object-filtering; is tangled with jh/fsck-promisors and jh/partial-clone.)
* en/remove-stripspace (2017-12-05) 1 commit
(merged to 'next' on 2017-12-06 at c926373a49)
+ strbuf: remove unused stripspace function alias
Typofix for a topic already in 'next'.
An internal function that was left for backward compatibility has
been removed, as there is no remaining callers.
JeffH said that jh/object-filtering needs further polishing a bit
before graduating to 'master', so it would be appreciated if this
can also be rolled into such an incremental update.
Will merge to 'master'.
* cc/skip-to-optional-val (2017-12-04) 4 commits
- diff: use skip_to_optional_val_default()
- diff: use skip_to_optional_val()
- index-pack: use skip_to_optional_val()
- git-compat-util: introduce skip_to_optional_val()
* jk/progress-delay-fix (2017-12-04) 2 commits
(merged to 'next' on 2017-12-05 at 8e62c2b18b)
+ progress: drop delay-threshold code
+ progress: set default delay threshold to 100%, not 0%
Introduce a helper to simplify code to parse a common pattern that
expects either "--key" or "--key=<something>".
A regression in the progress eye-candy was fixed.
This may want a final reroll to make it harder to misuse by
allowing NULL at the valp part of the argument.
cf. <xmqqh8t6o9me.fsf@gitster.mtv.corp.google.com>
cf. <xmqqd13uo9d1.fsf@gitster.mtv.corp.google.com>
Will merge to 'master'.
* lb/rebase-i-short-command-names (2017-12-04) 9 commits
- t3404: add test case for abbreviated commands
- rebase -i: learn to abbreviate command names
- rebase -i -x: add exec commands via the rebase--helper
- rebase -i: update functions to use a flags parameter
- rebase -i: replace reference to sha1 with oid
- rebase -i: refactor transform_todo_ids
- rebase -i: set commit to null in exec commands
- Documentation: use preferred name for the 'todo list' script
- Documentation: move rebase.* configs to new file
* ls/git-gui-no-double-utf8-author-name (2017-12-05) 2 commits
- Merge branch 'ls/no-double-utf8-author-name' of ../git-gui into ls/git-gui-no-double-utf8-author-name
- git-gui: prevent double UTF-8 conversion
Allow a single-letter command name in the "rebase -i" todo list.
Amending commits in git-gui broke the author name that is non-ascii
due to incorrect enconding conversion.
This may want a final reroll to avoid adding new reference to insn
where todo is the more modern term, among other minor things.
cf. <xmqq4lp6o4p4.fsf@gitster.mtv.corp.google.com>
Will merge to 'next'.
* ra/prompt-eread-fix (2017-12-04) 2 commits
- git-prompt: fix reading files with windows line endings
- git-prompt: make __git_eread intended use explicit
* sb/clone-recursive-submodule-doc (2017-12-05) 1 commit
- Documentation/git-clone: improve description for submodule recursing
Update the shell prompt script (in contrib/) to strip trailing CR
from strings read from various "state" files.
Doc update.
Proposed log messages of both commits may need small fixes.
cf. <xmqqindmml25.fsf@gitster.mtv.corp.google.com>
cf. <alpine.DEB.2.21.1.1712041516280.98586@virtualbox>
Will merge to 'next'.
* ds/for-each-file-in-obj-micro-optim (2017-12-04) 1 commit
- sha1_file: use strbuf_add() instead of strbuf_addf()
* js/hashmap-update-sample (2017-12-05) 1 commit
(merged to 'next' on 2017-12-06 at 40ceee9a18)
+ hashmap: adjust documentation to reflect reality
The code to iterate over loose object files got optimized.
Code comment update.
Will merge to 'master'.
* ab/sha1dc-build (2017-12-05) 4 commits
. sha1dc: remove in favor of using sha1collisiondetection as a submodule
. Makefile: use the sha1collisiondetection submodule by default
. sha1dc_git.h: re-arrange an ifdef chain for a subsequent change
- Makefile: don't error out under DC_SHA1_EXTERNAL if DC_SHA1_SUBMODULE=auto
* bw/submodule-config-cleanup (2017-12-06) 1 commit
- diff-tree: read the index so attribute checks work in bare repositories
Recent update to the submodule configuration code broke "diff-tree"
by accidentally stopping to read from the index upfront.
Will merge to 'next'.
* sg/setup-doc-update (2017-12-07) 1 commit
- setup.c: fix comment about order of .git directory discovery
Comment update.
Will merge to 'next'.
@@ -180,6 +370,67 @@ of the repositories listed at
--------------------------------------------------
[Cooking]
* ab/simplify-perl-makefile (2017-12-04) 1 commit
- Makefile: replace perl/Makefile.PL with simple make rules
The build procedure for perl/ part has been greatly simplified by
weaning ourselves off of MakeMaker.
Will merge to 'next'.
* cc/skip-to-optional-val (2017-12-07) 7 commits
- t4045: test 'diff --relative' for real
- t4045: reindent to make helpers readable
- diff: use skip-to-optional-val in parsing --relative
- diff: use skip_to_optional_val_default()
- diff: use skip_to_optional_val()
- index-pack: use skip_to_optional_val()
- git-compat-util: introduce skip_to_optional_val()
Introduce a helper to simplify code to parse a common pattern that
expects either "--key" or "--key=<something>".
Even though I queued fixes for "diff --relative" on top, it may
still want a final reroll to make it harder to misuse by allowing
NULL at the valp part of the argument. Also s/_val/_arg/.
cf. <xmqqh8t6o9me.fsf@gitster.mtv.corp.google.com>
cf. <xmqqd13uo9d1.fsf@gitster.mtv.corp.google.com>
* lb/rebase-i-short-command-names (2017-12-05) 9 commits
- t3404: add test case for abbreviated commands
- rebase -i: learn to abbreviate command names
- rebase -i -x: add exec commands via the rebase--helper
- rebase -i: update functions to use a flags parameter
- rebase -i: replace reference to sha1 with oid
- rebase -i: refactor transform_todo_ids
- rebase -i: set commit to null in exec commands
- Documentation: use preferred name for the 'todo list' script
- Documentation: move rebase.* configs to new file
Allow a single-letter command name in the "rebase -i" todo list.
Will merge to 'next'.
* ra/prompt-eread-fix (2017-12-06) 2 commits
- git-prompt: fix reading files with windows line endings
- git-prompt: make __git_eread intended use explicit
Update the shell prompt script (in contrib/) to strip trailing CR
from strings read from various "state" files.
* ds/for-each-file-in-obj-micro-optim (2017-12-04) 1 commit
(merged to 'next' on 2017-12-05 at 55ba487ccd)
+ sha1_file: use strbuf_add() instead of strbuf_addf()
The code to iterate over loose object files got optimized.
Will merge to 'master'.
* en/merge-recursive-icase-removal (2017-11-27) 1 commit
- merge-recursive: ignore_case shouldn't reject intentional removals
@@ -190,40 +441,47 @@ of the repositories listed at
once the rename detection logic starts taking hints from nearby
paths moving to some directory and moves a new path along with them.
Will merge to 'next'.
* gk/tracing-optimization (2017-11-27) 3 commits
- SQUASH??? compilation fix-up
* gk/tracing-optimization (2017-12-06) 2 commits
- trace: improve performance while category is disabled
- trace: remove trace key normalization
The tracing infrastructure has been optimized for cases where no
tracing is requested.
* pc/submodule-helper (2017-11-26) 1 commit
- submodule--helper.c: i18n: add a missing space in message
A message fix.
Will merge to 'next'.
* pc/submodule-helper (2017-11-26) 1 commit
(merged to 'next' on 2017-12-05 at fdf56787be)
+ submodule--helper.c: i18n: add a missing space in message
A message fix.
Will merge to 'master'.
* tb/check-crlf-for-safe-crlf (2017-11-27) 1 commit
- convert: tighten the safe autocrlf handling
(merged to 'next' on 2017-12-05 at 7adaa1fe01)
+ convert: tighten the safe autocrlf handling
The "safe crlf" check incorrectly triggered for contents that does
not use CRLF as line endings, which has been corrected.
Will merge to 'next'.
Broken on Windows???
cf. <DA960DCE-0635-47CF-B3C4-8133021799F1@gmail.com>
* tg/t-readme-updates (2017-11-27) 2 commits
- t/README: document test_cmp_rev
- t/README: remove mention of adding copyright notices
(merged to 'next' on 2017-12-05 at c0b0e2d65b)
+ t/README: document test_cmp_rev
+ t/README: remove mention of adding copyright notices
Developer doc updates.
Will merge to 'next'.
Will merge to 'master'.
* cc/require-tcl-tk-for-build (2017-11-29) 2 commits
@@ -257,20 +515,24 @@ of the repositories listed at
* fk/sendmail-from-path (2017-11-28) 1 commit
- git-send-email: honor $PATH for sendmail binary
(merged to 'next' on 2017-12-05 at deb7a5f4a8)
+ git-send-email: honor $PATH for sendmail binary
"git send-email" tries to see if the sendmail program is available
in /usr/lib and /usr/sbin; extend the list of locations to be
checked to also include directories on $PATH.
Will merge to 'next'.
Will merge to 'master'.
* jk/no-optional-locks (2017-11-27) 1 commit
- git-status.txt: mention --no-optional-locks
(merged to 'next' on 2017-12-06 at e642dde605)
+ git-status.txt: mention --no-optional-locks
Doc update for a feature available in Git v2.14 and upwards.
Will merge to 'master'.
* jt/diff-anchored-patience (2017-11-28) 1 commit
- diff: support anchoring line(s)
@@ -279,17 +541,20 @@ of the repositories listed at
which the user can specify which 'unique' line to be used as
anchoring points.
Will merge to 'next'.
* ks/doc-checkout-previous (2017-11-28) 1 commit
- Doc/checkout: checking out using @{-N} can lead to detached state
(merged to 'next' on 2017-12-05 at 02f17e3c55)
+ Doc/checkout: checking out using @{-N} can lead to detached state
@{-N} in "git checkout @{-N}" may refer to a detached HEAD state,
but the documentation was not clear about it, which has been fixed.
Will merge to 'next'.
Will merge to 'master'.
* en/rename-directory-detection (2017-11-21) 33 commits
* en/rename-directory-detection (2017-12-05) 34 commits
- merge-recursive: ensure we write updates for directory-renamed file
- merge-recursive: avoid spurious rename/rename conflict from dir renames
- directory rename detection: new testcases showcasing a pair of bugs
@@ -303,6 +568,7 @@ of the repositories listed at
- merge-recursive: add a new hashmap for storing file collisions
- merge-recursive: check for directory level conflicts
- merge-recursive: add get_directory_renames()
- merge-recursive: make a helper function for cleanup for handle_renames
- merge-recursive: add a new hashmap for storing directory renames
- merge-recursive: split out code for determining diff_filepairs
- merge-recursive: make !o->detect_rename codepath more obvious
@@ -333,119 +599,35 @@ of the repositories listed at
Needs review.
* ac/complete-pull-autostash (2017-11-22) 1 commit
(merged to 'next' on 2017-11-27 at 802d204eda)
+ completion: add --autostash and --no-autostash to pull
The shell completion (in contrib/) learned that "git pull" can take
the "--autostash" option.
Will merge to 'master'.
* cc/git-packet-pm (2017-11-22) 2 commits
(merged to 'next' on 2017-11-27 at 1527ab3519)
+ Git/Packet.pm: use 'if' instead of 'unless'
+ Git/Packet: clarify that packet_required_key_val_read allows EOF
Code clean-up.
Will merge to 'master'.
* jn/reproducible-build (2017-11-22) 3 commits
(merged to 'next' on 2017-11-27 at 6ae6946f8c)
+ Merge branch 'jn/reproducible-build' of ../git-gui into jn/reproducible-build
+ git-gui: sort entries in optimized tclIndex
+ generate-cmdlist: avoid non-deterministic output
The build procedure has been taught to avoid some unnecessary
instability in the build products.
Will merge to 'master'.
* jt/submodule-tests-cleanup (2017-11-22) 1 commit
(merged to 'next' on 2017-11-27 at 5f0e4bcde1)
+ Tests: clean up submodule recursive helpers
Further test clean-up.
Will merge to 'master'.
* rd/man-prune-progress (2017-11-22) 1 commit
(merged to 'next' on 2017-11-27 at 1680e6a2f5)
+ prune: add "--progress" to man page and usage msg
Doc update.
Will merge to 'master'.
* rd/man-reflog-add-n (2017-11-22) 1 commit
(merged to 'next' on 2017-11-27 at eacb065aa6)
+ doc: add missing "-n" (dry-run) option to reflog man page
Doc update.
Will merge to 'master'.
* ph/stash-save-m-option-fix (2017-11-24) 1 commit
(merged to 'next' on 2017-11-27 at 96eadf9372)
+ stash: learn to parse -m/--message like commit does
In addition to "git stash -m message", the command learned to
accept "git stash -mmessage" form.
Will merge to 'master'.
* ra/decorate-limit-refs (2017-11-22) 1 commit
- log: add option to choose which refs to decorate
(merged to 'next' on 2017-12-05 at 02c66aa4e0)
+ log: add option to choose which refs to decorate
The tagnames "git log --decorate" uses to annotate the commits can
now be limited to subset of available refs with the two additional
options, --decorate-refs[-exclude]=<pattern>.
Will merge to 'next'.
* rd/doc-notes-prune-fix (2017-11-22) 1 commit
(merged to 'next' on 2017-11-27 at 4a657474ee)
+ notes: correct 'git notes prune' options to '[-n] [-v]'
Doc update.
Will merge to 'master'.
* tg/deprecate-stash-save (2017-11-22) 1 commit
(merged to 'next' on 2017-11-27 at 6bcb61b267)
+ doc: prefer 'stash push' over 'stash save'
Doc update.
Will merge to 'master'.
* ab/pcre2-grep (2017-11-24) 2 commits
- grep: fix segfault under -P + PCRE2 <=10.30 + (*NO_JIT)
- test-lib: add LIBPCRE1 & LIBPCRE2 prerequisites
(merged to 'next' on 2017-12-05 at 88f1927207)
+ grep: fix segfault under -P + PCRE2 <=10.30 + (*NO_JIT)
+ test-lib: add LIBPCRE1 & LIBPCRE2 prerequisites
"git grep" compiled with libpcre2 sometimes triggered a segfault,
which is being fixed.
Will merge to 'next'.
Will merge to 'master'.
* jc/receive-pack-hook-doc (2017-11-24) 1 commit
- hooks doc: clarify when receive-pack invokes its hooks
(merged to 'next' on 2017-12-05 at ffa14b1d48)
+ hooks doc: clarify when receive-pack invokes its hooks
Doc update.
Will merge to 'next'.
Will merge to 'master'.
* sb/diff-blobfind (2017-11-24) 1 commit
@@ -455,19 +637,10 @@ of the repositories listed at
allows you to limit the output only to a change that involves the
named blob object (either changing the contents from or to it).
Needs review.
Will merge to 'next'.
* sp/doc-info-attributes (2017-11-24) 1 commit
(merged to 'next' on 2017-11-27 at 4e509c2d25)
+ doc: Mention info/attributes in gitrepository-layout
Doc update.
Will merge to 'master'.
* tg/worktree-create-tracking (2017-11-27) 6 commits
* tg/worktree-create-tracking (2017-12-06) 6 commits
- add worktree.guessRemote config option
- worktree: add --guess-remote flag to add subcommand
- worktree: make add <path> <branch> dwim
@@ -478,32 +651,20 @@ of the repositories listed at
The way "git worktree add" determines what branch to create from
where and checkout in the new worktree has been updated a bit.
* cc/perf-run-config (2017-09-24) 9 commits
(merged to 'next' on 2017-11-27 at d75a2469eb)
+ perf: store subsection results in "test-results/$GIT_PERF_SUBSECTION/"
+ perf/run: show name of rev being built
+ perf/run: add run_subsection()
+ perf/run: update get_var_from_env_or_config() for subsections
+ perf/run: add get_subsections()
+ perf/run: add calls to get_var_from_env_or_config()
+ perf/run: add GIT_PERF_DIRS_OR_REVS
+ perf/run: add get_var_from_env_or_config()
+ perf/run: add '--config' option to the 'run' script
Will merge to 'master'.
Will merge to 'next'.
* pw/sequencer-in-process-commit (2017-11-24) 9 commits
- t3512/t3513: remove KNOWN_FAILURE_CHERRY_PICK_SEES_EMPTY_COMMIT=1
- sequencer: try to commit without forking 'git commit'
- sequencer: load commit related config
- sequencer: simplify adding Signed-off-by: trailer
- commit: move print_commit_summary() to libgit
- commit: move post-rewrite code to libgit
- Add a function to update HEAD after creating a commit
- commit: move empty message checks to libgit
- t3404: check intermediate squash messages
(merged to 'next' on 2017-12-06 at a4212f7ebd)
+ t3512/t3513: remove KNOWN_FAILURE_CHERRY_PICK_SEES_EMPTY_COMMIT=1
+ sequencer: try to commit without forking 'git commit'
+ sequencer: load commit related config
+ sequencer: simplify adding Signed-off-by: trailer
+ commit: move print_commit_summary() to libgit
+ commit: move post-rewrite code to libgit
+ Add a function to update HEAD after creating a commit
+ commit: move empty message checks to libgit
+ t3404: check intermediate squash messages
The sequencer infrastructure is shared across "git cherry-pick",
"git rebase -i", etc., and has always spawned "git commit" when it
@@ -512,65 +673,10 @@ of the repositories listed at
gives performance boost for a few tens of percents in some sample
scenarios.
Will merge to and cook in 'next'.
Will cook in 'next'.
* jk/fewer-pack-rescan (2017-11-22) 5 commits
(merged to 'next' on 2017-11-27 at 2c35a2d831)
+ sha1_file: fast-path null sha1 as a missing object
+ everything_local: use "quick" object existence check
+ p5551: add a script to test fetch pack-dir rescans
+ t/perf/lib-pack: use fast-import checkpoint to create packs
+ p5550: factor out nonsense-pack creation
Internaly we use 0{40} as a placeholder object name to signal the
codepath that there is no such object (e.g. the fast-forward check
while "git fetch" stores a new remote-tracking ref says "we know
there is no 'old' thing pointed at by the ref, as we are creating
it anew" by passing 0{40} for the 'old' side), and expect that a
codepath to locate an in-core object to return NULL as a sign that
the object does not exist. A look-up for an object that does not
exist however is quite costly with a repository with large number
of packfiles. This access pattern has been optimized.
Will merge to 'master'.
* jn/ssh-wrappers (2017-11-21) 9 commits
(merged to 'next' on 2017-11-27 at 00a2bb7a3c)
+ connect: correct style of C-style comment
+ ssh: 'simple' variant does not support --port
+ ssh: 'simple' variant does not support -4/-6
+ ssh: 'auto' variant to select between 'ssh' and 'simple'
+ connect: split ssh option computation to its own function
+ connect: split ssh command line options into separate function
+ connect: split git:// setup into a separate function
+ connect: move no_fork fallback to git_tcp_connect
+ ssh test: make copy_ssh_wrapper_as clean up after itself
(this branch uses bw/protocol-v1.)
The ssh-variant 'simple' introduced earlier broke existing
installations by not passing --port/-4/-6 and not diagnosing an
attempt to pass these as an error. Instead, default to
automatically detect how compatible the GIT_SSH/GIT_SSH_COMMAND is
to OpenSSH convention and then error out an invocation to make it
easier to diagnose connection errors.
Will merge to 'master'.
* hm/config-parse-expiry-date (2017-11-18) 1 commit
(merged to 'next' on 2017-11-27 at 20014f5541)
+ config: add --expiry-date
"git config --expiry-date gc.reflogexpire" can read "2.weeks" from
the configuration and report it as a timestamp, just like "--int"
would read "1k" and report 1024, to help consumption by scripts.
Will merge to 'master'.
* dj/runtime-prefix (2017-11-28) 4 commits
* dj/runtime-prefix (2017-12-05) 4 commits
. exec_cmd: RUNTIME_PREFIX on some POSIX systems
. Makefile: add Perl runtime prefix support
. Makefile: add support for "perllibdir"
@@ -585,7 +691,7 @@ of the repositories listed at
ab/simplify-perl-makefile that heavily conflicts with this fares.
* ls/editor-waiting-message (2017-12-04) 2 commits
* ls/editor-waiting-message (2017-12-07) 2 commits
- launch_editor(): indicate that Git waits for user input
- refactor "dumb" terminal determination
@@ -594,20 +700,7 @@ of the repositories listed at
opens to a hidden window or somewhere obscure and the user gets
lost.
Still being bikeshed on, but hopefully the final is getting closer.
This is at its v4.
* tz/branch-doc-remove-set-upstream (2017-11-17) 1 commit
(merged to 'next' on 2017-11-27 at 8fcad3f6e7)
+ branch doc: remove --set-upstream from synopsis
"git branch --set-upstream" has been deprecated and (sort of)
removed, as "--set-upstream-to" is the preferred one these days.
The documentation still had "--set-upstream" listed on its
synopsys section, which has been corrected.
Will merge to 'master'.
Will merge to 'next'.
* en/rename-progress (2017-12-02) 5 commits
@@ -626,7 +719,8 @@ of the repositories listed at
Will merge to 'master'.
* ar/unconfuse-three-dots (2017-12-04) 7 commits
* ar/unconfuse-three-dots (2017-12-06) 8 commits
- t2020: test variations that matter
- t4013: test new output from diff --abbrev --raw
- diff: diff_aligned_abbrev: remove ellipsis after abbreviated SHA-1 value
- t4013: prepare for upcoming "diff --raw --abbrev" output format change
@@ -641,11 +735,14 @@ of the repositories listed at
who are used to seeing abbreviated object names and find them
confusing with the range syntax.
Almost there.
cf. <xmqqshcqmoe7.fsf@gitster.mtv.corp.google.com>
Will merge to 'next'.
* jh/object-filtering (2017-11-22) 6 commits
* jh/object-filtering (2017-12-05) 9 commits
(merged to 'next' on 2017-12-05 at 3a56b51085)
+ rev-list: support --no-filter argument
+ list-objects-filter-options: support --no-filter
+ list-objects-filter-options: fix 'keword' typo in comment
(merged to 'next' on 2017-11-27 at e5008c3b28)
+ pack-objects: add list-objects filtering
+ rev-list: add list-objects filtering support
@@ -653,18 +750,18 @@ of the repositories listed at
+ oidset: add iterator methods to oidset
+ oidmap: add oidmap iterator methods
+ dir: allow exclusions from blob in addition to file
(this branch is used by cc/object-filtering-typofix, jh/fsck-promisors and jh/partial-clone.)
(this branch is used by jh/fsck-promisors and jh/partial-clone.)
In preparation for implementing narrow/partial clone, the object
walking machinery has been taught a way to tell it to "filter" some
objects from enumeration.
Expecting incremental updates for a finishing touch.
* jh/fsck-promisors (2017-11-22) 10 commits
* jh/fsck-promisors (2017-12-05) 12 commits
- gc: do not repack promisor packfiles
- rev-list: support termination at promisor objects
- fixup: sha1_file: add TODO
- fixup: sha1_file: convert gotos to break/continue
- sha1_file: support lazily fetching missing objects
- introduce fetch-object: fetch one promisor object
- index-pack: refactor writing of .keep files
@@ -673,7 +770,7 @@ of the repositories listed at
- fsck: support refs pointing to promisor objects
- fsck: introduce partialclone extension
- extension.partialclone: introduce partial clone extension
(this branch is used by jh/partial-clone; uses jh/object-filtering; is tangled with cc/object-filtering-typofix.)
(this branch is used by jh/partial-clone; uses jh/object-filtering.)
In preparation for implementing narrow/partial clone, the machinery
for checking object connectivity used by gc and fsck has been
@@ -682,22 +779,22 @@ of the repositories listed at
promises to make them available on-demand and lazily.
* jh/partial-clone (2017-11-22) 14 commits
* jh/partial-clone (2017-12-05) 14 commits
- t5616: end-to-end tests for partial clone
- fetch-pack: restore save_commit_buffer after use
- unpack-trees: batch fetching of missing blobs
- t5500: more tests for partial clone and fetch
- t5601: test for partial clone
- t5500: add fetch-pack tests for partial clone
- fetch: add from_promisor and exclude-promisor-objects parameters
- clone: partial clone
- partial-clone: define partial clone settings in config
- fetch-pack: test support excluding large blobs
- pack-objects: test support for blob filtering
- remote-curl: add object filtering for partial clone
- fetch: add object filtering for partial fetch
- fixup: connected: conditionally pass --exclude-promisor-objects to rev-list
- fixup: fetch: update --blob-max-bytes to --fitler
- fixup: fetch: update error messages from --blob-max-bytes to --filter
- fetch: support filters
- fetch: refactor calculation of remote list
- clone, fetch-pack, index-pack, transport: partial clone
- fetch-pack: test support excluding large blobs
- fetch-pack: add --no-filter
- fetch-pack, index-pack, transport: partial clone
- upload-pack: add object filtering for partial clone
(this branch uses jh/fsck-promisors and jh/object-filtering; is tangled with cc/object-filtering-typofix.)
(this branch uses jh/fsck-promisors and jh/object-filtering.)
The machinery to clone & fetch, which in turn involves packing and
unpacking objects, have been told how to omit certain objects using
@@ -719,6 +816,8 @@ of the repositories listed at
"git describe" was taught to dig trees deeper to find a
<commit-ish>:<path> that refers to a given blob object.
Will merge to 'next'.
* pb/bisect-helper-2 (2017-10-28) 8 commits
- t6030: make various test to pass GETTEXT_POISON tests
@@ -756,28 +855,6 @@ of the repositories listed at
Will merge to 'next'.
* bw/protocol-v1 (2017-10-17) 11 commits
(merged to 'next' on 2017-11-27 at 55040d09ec)
+ Documentation: document Extra Parameters
+ ssh: introduce a 'simple' ssh variant
+ i5700: add interop test for protocol transition
+ http: tell server that the client understands v1
+ connect: tell server that the client understands v1
+ connect: teach client to recognize v1 server response
+ upload-pack, receive-pack: introduce protocol version 1
+ daemon: recognize hidden request arguments
+ protocol: introduce protocol extension mechanisms
+ pkt-line: add packet_write function
+ connect: in ref advertisement, shallows are last
(this branch is used by jn/ssh-wrappers.)
A new mechanism to upgrade the wire protocol in place is proposed
and demonstrated that it works with the older versions of Git
without harming them.
Will merge to 'master'.
* bc/hash-algo (2017-11-28) 5 commits
(merged to 'next' on 2017-11-28 at 5c74632345)
+ repository: fix a sparse 'using integer as NULL pointer' warning
@@ -793,15 +870,10 @@ of the repositories listed at
Will merge to 'master'.
--------------------------------------------------
[Discarded]
* sb/submodule-recursive-checkout-detach-head (2017-07-28) 2 commits
(merged to 'next' on 2017-11-27 at 6584ec1a65)
+ Documentation/checkout: clarify submodule HEADs to be detached
+ recursive submodules: detach HEAD from new state
* cc/object-filtering-typofix (2017-12-04) 1 commit
- list-objects-filter-options: fix 'keword' typo in comment
"git checkout --recursive" may overwrite and rewind the history of
the branch that happens to be checked out in submodule
repositories, which might not be desirable. Detach the HEAD but
still allow the recursive checkout to succeed in such a case.
Will merge to 'master'.
Superseded by the same fix in jh/object-filtering.