vcswatch reports that
this package seems to have new commits in its VCS but has
not yet updated debian/changelog. You should consider updating
the Debian changelog and uploading this new version into the archive.
Here are the relevant commit logs:
commit b64abb8723cdc5fbaf525a7846b9afe2fb81be37
Merge: 416344015a f9b439d869
Author: Jonathan Nieder <jrnieder@gmail.com>
Date: Tue Feb 16 22:03:23 2021 -0800
Merge branch 'debian-sid' into debian-experimental
* debian-sid:
debian: new upstream point release
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Change-Id: I96d489ff3895365f42ea6a12657aa279124f056d
commit 416344015a440d5ba18bfd41237fab84faba2f82
Author: Jonathan Nieder <jrnieder@gmail.com>
Date: Tue Feb 16 22:01:53 2021 -0800
debian: new "next" snapshot
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Change-Id: I321496e0a60a58b63e0f05dbad501285361e5780
commit d568e7f64877d9c1eaf5bbcbf74f0a44ca0bad0e
Merge: fef60b04ea 45526154a5
Author: Jonathan Nieder <jrnieder@gmail.com>
Date: Tue Feb 16 21:58:18 2021 -0800
Merge branch 'next' of https://kernel.googlesource.com/pub/scm/git/git into debian-experimental
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Change-Id: Id20c31c7faf8d05f0f1fab512564663c095e15e3
commit f9b439d86969695988f9a8e1602e56d01b235b86
Author: Jonathan Nieder <jrnieder@gmail.com>
Date: Tue Feb 16 21:55:35 2021 -0800
debian: new upstream point release
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
commit e6419f4456f6300dde3e8bea957f8db17370d6b0
Merge: 1785cf1fab 773e25afc4
Author: Jonathan Nieder <jrnieder@gmail.com>
Date: Tue Feb 16 21:54:12 2021 -0800
Merge tag 'v2.30.1' into debian-sid
Git 2.30.1
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
commit 45526154a57d15947cad7262230d0b935cedb9d3
Merge: 666a0422dc 328c109303
Author: Junio C Hamano <gitster@pobox.com>
Date: Fri Feb 12 14:23:07 2021 -0800
Sync with master
commit 666a0422dc797b222779bbfe19815e76a8ddb586
Merge: 76784be663 e7884b353b
Author: Junio C Hamano <gitster@pobox.com>
Date: Fri Feb 12 14:23:01 2021 -0800
Merge branch 'ab/test-lib' into next
Test framework clean-up.
* ab/test-lib:
test-lib-functions: assert correct parameter count
test-lib-functions: remove bug-inducing "diagnostics" helper param
test libs: rename "diff-lib" to "lib-diff"
t/.gitattributes: sort lines
test-lib-functions: move function to lib-bitmap.sh
test libs: rename gitweb-lib.sh to lib-gitweb.sh
test libs: rename bundle helper to "lib-bundle.sh"
test-lib-functions: remove generate_zero_bytes() wrapper
test-lib-functions: move test_set_index_version() to its user
test lib: change "error" to "BUG" as appropriate
test-lib: remove check_var_migration
commit 76784be66301d0b555ae4d9594726817c02df7dc
Merge: 5e24106122 f276e2a469
Author: Junio C Hamano <gitster@pobox.com>
Date: Fri Feb 12 14:23:01 2021 -0800
Merge branch 'ak/config-bad-bool-error' into next
The error message given when a configuration variable that is
expected to have a boolean value has been improved.
* ak/config-bad-bool-error:
config: improve error message for boolean config
commit 5e24106122435795936de87f9c20f68e8a0a3c93
Merge: 899034efca c45dc9cf30
Author: Junio C Hamano <gitster@pobox.com>
Date: Fri Feb 12 14:23:00 2021 -0800
Merge branch 'ab/diff-deferred-free' into next
A small memleak in "diff -I<regexp>" has been corrected.
* ab/diff-deferred-free:
diff: plug memory leak from regcomp() on {log,diff} -I
diff: add an API for deferred freeing
commit 899034efca9cd17115a648045385846231e6c0dc
Merge: e9faad550a c809798b2a
Author: Junio C Hamano <gitster@pobox.com>
Date: Fri Feb 12 14:23:00 2021 -0800
Merge branch 'js/reflog-expire-stale-fix' into next
"git reflog expire --stale-fix" can be used to repair the reflog by
removing entries that refer to objects that have been pruned away,
but was not careful to tolerate missing objects.
* js/reflog-expire-stale-fix:
reflog expire --stale-fix: be generous about missing objects
commit e9faad550a15067ca8921dc2da91953f69a63274
Merge: ffe9f2d364 c85eec7fc3
Author: Junio C Hamano <gitster@pobox.com>
Date: Fri Feb 12 14:23:00 2021 -0800
Merge branch 'js/commit-graph-warning' into next
When certain features (e.g. grafts) used in the repository are
incompatible with the use of the commit-graph, we used to silently
turned commit-graph off; we now tell the user what we are doing.
* js/commit-graph-warning:
commit-graph: when incompatible with graphs, indicate why
commit ffe9f2d36492004d336eb079fea960b17c9f8004
Merge: e29227780b be8fc53e36
Author: Junio C Hamano <gitster@pobox.com>
Date: Fri Feb 12 14:23:00 2021 -0800
Merge branch 'ab/pager-exit-log' into next
When a pager spawned by us exited, the trace log did not record its
exit status correctly, which has been corrected.
* ab/pager-exit-log:
pager: properly log pager exit code when signalled
run-command: add braces for "if" block in wait_or_whine()
pager: test for exit code with and without SIGPIPE
pager: refactor wait_for_pager() function
commit e29227780be16f8e8ba3c18f13afc7179ef268a2
Merge: f620f3cfd3 fa153c1cd7
Author: Junio C Hamano <gitster@pobox.com>
Date: Fri Feb 12 14:23:00 2021 -0800
Merge branch 'cm/rebase-i-updates' into next
Follow-up fixes to "cm/rebase-i" topic.
* cm/rebase-i-updates:
doc/rebase -i: fix typo in the documentation of 'fixup' command
t/t3437: fixup the test 'multiple fixup -c opens editor once'
t/t3437: use named commits in the tests
t/t3437: simplify and document the test helpers
t/t3437: check the author date of fixed up commit
t/t3437: remove the dependency of 'expected-message' file from tests
t/t3437: fixup here-docs in the 'setup' test
t/lib-rebase: update the documentation of FAKE_LINES
rebase -i: clarify and fix 'fixup -c' rebase-todo help
sequencer: rename a few functions
sequencer: fixup the datatype of the 'flag' argument
commit f620f3cfd3e857985e9981d17e92636c43941e81
Merge: dc6e27a789 6eda9ac9e5
Author: Junio C Hamano <gitster@pobox.com>
Date: Fri Feb 12 14:23:00 2021 -0800
Merge branch 'ta/hash-function-transition-doc' into next
Update formatting and grammar of the hash transition plan
documentation, plus some updates.
* ta/hash-function-transition-doc:
doc: use https links
doc hash-function-transition: move rationale upwards
doc hash-function-transition: fix incomplete sentence
doc hash-function-transition: use upper case consistently
doc hash-function-transition: use SHA-1 and SHA-256 consistently
doc hash-function-transition: fix asciidoc output
commit 328c10930387d301560f7cbcd3351cc485a13381
Author: Junio C Hamano <gitster@pobox.com>
Date: Fri Feb 12 14:13:40 2021 -0800
The eighth batch
Signed-off-by: Junio C Hamano <gitster@pobox.com>
commit 8b25dee6155fd3816f62649da196a4f42cf5584e
Merge: 006c5f79be 5c327502db
Author: Junio C Hamano <gitster@pobox.com>
Date: Fri Feb 12 14:21:04 2021 -0800
Merge branch 'tb/precompose-prefix-too'
When commands are started from a subdirectory, they may have to
compare the path to the subdirectory (called prefix and found out
from $(pwd)) with the tracked paths. On macOS, $(pwd) and
readdir() yield decomposed path, while the tracked paths are
usually normalized to the precomposed form, causing mismatch. This
has been fixed by taking the same approach used to normalize the
command line arguments.
* tb/precompose-prefix-too:
MacOS: precompose_argv_prefix()
commit 006c5f79be55c029d6f68ea0d5a33cb41d1b5e80
Merge: 60f8121940 27dc071b9a
Author: Junio C Hamano <gitster@pobox.com>
Date: Fri Feb 12 14:21:04 2021 -0800
Merge branch 'jk/complete-branch-force-delete'
The command line completion (in contrib/) completed "git branch -d"
with branch names, but "git branch -D" offered tagnames in addition,
which has been corrected. "git branch -M" had the same problem.
* jk/complete-branch-force-delete:
doc/git-branch: fix awkward wording for "-c"
completion: handle other variants of "branch -m"
completion: treat "branch -D" the same way as "branch -d"
commit 60f81219403d708ab6271f68d8e4e42a39f7459b
Merge: 3c12d0b885 ad6b5fefbd
Author: Junio C Hamano <gitster@pobox.com>
Date: Fri Feb 12 14:21:04 2021 -0800
Merge branch 'jv/upload-pack-filter-spec-quotefix'
Fix in passing custom args from "git clone" to "upload-pack" on the
other side.
* jv/upload-pack-filter-spec-quotefix:
t5544: clarify 'hook works with partial clone' test
upload-pack.c: fix filter spec quoting bug
commit 3c12d0b885918fb5c6d5cb2be538639a52e1ef53
Merge: 2c873f9791 6885cd7dc5
Author: Junio C Hamano <gitster@pobox.com>
Date: Fri Feb 12 14:21:04 2021 -0800
Merge branch 'tb/pack-revindex-on-disk'
Introduce an on-disk file to record revindex for packdata, which
traditionally was always created on the fly and only in-core.
* tb/pack-revindex-on-disk:
t5325: check both on-disk and in-memory reverse index
pack-revindex: ensure that on-disk reverse indexes are given precedence
t: support GIT_TEST_WRITE_REV_INDEX
t: prepare for GIT_TEST_WRITE_REV_INDEX
Documentation/config/pack.txt: advertise 'pack.writeReverseIndex'
builtin/pack-objects.c: respect 'pack.writeReverseIndex'
builtin/index-pack.c: write reverse indexes
builtin/index-pack.c: allow stripping arbitrary extensions
pack-write.c: prepare to write 'pack-*.rev' files
packfile: prepare for the existence of '*.rev' files
commit 2c873f97913994f8478a9078ff8b62e17378a0ed
Merge: f011795891 db89a82b5b
Author: Junio C Hamano <gitster@pobox.com>
Date: Fri Feb 12 14:21:04 2021 -0800
Merge branch 'ab/tests-various-fixup'
Various test updates.
* ab/tests-various-fixup:
rm tests: actually test for SIGPIPE in SIGPIPE test
archive tests: use a cheaper "zipinfo -h" invocation to get header
upload-pack tests: avoid a non-zero "grep" exit status
git-svn tests: rewrite brittle tests to use "--[no-]merges".
git svn mergeinfo tests: refactor "test -z" to use test_must_be_empty
git svn mergeinfo tests: modernize redirection & quoting style
cache-tree tests: explicitly test HEAD and index differences
cache-tree tests: use a sub-shell with less indirection
cache-tree tests: remove unused $2 parameter
cache-tree tests: refactor for modern test style
commit fef60b04ea36be8c4a67f76655418949922cf265
Author: Emily Shaffer <emilyshaffer@google.com>
Date: Fri Feb 12 12:32:28 2021 -0800
debian: new "next" snapshot
Signed-off-by: Emily Shaffer <emilyshaffer@google.com>
Change-Id: I476107403ae84a8d4c6f0e0a86231c4581bf3f03
commit 02051435396322a4fb8b762cbf5fa85b1827682f
Merge: 8a9a26aae1 dc6e27a789
Author: Emily Shaffer <emilyshaffer@google.com>
Date: Fri Feb 12 12:31:55 2021 -0800
Merge branch 'next' into debian-experimental
Signed-off-by: Emily Shaffer <emilyshaffer@google.com>
Change-Id: Ib3f72dd1591040c99990d9f054344df8622f4e05
commit e7884b353b7f3b61c2b8ace086bc7e030946e270
Author: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date: Fri Feb 12 14:29:42 2021 +0100
test-lib-functions: assert correct parameter count
Add assertions of the correct parameter count of various functions, in
particularly the wrappers for the shell "test" built-in.
In an earlier commit we fixed a bug with an incorrect number of
arguments being passed to "test_path_is_{file,missing}". Let's also
guard other similar functions from the same sort of misuse.
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
commit 45a2686441b0ea53ad9acef8b01dad2efdd98a90
Author: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date: Fri Feb 12 14:29:41 2021 +0100
test-lib-functions: remove bug-inducing "diagnostics" helper param
Remove the optional "diagnostics" parameter of the
test_path_is_{file,dir,missing} functions.
We have a lot of uses of these functions, but the only legitimate use
of the diagnostics parameter is from when the functions themselves
were introduced in 2caf20c52b7 (test-lib: user-friendly alternatives
to test [-d|-f|-e], 2010-08-10).
But as the the rest of this diff demonstrates its presence did more to
silently introduce bugs in our tests. Fix such bugs in the tests added
in ae4e89e549b (gc: add --keep-largest-pack option, 2018-04-15), and
c04ba51739a (t6046: testcases checking whether updates can be skipped
in a merge, 2018-04-19).
Let's also assert that those functions are called with exactly one
parameter, a follow-up commit will add similar asserts to other
functions in test-lib-functions.sh that we didn't have existing misuse
of.
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
commit ebd73f50c680ca0984aae18fad7b821464ed2411
Author: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date: Fri Feb 12 14:29:40 2021 +0100
test libs: rename "diff-lib" to "lib-diff"
Rename the "diff-lib" to "lib-diff". With this rename and preceding
commits there is no remaining t/*lib* which doesn't follow the
convention of being called t/lib-*.
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
commit dc6e27a789e4507528580b97835b81cc33f5f1b5
Merge: 391cc85104 f011795891
Author: Junio C Hamano <gitster@pobox.com>
Date: Thu Feb 11 14:01:51 2021 -0800
Sync with master
commit 391cc851044a540dbbdb5eb56069315034352093
Merge: 2490918be8 9b27b49240
Author: Junio C Hamano <gitster@pobox.com>
Date: Thu Feb 11 14:01:27 2021 -0800
Merge branch 'bc/signed-objects-with-both-hashes' into next
Signed commits and tags now allow verification of objects, whose
two object names (one in SHA-1, the other in SHA-256) are both
signed.
* bc/signed-objects-with-both-hashes:
gpg-interface: remove other signature headers before verifying
ref-filter: hoist signature parsing
commit: allow parsing arbitrary buffers with headers
gpg-interface: improve interface for parsing tags
commit: ignore additional signatures when parsing signed commits
ref-filter: switch some uses of unsigned long to size_t
commit 2490918be8c661a2810da8f5d2861d936b8566d0
Merge: 6fb701f287 a5cdca4520
Author: Junio C Hamano <gitster@pobox.com>
Date: Thu Feb 11 14:01:27 2021 -0800
Merge branch 'ew/rev-parse-since-test' into next
Test to make sure "git rev-parse one-thing one-thing" gives
the same thing twice (when one-thing is --since=X).
* ew/rev-parse-since-test:
t1500: ensure current --since= behavior remains
commit 6fb701f287ba4c0ec1636d537702b00f6816974e
Merge: 36f56bc9ec 16950f8384
Author: Junio C Hamano <gitster@pobox.com>
Date: Thu Feb 11 14:01:27 2021 -0800
Merge branch 'jk/rev-list-disk-usage' into next
"git rev-list" command learned "--disk-usage" option.
* jk/rev-list-disk-usage:
rev-list: add --disk-usage option for calculating disk usage
t: add --no-tag option to test_commit
commit 36f56bc9ec3e9a868b33837eb8623700ad27d132
Merge: bc5c67f70f acc1c4d5d4
Author: Junio C Hamano <gitster@pobox.com>
Date: Thu Feb 11 14:01:27 2021 -0800
Merge branch 'ds/maintenance-pack-refs' into next
"git maintenance" tool learned a new "pack-refs" maintenance task.
* ds/maintenance-pack-refs:
maintenance: incremental strategy runs pack-refs weekly
maintenance: add pack-refs task
commit bc5c67f70f2e16d209b028bd591fa5fe4dceb8ec
Merge: ae1cde1380 822ee894f6
Author: Junio C Hamano <gitster@pobox.com>
Date: Thu Feb 11 14:01:26 2021 -0800
Merge branch 'jx/t5411-unique-filenames' into next
Avoid individual tests in t5411 from getting affected by each other
by forcing them to use separate output files during the test.
* jx/t5411-unique-filenames:
t5411: refactor check of refs using test_cmp_refs
t5411: use different out file to prevent overwriting
commit ae1cde13806c82e1aa2461e61f5a8813ec93d3fc
Merge: 210ff6ea34 3e885f0277
Author: Junio C Hamano <gitster@pobox.com>
Date: Thu Feb 11 14:01:26 2021 -0800
Merge branch 'dl/stash-cleanup' into next
Documentation, code and test clean-up around "git stash".
* dl/stash-cleanup:
stash: declare ref_stash as an array
t3905: use test_cmp() to check file contents
t3905: replace test -s with test_file_not_empty
t3905: remove nested git in command substitution
t3905: move all commands into test cases
t3905: remove spaces after redirect operators
git-stash.txt: be explicit about subcommand options
commit f0117958910fbc734457a83a9f8ecc3c62463417
Merge: d3a035b055 59ec22464f
Author: Junio C Hamano <gitster@pobox.com>
Date: Thu Feb 11 13:58:52 2021 -0800
Sync with maint
commit d3a035b055c81634ce99ab5fa5476a52d33029fe
Merge: a21e27ef6b 557ac0350d
Author: Junio C Hamano <gitster@pobox.com>
Date: Thu Feb 11 13:58:43 2021 -0800
Merge branch 'en/merge-ort-perf'
The "ort" merge strategy.
* en/merge-ort-perf:
merge-ort: begin performance work; instrument with trace2_region_* calls
merge-ort: ignore the directory rename split conflict for now
merge-ort: fix massive leak
commit a21e27ef6bd72e38ec96a2b1a259eb48759c1d48
Merge: c6102b7585 203c872c4f
Author: Junio C Hamano <gitster@pobox.com>
Date: Thu Feb 11 13:58:43 2021 -0800
Merge branch 'en/ort-directory-rename'
ORT merge strategy learns to infer "renamed directory" while
merging.
* en/ort-directory-rename:
merge-ort: fix a directory rename detection bug
merge-ort: process_renames() now needs more defensiveness
merge-ort: implement apply_directory_rename_modifications()
merge-ort: add a new toplevel_dir field
merge-ort: implement handle_path_level_conflicts()
merge-ort: implement check_for_directory_rename()
merge-ort: implement apply_dir_rename() and check_dir_renamed()
merge-ort: implement compute_collisions()
merge-ort: modify collect_renames() for directory rename handling
merge-ort: implement handle_directory_level_conflicts()
merge-ort: implement compute_rename_counts()
merge-ort: copy get_renamed_dir_portion() from merge-recursive.c
merge-ort: add outline of get_provisional_directory_renames()
merge-ort: add outline for computing directory renames
merge-ort: collect which directories are removed in dirs_removed
merge-ort: initialize and free new directory rename data structures
merge-ort: add new data structures for directory rename detection
commit 59ec22464f6c2b170b05f287e00740ea2288fe5c
Merge: 773e25afc4 d051ed77ee
Author: Junio C Hamano <gitster@pobox.com>
Date: Thu Feb 11 13:57:36 2021 -0800
Merge branch 'tb/ci-run-cocci-with-18.04' into maint
* tb/ci-run-cocci-with-18.04:
.github/workflows/main.yml: run static-analysis on bionic
commit f276e2a469430999ff7e3735ea7b41508ed1abd8
Author: Andrew Klotz <agc.klotz@gmail.com>
Date: Thu Feb 11 20:30:53 2021 +0000
config: improve error message for boolean config
Currently invalid boolean config values return messages about 'bad
numeric', which is slightly misleading when the error was due to a
boolean value. We can improve the developer experience by returning a
boolean error message when we know the value is neither a bool text or
int.
before with an invalid boolean value of `non-boolean`, its unclear what
numeric is referring to:
fatal: bad numeric config value 'non-boolean' for 'commit.gpgsign': invalid unit
now the error message mentions `non-boolean` is a bad boolean value:
fatal: bad boolean config value 'non-boolean' for 'commit.gpgsign'
Signed-off-by: Andrew Klotz <agc.klotz@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
commit 3e885f02775dad0d907d447bc3c24fa07870b41f
Author: Denton Liu <liu.denton@gmail.com>
Date: Mon Feb 8 23:28:53 2021 -0800
stash: declare ref_stash as an array
Save sizeof(const char *) bytes by declaring ref_stash as an array
instead of having a redundant pointer to an array.
Signed-off-by: Denton Liu <liu.denton@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
commit 8c2462d1fe01fbc509827591f6b287d8af245ae1
Author: Denton Liu <liu.denton@gmail.com>
Date: Mon Feb 8 23:28:52 2021 -0800
t3905: use test_cmp() to check file contents
Modernize the script by doing file content comparisons using test_cmp()
instead of `test x = "$(cat file)"`.
Signed-off-by: Denton Liu <liu.denton@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
commit 27e25a8cbfff4a53eb1bf6bac8486af6a6a1201d
Author: Denton Liu <liu.denton@gmail.com>
Date: Mon Feb 8 23:28:51 2021 -0800
t3905: replace test -s with test_file_not_empty
In order to modernize the test script, replace `test -s` with
test_file_not_empty(), which provides better diagnostic output in the
case of failure.
Signed-off-by: Denton Liu <liu.denton@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
commit 389ece402292f066be6bb4a22ac72682a6a2aea6
Author: Denton Liu <liu.denton@gmail.com>
Date: Mon Feb 8 23:28:50 2021 -0800
t3905: remove nested git in command substitution
If a git command in a nested command substitution fails, it will be
silently ignored since only the return code of the outer command
substitutions is reported. Factor out nested command substitutions so
that the error codes of those commands are reported.
Signed-off-by: Denton Liu <liu.denton@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
commit bbaa45c3aace10e25ae9dd966e867796fbf440ad
Author: Denton Liu <liu.denton@gmail.com>
Date: Mon Feb 8 23:28:49 2021 -0800
t3905: move all commands into test cases
In order to modernize the tests, move commands that currently run
outside of test cases into a test case. Where possible, clean up files
that are produced using test_when_finished() but in the case where files
persist over multiple test cases, create a new test case to perform
cleanup.
Signed-off-by: Denton Liu <liu.denton@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
commit 32b7385e435b114e7a3d2b1c8c21f5f48ba17db5
Author: Denton Liu <liu.denton@gmail.com>
Date: Mon Feb 8 23:28:48 2021 -0800
t3905: remove spaces after redirect operators
For shell scripts, the usual convention is for there to be no space
after redirection operators, (e.g. `>file`, not `> file`). Remove these
spaces wherever they appear.
Signed-off-by: Denton Liu <liu.denton@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
commit d6ab8b192907f72c415ad6aaa416f7b3b994c703
Author: Denton Liu <liu.denton@gmail.com>
Date: Mon Feb 8 23:28:47 2021 -0800
git-stash.txt: be explicit about subcommand options
Currently, the options for the `list` and `show` subcommands are just
listed as `<options>`. This seems to imply, from a cursory glance at the
summary, that they take the stash options listed below. However, reading
more carefully, we see that they take log options and diff options
respectively.
Make it more obvious that they take log and diff options by explicitly
stating this in the subcommand summary.
Signed-off-by: Denton Liu <liu.denton@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
commit 16950f8384afa5106b1ce57da07a964c2aaef3f7
Author: Jeff King <peff@peff.net>
Date: Tue Feb 9 05:53:50 2021 -0500
rev-list: add --disk-usage option for calculating disk usage
It can sometimes be useful to see which refs are contributing to the
overall repository size (e.g., does some branch have a bunch of objects
not found elsewhere in history, which indicates that deleting it would
shrink the size of a clone).
You can find that out by generating a list of objects, getting their
sizes from cat-file, and then summing them, like:
git rev-list --objects --no-object-names main..branch
git cat-file --batch-check='%(objectsize:disk)' |
perl -lne '$total += $_; END { print $total }'
Though note that the caveats from git-cat-file(1) apply here. We "blame"
base objects more than their deltas, even though the relationship could
easily be flipped. Still, it can be a useful rough measure.
But one problem is that it's slow to run. Teaching rev-list to sum up
the sizes can be much faster for two reasons:
1. It skips all of the piping of object names and sizes.
2. If bitmaps are in use, for objects that are in the
bitmapped packfile we can skip the oid_object_info()
lookup entirely, and just ask the revindex for the
on-disk size.
This patch implements a --disk-usage option which produces the same
answer in a fraction of the time. Here are some timings using a clone of
torvalds/linux:
[rev-list piped to cat-file, no bitmaps]
$ time git rev-list --objects --no-object-names --all |
git cat-file --buffer --batch-check='%(objectsize:disk)' |
perl -lne '$total += $_; END { print $total }'
1459938510
real 0m29.635s
user 0m38.003s
sys 0m1.093s
[internal, no bitmaps]
$ time git rev-list --disk-usage --objects --all
1459938510
real 0m31.262s
user 0m30.885s
sys 0m0.376s
Even though the wall-clock time is slightly worse due to parallelism,
notice the CPU savings between the two. We saved 21% of the CPU just by
avoiding the pipes.
But the real win is with bitmaps. If we use them without the new option:
[rev-list piped to cat-file, bitmaps]
$ time git rev-list --objects --no-object-names --all --use-bitmap-index |
git cat-file --batch-check='%(objectsize:disk)' |
perl -lne '$total += $_; END { print $total }'
1459938510
real 0m6.244s
user 0m8.452s
sys 0m0.311s
then we're faster to generate the list of objects, but we still spend a
lot of time piping and looking things up. But if we do both together:
[internal, bitmaps]
$ time git rev-list --disk-usage --objects --all --use-bitmap-index
1459938510
real 0m0.219s
user 0m0.169s
sys 0m0.049s
then we get the same answer much faster.
For "--all", that answer will correspond closely to "du objects/pack",
of course. But we're actually checking reachability here, so we're still
fast when we ask for more interesting things:
$ time git rev-list --disk-usage --use-bitmap-index v5.0..v5.10
374798628
real 0m0.429s
user 0m0.356s
sys 0m0.072s
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
commit c85eec7fc37e1ca79072f263ae6ea1ee305ba38c
Author: Johannes Schindelin <johannes.schindelin@gmx.de>
Date: Thu Feb 11 15:39:13 2021 +0000
commit-graph: when incompatible with graphs, indicate why
When `gc.writeCommitGraph = true`, it is possible that the commit-graph
is _still_ not written: replace objects, grafts and shallow repositories
are incompatible with the commit-graph feature.
Under such circumstances, we need to indicate to the user why the
commit-graph was not written instead of staying silent about it.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Acked-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
commit c809798b2acf1afdeeea02a9175677590ad8d689
Author: Johannes Schindelin <johannes.schindelin@gmx.de>
Date: Wed Feb 10 16:11:38 2021 +0000
reflog expire --stale-fix: be generous about missing objects
Whenever a user runs `git reflog expire --stale-fix`, the most likely
reason is that their repository is at least _somewhat_ corrupt. Which
means that it is more than just possible that some objects are missing.
If that is the case, that can currently let the command abort through
the phase where it tries to mark all reachable objects.
Instead of adding insult to injury, let's be gentle and continue as best
as we can in such a scenario, simply by ignoring the missing objects and
moving on.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
commit c45dc9cf30a6f7f40adb3ea70dd2f2905ecd4afa
Author: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date: Thu Feb 11 11:45:35 2021 +0100
diff: plug memory leak from regcomp() on {log,diff} -I
Fix a memory leak in 296d4a94e7 (diff: add -I<regex> that ignores
matching changes, 2020-10-20) by freeing the memory it allocates in
the newly introduced diff_free(). See the previous commit for details
on that.
This memory leak was intentionally introduced in 296d4a94e7, see the
discussion on a previous iteration of it in
https://lore.kernel.org/git/xmqqeelycajx.fsf@gitster.c.googlers.com/
At that time freeing the memory was somewhat tedious, but since it
isn't anymore with the newly introduced diff_free() let's use it.
Let's retain the pattern for diff_free_file() and add a
diff_free_ignore_regex(), even though (unlike "diff_free_file") we
don't need to call it elsewhere. I think this'll make for more
readable code than gradually accumulating a giant diff_free()
function, sharing "int i" across unrelated code etc.
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
commit e900d494dcff7bb9033865e61b452128ff232481
Author: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date: Thu Feb 11 11:45:34 2021 +0100
diff: add an API for deferred freeing
Add a diff_free() function to free anything we may have allocated in
the "diff_options" struct, and the ability to make calling it a noop
by setting "no_free" in "diff_options".
This is required because when e.g. "git diff" is run we'll allocate
things in that struct, use the diff machinery once, and then exit.
But if we run e.g. "git log -p" we're going to re-use what we
allocated across multiple diff_flush() calls, and only want to free
things at the end.
We've thus ended up with features like the recently added "diff -I"[1]
where we'll leak memory. As it turns out it could have simply used the
pattern established in 6ea57703f6 (log: prepare log/log-tree to reuse
the diffopt.close_file attribute, 2016-06-22).
Manually adding more such flags to things log_tree_commit() every time
we need to allocate something would be tedious. Let's instead move
that fclose() code it to a new diff_free(), in anticipation of freeing
more things in that function in follow-up commits.
Some functions such as log_tree_commit() need an idiom of optionally
retaining a previous "no_free", as they may either free the memory
themselves, or their caller may do so. I'm keeping that idiom in
log_show_early() for good measure, even though I don't think it's
currently called in this manner. It also gets passed an existing
"struct rev_info", so future callers may want to set the "no_free"
flag.
This change is a bit hard to read because while the freeing pattern
we're introducing isn't unusual, the "file" member is a special
snowflake. We usually don't want to fclose() it. This is because
"file" is usually stdout, in which case we don't want to fclose()
it. We only want to opt-in to closing it when we e.g. open a file on
the filesystem. Thus the opt-in "close_file" flag.
So the API in general just needs a "no_free" flag to defer freeing,
but the "file" member still needs its "close_file" flag. This is made
more confusing because while refactoring this code we could replace
some "close_file=0" with "no_free=1", whereas others need to set both
flags.
This is because there were some cases where an existing "close_file=0"
meant "let's defer deallocation", and others where it meant "we don't
want to close this file handle at all".
1. 296d4a94e7 (diff: add -I<regex> that ignores matching changes,
2020-10-20)
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
commit 9b27b49240f6bf760ff58d917491bec0981aaf9f
Author: brian m. carlson <sandals@crustytoothpaste.net>
Date: Thu Feb 11 02:08:06 2021 +0000
gpg-interface: remove other signature headers before verifying
When we have a multiply signed commit, we need to remove the signature
in the header before verifying the object, since the trailing signature
will not be over both pieces of data. Do so, and verify that we
validate the signature appropriately.
Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
commit 88bce0e24c8f777fce1f726b4553bd32286bba04
Author: brian m. carlson <sandals@crustytoothpaste.net>
Date: Thu Feb 11 02:08:05 2021 +0000
ref-filter: hoist signature parsing
When we parse a signature in the ref-filter code, we continually
increment the buffer pointer. Hoist the signature parsing above the
blank line delimiting headers and body so we can find the signature when
using a header to sign the buffer.
Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
commit 937032e14aaf1eab59c96dd78938be1c48c648e1
Author: brian m. carlson <sandals@crustytoothpaste.net>
Date: Thu Feb 11 02:08:04 2021 +0000
commit: allow parsing arbitrary buffers with headers
Currently only commits are signed with headers. However, in the future,
we'll also sign tags with headers as well. Let's refactor out a
function called parse_buffer_signed_by_header which does exactly that.
In addition, since we'll want to sign things other than commits this
way, let's call the function sign_with_header instead of do_sign_commit.
Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
commit 482c119186987110bfccf705a5ac75d399b08766
Author: brian m. carlson <sandals@crustytoothpaste.net>
Date: Thu Feb 11 02:08:03 2021 +0000
gpg-interface: improve interface for parsing tags
We have a function which parses a buffer with a signature at the end,
parse_signature, and this function is used for signed tags. However,
we'll need to store values for multiple algorithms, and we'll do this by
using a header for the non-default algorithm.
Adjust the parse_signature interface to store the parsed data in two
strbufs and turn the existing function into parse_signed_buffer. The
latter is still used in places where we know we always have a signed
buffer, such as push certs.
Adjust all the callers to deal with this new interface.
Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
commit 210ff6ea346b7188a14c7b57807a0cfe12dfe703
Merge: 79afd7ebdc c6102b7585
Author: Junio C Hamano <gitster@pobox.com>
Date: Wed Feb 10 16:56:03 2021 -0800
Sync with master
commit 79afd7ebdc4841e6085e5e375f01c1b20468b701
Merge: fbd122fd6c e89f89361c
Author: Junio C Hamano <gitster@pobox.com>
Date: Wed Feb 10 16:55:48 2021 -0800
Merge branch 'js/fsck-name-objects-fix' into next
Fix "git fsck --name-objects" which apparently has not been used by
anybody who is motivated enough to report breakage.
* js/fsck-name-objects-fix:
fsck --name-objects: be more careful parsing generation numbers
t1450: robustify `remove_object()`
commit fbd122fd6cfb394c444d049bc30d174d17776d83
Merge: e1fca79104 a38cb9878a
Author: Junio C Hamano <gitster@pobox.com>
Date: Wed Feb 10 16:55:48 2021 -0800
Merge branch 'jk/mailmap-only-at-root' into next
The .mailmap is documented to be read only from the root level of a
working tree, but a stray file in a bare repository also was read
by accident, which has been corrected.
* jk/mailmap-only-at-root:
mailmap: only look for .mailmap in work tree
commit e1fca7910453527765acf39529fa64a1960030e5
Merge: 12f37433bd 0c5d83b248
Author: Junio C Hamano <gitster@pobox.com>
Date: Wed Feb 10 16:55:48 2021 -0800
Merge branch 'mt/grep-cached-untracked' into next
"git grep --untracked" is meant to be "let's ALSO find in these
files on the filesystem" when looking for matches in the working
tree files, and does not make any sense if the primary search is
done against the index, or the tree objects. The "--cached" and
"--untracked" options have been marked as mutually incompatible.
* mt/grep-cached-untracked:
grep: error out if --untracked is used with --cached
commit c6102b758572c7515f606b2423dfe38934fe6764
Merge: f9f2520108 d051ed77ee
Author: Junio C Hamano <gitster@pobox.com>
Date: Wed Feb 10 16:48:07 2021 -0800
Merge branch 'tb/ci-run-cocci-with-18.04'
The version of Ubuntu Linux used by default at GitHub Actions CI
has been updated to one that lack coccinelle; until it gets fixed,
work it around by sticking to the previous release (18.04).
* tb/ci-run-cocci-with-18.04:
.github/workflows/main.yml: run static-analysis on bionic
commit 12f37433bd80c76d67aa57b8e233c31bae0a769d
Merge: c50bc53527 f9f2520108
Author: Junio C Hamano <gitster@pobox.com>
Date: Wed Feb 10 14:51:27 2021 -0800
Sync with master
commit f9f2520108bab26a750bcbb00518dc27672cf0a2
Author: Junio C Hamano <gitster@pobox.com>
Date: Wed Feb 10 14:39:30 2021 -0800
The seventh batch
Signed-off-by: Junio C Hamano <gitster@pobox.com>
commit 466f94ec45e6170730f9dfaf7185a26f2e9fa8bf
Merge: 59ace284f3 73c01d25fe
Author: Junio C Hamano <gitster@pobox.com>
Date: Wed Feb 10 14:48:33 2021 -0800
Merge branch 'ab/detox-gettext-tests'
Get rid of "GETTEXT_POISON" support altogether, which may or may
not be controversial.
* ab/detox-gettext-tests:
tests: remove uses of GIT_TEST_GETTEXT_POISON=false
tests: remove support for GIT_TEST_GETTEXT_POISON
ci: remove GETTEXT_POISON jobs
commit 59ace284f33fe9928fcdb04b02044c921fd6905e
Merge: 0199c68d01 95ca1f987e
Author: Junio C Hamano <gitster@pobox.com>
Date: Wed Feb 10 14:48:33 2021 -0800
Merge branch 'ab/grep-pcre-invalid-utf8'
Update support for invalid UTF-8 in PCRE2.
* ab/grep-pcre-invalid-utf8:
grep/pcre2: better support invalid UTF-8 haystacks
grep/pcre2 tests: don't rely on invalid UTF-8 data test
commit 0199c68d010b613bde2575cd54d8c3597431fc81
Merge: 938ecaa42f 7599730b7e
Author: Junio C Hamano <gitster@pobox.com>
Date: Wed Feb 10 14:48:33 2021 -0800
Merge branch 'ab/retire-pcre1'
The support for deprecated PCRE1 library has been dropped.
* ab/retire-pcre1:
Remove support for v1 of the PCRE library
config.mak.uname: remove redundant NO_LIBPCRE1_JIT flag
commit 938ecaa42f1be47b9bcaa947ecd6b04f9c1dc3db
Merge: 2f794620f5 018b9deba5
Author: Junio C Hamano <gitster@pobox.com>
Date: Wed Feb 10 14:48:33 2021 -0800
Merge branch 'jk/pretty-lazy-load-commit'
Some pretty-format specifiers do not need the data in commit object
(e.g. "%H"), but we were over-eager to load and parse it, which has
been made even lazier.
* jk/pretty-lazy-load-commit:
pretty: lazy-load commit data when expanding user-format
commit 2f794620f5dda37405e4ba9b606061468eceed98
Merge: 02fb21617e 19a0acc83e
Author: Junio C Hamano <gitster@pobox.com>
Date: Wed Feb 10 14:48:32 2021 -0800
Merge branch 'ds/more-index-cleanups'
Cleaning various codepaths up.
* ds/more-index-cleanups:
t1092: test interesting sparse-checkout scenarios
test-lib: test_region looks for trace2 regions
sparse-checkout: load sparse-checkout patterns
name-hash: use trace2 regions for init
repository: add repo reference to index_state
fsmonitor: de-duplicate BUG()s around dirty bits
cache-tree: extract subtree_pos()
cache-tree: simplify verify_cache() prototype
cache-tree: clean up cache_tree_update()
commit 02fb21617e0da10c6cadb1c55147299456633bca
Merge: 7e94720c1e 076b444a62
Author: Junio C Hamano <gitster@pobox.com>
Date: Wed Feb 10 14:48:32 2021 -0800
Merge branch 'rs/worktree-list-verbose'
`git worktree list` now annotates worktrees as prunable, shows
locked and prunable attributes in --porcelain mode, and gained
a --verbose option.
* rs/worktree-list-verbose:
worktree: teach `list` verbose mode
worktree: teach `list` to annotate prunable worktree
worktree: teach `list --porcelain` to annotate locked worktree
t2402: ensure locked worktree is properly cleaned up
worktree: teach worktree_lock_reason() to gently handle main worktree
worktree: teach worktree to lazy-load "prunable" reason
worktree: libify should_prune_worktree()
commit 7e94720c1ea42605a8f380802cfe90ec5e2477a2
Merge: e5abed92f5 f7d42ceec5
Author: Junio C Hamano <gitster@pobox.com>
Date: Wed Feb 10 14:48:32 2021 -0800
Merge branch 'js/rebase-i-commit-cleanup-fix'
When "git rebase -i" processes "fixup" insn, there is no reason to
clean up the commit log message, but we did the usual stripspace
processing. This has been corrected.
* js/rebase-i-commit-cleanup-fix:
rebase -i: do leave commit message intact in fixup! chains
commit e5abed92f50e39bf9514061ddd8e04c64d0a45d8
Merge: 04703f64be 30291525d9
Author: Junio C Hamano <gitster@pobox.com>
Date: Wed Feb 10 14:48:32 2021 -0800
Merge branch 'jk/t0000-cleanups'
Code clean-up.
* jk/t0000-cleanups:
t0000: consistently use single quotes for outer tests
t0000: run cleaning test inside sub-test
t0000: run prereq tests inside sub-test
t0000: keep clean-up tests together
commit 04703f64bee1b126b99d5eded0c7b954aa5abfbe
Merge: c9f94ab4fa e3f5da7e60
Author: Junio C Hamano <gitster@pobox.com>
Date: Wed Feb 10 14:48:32 2021 -0800
Merge branch 'sg/t7800-difftool-robustify'
Test fix.
* sg/t7800-difftool-robustify:
t7800-difftool: don't accidentally match tmp dirs
commit c9f94ab4fa42c3fce6c8fa04bb850f73e7f1cd54
Merge: 9d5b1c06ac 15c9649730
Author: Junio C Hamano <gitster@pobox.com>
Date: Wed Feb 10 14:48:31 2021 -0800
Merge branch 'ab/lose-grep-debug'
Lose the debugging aid that may have been useful in the past, but
no longer is, in the "grep" codepaths.
* ab/lose-grep-debug:
grep/log: remove hidden --debug and --grep-debug options
commit 9d5b1c06ac1e46e985b5d62bccb78d9fb6de374a
Merge: 1d4f2316c5 8380dcd700
Author: Junio C Hamano <gitster@pobox.com>
Date: Wed Feb 10 14:48:31 2021 -0800
Merge branch 'jk/use-oid-pos'
Code clean-up to ensure our use of hashtables using object names as
keys use the "struct object_id" objects, not the raw hash values.
* jk/use-oid-pos:
oid_pos(): access table through const pointers
hash_pos(): convert to oid_pos()
rerere: use strmap to store rerere directories
rerere: tighten rr-cache dirname check
rerere: check dirname format while iterating rr_cache directory
commit_graft_pos(): take an oid instead of a bare hash
commit a5cdca452052e824c9f3f7cf78385fbec5bb1976
Author: Eric Wong <e@80x24.org>
Date: Wed Feb 10 21:55:43 2021 +0000
t1500: ensure current --since= behavior remains
This behavior of git-rev-parse is observed since git 1.8.3.1
at least(*), and likely earlier versions.
At least one git-reliant project in-the-wild relies on this
current behavior of git-rev-parse being able to handle multiple
--since= arguments without squeezing identical results together.
So add a test to prevent the potential for regression in
downstream projects.
(*) 1.8.3.1 the version packaged for CentOS 7.x
Signed-off-by: Eric Wong <e@80x24.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
commit fa153c1cd7a84accc83e97723af85cf0ab3869e7
Author: Charvi Mendiratta <charvi077@gmail.com>
Date: Wed Feb 10 17:06:51 2021 +0530
doc/rebase -i: fix typo in the documentation of 'fixup' command
Mentored-by: Christian Couder <chriscool@tuxfamily.org>
Mentored-by: Phillip Wood <phillip.wood@dunelm.org.uk>
Helped-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Charvi Mendiratta <charvi077@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
commit 9ff6b74bb7653ba498414764e48ca015554f5ac3
Author: Charvi Mendiratta <charvi077@gmail.com>
Date: Wed Feb 10 17:06:50 2021 +0530
t/t3437: fixup the test 'multiple fixup -c opens editor once'
In the test, FAKE_COMMIT_MESSAGE replaces the commit message each
time it is invoked so there will be only one instance of "Modified-A3"
no matter how many times we invoke the editor. Let's fix this and use
FAKE_COMMIT_AMEND instead so that it adds "Modified-A3" once for each
time the editor is invoked.
This patch also removes the check for counting the number of
"Modified-A3" lines and instead compares the whole message to check
that the commenting code works correctly for 'fixup -c' as well as
'fixup -C'.
Mentored-by: Christian Couder <chriscool@tuxfamily.org>
Mentored-by: Phillip Wood <phillip.wood@dunelm.org.uk>
Helped-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Charvi Mendiratta <charvi077@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
commit 9c7650c45ce54ae1998b979703b9baa48406145c
Author: Charvi Mendiratta <charvi077@gmail.com>
Date: Wed Feb 10 17:06:49 2021 +0530
t/t3437: use named commits in the tests
Use the named commits in the tests so that they will still refer to the
same commit if the setup gets changed in the future whereas 'branch~2'
will change which commit it points to.
Mentored-by: Christian Couder <chriscool@tuxfamily.org>
Mentored-by: Phillip Wood <phillip.wood@dunelm.org.uk>
Helped-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Charvi Mendiratta <charvi077@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
commit d8bd08066db18a4db408ff2957f595592e21c336
Author: Charvi Mendiratta <charvi077@gmail.com>
Date: Wed Feb 10 17:06:48 2021 +0530
t/t3437: simplify and document the test helpers
Let's simplify the test_commit_message() helper function and add
comments to the function.
This patch also document the working of 'fixup -C' with "amend!" in the
test-description.
Mentored-by: Christian Couder <chriscool@tuxfamily.org>
Mentored-by: Phillip Wood <phillip.wood@dunelm.org.uk>
Helped-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Charvi Mendiratta <charvi077@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
commit 4755fed0a6d1390b4520658228617b17b9ee822a
Author: Charvi Mendiratta <charvi077@gmail.com>
Date: Wed Feb 10 17:06:47 2021 +0530
t/t3437: check the author date of fixed up commit
Add '%at' format in the get_author() function and update the test to
check that the author date of the fixed up commit is unchanged.
Mentored-by: Christian Couder <chriscool@tuxfamily.org>
Mentored-by: Phillip Wood <phillip.wood@dunelm.org.uk>
Helped-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Charvi Mendiratta <charvi077@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
commit 733ad2e15a5f078543fb0a5a10ee8ae5419d318e
Author: Charvi Mendiratta <charvi077@gmail.com>
Date: Wed Feb 10 17:06:46 2021 +0530
t/t3437: remove the dependency of 'expected-message' file from tests
As it is currently implemented, it's too difficult to follow along and
remember the value of "expected-message" from test to test. It also
makes it difficult to extend tests or add new tests in between existing
tests without negatively impacting other tests.
Let's set up "expected-message" to the precise content needed by the
test, so that both the problems go away and also makes easier to run
tests selectively with '--run' or 'GIT_SKIP_TESTS'
Mentored-by: Christian Couder <chriscool@tuxfamily.org>
Mentored-by: Phillip Wood <phillip.wood@dunelm.org.uk>
Helped-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Charvi Mendiratta <charvi077@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
commit 17665167bb548b7c46e207890edbec7feba054bb
Author: Charvi Mendiratta <charvi077@gmail.com>
Date: Wed Feb 10 17:06:45 2021 +0530
t/t3437: fixup here-docs in the 'setup' test
The most common way to format here-docs in Git test scripts is for the
body and EOF to be indented the same amount as the command which opened
the here-doc. Fix a few here-docs in this script to conform to that
standard and also remove the unnecessary curly braces.
Mentored-by: Christian Couder <chriscool@tuxfamily.org>
Mentored-by: Phillip Wood <phillip.wood@dunelm.org.uk>
Helped-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Charvi Mendiratta <charvi077@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
commit 75ace8329c730571281357dd40718a8aefc50db7
Author: Charvi Mendiratta <charvi077@gmail.com>
Date: Wed Feb 10 17:06:44 2021 +0530
t/lib-rebase: update the documentation of FAKE_LINES
FAKE_LINES helper function use underscore to embed a space in a single
command. Let's document it and also update the list of commands.
Mentored-by: Christian Couder <chriscool@tuxfamily.org>
Mentored-by: Phillip Wood <phillip.wood@dunelm.org.uk>
Helped-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Charvi Mendiratta <charvi077@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
commit f07871d302c32777de25b3fde3c621be3b2e32c3
Author: Charvi Mendiratta <charvi077@gmail.com>
Date: Wed Feb 10 17:06:43 2021 +0530
rebase -i: clarify and fix 'fixup -c' rebase-todo help
When `-c` says "edit the commit message" it's not clear what will be
edited. The original's commit message or the replacement's message or a
combination of the two. Word it such that it states more precisely what
exactly will be edited. While at it, also drop the jarring period and
capitalization, neither of which is otherwise present in the message.
Mentored-by: Christian Couder <chriscool@tuxfamily.org>
Mentored-by: Phillip Wood <phillip.wood@dunelm.org.uk>
Helped-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Charvi Mendiratta <charvi077@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
commit 59934417fffd3f8dcdc9e18271644b4db0627ea9
Author: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date: Tue Feb 9 22:41:55 2021 +0100
t/.gitattributes: sort lines
Sort the lines starting with "/", the only out-of-place line was added
along with most of the file in 614f4f0f350 (Fix the remaining tests
that failed with core.autocrlf=true, 2017-05-09).
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
commit ddfe900612119e4e8c21c812a0ced4a72e5d66b7
Author: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date: Tue Feb 9 22:41:54 2021 +0100
test-lib-functions: move function to lib-bitmap.sh
Move a function added to test-lib-functions.sh in ea047a8eb4f (t5310:
factor out bitmap traversal comparison, 2020-02-14) into a new
lib-bitmap.sh.
The test-lib-functions.sh file should be for functions that are widely
used across the test suite, if something's only used by a few tests it
makes more sense to have it in a lib-*.sh file.
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
commit 3fca1fc651c025724c7ea36aa9a83182c8dfdb58
Author: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date: Tue Feb 9 22:41:53 2021 +0100
test libs: rename gitweb-lib.sh to lib-gitweb.sh
Rename gitweb-lib.sh to lib-gitweb.sh for consistency with other test
library files.
When it was introduced in 05526071cb5 (gitweb: split test suite into
library and tests, 2009-08-27) this naming pattern was more
common.
Since then all but one other such library which didn't start with
"lib-*.sh" such as t6000lib.sh has been been renamed, see
e.g. 9d488eb40e2 (Move t6000lib.sh to lib-*, 2010-05-07).
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
commit e8a8e7ff983c309b9e8edbb1a570bfbb36ad1e7c
Author: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date: Tue Feb 9 22:41:52 2021 +0100
test libs: rename bundle helper to "lib-bundle.sh"
Rename the recently introduced test-bundle-functions.sh to be
consistent with other lib-*.sh files, which is the convention for
these sorts of shared test library functions.
The new test-bundle-functions.sh was introduced in 9901164d81d (test:
add helper functions for git-bundle, 2021-01-11). It was the only
test-*.sh of this nature.
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
commit f3ad2bf4712aa41d710ce3eb8207c12dda43710d
Author: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date: Tue Feb 9 22:41:51 2021 +0100
test-lib-functions: remove generate_zero_bytes() wrapper
Since d5cfd142ec1 (tests: teach the test-tool to generate NUL bytes
and use it, 2019-02-14) the generate_zero_bytes() functions has been a
thin wrapper for "test-tool genzeros". Let's have its only user call
that directly instead.
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
commit 762ccf9906a946b4ba6d9a1b97b6a6b465f02ac3
Author: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date: Tue Feb 9 22:41:50 2021 +0100
test-lib-functions: move test_set_index_version() to its user
Move the test_set_index_version() function to its only user. This
function has only been used in one place since its addition in
5d9fc888b48 (test-lib: allow setting the index format version,
2014-02-23). Let's have that test script define it.
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
commit 9e9c7dd6f13e9a5027538854132b9f6b6ddb6be2
Author: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date: Tue Feb 9 22:41:49 2021 +0100
test lib: change "error" to "BUG" as appropriate
Change two uses of "error" in test-lib-functions.sh to "BUG".
In the first instance in "test_cmp_rev" the author of the "BUG"
function added in [1] had another in-flight patch adding this in [2],
and the two were never consolidated.
In the second case in "test_atexit" added in [3] that we could have
instead used "BUG" appears to have been missed.
1. 165293af3ce (tests: send "bug in the test script" errors to the
script's stderr, 2018-11-19)
2. 30d0b6dccbc (test-lib-functions: make 'test_cmp_rev' more
informative on failure, 2018-11-19)
3. 900721e15c4 (test-lib: introduce 'test_atexit', 2019-03-13)
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
commit c0eedbc009d9587602bfb2057158c102a88acf3f
Author: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date: Tue Feb 9 22:41:48 2021 +0100
test-lib: remove check_var_migration
Remove the check_var_migration() migration helper. This was added back
in [1], [2] and [3] to warn users to migrate from e.g. the
"GIT_FSMONITOR_TEST" name to "GIT_TEST_FSMONITOR".
I daresay that having been warning about this since late 2018 (or
v2.20.0) was sufficient time to give everyone interested a heads-up
about moving to the new names.
I don't see the need for going through the "do this later" codepath
anticipated in [1], let's just remove this instead.
1. 4cb54d0aa8e (fsmonitor: update GIT_TEST_FSMONITOR support,
2018-09-18)
2. 1f357b045b5 (read-cache: update TEST_GIT_INDEX_VERSION support,
2018-09-18)
3. 5765d97b71d (preload-index: update GIT_FORCE_PRELOAD_TEST support,
2018-09-18)
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
commit a38cb9878ab686d3b7a19e46d8c3fff79cdccf4b
Author: Jeff King <peff@peff.net>
Date: Wed Feb 10 15:34:33 2021 -0500
mailmap: only look for .mailmap in work tree
When trying to find a .mailmap file, we will always look for it in the
current directory. This makes sense in a repository with a working tree,
since we'd always go to the toplevel directory at startup. But for a
bare repository, it can be confusing. With an option like --git-dir (or
$GIT_DIR in the environment), we don't chdir at all, and we'd read
.mailmap from whatever directory you happened to be in before starting
Git.
(Note that --git-dir without specifying a working tree historically
means "the current directory is the root of the working tree", but most
bare repositories will have core.bare set these days, meaning they will
realize there is no working tree at all).
The documentation for gitmailmap(5) says:
If the file `.mailmap` exists at the toplevel of the repository[...]
which likewise reinforces the notion that we are looking in the working
tree.
This patch prevents us from looking for such a file when we're in a bare
repository. This does break something that used to work:
cd bare.git
git cat-file blob HEAD:.mailmap >.mailmap
git shortlog
But that was never advertised in the documentation. And these days we
have mailmap.blob (which defaults to HEAD:.mailmap) to do the same thing
in a much cleaner way.
However, there's one more interesting case: we might not have a
repository at all! The git-shortlog command can be run with git-log
output fed on its stdin, and it will apply the mailmap. In that case, it
probably does make sense to read .mailmap from the current directory.
This patch will continue to do so.
That leads to one even weirder case: if you run git-shortlog to process
stdin, the input _could_ be from a different repository entirely. Should
we respect the in-tree .mailmap then? Probably yes. Whatever the source
of the input, if shortlog is running in a repository, the documentation
claims that we'd read the .mailmap from its top-level (and of course
it's reasonably likely that it _is_ from the same repo, and the user
just preferred to run git-log and git-shortlog separately for whatever
reason).
The included test covers these cases, and we now document the "no repo"
case explicitly.
We also add a test that confirms we find a top-level ".mailmap" even
when we start in a subdirectory of the working tree. This worked both
before and after this commit, but we never tested it explicitly (it
works because we always chdir to the top-level of the working tree if
there is one).
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
commit e89f89361cd7b706858eb22a6cf3d59d31a00acf
Author: Johannes Schindelin <johannes.schindelin@gmx.de>
Date: Wed Feb 10 18:01:30 2021 +0000
fsck --name-objects: be more careful parsing generation numbers
In 7b35efd734e (fsck_walk(): optionally name objects on the go,
2016-07-17), the `fsck` machinery learned to optionally name the
objects, so that it is easier to see what part of the repository is in a
bad shape, say, when objects are missing.
To save on complexity, this machinery uses a parser to determine the
name of a parent given a commit's name: any `~<n>` suffix is parsed and
the parent's name is formed from the prefix together with `~<n+1>`.
However, this parser has a bug: if it finds a suffix `<n>` that is _not_
`~<n>`, it will mistake the empty string for the prefix and `<n>` for
the generation number. In other words, it will generate a name of the
form `~<bogus-number>`.
Let's fix this.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
commit 8c891eed3a89ff945b7957cdf62037b2e2b6eca7
Author: Johannes Schindelin <johannes.schindelin@gmx.de>
Date: Wed Feb 10 18:01:29 2021 +0000
t1450: robustify `remove_object()`
This function can be simplified by using the `test_oid_to_path()`
helper, which incidentally also makes it more robust by not relying on
the exact file system layout of the loose object files.
While at it, do not define those functions in a test case, it buys us
nothing.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
commit acc1c4d5d4c80c4fd93aaa151caa5593656600ae
Author: Derrick Stolee <dstolee@microsoft.com>
Date: Tue Feb 9 13:42:29 2021 +0000
maintenance: incremental strategy runs pack-refs weekly
When the 'maintenance.strategy' config option is set to 'incremental',
a default maintenance schedule is enabled. Add the 'pack-refs' task to
that strategy at the weekly cadence.
Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Reviewed-by: Taylor Blau <me@ttaylorr.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
commit 41abfe15d95ede4c2a047180a6062eac23d8f7d6
Author: Derrick Stolee <dstolee@microsoft.com>
Date: Tue Feb 9 13:42:28 2021 +0000
maintenance: add pack-refs task
It is valuable to collect loose refs into a more compressed form. This
is typically the packed-refs file, although this could be the reftable
in the future. Having packed refs can be extremely valuable in repos
with many tags or remote branches that are not modified by the local
user, but still are necessary for other queries.
For instance, with many exploded refs, commands such as
git describe --tags --exact-match HEAD
can be very slow (multiple seconds). This command in particular is used
by terminal prompts to show when a detatched HEAD is pointing to an
existing tag, so having it be slow causes significant delays for users.
Add a new 'pack-refs' maintenance task. It runs 'git pack-refs --all
--prune' to move loose refs into a packed form. For now, that is the
packed-refs file, but could adjust to other file formats in the future.
This is the first of several sub-tasks of the 'gc' task that could be
extracted to their own tasks. In this process, we should not change the
behavior of the 'gc' task since that remains the default way to keep
repositories maintained. Creating a new task for one of these sub-tasks
only provides more customization options for those choosing to not use
the 'gc' task. It is certainly possible to have both the 'gc' and
'pack-refs' tasks enabled and run regularly. While they may repeat
effort, they do not conflict in a destructive way.
The 'auto_condition' function pointer is left NULL for now. We could
extend this in the future to have a condition check if pack-refs should
be run during 'git maintenance run --auto'.
Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Reviewed-by: Taylor Blau <me@ttaylorr.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
commit c50bc53527aa6cae8bf008cf729676c71d6cca8f
Merge: c3ed19b2ec d051ed77ee
Author: Junio C Hamano <gitster@pobox.com>
Date: Tue Feb 9 16:58:50 2021 -0800
Merge branch 'tb/ci-run-cocci-with-18.04' into next
The version of Ubuntu Linux used by default at GitHub Actions CI
has been updated to one that lack coccinelle; until it gets fixed,
work it around by sticking to the previous release (18.04).
* tb/ci-run-cocci-with-18.04:
.github/workflows/main.yml: run static-analysis on bionic
commit c3ed19b2ec51ea910b146283cad22a4acf550966
Merge: 94911ad676 9d9cf23031
Author: Junio C Hamano <gitster@pobox.com>
Date: Tue Feb 9 16:58:50 2021 -0800
Merge branch 'sh/mergetool-hideresolved' into next
"git mergetool" feeds three versions (base, local and remote) of
a conflicted path unmodified. The command learned to optionally
prepare these files with unconflicted parts already resolved.
* sh/mergetool-hideresolved:
mergetool: add per-tool support and overrides for the hideResolved flag
mergetool: break setup_tool out into separate initialization function
mergetool: add hideResolved configuration
commit 94911ad67676ffb6123ab860f57561f4326b1c96
Merge: 4eea330afb 0a9dde4a04
Author: Junio C Hamano <gitster@pobox.com>
Date: Tue Feb 9 16:58:50 2021 -0800
Merge branch 'jt/trace2-BUG' into next
Even though invocations of "die()" were logged to the trace2
system, "BUG()"s were not, which has been corrected.
* jt/trace2-BUG:
usage: trace2 BUG() invocations
commit 0a9dde4a04c1228025d292f44113cb8f9cebbfba
Author: Jonathan Tan <jonathantanmy@google.com>
Date: Fri Feb 5 12:09:08 2021 -0800
usage: trace2 BUG() invocations
die() messages are traced in trace2, but BUG() messages are not. Anyone
tracking die() messages would have even more reason to track BUG().
Therefore, write to trace2 when BUG() is invoked.
Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
Helped-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
commit 9d9cf230317f7fe7cb153f61b537e6e9bef22e3b
Author: Seth House <seth@eseth.com>
Date: Tue Feb 9 13:07:12 2021 -0700
mergetool: add per-tool support and overrides for the hideResolved flag
Add a per-tool override flag so that users may enable the flag for one
tool and disable it for another by setting
`mergetool.<tool>.hideResolved` to `false`.
In addition, the author or maintainer of a mergetool may optionally
override the default `hideResolved` value for that mergetool. If the
`mergetools/<tool>` shell script contains a `hide_resolved_enabled`
function it will be called when the mergetool is invoked and the return
value will be used as the default for the `hideResolved` flag.
hide_resolved_enabled () {
return 1
}
Disabling may be desirable if the mergetool wants or needs access to the
original, unmodified 'LOCAL' and 'REMOTE' versions of the conflicted
file. For example:
- A tool may use a custom conflict resolution algorithm and prefer to
ignore the results of Git's conflict resolution.
- A tool may want to visually compare/constrast the version of the file
from before the merge (saved to 'LOCAL', 'REMOTE', and 'BASE') with
Git's conflict resolution results (saved to 'MERGED').
Helped-by: Johannes Sixt <j6t@kdbg.org>
Helped-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Seth House <seth@eseth.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
commit de8dafbada811bc1bc8e1288541931f3c5406231
Author: Seth House <seth@eseth.com>
Date: Tue Feb 9 13:07:11 2021 -0700
mergetool: break setup_tool out into separate initialization function
This is preparation for the following commit where we need to source the
mergetool shell script to look for overrides before `run_merge_tool` is
called. Previously `run_merge_tool` both sourced that script and invoked
the mergetool.
In the case of the following commit, we need the result of the
`hide_resolved` override, if present, before we actually run
`run_merge_tool`.
The new `initialize_merge_tool` wrapper is exposed and documented as
a public interface for consistency with the existing `run_merge_tool`
which is also public. Although `setup_tool` could instead be exposed
directly, the related `setup_user_tool` would probably also want to be
elevated to match and this felt the cleanest to me.
Signed-off-by: Seth House <seth@eseth.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>