Age | Commit message (Collapse) | Author |
|
Loosen "disable repository discovery of a bare repository" check,
triggered by setting safe.bareRepository configuration variable to
'explicit', to exclude the ".git/" directory inside a non-bare
repository from the check.
Comments?
* kl/allow-working-in-dot-git-in-non-bare-repository:
setup: allow cwd=.git w/ bareRepository=explicit
|
|
The labels on conflict markers for the common ancestor, our version,
and the other version are available to custom 3-way merge driver
via %S, %X, and %Y placeholders.
* ad/custom-merge-placeholder-for-symbolic-pathnames:
merge-ll: expose revision names to custom drivers
|
|
Command line completion support (in contrib/) has been
updated for a few commands to complete directory names where a
directory name is expected.
* bk/complete-dirname-for-am-and-format-patch:
completion: dir-type optargs for am, format-patch
|
|
Command line completion support (in contrib/) has been taught to
avoid offering revision names as candidates to "git send-email" when
the command is used to send pre-generated files.
* bk/complete-send-email:
completion: don't complete revs when --no-format-patch
|
|
Prepare existing tests on refs to work better with non-default
backends.
* ps/tests-with-ref-files-backend:
t: mark tests regarding git-pack-refs(1) to be backend specific
t5526: break test submodule differently
t1419: mark test suite as files-backend specific
t1302: make tests more robust with new extensions
t1301: mark test for `core.sharedRepository` as reffiles specific
t1300: make tests more robust with non-default ref backends
|
|
Code clean-up.
* la/trailer-api:
trailer: delete obsolete argument handling code from API
trailer: move arg handling to interpret-trailers.c
trailer: prepare to move parse_trailers_from_command_line_args() to builtin
trailer: spread usage of "trailer_block" language
trailer: make trailer_info struct private
sequencer: use the trailer iterator
trailer: delete obsolete formatting functions
trailer: unify trailer formatting machinery
trailer: include "trailer" term in API functions
trailer: move process_trailers() to interpret-trailers.c
|
|
Command line completion support (in contrib/) has been
updated for "git bisect".
* bk/complete-bisect:
completion: git-bisect view recognized but not completed
completion: custom git-bisect terms
completion: move to maintain define-before-use
completion: git-log opts to bisect visualize
completion: complete new old actions, start opts
|
|
Code clean-up.
* jc/rerere-cleanup:
rerere: modernize use of empty strbuf
rerere: try_merge() should use LL_MERGE_ERROR when it means an error
rerere: fix comment on handle_file() helper
rerere: simplify check_one_conflict() helper function
|
|
A new config for coloring.
* ak/color-decorate-symbols:
log: add color.decorate.pseudoref config variable
refs: exempt pseudorefs from pattern prefixing
refs: add pseudorefs array and iteration functions
log: add color.decorate.ref config variable
log: add color.decorate.symbol config variable
log: use designated inits for decoration_colors
config: restructure color.decorate documentation
|
|
The Bloom filter used for path limited history traversal was broken
on systems whose "char" is unsigned; update the implementation and
bump the format version to 2.
* tb/path-filter-fix:
bloom: introduce `deinit_bloom_filters()`
commit-graph: reuse existing Bloom filters where possible
object.h: fix mis-aligned flag bits table
commit-graph: drop unnecessary `graph_read_bloom_data_context`
commit-graph.c: unconditionally load Bloom filters
bloom: prepare to discard incompatible Bloom filters
bloom: annotate filters with hash version
commit-graph: new Bloom filter version that fixes murmur3
repo-settings: introduce commitgraph.changedPathsVersion
t4216: test changed path filters with high bit paths
t/helper/test-read-graph: implement `bloom-filters` mode
bloom.h: make `load_bloom_filter_from_graph()` public
t/helper/test-read-graph.c: extract `dump_graph_info()`
gitformat-commit-graph: describe version 2 of BDAT
commit-graph: ensure Bloom filters are read with consistent settings
revision.c: consult Bloom filters for root commits
t/t4216-log-bloom.sh: harden `test_bloom_filters_not_used()`
|
|
Further code clean-up.
* tb/pair-chunk-expect:
midx: read `OOFF` chunk with `pair_chunk_expect()`
midx: read `OIDL` chunk with `pair_chunk_expect()`
commit-graph: read `BIDX` chunk with `pair_chunk_expect()`
commit-graph: read `GDAT` chunk with `pair_chunk_expect()`
commit-graph: read `CDAT` chunk with `pair_chunk_expect()`
commit-graph: read `OIDL` chunk with `pair_chunk_expect()`
chunk-format: introduce `pair_chunk_expect()` helper
|
|
Teach a repository to work with both SHA-1 and SHA-256 hash algorithms.
* eb/hash-transition: (30 commits)
t1016-compatObjectFormat: add tests to verify the conversion between objects
t1006: test oid compatibility with cat-file
t1006: rename sha1 to oid
test-lib: compute the compatibility hash so tests may use it
builtin/ls-tree: let the oid determine the output algorithm
object-file: handle compat objects in check_object_signature
tree-walk: init_tree_desc take an oid to get the hash algorithm
builtin/cat-file: let the oid determine the output algorithm
rev-parse: add an --output-object-format parameter
repository: implement extensions.compatObjectFormat
object-file: update object_info_extended to reencode objects
object-file-convert: convert commits that embed signed tags
object-file-convert: convert commit objects when writing
object-file-convert: don't leak when converting tag objects
object-file-convert: convert tag objects when writing
object-file-convert: add a function to convert trees between algorithms
object: factor out parse_mode out of fast-import and tree-walk into in object.h
cache: add a function to read an OID of a specific algorithm
tag: sign both hashes
commit: export add_header_signature to support handling signatures on tags
...
|
|
* jc/reftable-core-fsync:
reftable: honor core.fsync
|
|
While the reffiles backend honors configured fsync settings, the
reftable backend does not. Address this by fsyncing reftable files using
the write-or-die api's fsync_component() in two places: when we
add additional entries into the table, and when we close the reftable
writer.
This commits adds a flush function pointer as a new member of
reftable_writer because we are not sure that the first argument to the
*write function pointer always contains a file descriptor. In the case of
strbuf_add_void, the first argument is a buffer. This way, we can pass
in a corresponding flush function that knows how to flush depending on
which writer is being used.
This patch does not contain tests as they will need to wait for another
patch to start to exercise the reftable backend. At that point, the
tests will be added to observe that fsyncs are happening when the
reftable is in use.
Signed-off-by: John Cai <johncai86@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
|
|
Tracing fix.
* sd/negotiate-trace-fix:
push: region_leave trace for negotiate_using_fetch
|
|
"git log --merge" learned to pay attention to CHERRY_PICK_HEAD and
other kinds of *_HEAD pseudorefs.
Comments?
* ml/log-merge-with-cherry-pick-and-other-pseudo-heads:
revision: implement `git log --merge` also for rebase/cherry_pick/revert
revision: ensure MERGE_HEAD is a ref in prepare_show_merge
|
|
Migrate priority queue test to unit testing framework.
* cp/unit-test-prio-queue:
tests: move t0009-prio-queue.sh to the new unit testing framework
|
|
Docfix.
* ja/doc-placeholders-fix:
doc: enforce placeholders in documentation
doc: enforce dashes in placeholders
|
|
Doc update.
* jc/bisect-doc:
bisect: document "terms" subcommand more fully
|
|
"git apply" on a filesystem without filemode support have learned
to take a hint from what is in the index for the path, even when
not working with the "--index" or "--cached" option, when checking
the executable bit match what is required by the preimage in the
patch.
* cp/apply-core-filemode:
apply: code simplification
apply: correctly reverse patch's pre- and post-image mode bits
apply: ignore working tree filemode when !core.filemode
|
|
"git for-each-ref" filters its output with prefixes given from the
command line, but it did not honor an empty string to mean "pass
everything", which has been corrected.
* kn/for-all-refs:
for-each-ref: avoid filtering on empty pattern
refs: introduce `refs_for_each_all_refs()`
refs: extract out `loose_fill_ref_dir_regular_file()`
refs: make `is_pseudoref_syntax()` stricter
refs: expose `is_pseudoref_syntax()`
|
|
Tests on ref API are moved around to prepare for reftable.
* jc/reffiles-tests:
t5312: move reffiles specific tests to t0601
t4202: move reffiles specific tests to t0600
t3903: make drop stash test ref backend agnostic
t1503: move reffiles specific tests to t0600
t1415: move reffiles specific tests to t0601
t1410: move reffiles specific tests to t0600
t1406: move reffiles specific tests to t0600
t1405: move reffiles specific tests to t0601
t1404: move reffiles specific tests to t0600
t1414: convert test to use Git commands instead of writing refs manually
remove REFFILES prerequisite for some tests in t1405 and t2017
t3210: move to t0601
|
|
The completion script (in contrib/) learned more options that can
be used with "git log".
* pb/complete-log-more:
completion: complete missing 'git log' options
completion: complete --encoding
completion: complete --patch-with-raw
completion: complete missing rev-list options
|
|
|
|
"git archive --remote=<remote>" learned to talk over the smart
http (aka stateless) transport.
* jx/remote-archive-over-smart-http:
transport-helper: call do_take_over() in process_connect
transport-helper: call do_take_over() in connect_helper
http-backend: new rpc-service for git-upload-archive
transport-helper: protocol v2 supports upload-archive
remote-curl: supports git-upload-archive service
transport-helper: no connection restriction in connect_helper
|
|
All conditional "advice" messages show how to turn them off, which
becomes repetitive. Add a configuration variable to omit the
instruction.
* rj/advice-disable-how-to-disable:
advice: allow disabling the automatic hint in advise_if_enabled()
|
|
"git diff --no-rename A B" did not disable rename detection but did
not trigger an error from the command line parser.
* rs/parse-options-with-keep-unknown-abbrev-fix:
parse-options: simplify positivation handling
parse-options: fully disable option abbreviation with PARSE_OPT_KEEP_UNKNOWN
|
|
GitHub CI update.
* pb/ci-github-skip-logs-for-broken-tests:
ci(github): also skip logs of broken test cases
|
|
Coding style fix.
* al/t2400-depipe:
t2400: avoid losing exit status to pipes
|
|
Coding style fix.
* gt/t0024-style-fixes:
t0024: style fix
t0024: avoid losing exit status to pipes
|
|
Rename detection logic ignored the final line of a file if it is an
incomplete line.
* en/diffcore-delta-final-line-fix:
diffcore-delta: avoid ignoring final 'line' of file
|
|
Define "special ref" as a very narrow set that consists of
FETCH_HEAD and MERGE_HEAD, and clarify everything else that used to
be classified as such are actually just pseudorefs.
* ps/not-so-many-refs-are-special:
Documentation: add "special refs" to the glossary
refs: redefine special refs
refs: convert MERGE_AUTOSTASH to become a normal pseudo-ref
sequencer: introduce functions to handle autostashes via refs
refs: convert AUTO_MERGE to become a normal pseudo-ref
sequencer: delete REBASE_HEAD in correct repo when picking commits
sequencer: clean up pseudo refs with REF_NO_DEREF
|
|
oss-fuzz tests are built and run in CI.
* js/oss-fuzz-build-in-ci:
ci: build and run minimal fuzzers in GitHub CI
fuzz: fix fuzz test build rules
|
|
Doc update.
* jc/majordomo-to-subspace:
Docs: majordomo@vger.kernel.org has been decomissioned
|
|
Doc update.
* nb/rebase-x-shell-docfix:
rebase: fix documentation about used shell in -x
|
|
Update to a new feature recently added, "git show-ref --exists".
* tc/show-ref-exists-fix:
builtin/show-ref: treat directory as non-existing in --exists
|
|
Tighten URL checks fsck makes in a URL recorded for submodules.
* vd/fsck-submodule-url-test:
submodule-config.c: strengthen URL fsck check
t7450: test submodule urls
test-submodule: remove command line handling for check-name
submodule-config.h: move check_submodule_url
|
|
When $HOME/.gitignore is missing but XDG config file available, we
should write into the latter, not former. "git gc" and "git
maintenance" wrote into a wrong "global config" file, which have
been corrected.
* kh/maintenance-use-xdg-when-it-should:
maintenance: use XDG config if it exists
config: factor out global config file retrieval
config: rename global config function
config: format newlines
|
|
A few tests to "git commit -o <pathspec>" and "git commit -i
<pathspec>" has been added.
* gt/test-commit-o-i-options:
t7501: add tests for --amend --signoff
t7501: add tests for --include and --only
|
|
CI for GitLab learned to drive macOS jobs.
* ps/gitlab-ci-macos:
ci: add macOS jobs to GitLab CI
ci: make p4 setup on macOS more robust
ci: handle TEST_OUTPUT_DIRECTORY when printing test failures
Makefile: detect new Homebrew location for ARM-based Macs
t7527: decrease likelihood of racing with fsmonitor daemon
|
|
Completion update to prepare for reftable
* ps/completion-with-reftable-fix:
completion: treat dangling symrefs as existing pseudorefs
completion: silence pseudoref existence check
completion: improve existence check for pseudo-refs
t9902: verify that completion does not print anything
completion: discover repo path in `__git_pseudoref_exists ()`
|
|
Tweak a few tests not to manually modify the reference database
(hence easier to work with other backends like reftable).
* jt/tests-with-reftable:
t5541: remove lockfile creation
t1401: remove lockfile creation
|
|
Comment fix.
* la/strvec-comment-fix:
strvec: use correct member name in comments
|
|
When given an existing but unreadable file as a configuration file,
gitweb behaved as if the file did not exist at all, but now it
errors out. This is a change that may break backward compatibility.
* mj/gitweb-unreadable-config-error:
gitweb: die when a configuration file cannot be read
|
|
Instead of manually creating refs/ hierarchy on disk upon a
creation of a secondary worktree, which is only usable via the
files backend, use the refs API to populate it.
* ps/worktree-refdb-initialization:
builtin/worktree: create refdb via ref backend
worktree: expose interface to look up worktree by name
builtin/worktree: move setup of commondir file earlier
refs/files: skip creation of "refs/{heads,tags}" for worktrees
setup: move creation of "refs/" into the files backend
refs: prepare `refs_init_db()` for initializing worktree refs
|
|
Leakfix.
* ps/commit-graph-write-leakfix:
commit-graph: fix memory leak when not writing graph
|
|
Move test-ctype helper to the unit-test framework.
* al/unit-test-ctype:
unit-tests: rewrite t/helper/test-ctype.c as a unit test
|
|
Docfix.
* ne/doc-filter-blob-limit-fix:
rev-list-options: fix off-by-one in '--filter=blob:limit=<n>' explainer
|
|
The error message given when "git branch -d branch" fails due to
commits unique to the branch has been split into an error and a new
conditional advice message.
* rj/advice-delete-branch-not-fully-merged:
branch: make the advice to force-deleting a conditional one
advice: fix an unexpected leading space
advice: sort the advice related lists
|
|
Comment updates to help developers not to attempt to modify
messages from plumbing commands that must stay constant.
It might make sense to reassess the plumbing needs every few years,
but that should be done as a separate effort.
* es/some-up-to-date-messages-must-stay:
messages: mark some strings with "up-to-date" not to touch
|