What's cooking in git.git (Aug 2022, #08; Wed, 24)
Here are the topics that have been cooking in my tree. Commits prefixed with '+' are in 'next' (being in 'next' is a sign that a topic is stable enough to be used and are candidate to be in a future release). Commits prefixed with '-' are only in 'seen', and aren't considered "accepted" at all. A topic without enough support may be discarded after a long period of no activity.
We are in the middle of the week #7 of a 12-week cycle (cf. https://tinyurl.com/gitCal).
Copies of the source code to Git live in many repositories, and the following is a list of the ones I push into or their mirrors. Some repositories have only a subset of branches.
With maint, master, next, seen, todo:
git://git.kernel.org/pub/scm/git/git.git/ git://repo.or.cz/alt-git.git/ https://kernel.googlesource.com/pub/scm/git/git/ https://github.com/git/git/ https://gitlab.com/git-vcs/git/
With all the integration branches and topics broken out:
https://github.com/gitster/git/
Even though the preformatted documentation in HTML and man format are not sources, they are published in these repositories for convenience (replace "htmldocs" with "manpages" for the manual pages):
git://git.kernel.org/pub/scm/git/git-htmldocs.git/
https://github.com/gitster/git-htmldocs.git/
Release tarballs are available at:
https://www.kernel.org/pub/software/scm/git/
--------------------------------------------------
[New Topics]
* ds/bundle-uri-3 (2022-08-24) 8 commits
- bundle-uri: fetch a list of bundles
- bundle-uri: limit recursion depth for bundle lists
- bundle-uri: parse bundle list in config format
- bundle-uri: unit test "key=value" parsing
- bundle-uri: create "key=value" line parsing
- bundle-uri: create base key-value pair parsing
- bundle-uri: create bundle_list struct and helpers
- Merge branch 'ds/bundle-uri-clone' into ds/bundle-uri-3 (this branch uses ds/bundle-uri-clone.)
Define the logical elements of a "bundle list", data structure to store them in-core, format to transfer them, and code to parse them.
Needs review.
source: <[email protected]>
* en/merge-unstash-only-on-clean-merge (2022-08-24) 1 commit
- merge: only apply autostash when appropriate
The auto-stashed local changes created by "git merge --autostash" was mixed into a conflicted state left in the working tree, which has been corrected.
Will merge to 'next'.
source: <610b8d089db97bf1a37dbf230f51ecafe3086254.1661222541.git.gitgitgadget@gmail.com>
* es/fix-chained-tests (2022-08-24) 4 commits (merged to 'next' on 2022-08-24 at 6266835a6e)
+ t5329: notice a failure within a loop (merged to 'next' on 2022-08-22 at 3774cfdaf4)
+ t: detect and signal failure within loop
+ t1092: fix buggy sparse "blame" test
+ t2407: fix broken &&-chains in compound statement
Fix broken "&&-" chains and failures in early iterations of a loop.
Will merge to 'master'.
source: <[email protected]>
* ad/preload-plug-memleak (2022-08-22) 1 commit
(merged to 'next' on 2022-08-24 at 1cad371f1c)
+ preload-index: fix memleak
The preload-index codepath made copies of pathspec to give to multiple threads, which were left leaked.
Will merge to 'master'.
source: <[email protected]>
* sg/xcalloc-cocci-fix (2022-08-24) 1 commit
(merged to 'next' on 2022-08-24 at 84c05819d3)
+ promisor-remote: fix xcalloc() argument order
xcalloc(), imitating calloc(), takes "number of elements of the array", and "size of a single element", in this order. A call that does not follow this ordering has been corrected.
Will merge to 'master'.
source: <[email protected]>
* ds/github-actions-use-newer-ubuntu (2022-08-24) 1 commit (merged to 'next' on 2022-08-24 at 55a76348b2)
+ ci: update 'static-analysis' to Ubuntu 22.04
Update the version of Ubuntu used for GitHub Actions CI from 18.04 to 22.04.
Will merge to 'master'.
source: <[email protected]>
* en/merge-multi-strategies (2022-08-24) 2 commits
- merge: small code readability improvement
- merge: cleanup confusing logic for handling successful merges
The code that implements multi-strategy support in "git merge" has been clean-up a bit.
Will merge to 'next'.
source: <[email protected]>
* en/t4301-more-merge-tree-tests (2022-08-24) 1 commit
- t4301: add more interesting merge-tree testcases
More tests to protect the current behaviour of "merge-tree" before it gets further updated.
Will merge to 'next'.
source: <[email protected]>
* js/add-p-diff-parsing-fix (2022-08-24) 4 commits
- add -p: ignore dirty submodules
- add -p: handle diff-so-fancy's hunk headers better
- add -p: gracefully ignore unparseable hunk headers in colored diffs
- t3701: redefine what is "bogus" output of a diff filter
Those who use diff-so-fancy as the diff-filter noticed a regression or two in the reimplemented "add -p", which has been corrected.
Needs review.
source: <[email protected]>
* js/cmake-updates (2022-08-24) 5 commits
- cmake: increase time-out for a long-running test
- cmake: avoid editing t/test-lib.sh
- add -p: avoid ambiguous signed/unsigned comparison
- cmake: copy the merge tools for testing
- cmake: make it easier to diagnose regressions in CTest runs
Update to build procedure with VS using CMake/CTest.
Needs review.
source: <[email protected]>
* js/range-diff-with-pathspec (2022-08-24) 2 commits
- range-diff: optionally accept a pathspec
- range-diff: reorder argument handling
Allow passing a pathspec to "git range-diff".
Needs review.
source: <[email protected]>
--------------------------------------------------
[Cooking]
* en/ort-unused-code-removal (2022-08-19) 1 commit (merged to 'next' on 2022-08-22 at f09dbeeca3)
+ merge-ort: remove code obsoleted by other changes
Code clean-up.
Will merge to 'master'.
source: <[email protected]>
* jd/prompt-show-conflict (2022-08-19) 1 commit
(merged to 'next' on 2022-08-19 at 83af487823)
+ git-prompt: show presence of unresolved conflicts at command prompt
The bash prompt (in contrib/) learned to optionally indicate when the index is unmerged.
Will merge to 'master'.
source: <[email protected]>
* jk/unused-annotation (2022-08-19) 11 commits
(merged to 'next' on 2022-08-24 at 2174b8c75d)
+ is_path_owned_by_current_uid(): mark "report" parameter as unused
+ run-command: mark unused async callback parameters
+ mark unused read_tree_recursive() callback parameters
+ hashmap: mark unused callback parameters
+ config: mark unused callback parameters
+ streaming: mark unused virtual method parameters
+ transport: mark bundle transport_options as unused
+ refs: mark unused virtual method parameters
+ refs: mark unused reflog callback parameters
+ refs: mark unused each_ref_fn parameters
+ git-compat-util: add UNUSED macro
Annotate function parameters that are not used (but cannot be removed for structural reasons), to prepare us to later compile with -Wunused warning turned on.
Will merge to 'master'.
source: <[email protected]>
* jk/unused-fixes (2022-08-20) 7 commits
(merged to 'next' on 2022-08-22 at 2fe4de2aed)
+ xdiff: drop unused mmfile parameters from xdl_do_patience_diff()
+ reflog: assert PARSE_OPT_NONEG in parse-options callbacks
+ reftable: drop unused parameter from reader_seek_linear()
+ verify_one_sparse(): drop unused parameters
+ match_pathname(): drop unused "flags" parameter
+ log-tree: drop unused commit param in remerge_diff()
+ xdiff: drop unused mmfile parameters from xdl_do_histogram_diff()
Code clean-up to remove unused function parameters.
Will merge to 'master'.
source: <[email protected]>
source: <[email protected]>
* mg/sequencer-untranslate-reflog (2022-08-19) 3 commits (merged to 'next' on 2022-08-22 at 75aadeb865)
+ sequencer: do not translate command names
+ sequencer: do not translate parameters to error_resolve_conflict()
+ sequencer: do not translate reflog messages
The sequencer machinery translated messages left in the reflog by mistake, which has been corrected.
Will merge to 'master'.
source: <[email protected]>
* tb/midx-with-changing-preferred-pack-fix (2022-08-22) 7 commits
- midx.c: avoid adding preferred objects twice
- midx.c: include preferred pack correctly with existing MIDX
- midx.c: extract midx_fanout_add_pack_fanout()
- midx.c: extract midx_fanout_add_midx_fanout()
- midx.c: extract struct midx_fanout
- t/lib-bitmap.sh: avoid silencing stderr
- t5326: demonstrate potential bitmap corruption
Multi-pack index got corrupted when preferred pack changed from one pack to another in a certain way, which has been corrected.
Will merge to 'next'?
cf. <[email protected]>
source: <[email protected]>
* vd/fix-perf-tests (2022-08-19) 2 commits
(merged to 'next' on 2022-08-22 at e68356e624)
+ p0006: fix 'read-tree' argument ordering
+ p0004: fix prereq declaration
Rather trivial perf-test code fixes.
Will merge to 'master'.
source: <[email protected]>
* vd/scalar-enables-fsmonitor (2022-08-18) 8 commits (merged to 'next' on 2022-08-19 at 1e172e5647)
+ scalar: update technical doc roadmap with FSMonitor support
+ scalar unregister: stop FSMonitor daemon
+ scalar: enable built-in FSMonitor on register
+ scalar: move config setting logic into its own function
+ scalar-delete: do not 'die()' in 'delete_enlistment()'
+ scalar-[un]register: clearly indicate source of error
+ scalar-unregister: handle error codes greater than 0
+ scalar: constrain enlistment search
"scalar" now enables built-in fsmonitor on enlisted repositories, when able.
Will merge to 'master'.
source: <[email protected]>
* en/ancestry-path-in-a-range (2022-08-19) 3 commits (merged to 'next' on 2022-08-19 at 4fce3015b3)
+ revision: allow --ancestry-path to take an argument
+ t6019: modernize tests with helper
+ rev-list-options.txt: fix simple typo
"git rev-list --ancestry-path=C A..B" is a natural extension of "git rev-list A..B"; instead of choosing a subset of A..B to those that have ancestry relationship with A, it lets a subset with ancestry relationship with C.
Will merge to 'master'.
source: <[email protected]>
* en/submodule-merge-messages-fixes (2022-08-18) 3 commits (merged to 'next' on 2022-08-18 at eb89a1e70f)
+ merge-ort: provide helpful submodule update message when possible
+ merge-ort: avoid surprise with new sub_flag variable
+ merge-ort: remove translator lego in new "submodule conflict suggestion" (this branch uses cw/submodule-merge-messages.)
Further update the help messages given while merging submodules.
Will merge to 'master'.
source: <[email protected]>
* ed/fsmonitor-on-network-disk (2022-08-24) 3 commits
- Check working directory and Unix domain socket file for compatability
- fsmonitor: macOS: allow fsmonitor to run against network-mounted repos (merged to 'next' on 2022-08-14 at 637d458d9c)
+ fsmonitor: option to allow fsmonitor to run against network-mounted repos
The built-in fsmonitor refuses to work on a network mounted repositories; a configuration knob for users to override this has been introduced.
Needs review.
source: <[email protected]>
source: <[email protected]>
* jk/is-promisor-object-keep-tree-in-use (2022-08-14) 1 commit (merged to 'next' on 2022-08-17 at 96033ff88d)
+ is_promisor_object(): fix use-after-free of tree buffer
An earlier optimization discarded a tree-object buffer that is still in use, which has been corrected.
Will merge to 'master'.
source: <[email protected]>
* js/fetch-negotiation-trace (2022-08-15) 1 commit (merged to 'next' on 2022-08-17 at 2c9e07b617)
+ fetch-pack: add tracing for negotiation rounds
The common ancestor negotiation exchange during a "git fetch" session now leaves trace log.
Will merge to 'master'.
source: <4390677ec75d51487142adf7c2ab821cbd24a53e.1659477669.git.steadmon@google.com>
* pw/rebase-keep-base-fixes (2022-08-18) 5 commits
- rebase --keep-base: imply --no-fork-point
- rebase --keep-base: imply --reapply-cherry-picks
- rebase: factor out merge_base calculation
- rebase: store orig_head as a commit
- t3416: set $EDITOR in subshell
"git rebase --keep-base" used to discard the commits that are already cherry-picked to the upstream, even when "keep-base" meant that the base, on top of which the history is being rebuilt, does not yet include these cherry-picked commits. The --keep-base option now implies --reapply-cherry-picks and --no-fork-point options.
Expecting a reroll.
cf. <[email protected]>
source: <[email protected]>
* ag/merge-strategies-in-c (2022-08-10) 14 commits
- sequencer: use the "octopus" strategy without forking
- sequencer: use the "resolve" strategy without forking
- merge: use the "octopus" strategy without forking
- merge: use the "resolve" strategy without forking
- merge-octopus: rewrite in C
- merge-recursive: move better_branch_name() to merge.c
- merge-resolve: rewrite in C
- merge-one-file: rewrite in C
- update-index: move add_cacheinfo() to read-cache.c
- merge-index: add a new way to invoke `git-merge-one-file'
- merge-index: drop the index
- merge-index: libify merge_one_path() and merge_all()
- t6060: add tests for removed files
- t6060: modify multiple files to expose a possible issue with merge-index
An attempt to rewrite remaining merge strategies from shell to C.
Needs more work.
At the minimum, we should lose 11/14 and possibly 08/14. cf. <[email protected]>
source: <[email protected]>
* sy/mv-out-of-cone (2022-08-10) 9 commits
(merged to 'next' on 2022-08-17 at 2316d9ce4d)
+ mv: check overwrite for in-to-out move
+ advice.h: add advise_on_moving_dirty_path()
+ mv: cleanup empty WORKING_DIRECTORY
+ mv: from in-cone to out-of-cone
+ mv: remove BOTH from enum update_mode
+ mv: check if <destination> is a SKIP_WORKTREE_DIR
+ mv: free the with_slash in check_dir_in_index()
+ mv: rename check_dir_in_index() to empty_dir_has_sparse_contents()
+ t7002: add tests for moving from in-cone to out-of-cone
"git mv A B" in a sparsely populated working tree can be asked to move a path from a directory that is "in cone" to another directory that is "out of cone". Handling of such a case has been improved.
Will merge to 'master'.
source: <[email protected]>
* vd/scalar-generalize-diagnose (2022-08-12) 11 commits (merged to 'next' on 2022-08-18 at bd8e574713)
+ scalar: update technical doc roadmap
+ scalar-diagnose: use 'git diagnose --mode=all'
+ builtin/bugreport.c: create '--diagnose' option
+ builtin/diagnose.c: add '--mode' option
+ builtin/diagnose.c: create 'git diagnose' builtin
+ diagnose.c: add option to configure archive contents
+ scalar-diagnose: move functionality to common location
+ scalar-diagnose: move 'get_disk_info()' to 'compat/'
+ scalar-diagnose: add directory to archiver more gently
+ scalar-diagnose: avoid 32-bit overflow of size_t
+ scalar-diagnose: use "$GIT_UNZIP" in test
The "diagnose" feature to create a zip archive for diagnostic material has been lifted from "scalar" and made into a feature of "git bugreport".
Will merge to 'master'.
source: <[email protected]>
* jk/pipe-command-nonblock (2022-08-17) 6 commits (merged to 'next' on 2022-08-17 at 91fe8e6354)
+ pipe_command(): mark stdin descriptor as non-blocking
+ pipe_command(): handle ENOSPC when writing to a pipe
+ pipe_command(): avoid xwrite() for writing to pipe
+ git-compat-util: make MAX_IO_SIZE define globally available
+ nonblock: support Windows
+ compat: add function to enable nonblocking pipes
Fix deadlocks between main Git process and subprocess spawned via the pipe_command() API, that can kill "git add -p" that was reimplemented in C recently.
Will merge to 'master'.
source: <[email protected]>
* es/mark-gc-cruft-as-experimental (2022-08-03) 2 commits
- config: let feature.experimental imply gc.cruftPacks=true
- gc: add tests for --cruft and friends
Enable gc.cruftpacks by default for those who opt into feature.experimental setting.
Expecting a reroll.
cf. <[email protected]> cf. <[email protected]>
source: <[email protected]>
* sg/parse-options-subcommand (2022-08-19) 20 commits
(merged to 'next' on 2022-08-22 at 09d07c2271)
+ builtin/worktree.c: let parse-options parse subcommands
+ builtin/stash.c: let parse-options parse subcommands
+ builtin/sparse-checkout.c: let parse-options parse subcommands
+ builtin/remote.c: let parse-options parse subcommands
+ builtin/reflog.c: let parse-options parse subcommands
+ builtin/notes.c: let parse-options parse subcommands
+ builtin/multi-pack-index.c: let parse-options parse subcommands
+ builtin/hook.c: let parse-options parse subcommands
+ builtin/gc.c: let parse-options parse 'git maintenance's subcommands
+ builtin/commit-graph.c: let parse-options parse subcommands
+ builtin/bundle.c: let parse-options parse subcommands
+ parse-options: add support for parsing subcommands
+ parse-options: drop leading space from '--git-completion-helper' output
+ parse-options: clarify the limitations of PARSE_OPT_NODASH
+ parse-options: PARSE_OPT_KEEP_UNKNOWN only applies to --options
+ api-parse-options.txt: fix description of OPT_CMDMODE
+ t0040-parse-options: test parse_options() with various 'parse_opt_flags'
+ t5505-remote.sh: check the behavior without a subcommand
+ t3301-notes.sh: check that default operation mode doesn't take arguments
+ git.c: update NO_PARSEOPT markings
Introduce the "subcommand" mode to parse-options API and update the command line parser of Git commands with subcommands.
Will merge to 'master'.
source: <[email protected]>
* ds/bundle-uri-clone (2022-08-24) 6 commits
- clone: warn on failure to repo_init() (merged to 'next' on 2022-08-18 at 5e8a3ec71e)
+ clone: --bundle-uri cannot be combined with --depth
+ bundle-uri: add support for http(s):// and file://
+ clone: add --bundle-uri option
+ bundle-uri: create basic file-copy logic
+ remote-curl: add 'get' capability
(this branch is used by ds/bundle-uri-3.)
Implement "git clone --bundle-uri".
Will merge to 'master'.
source: <[email protected]>
source: <[email protected]>
* ds/decorate-filter-tweak (2022-08-05) 11 commits (merged to 'next' on 2022-08-19 at 064b9daa85)
+ fetch: use ref_namespaces during prefetch
+ maintenance: stop writing log.excludeDecoration
+ log: create log.initialDecorationSet=all
+ log: add --clear-decorations option
+ log: add default decoration filter
+ log-tree: use ref_namespaces instead of if/else-if
+ refs: use ref_namespaces for replace refs base
+ refs: add array of ref namespaces
+ t4207: test coloring of grafted decorations
+ t4207: modernize test
+ refs: allow "HEAD" as decoration filter
The namespaces used by "log --decorate" from "refs/" hierarchy by default has been tightened.
Will merge to 'master'.
source: <[email protected]>
* es/doc-creation-factor-fix (2022-07-28) 2 commits
- range-diff: clarify --creation-factor=<factor>
- format-patch: clarify --creation-factor=<factor>
Expecting a reroll.
source: <[email protected]>
* ab/submodule-helper-prep (2022-08-22) 32 commits
- submodule--helper: fix bad config API usage
- submodule--helper: libify even more "die" paths for module_update()
- submodule--helper: libify more "die" paths for module_update()
- submodule--helper: check repo{_submodule,}_init() return values
- submodule--helper: libify "must_die_on_failure" code paths (for die)
- submodule--helper update: don't override 'checkout' exit code
- submodule--helper: libify "must_die_on_failure" code paths
- submodule--helper: libify determine_submodule_update_strategy()
- submodule--helper: don't exit() on failure, return
- submodule--helper: use "code" in run_update_command()
- submodule API: don't handle SM_..{UNSPECIFIED,COMMAND} in to_string()
- submodule--helper: don't call submodule_strategy_to_string() in BUG()
- submodule--helper: add missing braces to "else" arm
- submodule--helper: return "ret", not "1" from update_submodule()
- submodule--helper: rename "int res" to "int ret"
- submodule--helper: don't redundantly check "else if (res)"
- submodule--helper: refactor "errmsg_str" to be a "struct strbuf"
- submodule--helper: add "const" to copy of "update_data"
- submodule--helper: add "const" to passed "module_clone_data"
- submodule--helper: move "sb" in clone_submodule() to its own scope
- submodule--helper: use xstrfmt() in clone_submodule()
- submodule--helper: replace memset() with { 0 }-initialization
- submodule--helper style: add \n\n after variable declarations
- submodule--helper style: don't separate declared variables with \n\n
- submodule--helper: move "resolve-relative-url-test" to a test-tool
- submodule--helper: move "check-name" to a test-tool
- submodule--helper: move "is-active" to a test-tool
- test-tool submodule-config: remove unused "--url" handling
- submodule--helper: remove unused "list" helper
- submodule--helper: remove unused "name" helper
- submodule tests: test for "add <repository> <abs-path>"
- submodule tests: test usage behavior
(this branch is used by ab/submodule-helper-leakfix.)
Code clean-up of "git submodule--helper".
Under review.
source: <[email protected]>
* ab/dedup-config-and-command-docs (2022-07-29) 9 commits
- docs: add CONFIGURATION sections that fuzzy map to built-ins
- docs: add CONFIGURATION sections that map to a built-in
- log docs: de-duplicate configuration sections
- difftool docs: de-duplicate configuration sections
- notes docs: de-duplicate configuration sections
- apply docs: de-duplicate configuration sections
- send-email docs: de-duplicate configuration sections
- grep docs: de-duplicate configuration sections
- docs: add and use include template for config/* includes
Share the text used to explain configuration variables used by "git <subcmd>" in "git help <subcmd>" with the text from "git help config".
Expecting a reroll.
cf. <CAHd-oW5mD-H1kvuF9VEVb8KjaSkUSUpBH-WAkpCn6_Ci8o888w@mail.gmail.com> cf. <CAHd-oW7s6Hu24uTjCW9ROBbJkA5+7TCu32a4L_BXVLhcvw5kSw@mail.gmail.com> cf. <[email protected]>
source: <[email protected]>
* cw/remote-object-info (2022-08-13) 7 commits
- SQUASH???
- cat-file: add remote-object-info to batch-command
- transport: add client support for object-info
- serve: advertise object-info feature
- protocol-caps: initialization bug fix
- fetch-pack: move fetch initialization
- fetch-pack: refactor packet writing
A client component to talk with the object-info endpoint.
Expecting a reroll.
cf. <[email protected]>
cf. <CAFySSZDvgwbbHCHfyuaqX3tKsr-GjJ9iihygg6rNNe46Ys7_EA@mail.gmail.com>
source: <[email protected]>
* mt/rot13-in-c (2022-08-14) 4 commits
(merged to 'next' on 2022-08-19 at 22152a150c)
+ tests: use the new C rot13-filter helper to avoid PERL prereq
+ t0021: implementation the rot13-filter.pl script in C
+ t0021: avoid grepping for a Perl-specific string at filter output
+ Merge branch 'mt/checkout-count-fix' into mt/rot13-in-c
Test portability improvements.
Will merge to 'master'.
source: <[email protected]>
* tl/trace2-config-scope (2022-08-11) 2 commits
(merged to 'next' on 2022-08-22 at 75a09c7a34)
+ tr2: shows scope unconditionally in addition to key-value pair
+ api-trace2.txt: print config key-value pair
Tweak trace2 output about configuration variables.
Will merge to 'master'.
source: <[email protected]>
* ab/submodule-helper-leakfix (2022-08-22) 18 commits
- submodule--helper: fix a configure_added_submodule() leak
- submodule--helper: free rest of "displaypath" in "struct update_data"
- submodule--helper: free some "displaypath" in "struct update_data"
- submodule--helper: fix a memory leak in print_status()
- submodule--helper: fix a leak in module_add()
- submodule--helper: fix obscure leak in module_add()
- submodule--helper: fix "reference" leak
- submodule--helper: fix a memory leak in get_default_remote_submodule()
- submodule--helper: fix a leak with repo_clear()
- submodule--helper: fix "sm_path" and other "module_cb_list" leaks
- submodule--helper: fix "errmsg_str" memory leak
- submodule--helper: add and use *_release() functions
- submodule--helper: don't leak {run,capture}_command() cp.dir argument
- submodule--helper: "struct pathspec" memory leak in module_update()
- submodule--helper: fix most "struct pathspec" memory leaks
- submodule--helper: fix trivial get_default_remote_submodule() leak
- submodule--helper: fix a leak in "clone_submodule"
- Merge branch 'ab/submodule-helper-prep' into ab/submodule-helper-leakfix (this branch uses ab/submodule-helper-prep.)
Plugging leaks in submodule--helper.
Waiting for the "prep" step.
source: <[email protected]>
* cw/submodule-merge-messages (2022-08-04) 1 commit (merged to 'next' on 2022-08-12 at ede0890319)
+ submodule merge: update conflict error message (this branch is used by en/submodule-merge-messages-fixes.)
Update the message given when "git merge" sees conflicts at a path with a submodule while merging a superproject.
Will wait for en/submodule-merge-messages-fixes to mature.
source: <[email protected]>
* po/glossary-around-traversal (2022-07-09) 3 commits
- glossary: add reachability bitmap description
- glossary: add commit graph description
- glossary: add Object DataBase (ODB) abbreviation
The glossary entries for "commit-graph file" and "reachability bitmap" have been added.
Expecting a reroll.
cf. <[email protected]>
source: <[email protected]>
* ac/bitmap-lookup-table (2022-08-14) 6 commits
- bitmap-lookup-table: add performance tests for lookup table
- pack-bitmap: prepare to read lookup table extension
- pack-bitmap-write: learn pack.writeBitmapLookupTable and add tests
- pack-bitmap-write.c: write lookup table extension
- bitmap: move get commit positions code to bitmap_writer_finish
- Documentation/technical: describe bitmap lookup table extension
The pack bitmap file gained a bitmap-lookup table to speed up locating the necessary bitmap for a given commit.
Needs review.
cf. <[email protected]>
source: <[email protected]>
* tb/show-ref-count (2022-06-06) 2 commits
- builtin/show-ref.c: limit output with --count
- builtin/show-ref.c: rename found_match to matches_nr
"git show-ref" learned to stop after emitting N refs with the new "--count=N" option.
Expecting a reroll.
cf. <[email protected]>
source: <[email protected]>
* js/bisect-in-c (2022-06-27) 16 commits
- bisect: no longer try to clean up left-over .git/head-name files
- bisect: remove Cogito-related code
- Turn git bisect into a full built-in
- bisect: move even the command-line parsing to bisect--helper
- bisect: teach the bisect--helper command to show the correct usage strings
- bisect--helper: return only correct exit codes in cmd_*()
- bisect--helper: move the BISECT_STATE case to the end
- bisect--helper: make --bisect-state optional
- bisect--helper: align the sub-command order with git-bisect.sh
- bisect--helper: using --bisect-state without an argument is a bug
- bisect--helper: really retire --bisect-autostart
- bisect--helper: really retire --bisect-next-check
- bisect--helper: retire the --no-log option
- bisect: avoid double-quoting when printing the failed command
- bisect run: fix the error message
- bisect: verify that a bogus option won't try to start a bisection
Final bits of "git bisect.sh" have been rewritten in C.
Expecting a (hopefully final) reroll.
cf. <[email protected]>
source: <[email protected]>
--------------------------------------------------
[Discarded]
* jt/connected-show-missing-from-which-side (2022-06-10) 1 commit . fetch,fetch-pack: clarify connectivity check error
We may find an object missing after a "git fetch" stores the objects it obtained from the other side, but it is not necessarily because the remote failed to send necessary objects. Reword the messages in an attempt to help users explore other possibilities when they hit this error.
In stalled state for too long.
Also it seems to break t5326 with sha256.
source: <[email protected]>
* js/merge-tree-without-munging-filenames (2022-08-19) 3 commits . t4301: add a test case involving a rename, type change & modification . merge-tree: show the original file names in the conflict output . merge-tree -z: always show the original file name first
"git merge-tree" output was improved to help "merging without working tree" usecase better in a few ways.
Retracted for now.
cf. <[email protected]>
source: <[email protected]>
Quoted 12 lines · Junio C Hamano
* sy/mv-out-of-cone (2022-08-10) 9 commits
(merged to 'next' on 2022-08-17 at2316d9ce4d)
+ mv: check overwrite for in-to-out move
+advice.h: addadvise_on_moving_dirty_path()
+ mv: cleanup emptyWORKING_DIRECTORY
+ mv: from in-cone to out-of-cone
+ mv: remove BOTH from enumupdate_mode
+ mv: check if <destination> is aSKIP_WORKTREE_DIR
+ mv: free thewith_slashincheck_dir_in_index()
+ mv: renamecheck_dir_in_index()toempty_dir_has_sparse_contents()
+ t7002: add tests for moving from in-cone to out-of-cone
Quoted 6 lines
"git mv A B" in a sparsely populated working tree can be asked to move a path from a directory that is "in cone" to another directory that is "out of cone". Handling of such a case has been improved.
Will merge to 'master'.
source: <[email protected]>
This topic (and now 'next') segfaults with SANITIZE=address in t7001. The problem is running:
git mv path1/path2/ .
The "." in the destination is normalized to the empty string by internal_prefix_pathspec(). But commit c08830de41 (mv: check if <destination> is a SKIP_WORKTREE_DIR, 2022-08-09) then calls add_slash() on the result, and it isn't prepared to see an empty string.
This makes the problem go away:
builtin/mv.c +1 -1
@@ -72,7 +72,7 @@ static const char **internal_prefix_pathspec(const char *prefix,static const char *add_slash (const char *path) {size_t len =strlen (path); -if (path[len -1 ] !='/' ) { +if (len && path[len -1 ] !='/' ) {char *with_slash =xmalloc (st_add (len,2 ));memcpy (with_slash, path, len); with_slash[len++] ='/' ;
but I didn't follow the topic well enough to know if there's anything subtle (i.e., I'm not sure why we need the slash in the first place, and whether "./" would be more appropriate, etc). So punting to folks who were involved. :)
-Peff
Quoted 8 lines · Junio C Hamano
* ac/bitmap-lookup-table (2022-08-14) 6 commits
- bitmap-lookup-table: add performance tests for lookup table
- pack-bitmap: prepare to read lookup table extension
- pack-bitmap-write: learn pack.writeBitmapLookupTable and add tests
-pack-bitmap-write.c: write lookup table extension
- bitmap: moveget commit positionscode tobitmap_writer_finish
-Documentation/technical: describe bitmap lookup table extension
Quoted 6 lines
The pack bitmap file gained a bitmap-lookup table to speed up locating the necessary bitmap for a given commit.
Needs review.
cf. <[email protected]>
source: <[email protected]>
I took a careful look at the latest version of this series (v6) and was happy with the results. My review is here:
https://lore.kernel.org/git/[email protected]
and I think that this is ready to start cooking in next. Well done, Abhradeep!
Quoted 9 lines
* tb/midx-with-changing-preferred-pack-fix (2022-08-22) 7 commits
-midx.c: avoid adding preferred objects twice
-midx.c: include preferred pack correctly with existing MIDX
-midx.c: extractmidx_fanout_add_pack_fanout()
-midx.c: extractmidx_fanout_add_midx_fanout()
-midx.c: extractstruct midx_fanout
-t/lib-bitmap.sh: avoid silencing stderr
- t5326: demonstrate potential bitmap corruption
Quoted 6 lines
Multi-pack index got corrupted when preferred pack changed from one pack to another in a certain way, which has been corrected.
Will merge to 'next'?
cf. <[email protected]>
source: <[email protected]>
Yeah, this one is ready to go. Stolee gave it a look in the email that you linked, and said it looked good to him.
Abhradeep took a brief look and didn't notice any problems (but I think he is quite busy outside of GSoC right now and so didn't appear to spend a significant amount of time reviewing it).
This should probably be taken to next at the same time or before ac/bitmap-lookup-table, since that topic seems to tickle the bug more often than not.
Quoted 10 lines
* tb/show-ref-count (2022-06-06) 2 commits
-builtin/show-ref.c: limit output with--count
-builtin/show-ref.c: renamefound_matchtomatches_nr"git show-ref" learned to stop after emitting N refs with the new "--count=N" option.
Expecting a reroll.
cf. <[email protected]>
source: <[email protected]>
Feel free to discard for now. I put this topic down, and don't think that it's essential to get back to anytime soon-ish.
Thanks,
Taylor