AgeCommit message (Collapse)Author
3 hoursMerge branch 'hn/reftable' into seenseenJunio C Hamano
The "reftable" backend for the refs API. Seems to break CI jobs in 'seen'. * hn/reftable: (26 commits) t7004: avoid direct filesystem access t1404: annotate test cases with REFFILES t1401,t2011: parameterize HEAD.lock for REFFILES t1301: document what needs to be done for reftable Add "test-tool dump-reftable" command. git-prompt: prepare for reftable refs backend refs: RFC: Reftable support for git-core reftable: add dump utility reftable: implement stack, a mutable database of reftable files. reftable: implement refname validation reftable: add merged table view reftable: add a heap-based priority queue for reftable records reftable: reftable file level tests reftable: read reftable files reftable: generic interface to tables reftable: write reftable files reftable: a generic binary tree implementation reftable: reading/writing blocks Provide zlib's uncompress2 from compat/zlib-compat.c reftable: (de)serialization for the polymorphic record type. ...
3 hours### CI BreakersJunio C Hamano
3 hoursMerge branch 'fs/ssh-signing' into seenJunio C Hamano
Use ssh public crypto for object and push-cert signing. Comments? * fs/ssh-signing: ssh signing: add documentation ssh signing: add more tests for logs, tags & push certs ssh signing: duplicate t7510 tests for commits ssh signing: add test prereqs ssh signing: parse ssh-keygen output and verify signatures ssh signing: provide a textual representation of the signing key ssh signing: retrieve a default key from ssh-agent ssh signing: add ssh signature format and signing using ssh keys ssh signing: preliminary refactoring and clean-up
3 hoursMerge branch 'ab/only-single-progress-at-once' into seenJunio C Hamano
Further tweaks on progress API. * ab/only-single-progress-at-once: progress.c: add & assert a "global_progress" variable pack-bitmap-write.c: add a missing stop_progress() progress.c: add temporary variable from progress struct progress.c: stop eagerly fflush(stderr) when not a terminal progress.c: call progress_interval() from progress_test_force_update() progress.c: move signal handler functions lower progress.c tests: test some invalid usage progress.c tests: make start/stop verbs on stdin
3 hoursMerge branch 'ab/http-drop-old-curl' into seenJunio C Hamano
Support for ancient versions of cURL library has been dropped. * ab/http-drop-old-curl: http: rename CURLOPT_FILE to CURLOPT_WRITEDATA http: drop support for curl < 7.19.3 and < 7.17.0 (again) http: drop support for curl < 7.19.4 http: drop support for curl < 7.16.0 http: drop support for curl < 7.11.1
3 hoursMerge branch 'en/ort-perf-batch-15' into seenJunio C Hamano
Final batch for "merge -sort" optimization. * en/ort-perf-batch-15: merge-ort: remove compile-time ability to turn off usage of memory pools merge-ort: reuse path strings in pool_alloc_filespec merge-ort: store filepairs and filespecs in our mem_pool diffcore-rename, merge-ort: add wrapper functions for filepair alloc/dealloc merge-ort: switch our strmaps over to using memory pools merge-ort: set up a memory pool merge-ort: add pool_alloc, pool_calloc, and pool_strndup wrappers diffcore-rename: use a mem_pool for exact rename detection's hashmap merge-ort: rename str{map,intmap,set}_func()
3 hoursMerge branch 'ab/lib-subtest' into seenJunio C Hamano
Updates to the tests in t0000 to test th etest framework. * ab/lib-subtest: test-lib tests: assert 1 exit code, not non-zero test-lib tests: refactor common part of check_sub_test_lib_test*() test-lib tests: avoid subshell for "test_cmp" for readability test-lib tests: get rid of copy/pasted mock test code test-lib tests: don't provide a description for the sub-tests test-lib tests: stop using a subshell in write_sub_test_lib_test() test-lib tests: split up "write and run" into two functions test-lib tests: move "run_sub_test" to a new
3 hoursMerge branch 'es/config-based-hooks' into seenJunio C Hamano
The "hooks defined via the configuration variables" topic. * es/config-based-hooks: hook: implement hookcmd.<name>.skip hook: teach 'hookcmd' config to alias hook scripts hook: allow out-of-repo 'git hook' invocations hook: include hooks from the config hook: allow running non-native hooks hook: treat hookdir hook specially hook: introduce "git hook list" hook: allow parallel hook execution hook: run a list of hooks instead
3 hoursMerge branch 'jh/builtin-fsmonitor' into seenJunio C Hamano
An attempt to write and ship with a watchman equivalent tailored for our use. So, where are we with this topic? * jh/builtin-fsmonitor: (35 commits) BANDAID: sparse fixes t7527: test FS event reporing on MacOS WRT case and Unicode fsmonitor: handle shortname for .git t7527: test status with untracked-cache and fsmonitor--daemon fsmonitor: force update index after large responses fsmonitor: enhance existing comments fsmonitor--daemon: use a cookie file to sync with file system fsmonitor--daemon: periodically truncate list of modified files t7527: create test for fsmonitor--daemon t/perf/p7519: add fsmonitor--daemon test cases t/perf: avoid copying builtin fsmonitor files into test repo t/perf/p7519: speed up test using "test-tool touch" t/helper/test-touch: add helper to touch a series of files fsmonitor--daemon: implement handle_client callback fsmonitor-fs-listen-macos: implement FSEvent listener on MacOS fsmonitor-fs-listen-macos: add macos header files for FSEvent fsmonitor-fs-listen-win32: implement FSMonitor backend on Windows fsmonitor--daemon: create token-based changed path cache fsmonitor--daemon: define token-ids fsmonitor--daemon: add pathname classification ...
3 hoursMerge branch 'cf/fetch-set-upstream-while-detached' into seenJunio C Hamano
"git fetch --set-upstream" while on detached HEAD segfaulted instead of noticing that such an operation did not make sense. * cf/fetch-set-upstream-while-detached: fetch: fix segfault on --set-upstream while on a detached HEAD
3 hoursMerge branch 'tb/multi-pack-bitmaps' into seenJunio C Hamano
The reachability bitmap file used to be generated only for a single pack, but now we've learned to generate bitmaps for history that span across multiple packfiles. Comments? * tb/multi-pack-bitmaps: (25 commits) p5326: perf tests for MIDX bitmaps p5310: extract full and partial bitmap tests midx: respect 'GIT_TEST_MULTI_PACK_INDEX_WRITE_BITMAP' t7700: update to work with MIDX bitmap test knob t5319: don't write MIDX bitmaps in t5319 t5310: disable GIT_TEST_MULTI_PACK_INDEX_WRITE_BITMAP t0410: disable GIT_TEST_MULTI_PACK_INDEX_WRITE_BITMAP t5326: test multi-pack bitmap behavior t/helper/test-read-midx.c: add --checksum mode t5310: move some tests to pack-bitmap: write multi-pack bitmaps pack-bitmap: read multi-pack bitmaps pack-bitmap.c: avoid redundant calls to try_partial_reuse pack-bitmap.c: introduce 'bitmap_is_preferred_refname()' pack-bitmap.c: introduce 'nth_bitmap_object_oid()' pack-bitmap.c: introduce 'bitmap_num_objects()' midx: avoid opening multiple MIDXs when writing midx: close linked MIDXs, avoid leaking memory midx: infer preferred pack when not given one midx: reject empty `--preferred-pack`'s ...
3 hoursMerge branch 'dt/submodule-diff-fixes' into seenJunio C Hamano
"git diff --submodule=diff" showed failure from run_command() when trying to run diff inside a submodule, when the user manually removes the submodule directory. It is clear that a problem exists, but it is unclear if the proposed solution is a desirable one. * dt/submodule-diff-fixes: diff --submodule=diff: do not print failure message twice diff --submodule=diff: do not fail on ever-initialied deleted submodules t4060: remove unused variable
3 hoursMerge branch 'ab/make-tags-cleanup' into seenJunio C Hamano
Build clean-up for "make tags" and friends. * ab/make-tags-cleanup: Makefile: normalize clobbering & xargs for tags targets Makefile: the "cscope" target always creates a "cscope.out" Makefile: don't use "FORCE" for tags targets Makefile: add QUIET_GEN to "cscope" target Makefile: move ".PHONY: cscope" near its target
3 hoursMerge branch 'ab/pack-stdin-packs-fix' into seenJunio C Hamano
Input validation of "git pack-objects --stdin-packs" has been corrected. Ack? cf. <YND3h2l10PlnSNGJ@nand.local> * ab/pack-stdin-packs-fix: pack-objects: fix segfault in --stdin-packs option pack-objects tests: cover blindspots in stdin handling
3 hoursMerge branch 'ab/fsck-unexpected-type' into seenJunio C Hamano
"git fsck" has been taught to report mismatch between expected and actual types of an object better. * ab/fsck-unexpected-type: (21 commits) fsck: report invalid object type-path combinations fsck: report invalid types recorded in objects object-store.h: move read_loose_object() below 'struct object_info' fsck: don't hard die on invalid object types object-file.c: return -2 on "header too long" in unpack_loose_header() object-file.c: return -1, not "status" from unpack_loose_header() object-file.c: guard against future bugs in loose_object_info() object-file.c: stop dying in parse_loose_header() object-file.c: split up ternary in parse_loose_header() object-file.c: simplify unpack_loose_short_header() object-file.c: add missing braces to loose_object_info() object-file.c: make parse_loose_header_extended() public object-file.c: don't set "typep" when returning non-zero cache.h: move object functions to object-store.h cat-file tests: test for current --allow-unknown-type behavior cat-file tests: add corrupt loose object test rev-list tests: test for behavior with invalid object types cat-file tests: test that --allow-unknown-type isn't on by default cat-file tests: test for missing object with -t and -s fsck tests: add test for fsck-ing an unknown type ...
3 hoursMerge branch 'ab/config-based-hooks-base' into seenJunio C Hamano
Restructuring of (a subset of) Emily's config-based-hooks series, to demonstrate that a series can be presented as a more logical and focused progression. * ab/config-based-hooks-base: (33 commits) hooks: fix a TOCTOU in "did we run a hook?" heuristic receive-pack: convert receive hooks to hook.h post-update: use hook.h library receive-pack: convert 'update' hook to hook.h hooks: allow callers to capture output run-command: allow capturing of collated output reference-transaction: use hook.h to run hooks transport: convert pre-push hook to use config hook: convert 'post-rewrite' hook in sequencer.c to hook.h hook: provide stdin by string_list or callback run-command: add stdin callback for parallelization am: convert 'post-rewrite' hook to hook.h hook: support passing stdin to hooks run-command: allow stdin for run_processes_parallel run-command: remove old run_hook_{le,ve}() hook API receive-pack: convert push-to-checkout hook to hook.h read-cache: convert post-index-change hook to use config commit: use hook.h to execute hooks git-p4: use 'git hook' to run hooks send-email: use 'git hook run' for 'sendemail-validate' ...
3 hoursMerge branch 'ab/serve-cleanup' into seenJunio C Hamano
Code clean-up around "git serve". * ab/serve-cleanup: upload-pack.c: convert to new serve.c "startup" config cb serve: add support for a "startup" git_config() callback serve.c: add trace2 regions for advertise & command serve.c: add call_{advertise,command}() indirection serve: use designated initializers transport: use designated initializers transport: rename "fetch" in transport_vtable to "fetch_refs" serve: mark has_capability() as static
3 hoursMerge branch 'es/superproject-aware-submodules' into seenJunio C Hamano
A configuration variable in a submodule points at the location of the superproject it is bound to (RFC). * es/superproject-aware-submodules: SQUASH??? submodule: cache superproject gitdir during 'update' submodule: cache superproject gitdir during absorbgitdirs introduce submodule.superprojectGitDir cache t7400-submodule-basic: modernize inspect() helper
3 hoursMerge branch 'en/zdiff3' into seenJunio C Hamano
"Zealous diff3" style of merge conflict presentation has been added. * en/zdiff3: update documentation for new zdiff3 conflictStyle xdiff: implement a zealous diff3, or "zdiff3"
3 hoursMerge branch 'ab/pack-objects-stdin' into seenJunio C Hamano
Introduce handle_stdin_line callback to revision API and uses it. * ab/pack-objects-stdin: pack-objects.c: make use of REV_INFO_STDIN_LINE_PROCESS pack-objects.c: do stdin parsing via revision.c's API revision.[ch]: add a "handle_stdin_line" API revision.h: refactor "disable_stdin" and "read_from_stdin" upload-pack: run is_repository_shallow() before setup_revisions()
3 hoursMerge branch 'ab/test-tool-cache-cleanup' into seenJunio C Hamano
Test code shuffling. * ab/test-tool-cache-cleanup: read-cache perf: add a perf test for refresh_index() test-tool: migrate read-cache-again to parse_options() test-tool: migrate read-cache-perf to parse_options() test-tool: split up test-tool read-cache
3 hoursMerge branch 'ao/p4-avoid-decoding' into seenJunio C Hamano
"git p4" in Python-2 days used to accept a lot more kinds of data from Perforce server as uninterrupted byte sequence, but after switching to Python-3, too many things are expected to be in UTF-8, which broke traditional use cases. * ao/p4-avoid-decoding: git-p4: do not decode data from perforce by default git-p4: avoid decoding more data from perforce
3 hoursMerge branch 'gh/gitweb-branch-sort' into seenJunio C Hamano
Tie-break branches that point at the same object in the list of branches on GitWeb to show the one pointed at by HEAD early. * gh/gitweb-branch-sort: gitweb: use HEAD as secondary sort key in git_get_heads_list()
3 hoursMerge branch 'lh/systemd-timers' into seenJunio C Hamano
"git maintenance" scheduler learned to use systemd timers as a possible backend. * lh/systemd-timers: maintenance: add support for systemd timers on Linux maintenance: `git maintenance run` learned `--scheduler=<scheduler>` cache.h: Introduce a generic "xdg_config_home_for(…)" function
3 hoursMerge branch 'bc/inactive-submodules' into seenJunio C Hamano
Usability update for inactive submodules. Under review. cf. <> cf. <> * bc/inactive-submodules: submodule: mark submodules with update=none as inactive
3 hoursMerge branch 'es/trace2-log-parent-process-name' into seenJunio C Hamano
trace2 logs learned to show parent process name to see in what context Git was invoked. Looking good. Ready for 'next'? * es/trace2-log-parent-process-name: tr2: log parent process name tr2: make process info collection platform-generic
3 hoursMerge branch 'ar/submodule-add-config' into seenJunio C Hamano
Large part of "git submodule add" gets rewritten in C. * ar/submodule-add-config: submodule--helper: introduce add-config subcommand
3 hoursMerge branch 'tb/mingw-rmdir-symlink-to-directory' into seenJunio C Hamano
* tb/mingw-rmdir-symlink-to-directory: mingw: align symlinks-related rmdir() behavior with Linux
3 hoursMerge branch 'ar/doc-markup-fix' into jchJunio C Hamano
* ar/doc-markup-fix: Documentation: render special characters correctly
3 hoursMerge branch 'ab/getcwd-test' into jchJunio C Hamano
* ab/getcwd-test: t0001: fix broken not-quite getcwd(3) test in bed67874e2
3 hoursMerge branch 'rs/use-fspathhash' into jchJunio C Hamano
* rs/use-fspathhash: use fspathhash() everywhere
3 hoursMerge branch 'ds/add-with-sparse-index' into jchJunio C Hamano
"git add" can work better with the sparse index. * ds/add-with-sparse-index: add: remove ensure_full_index() with --renormalize add: ignore outside the sparse-checkout in refresh() pathspec: stop calling ensure_full_index add: allow operating on a sparse-only index t1092: test merge conflicts outside cone
3 hoursMerge branch 'jc/trivial-threeway-binary-merge' into jchJunio C Hamano
The built-in merge driver for binary files learned to resolve trivial three-way merges (e.g. apply change, which turns A into B, to content A) by itself, which would help "git apply --3way" used when there is no need to use "--3way". * jc/trivial-threeway-binary-merge: ll-merge: teach ll_binary_merge() a trivial three-way merge
3 hoursMerge branch 'jc/bisect-sans-show-branch' into jchJunio C Hamano
"git bisect" spawned "git show-branch" only to pretty-print the title of the commit after checking out the next version to be tested; this has been rewritten in C. * jc/bisect-sans-show-branch: bisect: simplify return code from bisect_checkout() bisect: do not run show-branch just to show the current commit
3 hoursMerge branch 'os/bisect-runs-show-branch-without-pager' into jchJunio C Hamano
When "git bisect" spawns "git show-branch" to pretty-print the title of the commit to be tested, it could have invoked user's pager if user configured to run pager while running show-branch. The invocation of show-branch has been changed to disable pager, even if one is configured. * os/bisect-runs-show-branch-without-pager: bisect: disable pager while invoking show-branch
3 hoursMerge branch 'zh/cherry-pick-help-is-only-for-sequencer' into jchJunio C Hamano
"git cherry-pick" loses its state file when a stray GIT_CHERRY_PICK_HELP environment is present, which has been corrected. * zh/cherry-pick-help-is-only-for-sequencer: cherry-pick: fix bug when used with GIT_CHERRY_PICK_HELP
3 hoursMerge branch 'js/expand-runtime-prefix' into jchJunio C Hamano
Pathname expansion (like "~username/") learned a way to specify a location relative to Git installation (e.g. its $sharedir which is $(prefix)/share), with "%(prefix)". * js/expand-runtime-prefix: expand_user_path: allow in-flight topics to keep using the old name interpolate_path(): allow specifying paths relative to the runtime prefix Use a better name for the function interpolating paths expand_user_path(): clarify the role of the `real_home` parameter expand_user_path(): remove stale part of the comment tests: exercise the RUNTIME_PREFIX feature
3 hoursMerge branch 'pw/diff-color-moved-fix' into jchJunio C Hamano
Long-overdue correctness and performance update to "diff --color-moved" feature. * pw/diff-color-moved-fix: diff --color-moved: intern strings diff: use designated initializers for emitted_diff_symbol diff --color-moved-ws=allow-indentation-change: improve hash lookups diff --color-moved: stop clearing potential moved blocks diff --color-moved: shrink potential moved blocks as we go diff --color-moved: unify moved block growth functions diff --color-moved: call comparison function directly diff --color-moved-ws=allow-indentation-change: simplify and optimize diff: simplify allow-indentation-change delta calculation diff --color-moved: avoid false short line matches and bad zerba coloring diff --color-moved=zebra: fix alternate coloring diff --color-moved: add perf tests
3 hoursMerge branch 'ab/bundle-doc' into jchJunio C Hamano
Doc update. * ab/bundle-doc: bundle doc: elaborate on rev<->ref restriction bundle doc: elaborate on object prerequisites bundle doc: rewrite the "DESCRIPTION" section
3 hoursMerge branch 'en/pull-conflicting-options' into jchJunio C Hamano
"git pull" had various corner cases that were not well thought out around its --rebase backend, e.g. "git pull --ff-only" did not stop but went ahead and rebased when the history on other side is not a descendant of our history. The series tries to fix them up. * en/pull-conflicting-options: pull: fix handling of multiple heads pull: update docs & code for option compatibility with rebasing pull: abort by default when fast-forwarding is not possible pull: make --rebase and --no-rebase override pull.ff=only pull: since --ff-only overrides, handle it first pull: abort if --ff-only is given and fast-forwarding is impossible t7601: add tests of interactions with multiple merge heads and config t7601: test interaction of merge/rebase/fast-forward flags and options
3 hoursMerge branch 'jt/push-negotiation-fixes' into jchJunio C Hamano
Bugfix for common ancestor negotiation recently introduced in "git push" codepath. * jt/push-negotiation-fixes: fetch: die on invalid --negotiation-tip hash send-pack: fix push nego. when remote has refs send-pack: fix push.negotiate with remote helper
3 hoursMerge branch 'fc/completion-updates' into jchJunio C Hamano
Command line completion updates. * fc/completion-updates: completion: bash: add correct suffix in variables completion: bash: fix for multiple dash commands completion: bash: fix for suboptions with value completion: bash: fix prefix detection in branch.*
3 hoursMerge branch 'tv/p4-fallback-encoding' into jchJunio C Hamano
"git p4" learns the fallbackEncoding configuration variable to safely accept changeset descriptions that aren't written in UTF-8. * tv/p4-fallback-encoding: git-p4: git-p4.fallbackEncoding to specify non UTF-8 charset
3 hoursMerge branch 'zh/ref-filter-raw-data' into jchJunio C Hamano
Prepare the "ref-filter" machinery that drives the "--format" option of "git for-each-ref" and its friends to be used in "git cat-file --batch". * zh/ref-filter-raw-data: ref-filter: add %(rest) atom ref-filter: use non-const ref_format in *_atom_parser() ref-filter: --format=%(raw) support --perl ref-filter: add %(raw) atom ref-filter: add obj-type check in grab contents
3 hoursMerge branch 'hn/refs-errno-cleanup' into jchJunio C Hamano
Futz with the way 'errno' is relied on in the refs API to carry the failure modes up the callchain. * hn/refs-errno-cleanup: refs: make errno output explicit for refs_resolve_ref_unsafe refs: explicitly return failure_errno from parse_loose_ref_contents refs: add failure_errno to refs_read_raw_ref() signature refs: make errno output explicit for read_raw_ref_fn refs/files-backend: stop setting errno from lock_ref_oid_basic refs: remove EINVAL errno output from specification of read_raw_ref_fn refs file backend: move raceproof_create_file() here
3 hoursMerge branch 'ab/refs-files-cleanup' into jchJunio C Hamano
Patches are mostly good, but needs typofixes etc. * ab/refs-files-cleanup: refs/files: remove unused "errno != ENOTDIR" condition refs/files: remove unused "errno == EISDIR" code refs/files: remove unused "oid" in lock_ref_oid_basic() reflog expire: don't lock reflogs using previously seen OID refs/files: add a comment about refs_reflog_exists() call refs: make repo_dwim_log() accept a NULL oid refs/debug: re-indent argument list for "prepare" refs/files: remove unused "skip" in lock_raw_ref() too refs/files: remove unused "extras/skip" in lock_ref_oid_basic() refs/files: remove unused REF_DELETING in lock_ref_oid_basic() refs/packet: add missing BUG() invocations to reflog callbacks
3 hoursMerge branch 'ab/progress-users-adjust-counters' into jchJunio C Hamano
The code to show progress indicator in a few codepaths did not cover between 0-100%, which has been corrected. * ab/progress-users-adjust-counters: entry: show finer-grained counter in "Filtering content" progress line midx: don't provide a total for QSORT() progress commit-graph: fix bogus counter in "Scanning merged commits" progress line
3 hours### match nextJunio C Hamano
3 hoursMerge branch 'pb/merge-autostash-more' into jchJunio C Hamano
The local changes stashed by "git merge --autostash" were lost when the merge failed in certain ways, which has been corrected. * pb/merge-autostash-more: merge: apply autostash if merge strategy fails merge: apply autostash if fast-forward fails Documentation: define 'MERGE_AUTOSTASH' merge: add missing word "strategy" to a message
3 hoursMerge branch 'en/ort-perf-batch-14' into jchJunio C Hamano
Further optimization on "merge -sort" backend. * en/ort-perf-batch-14: merge-ort: restart merge with cached renames to reduce process entry cost merge-ort: avoid recursing into directories when we don't need to merge-ort: defer recursing into directories when merge base is matched merge-ort: add a handle_deferred_entries() helper function merge-ort: add data structures for allowable trivial directory resolves merge-ort: add some more explanations in collect_merge_info_callback() merge-ort: resolve paths early when we have sufficient information