To: git@vger.kernel.org
Bcc: lwn@lwn.net
-Subject: What's cooking in git.git (Apr 2019, #04; Mon, 22)
-X-master-at: 14c0f8d3ab6c36672189cd2dd217f4617d12ccba
-X-next-at: 7a2cf3c8d2cfe6df8d13e6d8a2e2431b74241674
+Subject: What's cooking in git.git (Apr 2019, #05; Thu, 25)
+X-master-at: 83232e38648b51abbcbdb56c94632b6906cc85a6
+X-next-at: f2820cf01acf778d953a46357a6160ba42711eb1
-What's cooking in git.git (Apr 2019, #04; Mon, 22)
+What's cooking in git.git (Apr 2019, #05; Thu, 25)
--------------------------------------------------
Here are the topics that have been cooking. Commits prefixed with
--------------------------------------------------
[Graduated to "master"]
-* cb/doco-mono (2019-03-13) 2 commits
- (merged to 'next' on 2019-04-16 at 91f5d71452)
- + doc: format pathnames and URLs as monospace.
- + doc/CodingGuidelines: URLs and paths as monospace
+* ab/commit-graph-fixes (2019-04-01) 8 commits
+ (merged to 'next' on 2019-04-16 at 97f4ba02f0)
+ + commit-graph: improve & i18n error messages
+ + commit-graph write: don't die if the existing graph is corrupt
+ + commit-graph verify: detect inability to read the graph
+ + commit-graph: don't pass filename to load_commit_graph_one_fd_st()
+ + commit-graph: don't early exit(1) on e.g. "git status"
+ + commit-graph: fix segfault on e.g. "git status"
+ + commit-graph tests: test a graph that's too small
+ + commit-graph tests: split up corrupt_graph_and_verify()
+ (this branch is used by ds/commit-graph-format-v2.)
- Clean-up markup in the documentation suite.
+ Code cleanup with more careful error checking before using data
+ read from the commit-graph file.
-* da/smerge (2019-04-04) 2 commits
- (merged to 'next' on 2019-04-16 at 80bf79fee1)
- + contrib/completion: add smerge to the mergetool completion candidates
- + mergetools: add support for smerge (Sublime Merge)
+* ab/gc-docs (2019-04-08) 11 commits
+ (merged to 'next' on 2019-04-22 at 02785d40f5)
+ + gc docs: remove incorrect reference to gc.auto=0
+ + gc docs: clarify that "gc" doesn't throw away referenced objects
+ + gc docs: note "gc --aggressive" in "fast-import"
+ + gc docs: downplay the usefulness of --aggressive
+ + gc docs: note how --aggressive impacts --window & --depth
+ + gc docs: fix formatting for "gc.writeCommitGraph"
+ + gc docs: re-flow the "gc.*" section in "config"
+ + gc docs: include the "gc.*" section from "config" in "gc"
+ + gc docs: clean grammar for "gc.bigPackThreshold"
+ + gc docs: stop noting "repack" flags
+ + gc docs: modernize the advice for manually running "gc"
- "git mergetool" learned to offer Sublime Merge (smerge) as one of
- its backends.
+ Update docs around "gc".
-* dl/flex-str-cocci (2019-04-04) 2 commits
- (merged to 'next' on 2019-04-16 at e5cb2927b3)
- + cocci: FLEX_ALLOC_MEM to FLEX_ALLOC_STR
- + midx.c: convert FLEX_ALLOC_MEM to FLEX_ALLOC_STR
+* ab/gc-reflog (2019-04-01) 7 commits
+ (merged to 'next' on 2019-04-16 at aa27f951a8)
+ + gc: handle & check gc.reflogExpire config
+ + reflog tests: assert lack of early exit with expiry="never"
+ + reflog tests: test for the "points nowhere" warning
+ + reflog tests: make use of "test_config" idiom
+ + gc: refactor a "call me once" pattern
+ + gc: convert to using the_hash_algo
+ + gc: remove redundant check for gc_auto_threshold
- Code clean-up.
+ Fix various glitches in "git gc" around reflog handling.
+
+
+* ab/test-lib-pass-trace2-env (2019-04-01) 1 commit
+ (merged to 'next' on 2019-04-16 at 4dad6d6d7a)
+ + test-lib: whitelist GIT_TR2_* in the environment
+ Allow tracing of Git executable while running the testsuite.
-* js/check-docs-exe (2019-04-01) 5 commits
- (merged to 'next' on 2019-04-16 at 98570caa8c)
- + check-docs: fix for setups where executables have an extension
- + check-docs: do not expect guide pages to correspond to commands
- + check-docs: really look at the documented commands again
- + docs: do not document the `git remote-testgit` command
- + docs: move gitremote-helpers into section 7
- (this branch is used by js/misc-doc-fixes.)
-
- Dev support update.
-
-
-* js/spell-out-options-in-tests (2019-04-15) 8 commits
- (merged to 'next' on 2019-04-16 at 1cfd7698b6)
- + tests: disallow the use of abbreviated options (by default)
- + tests (pack-objects): use the full, unabbreviated `--revs` option
- + tests (status): spell out the `--find-renames` option in full
- + tests (push): do not abbreviate the `--follow-tags` option
- + t5531: avoid using an abbreviated option
- + t7810: do not abbreviate `--no-exclude-standard` nor `--invert-match`
- + tests (rebase): spell out the `--force-rebase` option
- + tests (rebase): spell out the `--keep-empty` option
- (this branch is tangled with dl/rebase-i-keep-base.)
-
- The tests have been updated not to rely on the abbreviated option
- names the parse-options API offers, to protect us from an
- abbreviated form of an option that used to be unique within the
- command getting non-unique when a new option that share the same
- prefix is added.
-
-
-* js/stash-in-c-pathspec-fix (2019-03-12) 3 commits
- (merged to 'next' on 2019-03-20 at e81d08af7a)
- + stash: pass pathspec as pointer
- + built-in stash: handle :(glob) pathspecs again
- + legacy stash: fix "rudimentary backport of -q"
- (this branch uses ps/stash-in-c; is tangled with tb/stash-in-c-unused-param-fix and tg/stash-in-c-show-default-to-p-fix.)
-
- Further fixes to "git stash" reimplemented in C.
-
-
-* nd/include-if-wildmatch (2019-04-01) 1 commit
- (merged to 'next' on 2019-04-16 at db8b6a578a)
- + config: correct '**' matching in includeIf patterns
-
- A buglet in configuration parser has been fixed.
-
-
-* nd/interpret-trailers-docfix (2019-04-01) 1 commit
- (merged to 'next' on 2019-04-16 at 6a57abc7e6)
- + interpret-trailers.txt: start the desc line with a capital letter
-
- Doc update.
-
-
-* nd/read-tree-reset-doc (2019-04-02) 1 commit
- (merged to 'next' on 2019-04-16 at f2bef91774)
- + read-tree.txt: clarify --reset and worktree changes
-
- The documentation for "git read-tree --reset -u" has been updated.
-
-
-* ps/stash-in-c (2019-03-07) 29 commits
- (merged to 'next' on 2019-03-11 at f568e3be72)
- + tests: add a special setup where stash.useBuiltin is off
- + stash: optionally use the scripted version again
- + stash: add back the original, scripted `git stash`
- + stash: convert `stash--helper.c` into `stash.c`
- + stash: replace all `write-tree` child processes with API calls
- + stash: optimize `get_untracked_files()` and `check_changes()`
- + stash: convert save to builtin
- + stash: make push -q quiet
- + stash: convert push to builtin
- + stash: convert create to builtin
- + stash: convert store to builtin
- + stash: convert show to builtin
- + stash: convert list to builtin
- + stash: convert pop to builtin
- + stash: convert branch to builtin
- + stash: convert drop and clear to builtin
- + stash: convert apply to builtin
- + stash: mention options in `show` synopsis
- + stash: add tests for `git stash show` config
- + stash: rename test cases to be more descriptive
- + t3903: add test for --intent-to-add file
- + t3903: modernize style
- + stash: improve option parsing test coverage
- + ident: don't require calling prepare_fallback_ident first
- + ident: add the ability to provide a "fallback identity"
- + strbuf.c: add `strbuf_insertf()` and `strbuf_vinsertf()`
- + strbuf.c: add `strbuf_join_argv()`
- + sha1-name.c: add `get_oidf()` which acts like `get_oid()`
- + Merge branch 'sd/stash-wo-user-name'
- (this branch is used by js/stash-in-c-pathspec-fix, tb/stash-in-c-unused-param-fix and tg/stash-in-c-show-default-to-p-fix.)
-
- Originally merged to 'next' on 2019-03-07
-
- "git stash" rewritten in C.
-
-
-* sg/asciidoctor-in-ci (2019-04-05) 6 commits
- (merged to 'next' on 2019-04-16 at efdf919c16)
- + ci: fix AsciiDoc/Asciidoctor stderr check in the documentation build job
- + ci: stick with Asciidoctor v1.5.8 for now
- + ci: install Asciidoctor in 'ci/install-dependencies.sh'
- + Documentation/technical/protocol-v2.txt: fix formatting
- + Documentation/technical/api-config.txt: fix formatting
- + Documentation/git-diff-tree.txt: fix formatting
-
- Update our support to format documentation in the CI environment,
- either with AsciiDoc ro Asciidoctor.
-
-
-* tb/stash-in-c-unused-param-fix (2019-03-11) 1 commit
- (merged to 'next' on 2019-03-20 at 5ccac5f80d)
- + stash: drop unused parameter
- (this branch uses ps/stash-in-c; is tangled with js/stash-in-c-pathspec-fix and tg/stash-in-c-show-default-to-p-fix.)
- Code clean-up.
+* ag/sequencer-reduce-rewriting-todo (2019-03-07) 18 commits
+ (merged to 'next' on 2019-04-10 at 7eab7c7800)
+ + rebase--interactive: move transform_todo_file()
+ + sequencer: use edit_todo_list() in complete_action()
+ + rebase-interactive: rewrite edit_todo_list() to handle the initial edit
+ + rebase-interactive: append_todo_help() changes
+ + rebase-interactive: use todo_list_write_to_file() in edit_todo_list()
+ + sequencer: refactor skip_unnecessary_picks() to work on a todo_list
+ + rebase--interactive: move rearrange_squash_in_todo_file()
+ + rebase--interactive: move sequencer_add_exec_commands()
+ + sequencer: change complete_action() to use the refactored functions
+ + sequencer: make sequencer_make_script() write its script to a strbuf
+ + sequencer: refactor rearrange_squash() to work on a todo_list
+ + sequencer: refactor sequencer_add_exec_commands() to work on a todo_list
+ + sequencer: refactor check_todo_list() to work on a todo_list
+ + sequencer: introduce todo_list_write_to_file()
+ + sequencer: refactor transform_todos() to work on a todo_list
+ + sequencer: remove the 'arg' field from todo_item
+ + sequencer: make the todo_list structure public
+ + sequencer: changes in parse_insn_buffer()
+ (this branch is used by pw/rebase-i-internal.)
+
+ The scripted version of "git rebase -i" wrote and rewrote the todo
+ list many times during a single step of its operation, and the
+ recent C-rewrite made a faithful conversion of the logic to C. The
+ implementation has been updated to carry necessary information
+ around in-core to avoid rewriting the same file over and over
+ unnecessarily.
+ cf. <20190305191805.13561-1-alban.gruin@gmail.com> (v8)
+
+
+* bc/hash-transition-16 (2019-04-01) 35 commits
+ (merged to 'next' on 2019-04-16 at 8227fea6fa)
+ + gitweb: make hash size independent
+ + Git.pm: make hash size independent
+ + read-cache: read data in a hash-independent way
+ + dir: make untracked cache extension hash size independent
+ + builtin/difftool: use parse_oid_hex
+ + refspec: make hash size independent
+ + archive: convert struct archiver_args to object_id
+ + builtin/get-tar-commit-id: make hash size independent
+ + get-tar-commit-id: parse comment record
+ + hash: add a function to lookup hash algorithm by length
+ + remote-curl: make hash size independent
+ + http: replace sha1_to_hex
+ + http: compute hash of downloaded objects using the_hash_algo
+ + http: replace hard-coded constant with the_hash_algo
+ + http-walker: replace sha1_to_hex
+ + http-push: remove remaining uses of sha1_to_hex
+ + http-backend: allow 64-character hex names
+ + http-push: convert to use the_hash_algo
+ + builtin/pull: make hash-size independent
+ + builtin/am: make hash size independent
+ + fast-import: replace sha1_to_hex
+ + fast-import: make hash-size independent
+ + builtin/name-rev: make hash-size independent
+ + object-store: rename and expand packed_git's sha1 member
+ + notes: replace sha1_to_hex
+ + notes: make hash size independent
+ + notes-merge: switch to use the_hash_algo
+ + submodule: avoid hard-coded constants
+ + pack-bitmap: switch hash tables to use struct object_id
+ + pack-bitmap: switch hard-coded constants to the_hash_algo
+ + pack-bitmap: replace sha1_to_hex
+ + pack-bitmap: convert struct stored_bitmap to object_id
+ + pack-bitmap: make bitmap header handling hash agnostic
+ + khash: move oid hash table definition
+ + t/lib-submodule-update: use appropriate length constant
+
+ Conversion from unsigned char[20] to struct object_id continues.
+
+
+* bc/send-email-qp-cr (2019-04-14) 1 commit
+ (merged to 'next' on 2019-04-22 at 69398b0ea8)
+ + send-email: default to quoted-printable when CR is present
+
+ "git send-email" has been taught to use quoted-printable when the
+ payload contains carriage-return. The use of the mechanism is in
+ line with the design originally added the codepath that chooses QP
+ when the payload has overly long lines.
+
+
+* bp/post-index-change-hook (2019-02-15) 1 commit
+ (merged to 'next' on 2019-03-11 at cb96d1d7c4)
+ + read-cache: add post-index-change hook
+
+ Originally merged to 'next' on 2019-02-23
+
+ A new hook "post-index-change" is called when the on-disk index
+ file changes, which can help e.g. a virtualized working tree
+ implementation.
+
+
+* bs/sendemail-tighten-anything-by (2019-04-04) 1 commit
+ (merged to 'next' on 2019-04-22 at 0a0680f234)
+ + send-email: don't cc *-by lines with '-' prefix
+
+ The recently added feature to add addresses that are on
+ anything-by: trailers in 'git send-email' was found to be way too
+ eager and considered nonsense strings as if they can be legitimate
+ beginning of *-by: trailer. This has been tightened.
+
+
+* dk/blame-keep-origin-blob (2019-04-03) 1 commit
+ (merged to 'next' on 2019-04-16 at 39679dde8b)
+ + blame.c: don't drop origin blobs as eagerly
+
+ Performance fix around "git blame", especially in a linear history
+ (which is the norm we should optimize for).
+
+
+* dl/submodule-set-branch (2019-04-10) 3 commits
+ (merged to 'next' on 2019-04-22 at 3b640715ae)
+ + submodule: teach set-branch subcommand
+ + submodule--helper: teach config subcommand --unset
+ + git-submodule.txt: "--branch <branch>" option defaults to 'master'
+
+ "git submodule" learns "set-branch" subcommand that allows the
+ submodule.*.branch settings to be modified.
-* tg/stash-in-c-show-default-to-p-fix (2019-03-21) 1 commit
- (merged to 'next' on 2019-04-10 at 9489a31a36)
- + stash: setup default diff output format if necessary
- (this branch uses ps/stash-in-c; is tangled with js/stash-in-c-pathspec-fix and tb/stash-in-c-unused-param-fix.)
+* en/fast-import-parsing-fix (2019-04-01) 5 commits
+ (merged to 'next' on 2019-04-16 at b318831bde)
+ + fast-import: fix erroneous handling of get-mark with empty orphan commits
+ + fast-import: only allow cat-blob requests where it makes sense
+ + fast-import: check most prominent commands first
+ + git-fast-import.txt: fix wording about where ls command can appear
+ + t9300: demonstrate bug with get-mark and empty orphan commits
- A regression fix.
+ "git fast-import" update.
-* tz/asciidoctor-fixes (2019-04-01) 2 commits
- (merged to 'next' on 2019-04-16 at 0cb17f579b)
- + Documentation/git-status: fix titles in porcelain v2 section
- + Documentation/rev-list-options: wrap --date=<format> block with "--"
+* jc/gettext-test-fix (2019-04-15) 1 commit
+ (merged to 'next' on 2019-04-22 at 7c57deeb04)
+ + gettext tests: export the restored GIT_TEST_GETTEXT_POISON
+
+ The GETTEXT_POISON test option has been quite broken ever since it
+ was made runtime-tunable, which has been fixed.
+
+
+* jk/fetch-reachability-error-fix (2019-04-15) 7 commits
+ (merged to 'next' on 2019-04-22 at b4ce8375c0)
+ + fetch: do not consider peeled tags as advertised tips
+ + remote.c: make singular free_ref() public
+ + fetch: use free_refs()
+ + pkt-line: prepare buffer before handling ERR packets
+ + upload-pack: send ERR packet for non-tip objects
+ + t5530: check protocol response for "not our ref"
+ + t5516: drop ok=sigpipe from unreachable-want tests
+
+ Code clean-up and a fix for "git fetch" by an explicit object name
+ (as opposed to fetching refs by name).
+
+
+* jk/revision-rewritten-parents-in-prio-queue (2019-04-04) 1 commit
+ (merged to 'next' on 2019-04-16 at bdc1465128)
+ + revision: use a prio_queue to hold rewritten parents
+
+ Performance fix for "rev-list --parents -- pathspec".
+
+
+* jk/server-info-rabbit-hole (2019-04-16) 13 commits
+ (merged to 'next' on 2019-04-16 at 3dded8be9a)
+ + update_info_refs(): drop unused force parameter
+ + server-info: drop objdirlen pointer arithmetic
+ + server-info: drop nr_alloc struct member
+ + server-info: use strbuf to read old info/packs file
+ + server-info: simplify cleanup in parse_pack_def()
+ + server-info: fix blind pointer arithmetic
+ + http: simplify parsing of remote objects/info/packs
+ + packfile: fix pack basename computation
+ + midx: check both pack and index names for containment
+ + t5319: drop useless --buffer from cat-file
+ + t5319: fix bogus cat-file argument
+ + pack-revindex: open index if necessary
+ + packfile.h: drop extern from function declarations
+
+ Code clean-up around a much-less-important-than-it-used-to-be
+ update_server_info() funtion.
+
+
+* jk/unused-params-even-more (2019-03-21) 13 commits
+ (merged to 'next' on 2019-04-10 at 12edf8872f)
+ + parse_opt_ref_sorting: always use with NONEG flag
+ + pretty: drop unused strbuf from parse_padding_placeholder()
+ + pretty: drop unused "type" parameter in needs_rfc2047_encoding()
+ + parse-options: drop unused ctx parameter from show_gitcomp()
+ + fetch_pack(): drop unused parameters
+ + report_path_error(): drop unused prefix parameter
+ + unpack-trees: drop unused error_type parameters
+ + unpack-trees: drop name_entry from traverse_by_cache_tree()
+ + test-date: drop unused "now" parameter from parse_dates()
+ + update-index: drop unused prefix_length parameter from do_reupdate()
+ + log: drop unused "len" from show_tagger()
+ + log: drop unused rev_info from early output
+ + revision: drop some unused "revs" parameters
+
+ Code cleanup.
+
+
+* jk/xmalloc (2019-04-12) 4 commits
+ (merged to 'next' on 2019-04-22 at 1a907289fa)
+ + progress: use xmalloc/xcalloc
+ + xdiff: use xmalloc/xrealloc
+ + xdiff: use git-compat-util
+ + test-prio-queue: use xmalloc
+
+ The code is updated to check the result of memory allocation before
+ it is used in more places, by using xmalloc and/or xcalloc calls.
+
+
+* js/difftool-no-index (2019-03-18) 3 commits
+ (merged to 'next' on 2019-04-16 at 7313f9ff18)
+ + difftool: allow running outside Git worktrees with --no-index
+ + parse-options: make OPT_ARGUMENT() more useful
+ + difftool: remove obsolete (and misleading) comment
+
+ "git difftool" can now run outside a repository.
+
+
+* js/iso8895-test-on-apfs (2019-04-15) 1 commit
+ (merged to 'next' on 2019-04-22 at c2fadead33)
+ + t9822: skip tests if file names cannot be ISO-8859-1 encoded
+
+ Test fix on APFS that is incapable of store paths in Latin-1.
+
+
+* js/macos-gettext-build (2019-04-15) 1 commit
+ (merged to 'next' on 2019-04-22 at de4cbb1431)
+ + macOS: make sure that gettext is found
+
+ Build with gettext breaks on recent macOS w/ Homebrew when
+ /usr/local/bin is not on PATH, which has been corrected.
+
+
+* js/t3301-unbreak-notes-test (2019-04-09) 1 commit
+ (merged to 'next' on 2019-04-22 at a015b00bd9)
+ + t3301: fix false negative
+
+ Test fix.
+
+
+* js/untracked-cache-allocfix (2019-04-12) 1 commit
+ (merged to 'next' on 2019-04-22 at 004a544075)
+ + untracked cache: fix off-by-one
+ (this branch is used by jk/untracked-cache-more-fixes.)
+
+ An underallocation in the code to read the untracked cache
+ extension has been corrected.
+
+
+* jt/batch-fetch-blobs-in-diff (2019-04-08) 2 commits
+ (merged to 'next' on 2019-04-22 at 0598bae567)
+ + diff: batch fetching of missing blobs
+ + sha1-file: support OBJECT_INFO_FOR_PREFETCH
+ (this branch is used by cc/multi-promisor.)
+
+ While running "git diff" in a lazy clone, we can upfront know which
+ missing blobs we will need, instead of waiting for the on-demand
+ machinery to discover them one by one. Aim to achieve better
+ performance by batching the request for these promised blobs.
+
+
+* jt/fetch-no-update-shallow-in-proto-v2 (2019-04-01) 3 commits
+ (merged to 'next' on 2019-04-16 at 05c5ebe471)
+ + fetch-pack: respect --no-update-shallow in v2
+ + fetch-pack: call prepare_shallow_info only if v0
+ + Merge branch 'jt/test-protocol-version' into jt/fetch-no-update-shallow-in-proto-v2
+
+ Fix for protocol v2 support in "git fetch-pack" of shallow clones.
+
+
+* jt/fetch-pack-wanted-refs-optim (2019-04-01) 1 commit
+ (merged to 'next' on 2019-04-16 at 051f6bd38a)
+ + fetch-pack: binary search when storing wanted-refs
+
+ Performance fix around "git fetch" that grabs many refs.
+
+
+* km/t3000-retitle (2019-04-12) 1 commit
+ (merged to 'next' on 2019-04-22 at 2d5aa01ca6)
+ + t3000 (ls-files -o): widen description to reflect current tests
+
+ A test update.
+
+
+* nd/checkout-m (2019-03-24) 4 commits
+ (merged to 'next' on 2019-04-16 at 4d7c322bed)
+ + checkout: prevent losing staged changes with --merge
+ + read-tree: add --quiet
+ + unpack-trees: rename "gently" flag to "quiet"
+ + unpack-trees: keep gently check inside add_rejected_path
+
+ "git checkout -m <other>" was about carrying the differences
+ between HEAD and the working-tree files forward while checking out
+ another branch, and ignored the differences between HEAD and the
+ index. The command has been taught to abort when the index and the
+ HEAD are different.
+
+
+* nd/commit-a-with-paths-msg-update (2019-03-22) 1 commit
+ (merged to 'next' on 2019-04-16 at a36c712b39)
+ + commit: improve error message in "-a <paths>" case
+
+ The message given when "git commit -a <paths>" errors out has been
+ updated.
+
+
+* nd/diff-parseopt-4 (2019-03-24) 20 commits
+ (merged to 'next' on 2019-04-10 at 893b135f10)
+ + am: avoid diff_opt_parse()
+ + diff --no-index: use parse_options() instead of diff_opt_parse()
+ + range-diff: use parse_options() instead of diff_opt_parse()
+ + diff.c: allow --no-color-moved-ws
+ + diff-parseopt: convert --color-moved-ws
+ + diff-parseopt: convert --[no-]color-moved
+ + diff-parseopt: convert --inter-hunk-context
+ + diff-parseopt: convert --no-prefix
+ + diff-parseopt: convert --line-prefix
+ + diff-parseopt: convert --[src|dst]-prefix
+ + diff-parseopt: convert --[no-]abbrev
+ + diff-parseopt: convert --diff-filter
+ + diff-parseopt: convert --find-object
+ + diff-parseopt: convert -O
+ + diff-parseopt: convert --pickaxe-all|--pickaxe-regex
+ + diff-parseopt: convert -S|-G
+ + diff-parseopt: convert -l
+ + diff-parseopt: convert -z
+ + diff-parseopt: convert --ita-[in]visible-in-index
+ + diff-parseopt: convert --ws-error-highlight
+
+ Fourth batch to teach the diff machinery to use the parse-options
+ API.
+
+
+* nd/submodule-foreach-quiet (2019-04-15) 1 commit
+ (merged to 'next' on 2019-04-22 at bf982bca7b)
+ + submodule foreach: fix "<command> --quiet" not being respected
+
+ "git submodule foreach <command> --quiet" did not pass the option
+ down correctly, which has been corrected.
+
+
+* po/describe-not-necessarily-7 (2019-04-08) 1 commit
+ (merged to 'next' on 2019-04-22 at 65b47ca73f)
+ + describe doc: remove '7-char' abbreviation reference
+
+ Docfix.
+
+
+* po/rerere-doc-fmt (2019-04-08) 1 commit
+ (merged to 'next' on 2019-04-22 at 780c0d2450)
+ + rerere doc: quote `rerere.enabled`
+
+ Docfix.
+
+
+* pw/cherry-pick-continue (2019-03-18) 3 commits
+ (merged to 'next' on 2019-04-16 at 1bfd7a7179)
+ + cherry-pick --continue: remember options
+ + cherry-pick: demonstrate option amnesia
+ + sequencer: break some long lines
+
+ "git cherry-pick --options A..B", after giving control back to the
+ user to ask help resolving a conflicted step, did not honor the
+ options it originally received, which has been corrected.
+
+
+* sg/blame-in-bare-start-at-head (2019-04-08) 1 commit
+ (merged to 'next' on 2019-04-22 at 159777c280)
+ + blame: default to HEAD in a bare repo when no start commit is given
+
+ "git blame -- path" in a non-bare repository starts blaming from
+ the working tree, and the same command in a bare repository errors
+ out because there is no working tree by definition. The command
+ has been taught to instead start blaming from the commit at HEAD,
+ which is more useful.
+
+
+* sg/index-pack-progress (2019-04-01) 1 commit
+ (merged to 'next' on 2019-04-16 at a10bfdd950)
+ + index-pack: show progress while checking objects
+
+ A progress indicator has been added to the "index-pack" step, which
+ often makes users wait for completion during "git clone".
- Doc updates.
---------------------------------------------------
-[New Topics]
+* sg/overlong-progress-fix (2019-04-15) 4 commits
+ (merged to 'next' on 2019-04-22 at 69921cdf09)
+ + progress: break too long progress bar lines
+ + progress: clear previous progress update dynamically
+ + progress: assemble percentage and counters in a strbuf before printing
+ + progress: make display_progress() return void
-* es/first-contrib-tutorial (2019-04-21) 1 commit
- - documentation: add lab for first contribution
+ Updating the display with progress message has been cleaned up to
+ deal better with overlong messages.
- A WIP of a new tutorial targetting specifically aspiring git-core
- developers.
+* sg/test-atexit (2019-03-14) 11 commits
+ (merged to 'next' on 2019-04-10 at 7839135291)
+ + t9811-git-p4-label-import: fix pipeline negation
+ + git p4 test: disable '-x' tracing in the p4d watchdog loop
+ + git p4 test: simplify timeout handling
+ + git p4 test: clean up the p4d cleanup functions
+ + git p4 test: use 'test_atexit' to kill p4d and the watchdog process
+ + t0301-credential-cache: use 'test_atexit' to stop the credentials helper
+ + tests: use 'test_atexit' to stop httpd
+ + git-daemon: use 'test_atexit` to stop 'git-daemon'
+ + test-lib: introduce 'test_atexit'
+ + t/lib-git-daemon: make sure to kill the 'git-daemon' process
+ + test-lib: fix interrupt handling with 'dash' and '--verbose-log -x'
-* pw/clean-sequencer-state-upon-final-commit (2019-04-17) 2 commits
- - fix cherry-pick/revert status after commit
- - commit/reset: try to clean up sequencer state
+ Test framework update to more robustly clean up leftover files and
+ processes after tests are done.
- "git chery-pick" (and "revert" that shares the same runtime engine)
- that deals with multiple commits got confused when the final step
- gets stopped with a conflict and the user concluded the sequence
- with "git commit". Attempt to fix it by cleaning up the state
- files used by these commands in such a situation.
- Will merge to 'next'.
+* tg/ls-files-debug-format-fix (2019-04-08) 1 commit
+ (merged to 'next' on 2019-04-22 at a5ac1ca49f)
+ + ls-files: use correct format string
+ Debugging code fix.
-* pw/sequencer-cleanup-with-signoff-x-fix (2019-04-18) 1 commit
- - sequencer: fix cleanup with --signoff and -x
- (this branch is used by dl/merge-cleanup-scissors-fix.)
- "git cherry-pick" run with the "-x" or the "--signoff" option used
- to (and more importantly, ought to) clean up the commit log message
- with the --cleanup=space option by default, but this has been
- broken since late 2017. This has been fixed.
+* tz/doc-apostrophe-no-longer-needed (2019-04-10) 1 commit
+ (merged to 'next' on 2019-04-22 at 8ff03863ce)
+ + Documentation/git-show-branch: avoid literal {apostrophe}
- Will merge to 'next'.
+ Doc formatting fix.
+--------------------------------------------------
+[New Topics]
-* dr/ref-filter-push-track-fix (2019-04-18) 1 commit
- - ref-filter: use correct branch for %(push:track)
+* jc/make-dedup-ls-files-output (2019-04-22) 1 commit
+ - Makefile: dedup list of files obtained from ls-files
- %(push:track) token used in the --format option to "git
- for-each-ref" and friends was not showing the right branch, which
- has been fixed.
+ A "ls-files" that emulates "find" to enumerate files in the working
+ tree resulted in duplicated Makefile rules that caused the build to
+ issue an unnecessary warning during a trial build after merge
+ conflicts are resolved in working tree *.h files but before the
+ resolved results are added to the index. This has been corrected.
Will merge to 'next'.
+ A not-so-low hanging fruit to teach ls-files to dedup either optionally
+ or always has also been discussed, which probably is a good idea,
+ to prevent mistakes similar to the bug this topic fixes in the future.
-* cc/aix-has-fileno-as-a-macro (2019-04-19) 1 commit
- - Makefile: use fileno macro work around on AIX
+* jk/ls-files-doc-markup-fix (2019-04-23) 1 commit
+ - doc/ls-files: put nested list for "-t" option into block
- AIX shared the same build issues with other BSDs around fileno(fp),
- which has been corrected.
+ Docfix.
Will merge to 'next'.
-* jk/prune-optim (2019-04-19) 1 commit
- - t5304: add a test for pruning with bitmaps
+* jk/p5302-avoid-collision-check-cost (2019-04-23) 1 commit
+ - p5302: create the repo in each index-pack test
- A follow-up test for an earlier "git prune" improvements.
+ Fix index-pack perf test so that the repeated invocations always
+ run in an empty repository, which emulates the initial clone
+ situation better.
Will merge to 'next'.
-* jk/untracked-cache-more-fixes (2019-04-19) 3 commits
- - untracked-cache: simplify parsing by dropping "len"
- - untracked-cache: simplify parsing by dropping "next"
- - untracked-cache: be defensive about missing NULs in index
- (this branch uses js/untracked-cache-allocfix.)
+* dl/rev-tilde-doc-clarify (2019-04-24) 1 commit
+ - revisions.txt: mention <rev>~ form
- Code clean-up.
+ Docfix.
Will merge to 'next'.
-* jt/submodule-repo-is-with-worktree (2019-04-21) 1 commit
- - worktree: update is_bare heuristics
+* en/unicode-in-refnames (2019-04-24) 1 commit
+ - Honor core.precomposeUnicode in more places
- The logic to tell if a Git repository has a working tree protects
- "git branch -D" from removing the branch that is currently checked
- out by mistake. The implementation of this logic was broken for
- repositories with unusual name, which unfortunately is the norm for
- submodules these days. This has been fixed.
+ The names of the refs stored as filesystem entities may become
+ different from what the end-user expects, just like files in the
+ working tree gets "renamed", on a filesystem like HFS+. Work it
+ around by paying attemption to the core.precomposeUnicode
+ configuration.
- Will merge to 'next'.
+ Looked sensible. Ready for next?
-* vk/autoconf-gettext (2019-04-19) 1 commit
- - autoconf: #include <libintl.h> when checking for gettext()
+* jk/perf-aggregate-wo-libjson (2019-04-24) 1 commit
+ - t/perf: depend on perl JSON only when using --codespeed
- The autoconf generated configure script failed to use the right
- gettext() implementations from -libintl by ignoring useless stub
- implementations shipped in some C library, which has been
+ The script to aggregate perf result unconditionally depended on
+ libjson-perl even though it did not have to, which has been
corrected.
Will merge to 'next'.
-* dl/no-extern-in-func-decl (2019-04-21) 4 commits
- - cocci: prevent extern function declarations
- - *.[ch]: manually align parameter lists
- - *.[ch]: remove extern from function declarations using sed
- - *.[ch]: remove extern from function declarations using spatch
-
- Mechanically and systematically drop "extern" from function
- declarlation.
-
- This is the kind of code churn patch that causes heavy conflicts
- with multiple topics in flight, which causes conflicts in slightly
- different shape when it gets merged with them in different order.
- I've queued it moderately early in 'pu' for the night, and I am
- reasonably sure the merge of the topic itself is OK, but I do not
- have much confidence in the resolutions of conflicts with other
- topics later merged to 'pu'.
-
-
-* js/partial-clone-connectivity-check (2019-04-21) 1 commit
- - clone: do faster object check for partial clones
+* cc/access-on-aix-workaround (2019-04-25) 1 commit
+ - git-compat-util: work around for access(X_OK) under root
+ (this branch uses cc/aix-has-fileno-as-a-macro.)
- During an initial "git clone --depth=..." partial clone, it is
- pointless to spend cycles for a large portion of the connectivity
- check that enumerates and skips promisor objects (which by
- definition is all objects fetched from the other side). This has
- been optimized out.
- Will merge to 'next'.
+* dl/difftool-mergetool (2019-04-25) 6 commits
+ - difftool: fallback on merge.guitool
+ - difftool: make --gui, --tool and --extcmd mutually exclusive
+ - mergetool: fallback to tool when guitool unavailable
+ - mergetool: use get_merge_tool function
+ - t7610: add mergetool --gui tests
+ - t7610: unsuppress output
--------------------------------------------------
[Stalled]
WIP for allowing a response to "git fetch" to instruct the bulk of
the pack contents to be instead taken from elsewhere (aka CDN).
- Waiting for the final version.
+ Still being discussed.
* js/add-i-coalesce-after-editing-hunk (2018-08-28) 1 commit
cf. <e5b2900a-0558-d3bf-8ea1-d526b078bbc2@talktalk.net>
-* ds/midx-expire-repack (2019-01-27) 10 commits
- - midx: add test that 'expire' respects .keep files
- - multi-pack-index: test expire while adding packs
- - midx: implement midx_repack()
- - multi-pack-index: prepare 'repack' subcommand
- - multi-pack-index: implement 'expire' subcommand
- - midx: refactor permutation logic and pack sorting
- - midx: simplify computation of pack name lengths
- - multi-pack-index: prepare for 'expire' subcommand
- - Docs: rearrange subcommands for multi-pack-index
- - repack: refactor pack deletion for future use
-
- "git multi-pack-index expire/repack" are new subcommands that
- consult midx file and are used to drop unused pack files and
- coalesce small pack files that are still in use.
-
- Comments?
-
-
* js/protocol-advertise-multi (2018-12-28) 1 commit
- protocol: advertise multiple supported versions
--------------------------------------------------
[Cooking]
-* hs/send-email-transferencoding-fix (2019-04-10) 1 commit
- - send-email: honor transferencoding config option again
+* ds/midx-expire-repack (2019-04-25) 11 commits
+ - t5319-multi-pack-index.sh: test batch size zero
+ - midx: add test that 'expire' respects .keep files
+ - multi-pack-index: test expire while adding packs
+ - midx: implement midx_repack()
+ - multi-pack-index: prepare 'repack' subcommand
+ - multi-pack-index: implement 'expire' subcommand
+ - midx: refactor permutation logic and pack sorting
+ - midx: simplify computation of pack name lengths
+ - multi-pack-index: prepare for 'expire' subcommand
+ - Docs: rearrange subcommands for multi-pack-index
+ - repack: refactor pack deletion for future use
- Since "git send-email" learned to take 'auto' as the value for the
- transfer-encoding, it by mistake stopped honoring the values given
- to the configuration variables sendemail.transferencoding and/or
- sendemail.<ident>.transferencoding. Attempt to correct this.
+ "git multi-pack-index expire/repack" are new subcommands that
+ consult midx file and are used to drop unused pack files and
+ coalesce small pack files that are still in use.
- Not quite.
- cf. <xmqq8swi34h5.fsf@gitster-ct.c.googlers.com>
+ cf. <20190424151428.170316-1-dstolee@microsoft.com> (v5)
-* jk/xmalloc (2019-04-12) 4 commits
- (merged to 'next' on 2019-04-22 at 1a907289fa)
- + progress: use xmalloc/xcalloc
- + xdiff: use xmalloc/xrealloc
- + xdiff: use git-compat-util
- + test-prio-queue: use xmalloc
+* es/first-contrib-tutorial (2019-04-25) 1 commit
+ - documentation: add tutorial for first contribution
- The code is updated to check the result of memory allocation before
- it is used in more places, by using xmalloc and/or xcalloc calls.
+ A new tutorial targetting specifically aspiring git-core
+ developers.
- Will merge to 'master'.
+ cf. <20190423193410.101803-1-emilyshaffer@google.com> (v4)
-* js/untracked-cache-allocfix (2019-04-12) 1 commit
- (merged to 'next' on 2019-04-22 at 004a544075)
- + untracked cache: fix off-by-one
- (this branch is used by jk/untracked-cache-more-fixes.)
+* pw/clean-sequencer-state-upon-final-commit (2019-04-17) 2 commits
+ - fix cherry-pick/revert status after commit
+ - commit/reset: try to clean up sequencer state
- An underallocation in the code to read the untracked cache
- extension has been corrected.
+ "git chery-pick" (and "revert" that shares the same runtime engine)
+ that deals with multiple commits got confused when the final step
+ gets stopped with a conflict and the user concluded the sequence
+ with "git commit". Attempt to fix it by cleaning up the state
+ files used by these commands in such a situation.
+
+ Will merge to 'next'.
+
+
+* pw/sequencer-cleanup-with-signoff-x-fix (2019-04-18) 1 commit
+ (merged to 'next' on 2019-04-25 at cc587fb2b9)
+ + sequencer: fix cleanup with --signoff and -x
+ (this branch is used by dl/merge-cleanup-scissors-fix.)
+
+ "git cherry-pick" run with the "-x" or the "--signoff" option used
+ to (and more importantly, ought to) clean up the commit log message
+ with the --cleanup=space option by default, but this has been
+ broken since late 2017. This has been fixed.
Will merge to 'master'.
-* km/t3000-retitle (2019-04-12) 1 commit
- (merged to 'next' on 2019-04-22 at 2d5aa01ca6)
- + t3000 (ls-files -o): widen description to reflect current tests
+* dr/ref-filter-push-track-fix (2019-04-18) 1 commit
+ (merged to 'next' on 2019-04-25 at 07db067adc)
+ + ref-filter: use correct branch for %(push:track)
- A test update.
+ %(push:track) token used in the --format option to "git
+ for-each-ref" and friends was not showing the right branch, which
+ has been fixed.
Will merge to 'master'.
-* bc/send-email-qp-cr (2019-04-14) 1 commit
- (merged to 'next' on 2019-04-22 at 69398b0ea8)
- + send-email: default to quoted-printable when CR is present
+* cc/aix-has-fileno-as-a-macro (2019-04-25) 1 commit
+ (merged to 'next' on 2019-04-25 at f1d6464f98)
+ + Makefile: use fileno macro work around on AIX
+ (this branch is used by cc/access-on-aix-workaround.)
- "git send-email" has been taught to use quoted-printable when the
- payload contains carriage-return. The use of the mechanism is in
- line with the design originally added the codepath that chooses QP
- when the payload has overly long lines.
+ AIX shared the same build issues with other BSDs around fileno(fp),
+ which has been corrected.
Will merge to 'master'.
-* jc/gettext-test-fix (2019-04-15) 1 commit
- (merged to 'next' on 2019-04-22 at 7c57deeb04)
- + gettext tests: export the restored GIT_TEST_GETTEXT_POISON
+* jk/prune-optim (2019-04-19) 1 commit
+ (merged to 'next' on 2019-04-25 at c50353b27f)
+ + t5304: add a test for pruning with bitmaps
- The GETTEXT_POISON test option has been quite broken ever since it
- was made runtime-tunable, which has been fixed.
+ A follow-up test for an earlier "git prune" improvements.
Will merge to 'master'.
-* jk/fetch-reachability-error-fix (2019-04-15) 7 commits
- (merged to 'next' on 2019-04-22 at b4ce8375c0)
- + fetch: do not consider peeled tags as advertised tips
- + remote.c: make singular free_ref() public
- + fetch: use free_refs()
- + pkt-line: prepare buffer before handling ERR packets
- + upload-pack: send ERR packet for non-tip objects
- + t5530: check protocol response for "not our ref"
- + t5516: drop ok=sigpipe from unreachable-want tests
+* jk/untracked-cache-more-fixes (2019-04-19) 3 commits
+ (merged to 'next' on 2019-04-25 at a6037ddd54)
+ + untracked-cache: simplify parsing by dropping "len"
+ + untracked-cache: simplify parsing by dropping "next"
+ + untracked-cache: be defensive about missing NULs in index
- Code clean-up and a fix for "git fetch" by an explicit object name
- (as opposed to fetching refs by name).
+ Code clean-up.
Will merge to 'master'.
-* jk/pack-objects-reports-num-objects-to-trace2 (2019-04-12) 1 commit
- - pack-objects: write objects packed to trace2
+* jt/submodule-repo-is-with-worktree (2019-04-21) 1 commit
+ (merged to 'next' on 2019-04-25 at da2c6d684d)
+ + worktree: update is_bare heuristics
- The "git pack-objects" command learned to report the number of
- objects it packed via the trace2 mechanism.
+ The logic to tell if a Git repository has a working tree protects
+ "git branch -D" from removing the branch that is currently checked
+ out by mistake. The implementation of this logic was broken for
+ repositories with unusual name, which unfortunately is the norm for
+ submodules these days. This has been fixed.
- Will merge to 'next'.
+ Will merge to 'master'.
-* js/iso8895-test-on-apfs (2019-04-15) 1 commit
- (merged to 'next' on 2019-04-22 at c2fadead33)
- + t9822: skip tests if file names cannot be ISO-8859-1 encoded
+* vk/autoconf-gettext (2019-04-19) 1 commit
+ (merged to 'next' on 2019-04-25 at 918870cbc2)
+ + autoconf: #include <libintl.h> when checking for gettext()
- Test fix on APFS that is incapable of store paths in Latin-1.
+ The autoconf generated configure script failed to use the right
+ gettext() implementations from -libintl by ignoring useless stub
+ implementations shipped in some C library, which has been
+ corrected.
Will merge to 'master'.
-* js/macos-gettext-build (2019-04-15) 1 commit
- (merged to 'next' on 2019-04-22 at de4cbb1431)
- + macOS: make sure that gettext is found
+* dl/no-extern-in-func-decl (2019-04-24) 4 commits
+ - cocci: prevent extern function declarations
+ - *.[ch]: manually align parameter lists
+ - *.[ch]: remove extern from function declarations using sed
+ - *.[ch]: remove extern from function declarations using spatch
- Build with gettext breaks on recent macOS w/ Homebrew when
- /usr/local/bin is not on PATH, which has been corrected.
+ Mechanically and systematically drop "extern" from function
+ declarlation.
+
+ Will merge to 'next'.
+
+ This is the kind of code churn patch that causes heavy conflicts
+ with multiple topics in flight, which causes conflicts in slightly
+ different shape when it gets merged with them in different order.
+ I've queued it moderately early in 'pu' for the night, and I am
+ reasonably sure the merge of the topic itself is OK, but I do not
+ have much confidence in the resolutions of conflicts with other
+ topics later merged to 'pu'.
+
+
+* js/partial-clone-connectivity-check (2019-04-21) 1 commit
+ (merged to 'next' on 2019-04-25 at ebd8b4bffd)
+ + clone: do faster object check for partial clones
+
+ During an initial "git clone --depth=..." partial clone, it is
+ pointless to spend cycles for a large portion of the connectivity
+ check that enumerates and skips promisor objects (which by
+ definition is all objects fetched from the other side). This has
+ been optimized out.
Will merge to 'master'.
-* js/misc-doc-fixes (2019-04-19) 8 commits
- - Turn `git serve` into a test helper
- - test-tool: handle the `-C <directory>` option just like `git`
- - check-docs: do not bother checking for legacy scripts' documentation
- - docs: exclude documentation for commands that have been excluded
- - check-docs: allow command-list.txt to contain excluded commands
- - help -a: do not list commands that are excluded from the build
- - Makefile: drop the NO_INSTALL variable
- - remote-testgit: move it into the support directory for t5801
+* hs/send-email-transferencoding-fix (2019-04-10) 1 commit
+ - send-email: honor transferencoding config option again
- "make check-docs", "git help -a", etc. did not account for cases
- where a particular build may deliberately omit some subcommands,
- which has been corrected.
+ Since "git send-email" learned to take 'auto' as the value for the
+ transfer-encoding, it by mistake stopped honoring the values given
+ to the configuration variables sendemail.transferencoding and/or
+ sendemail.<ident>.transferencoding. Attempt to correct this.
- Will merge to 'next'.
+ Not quite.
+ cf. <xmqq8swi34h5.fsf@gitster-ct.c.googlers.com>
-* nd/submodule-foreach-quiet (2019-04-15) 1 commit
- (merged to 'next' on 2019-04-22 at bf982bca7b)
- + submodule foreach: fix "<command> --quiet" not being respected
+* jk/pack-objects-reports-num-objects-to-trace2 (2019-04-12) 1 commit
+ (merged to 'next' on 2019-04-25 at e79464c054)
+ + pack-objects: write objects packed to trace2
- "git submodule foreach <command> --quiet" did not pass the option
- down correctly, which has been corrected.
+ The "git pack-objects" command learned to report the number of
+ objects it packed via the trace2 mechanism.
Will merge to 'master'.
-* bs/sendemail-tighten-anything-by (2019-04-04) 1 commit
- (merged to 'next' on 2019-04-22 at 0a0680f234)
- + send-email: don't cc *-by lines with '-' prefix
+* js/misc-doc-fixes (2019-04-19) 8 commits
+ (merged to 'next' on 2019-04-25 at 6898f709d0)
+ + Turn `git serve` into a test helper
+ + test-tool: handle the `-C <directory>` option just like `git`
+ + check-docs: do not bother checking for legacy scripts' documentation
+ + docs: exclude documentation for commands that have been excluded
+ + check-docs: allow command-list.txt to contain excluded commands
+ + help -a: do not list commands that are excluded from the build
+ + Makefile: drop the NO_INSTALL variable
+ + remote-testgit: move it into the support directory for t5801
- The recently added feature to add addresses that are on
- anything-by: trailers in 'git send-email' was found to be way too
- eager and considered nonsense strings as if they can be legitimate
- beginning of *-by: trailer. This has been tightened.
+ "make check-docs", "git help -a", etc. did not account for cases
+ where a particular build may deliberately omit some subcommands,
+ which has been corrected.
Will merge to 'master'.
* dl/warn-tagging-a-tag (2019-04-12) 2 commits
- - tag: advise on nested tags
- - tag: fix formatting
+ (merged to 'next' on 2019-04-25 at 8b966d7fe8)
+ + tag: advise on nested tags
+ + tag: fix formatting
"git tag" learned to give an advice suggesting it might be a
mistake when creating an annotated or signed tag that points at
another tag.
- Will merge to 'next'.
+ Will merge to 'master'.
* jc/format-patch-delay-message-id (2019-04-05) 1 commit
Needs tests.
-* jk/revision-rewritten-parents-in-prio-queue (2019-04-04) 1 commit
- (merged to 'next' on 2019-04-16 at bdc1465128)
- + revision: use a prio_queue to hold rewritten parents
-
- Performance fix for "rev-list --parents -- pathspec".
-
- Will merge to 'master'.
-
-
* tb/unexpected (2019-04-10) 7 commits
- - rev-list: detect broken root trees
- - rev-list: let traversal die when --missing is not in use
- - get_commit_tree(): return NULL for broken tree
- - list-objects.c: handle unexpected non-tree entries
- - list-objects.c: handle unexpected non-blob entries
- - t: introduce tests for unexpected object types
- - t: move 'hex2oct' into test-lib-functions.sh
+ (merged to 'next' on 2019-04-25 at c49927fca0)
+ + rev-list: detect broken root trees
+ + rev-list: let traversal die when --missing is not in use
+ + get_commit_tree(): return NULL for broken tree
+ + list-objects.c: handle unexpected non-tree entries
+ + list-objects.c: handle unexpected non-blob entries
+ + t: introduce tests for unexpected object types
+ + t: move 'hex2oct' into test-lib-functions.sh
Code tightening against a "wrong" object appearing where an object
of a different type is expected, instead of blindly assuming that
the connection between objects are correctly made.
- Will merge to 'next'.
+ Will merge to 'master'.
* en/merge-directory-renames (2019-04-08) 15 commits
- - merge-recursive: switch directory rename detection default
- - merge-recursive: give callers of handle_content_merge() access to contents
- - merge-recursive: track information associated with directory renames
- - t6043: fix copied test description to match its purpose
- - merge-recursive: switch from (oid,mode) pairs to a diff_filespec
- - merge-recursive: cleanup handle_rename_* function signatures
- - merge-recursive: track branch where rename occurred in rename struct
- - merge-recursive: remove ren[12]_other fields from rename_conflict_info
- - merge-recursive: shrink rename_conflict_info
- - merge-recursive: move some struct declarations together
- - merge-recursive: use 'ci' for rename_conflict_info variable name
- - merge-recursive: rename locals 'o' and 'a' to 'obuf' and 'abuf'
- - merge-recursive: rename diff_filespec 'one' to 'o'
- - merge-recursive: rename merge_options argument from 'o' to 'opt'
- - Use 'unsigned short' for mode, like diff_filespec does
+ (merged to 'next' on 2019-04-25 at fd5b4f57b4)
+ + merge-recursive: switch directory rename detection default
+ + merge-recursive: give callers of handle_content_merge() access to contents
+ + merge-recursive: track information associated with directory renames
+ + t6043: fix copied test description to match its purpose
+ + merge-recursive: switch from (oid,mode) pairs to a diff_filespec
+ + merge-recursive: cleanup handle_rename_* function signatures
+ + merge-recursive: track branch where rename occurred in rename struct
+ + merge-recursive: remove ren[12]_other fields from rename_conflict_info
+ + merge-recursive: shrink rename_conflict_info
+ + merge-recursive: move some struct declarations together
+ + merge-recursive: use 'ci' for rename_conflict_info variable name
+ + merge-recursive: rename locals 'o' and 'a' to 'obuf' and 'abuf'
+ + merge-recursive: rename diff_filespec 'one' to 'o'
+ + merge-recursive: rename merge_options argument from 'o' to 'opt'
+ + Use 'unsigned short' for mode, like diff_filespec does
"git merge-recursive" backend recently learned a new heuristics to
infer file movement based on how other files in the same directory
leave the renamed paths in higher/conflicted stages in the index so
that the user can examine and confirm the result.
- Will merge to 'next'.
-
-
-* jk/server-info-rabbit-hole (2019-04-16) 13 commits
- (merged to 'next' on 2019-04-16 at 3dded8be9a)
- + update_info_refs(): drop unused force parameter
- + server-info: drop objdirlen pointer arithmetic
- + server-info: drop nr_alloc struct member
- + server-info: use strbuf to read old info/packs file
- + server-info: simplify cleanup in parse_pack_def()
- + server-info: fix blind pointer arithmetic
- + http: simplify parsing of remote objects/info/packs
- + packfile: fix pack basename computation
- + midx: check both pack and index names for containment
- + t5319: drop useless --buffer from cat-file
- + t5319: fix bogus cat-file argument
- + pack-revindex: open index if necessary
- + packfile.h: drop extern from function declarations
-
- Code clean-up around a much-less-important-than-it-used-to-be
- update_server_info() funtion.
-
Will merge to 'master'.
* jt/clone-server-option (2019-04-18) 2 commits
- - clone: send server options when using protocol v2
- - transport: die if server options are unsupported
+ (merged to 'next' on 2019-04-25 at 21f07cc85d)
+ + clone: send server options when using protocol v2
+ + transport: die if server options are unsupported
"git clone" learned a new --server-option option when talking over
the protocol version 2.
- Will merge to 'next'.
-
-
-* po/describe-not-necessarily-7 (2019-04-08) 1 commit
- (merged to 'next' on 2019-04-22 at 65b47ca73f)
- + describe doc: remove '7-char' abbreviation reference
-
- Docfix.
-
- Will merge to 'master'.
-
-
-* po/rerere-doc-fmt (2019-04-08) 1 commit
- (merged to 'next' on 2019-04-22 at 780c0d2450)
- + rerere doc: quote `rerere.enabled`
-
- Docfix.
-
- Will merge to 'master'.
-
-
-* sg/blame-in-bare-start-at-head (2019-04-08) 1 commit
- (merged to 'next' on 2019-04-22 at 159777c280)
- + blame: default to HEAD in a bare repo when no start commit is given
-
- "git blame -- path" in a non-bare repository starts blaming from
- the working tree, and the same command in a bare repository errors
- out because there is no working tree by definition. The command
- has been taught to instead start blaming from the commit at HEAD,
- which is more useful.
-
- Will merge to 'master'.
-
-
-* tg/ls-files-debug-format-fix (2019-04-08) 1 commit
- (merged to 'next' on 2019-04-22 at a5ac1ca49f)
- + ls-files: use correct format string
-
- Debugging code fix.
-
- Will merge to 'master'.
-
-
-* tz/doc-apostrophe-no-longer-needed (2019-04-10) 1 commit
- (merged to 'next' on 2019-04-22 at 8ff03863ce)
- + Documentation/git-show-branch: avoid literal {apostrophe}
-
- Doc formatting fix.
-
Will merge to 'master'.
* tz/git-svn-doc-markup-fix (2019-04-10) 1 commit
- - Documentation/git-svn: improve asciidoctor compatibility
+ (merged to 'next' on 2019-04-25 at 3efaa6285c)
+ + Documentation/git-svn: improve asciidoctor compatibility
Doc formatting fix.
- Will merge to 'next'.
-
-
-* js/t3301-unbreak-notes-test (2019-04-09) 1 commit
- (merged to 'next' on 2019-04-22 at a015b00bd9)
- + t3301: fix false negative
-
- Test fix.
-
Will merge to 'master'.
* ss/msvc-path-utils-fix (2019-04-09) 1 commit
- - MSVC: include compat/win32/path-utils.h for MSVC, too, for real_path()
+ (merged to 'next' on 2019-04-25 at ee2850da18)
+ + MSVC: include compat/win32/path-utils.h for MSVC, too, for real_path()
An earlier update for MinGW and Cygwin accidentally broke MSVC build,
which has been fixed.
- Will merge to 'next'.
+ Will merge to 'master'.
* cc/multi-promisor (2019-04-15) 17 commits
- fetch-object: make functions return an error code
- t0410: remove pipes after git commands
- Merge branch 'jt/batch-fetch-blobs-in-diff' into cc/multi-promisor
- (this branch uses jt/batch-fetch-blobs-in-diff.)
Teach the lazy clone machinery that there can be more than one
promisor remote and consult them in order when downloading missing
cf. <20190411131218.19195-1-pclouds@gmail.com> (restore v2)
-* ab/gc-reflog (2019-04-01) 7 commits
- (merged to 'next' on 2019-04-16 at aa27f951a8)
- + gc: handle & check gc.reflogExpire config
- + reflog tests: assert lack of early exit with expiry="never"
- + reflog tests: test for the "points nowhere" warning
- + reflog tests: make use of "test_config" idiom
- + gc: refactor a "call me once" pattern
- + gc: convert to using the_hash_algo
- + gc: remove redundant check for gc_auto_threshold
-
- Fix various glitches in "git gc" around reflog handling.
-
- Will merge to 'master'.
-
-
* ew/repack-with-bitmaps-by-default (2019-03-18) 3 commits
- pack-objects: default to writing bitmap hash-cache
- t5310: correctly remove bitmaps for jgit test
Will merge to 'next'.
-* js/difftool-no-index (2019-03-18) 3 commits
- (merged to 'next' on 2019-04-16 at 7313f9ff18)
- + difftool: allow running outside Git worktrees with --no-index
- + parse-options: make OPT_ARGUMENT() more useful
- + difftool: remove obsolete (and misleading) comment
-
- "git difftool" can now run outside a repository.
-
- Will merge to 'master'.
-
-
-* pw/cherry-pick-continue (2019-03-18) 3 commits
- (merged to 'next' on 2019-04-16 at 1bfd7a7179)
- + cherry-pick --continue: remember options
- + cherry-pick: demonstrate option amnesia
- + sequencer: break some long lines
-
- "git cherry-pick --options A..B", after giving control back to the
- user to ask help resolving a conflicted step, did not honor the
- options it originally received, which has been corrected.
-
- Will merge to 'master'.
-
-
-* sg/test-atexit (2019-03-14) 11 commits
- (merged to 'next' on 2019-04-10 at 7839135291)
- + t9811-git-p4-label-import: fix pipeline negation
- + git p4 test: disable '-x' tracing in the p4d watchdog loop
- + git p4 test: simplify timeout handling
- + git p4 test: clean up the p4d cleanup functions
- + git p4 test: use 'test_atexit' to kill p4d and the watchdog process
- + t0301-credential-cache: use 'test_atexit' to stop the credentials helper
- + tests: use 'test_atexit' to stop httpd
- + git-daemon: use 'test_atexit` to stop 'git-daemon'
- + test-lib: introduce 'test_atexit'
- + t/lib-git-daemon: make sure to kill the 'git-daemon' process
- + test-lib: fix interrupt handling with 'dash' and '--verbose-log -x'
-
- Test framework update to more robustly clean up leftover files and
- processes after tests are done.
-
- Will merge to 'master'.
-
-
-* jc/format-patch-noclobber (2019-02-22) 1 commit
- - format-patch: --no-clobber refrains from overwriting output files
-
- "git format-patch" used to overwrite an existing patch/cover-letter
- file. A new "--no-clobber" option stops it.
-
- Undecided but inclined to discard.
-
-
-* jk/unused-params-even-more (2019-03-21) 13 commits
- (merged to 'next' on 2019-04-10 at 12edf8872f)
- + parse_opt_ref_sorting: always use with NONEG flag
- + pretty: drop unused strbuf from parse_padding_placeholder()
- + pretty: drop unused "type" parameter in needs_rfc2047_encoding()
- + parse-options: drop unused ctx parameter from show_gitcomp()
- + fetch_pack(): drop unused parameters
- + report_path_error(): drop unused prefix parameter
- + unpack-trees: drop unused error_type parameters
- + unpack-trees: drop name_entry from traverse_by_cache_tree()
- + test-date: drop unused "now" parameter from parse_dates()
- + update-index: drop unused prefix_length parameter from do_reupdate()
- + log: drop unused "len" from show_tagger()
- + log: drop unused rev_info from early output
- + revision: drop some unused "revs" parameters
-
- Code cleanup.
-
- Will merge to 'master'.
-
-
-* ab/commit-graph-fixes (2019-04-01) 8 commits
- (merged to 'next' on 2019-04-16 at 97f4ba02f0)
- + commit-graph: improve & i18n error messages
- + commit-graph write: don't die if the existing graph is corrupt
- + commit-graph verify: detect inability to read the graph
- + commit-graph: don't pass filename to load_commit_graph_one_fd_st()
- + commit-graph: don't early exit(1) on e.g. "git status"
- + commit-graph: fix segfault on e.g. "git status"
- + commit-graph tests: test a graph that's too small
- + commit-graph tests: split up corrupt_graph_and_verify()
-
- Code cleanup with more careful error checking before using data
- read from the commit-graph file.
-
- Will merge to 'master'.
-
-
-* ab/gc-docs (2019-04-08) 11 commits
- (merged to 'next' on 2019-04-22 at 02785d40f5)
- + gc docs: remove incorrect reference to gc.auto=0
- + gc docs: clarify that "gc" doesn't throw away referenced objects
- + gc docs: note "gc --aggressive" in "fast-import"
- + gc docs: downplay the usefulness of --aggressive
- + gc docs: note how --aggressive impacts --window & --depth
- + gc docs: fix formatting for "gc.writeCommitGraph"
- + gc docs: re-flow the "gc.*" section in "config"
- + gc docs: include the "gc.*" section from "config" in "gc"
- + gc docs: clean grammar for "gc.bigPackThreshold"
- + gc docs: stop noting "repack" flags
- + gc docs: modernize the advice for manually running "gc"
-
- Update docs around "gc".
-
- Will merge to 'master'.
-
-
-* ab/test-lib-pass-trace2-env (2019-04-01) 1 commit
- (merged to 'next' on 2019-04-16 at 4dad6d6d7a)
- + test-lib: whitelist GIT_TR2_* in the environment
+* jc/format-patch-noclobber (2019-02-22) 1 commit
+ - format-patch: --no-clobber refrains from overwriting output files
- Allow tracing of Git executable while running the testsuite.
+ "git format-patch" used to overwrite an existing patch/cover-letter
+ file. A new "--no-clobber" option stops it.
- Will merge to 'master'.
+ Undecided but inclined to discard.
* am/p4-branches-excludes (2019-04-02) 8 commits
Is this ready for 'next'?
-* bc/hash-transition-16 (2019-04-01) 35 commits
- (merged to 'next' on 2019-04-16 at 8227fea6fa)
- + gitweb: make hash size independent
- + Git.pm: make hash size independent
- + read-cache: read data in a hash-independent way
- + dir: make untracked cache extension hash size independent
- + builtin/difftool: use parse_oid_hex
- + refspec: make hash size independent
- + archive: convert struct archiver_args to object_id
- + builtin/get-tar-commit-id: make hash size independent
- + get-tar-commit-id: parse comment record
- + hash: add a function to lookup hash algorithm by length
- + remote-curl: make hash size independent
- + http: replace sha1_to_hex
- + http: compute hash of downloaded objects using the_hash_algo
- + http: replace hard-coded constant with the_hash_algo
- + http-walker: replace sha1_to_hex
- + http-push: remove remaining uses of sha1_to_hex
- + http-backend: allow 64-character hex names
- + http-push: convert to use the_hash_algo
- + builtin/pull: make hash-size independent
- + builtin/am: make hash size independent
- + fast-import: replace sha1_to_hex
- + fast-import: make hash-size independent
- + builtin/name-rev: make hash-size independent
- + object-store: rename and expand packed_git's sha1 member
- + notes: replace sha1_to_hex
- + notes: make hash size independent
- + notes-merge: switch to use the_hash_algo
- + submodule: avoid hard-coded constants
- + pack-bitmap: switch hash tables to use struct object_id
- + pack-bitmap: switch hard-coded constants to the_hash_algo
- + pack-bitmap: replace sha1_to_hex
- + pack-bitmap: convert struct stored_bitmap to object_id
- + pack-bitmap: make bitmap header handling hash agnostic
- + khash: move oid hash table definition
- + t/lib-submodule-update: use appropriate length constant
-
- Conversion from unsigned char[20] to struct object_id continues.
-
- Will merge to 'master'.
-
-
* cc/replace-graft-peel-tags (2019-04-15) 4 commits
- - replace: peel tag when passing a tag first to --graft
- - replace: peel tag when passing a tag as parent to --graft
- - t6050: redirect expected error output to a file
- - t6050: use test_line_count instead of wc -l
+ (merged to 'next' on 2019-04-25 at f8d0db27ba)
+ + replace: peel tag when passing a tag first to --graft
+ + replace: peel tag when passing a tag as parent to --graft
+ + t6050: redirect expected error output to a file
+ + t6050: use test_line_count instead of wc -l
When given a tag that points at a commit-ish, "git replace --graft"
failed to peel the tag before writing a replace ref, which did not
mimick only allowed to replace one commit object with another.
This has been fixed.
- Will merge to 'next'.
-
-
-* dk/blame-keep-origin-blob (2019-04-03) 1 commit
- (merged to 'next' on 2019-04-16 at 39679dde8b)
- + blame.c: don't drop origin blobs as eagerly
-
- Performance fix around "git blame", especially in a linear history
- (which is the norm we should optimize for).
-
Will merge to 'master'.
-* dl/rebase-i-keep-base (2019-04-21) 6 commits
+* dl/rebase-i-keep-base (2019-04-25) 6 commits
- rebase: teach rebase --keep-base
- rebase: fast-forward --fork-point in more cases
- rebase: fast-forward --onto in more cases
Will merge to 'next'.
-* en/fast-import-parsing-fix (2019-04-01) 5 commits
- (merged to 'next' on 2019-04-16 at b318831bde)
- + fast-import: fix erroneous handling of get-mark with empty orphan commits
- + fast-import: only allow cat-blob requests where it makes sense
- + fast-import: check most prominent commands first
- + git-fast-import.txt: fix wording about where ls command can appear
- + t9300: demonstrate bug with get-mark and empty orphan commits
-
- "git fast-import" update.
-
- Will merge to 'master'.
-
-
* jh/trace2-sid-fix (2019-04-16) 10 commits
- - trace2: update docs to describe system/global config settings
- - trace2: make SIDs more unique
- - trace2: clarify UTC datetime formatting
- - trace2: report peak memory usage of the process
- - trace2: use system/global config for default trace2 settings
- - config: add read_very_early_config()
- - trace2: find exec-dir before trace2 initialization
- - trace2: add absolute elapsed time to start event
- - trace2: refactor setting process starting time
- - config: initialize opts structure in repo_read_config()
+ (merged to 'next' on 2019-04-25 at a5c08f1226)
+ + trace2: update docs to describe system/global config settings
+ + trace2: make SIDs more unique
+ + trace2: clarify UTC datetime formatting
+ + trace2: report peak memory usage of the process
+ + trace2: use system/global config for default trace2 settings
+ + config: add read_very_early_config()
+ + trace2: find exec-dir before trace2 initialization
+ + trace2: add absolute elapsed time to start event
+ + trace2: refactor setting process starting time
+ + config: initialize opts structure in repo_read_config()
Polishing of the new trace2 facility continues. The system-level
configuration can specify site-wide trace2 settings, which can be
overridden with per-user configuration and environment variables.
- Will merge to 'next'.
+ Will merge to 'master'.
cf. <pull.169.v4.git.gitgitgadget@gmail.com> (v4)
* js/trace2-to-directory (2019-03-22) 1 commit
- - trace2: write to directory targets
+ (merged to 'next' on 2019-04-25 at 53adf71c41)
+ + trace2: write to directory targets
The trace2 tracing facility learned to auto-generate a filename
when told to log to a directory.
- Will merge to 'next'.
-
-
-* jt/batch-fetch-blobs-in-diff (2019-04-08) 2 commits
- (merged to 'next' on 2019-04-22 at 0598bae567)
- + diff: batch fetching of missing blobs
- + sha1-file: support OBJECT_INFO_FOR_PREFETCH
- (this branch is used by cc/multi-promisor.)
-
- While running "git diff" in a lazy clone, we can upfront know which
- missing blobs we will need, instead of waiting for the on-demand
- machinery to discover them one by one. Aim to achieve better
- performance by batching the request for these promised blobs.
-
- Will merge to 'master'.
-
-
-* jt/fetch-no-update-shallow-in-proto-v2 (2019-04-01) 3 commits
- (merged to 'next' on 2019-04-16 at 05c5ebe471)
- + fetch-pack: respect --no-update-shallow in v2
- + fetch-pack: call prepare_shallow_info only if v0
- + Merge branch 'jt/test-protocol-version' into jt/fetch-no-update-shallow-in-proto-v2
-
- Fix for protocol v2 support in "git fetch-pack" of shallow clones.
-
- Will merge to 'master'.
-
-
-* jt/fetch-pack-wanted-refs-optim (2019-04-01) 1 commit
- (merged to 'next' on 2019-04-16 at 051f6bd38a)
- + fetch-pack: binary search when storing wanted-refs
-
- Performance fix around "git fetch" that grabs many refs.
-
Will merge to 'master'.
* km/empty-repo-is-still-a-repo (2019-04-10) 3 commits
- - add: error appropriately on repository with no commits
- - dir: do not traverse repositories with no commits
- - submodule: refuse to add repository with no commits
+ (merged to 'next' on 2019-04-25 at bb3d4406a5)
+ + add: error appropriately on repository with no commits
+ + dir: do not traverse repositories with no commits
+ + submodule: refuse to add repository with no commits
Running "git add" on a repository created inside the current
repository is an explicit indication that the user wants to add it
repository, which is not what the user wants. These problems are
being addressed.
- Will merge to 'next'.
-
-
-* nd/checkout-m (2019-03-24) 4 commits
- (merged to 'next' on 2019-04-16 at 4d7c322bed)
- + checkout: prevent losing staged changes with --merge
- + read-tree: add --quiet
- + unpack-trees: rename "gently" flag to "quiet"
- + unpack-trees: keep gently check inside add_rejected_path
-
- "git checkout -m <other>" was about carrying the differences
- between HEAD and the working-tree files forward while checking out
- another branch, and ignored the differences between HEAD and the
- index. The command has been taught to abort when the index and the
- HEAD are different.
-
- Will merge to 'master'.
-
-
-* nd/commit-a-with-paths-msg-update (2019-03-22) 1 commit
- (merged to 'next' on 2019-04-16 at a36c712b39)
- + commit: improve error message in "-a <paths>" case
-
- The message given when "git commit -a <paths>" errors out has been
- updated.
-
- Will merge to 'master'.
-
-
-* nd/diff-parseopt-4 (2019-03-24) 20 commits
- (merged to 'next' on 2019-04-10 at 893b135f10)
- + am: avoid diff_opt_parse()
- + diff --no-index: use parse_options() instead of diff_opt_parse()
- + range-diff: use parse_options() instead of diff_opt_parse()
- + diff.c: allow --no-color-moved-ws
- + diff-parseopt: convert --color-moved-ws
- + diff-parseopt: convert --[no-]color-moved
- + diff-parseopt: convert --inter-hunk-context
- + diff-parseopt: convert --no-prefix
- + diff-parseopt: convert --line-prefix
- + diff-parseopt: convert --[src|dst]-prefix
- + diff-parseopt: convert --[no-]abbrev
- + diff-parseopt: convert --diff-filter
- + diff-parseopt: convert --find-object
- + diff-parseopt: convert -O
- + diff-parseopt: convert --pickaxe-all|--pickaxe-regex
- + diff-parseopt: convert -S|-G
- + diff-parseopt: convert -l
- + diff-parseopt: convert -z
- + diff-parseopt: convert --ita-[in]visible-in-index
- + diff-parseopt: convert --ws-error-highlight
-
- Fourth batch to teach the diff machinery to use the parse-options
- API.
-
Will merge to 'master'.
* nd/sha1-name-c-wo-the-repository (2019-04-16) 34 commits
- - sha1-name.c: remove the_repo from get_oid_mb()
- - sha1-name.c: remove the_repo from other get_oid_*
- - sha1-name.c: remove the_repo from maybe_die_on_misspelt_object_name
- - submodule-config.c: use repo_get_oid for reading .gitmodules
- - sha1-name.c: add repo_get_oid()
- - sha1-name.c: remove the_repo from get_oid_with_context_1()
- - sha1-name.c: remove the_repo from resolve_relative_path()
- - sha1-name.c: remove the_repo from diagnose_invalid_index_path()
- - sha1-name.c: remove the_repo from handle_one_ref()
- - sha1-name.c: remove the_repo from get_oid_1()
- - sha1-name.c: remove the_repo from get_oid_basic()
- - sha1-name.c: remove the_repo from get_describe_name()
- - sha1-name.c: remove the_repo from get_oid_oneline()
- - sha1-name.c: add repo_interpret_branch_name()
- - sha1-name.c: remove the_repo from interpret_branch_mark()
- - sha1-name.c: remove the_repo from interpret_nth_prior_checkout()
- - sha1-name.c: remove the_repo from get_short_oid()
- - sha1-name.c: add repo_for_each_abbrev()
- - sha1-name.c: store and use repo in struct disambiguate_state
- - sha1-name.c: add repo_find_unique_abbrev_r()
- - sha1-name.c: remove the_repo from find_abbrev_len_packed()
- - sha1-name.c: remove the_repo from sort_ambiguous()
- - commit.c: add repo_get_commit_tree()
- - commit.cocci: refactor code, avoid double rewrite
- - refs.c: remove the_repo from read_ref_at()
- - refs.c: add repo_dwim_log()
- - refs.c: add repo_dwim_ref()
- - refs.c: remove the_repo from expand_ref()
- - refs.c: remove the_repo from substitute_branch_name()
- - refs.c: add refs_shorten_unambiguous_ref()
- - refs.c: add refs_ref_exists()
- - packfile.c: add repo_approximate_object_count()
- - builtin rebase: use oideq()
- - builtin rebase: use FREE_AND_NULL
+ (merged to 'next' on 2019-04-25 at d826918329)
+ + sha1-name.c: remove the_repo from get_oid_mb()
+ + sha1-name.c: remove the_repo from other get_oid_*
+ + sha1-name.c: remove the_repo from maybe_die_on_misspelt_object_name
+ + submodule-config.c: use repo_get_oid for reading .gitmodules
+ + sha1-name.c: add repo_get_oid()
+ + sha1-name.c: remove the_repo from get_oid_with_context_1()
+ + sha1-name.c: remove the_repo from resolve_relative_path()
+ + sha1-name.c: remove the_repo from diagnose_invalid_index_path()
+ + sha1-name.c: remove the_repo from handle_one_ref()
+ + sha1-name.c: remove the_repo from get_oid_1()
+ + sha1-name.c: remove the_repo from get_oid_basic()
+ + sha1-name.c: remove the_repo from get_describe_name()
+ + sha1-name.c: remove the_repo from get_oid_oneline()
+ + sha1-name.c: add repo_interpret_branch_name()
+ + sha1-name.c: remove the_repo from interpret_branch_mark()
+ + sha1-name.c: remove the_repo from interpret_nth_prior_checkout()
+ + sha1-name.c: remove the_repo from get_short_oid()
+ + sha1-name.c: add repo_for_each_abbrev()
+ + sha1-name.c: store and use repo in struct disambiguate_state
+ + sha1-name.c: add repo_find_unique_abbrev_r()
+ + sha1-name.c: remove the_repo from find_abbrev_len_packed()
+ + sha1-name.c: remove the_repo from sort_ambiguous()
+ + commit.c: add repo_get_commit_tree()
+ + commit.cocci: refactor code, avoid double rewrite
+ + refs.c: remove the_repo from read_ref_at()
+ + refs.c: add repo_dwim_log()
+ + refs.c: add repo_dwim_ref()
+ + refs.c: remove the_repo from expand_ref()
+ + refs.c: remove the_repo from substitute_branch_name()
+ + refs.c: add refs_shorten_unambiguous_ref()
+ + refs.c: add refs_ref_exists()
+ + packfile.c: add repo_approximate_object_count()
+ + builtin rebase: use oideq()
+ + builtin rebase: use FREE_AND_NULL
Further code clean-up to allow the lowest level of name-to-object
mapping layer to work with a passed-in repository other than the
default one.
- Will merge to 'next'.
+ Will merge to 'master'.
* pw/rebase-i-internal (2019-04-19) 13 commits
- rebase: don't translate trace strings
- sequencer: always discard index after checkout
- Merge branch 'ag/sequencer-reduce-rewriting-todo' into pw/rebase-i-internal
- (this branch uses ag/sequencer-reduce-rewriting-todo.)
The internal implementation of "git rebase -i" has been updated to
avoid forking a separate "rebase--interactive" process.
Will merge to 'next'.
-* sg/index-pack-progress (2019-04-01) 1 commit
- (merged to 'next' on 2019-04-16 at a10bfdd950)
- + index-pack: show progress while checking objects
-
- A progress indicator has been added to the "index-pack" step, which
- often makes users wait for completion during "git clone".
-
- Will merge to 'master'.
-
-
-* sg/overlong-progress-fix (2019-04-15) 4 commits
- (merged to 'next' on 2019-04-22 at 69921cdf09)
- + progress: break too long progress bar lines
- + progress: clear previous progress update dynamically
- + progress: assemble percentage and counters in a strbuf before printing
- + progress: make display_progress() return void
-
- Updating the display with progress message has been cleaned up to
- deal better with overlong messages.
-
- Will merge to 'master'.
-
-
* nd/worktree-name-sanitization (2019-03-20) 2 commits
- SQUASH???
- worktree add: sanitize worktree names
must be a valid refname component. The code now sanitizes the names
given to worktrees, to make sure these refs are well-formed.
-
-* bp/post-index-change-hook (2019-02-15) 1 commit
- (merged to 'next' on 2019-03-11 at cb96d1d7c4)
- + read-cache: add post-index-change hook
-
- Originally merged to 'next' on 2019-02-23
-
- A new hook "post-index-change" is called when the on-disk index
- file changes, which can help e.g. a virtualized working tree
- implementation.
-
- Will merge to 'master'.
-
-
-* dl/submodule-set-branch (2019-04-10) 3 commits
- (merged to 'next' on 2019-04-22 at 3b640715ae)
- + submodule: teach set-branch subcommand
- + submodule--helper: teach config subcommand --unset
- + git-submodule.txt: "--branch <branch>" option defaults to 'master'
-
- "git submodule" learns "set-branch" subcommand that allows the
- submodule.*.branch settings to be modified.
-
- Will merge to 'master'.
+ I am inclined to squash the fix at the tip in and merge the result
+ to 'next'. Opinions?
* dm/some-stdio-functions-are-macro-on-freebsd (2019-02-01) 1 commit
cf. <49B9198C-53E5-42BD-8834-B1EDEB3332CB@usask.ca>
-* ds/commit-graph-format-v2 (2019-01-29) 8 commits
- - SQUASH : misnamed variables and style fix
- - commit-graph: test verifying a corrupt v2 header
+* ds/commit-graph-format-v2 (2019-04-25) 5 commits
- commit-graph: implement file format version 2
- commit-graph: add --version=<n> option
- commit-graph: create new version flags
- commit-graph: collapse parameters into flags
- commit-graph: return with errors during write
- - Merge branch 'bc/sha-256' into ds/commit-graph-format-v2
Introduce version 2 of the commit-graph format to correct
deficiency in the initial version.
- Needs update before merging to 'next'.
+ cf. <pull.112.v2.git.gitgitgadget@gmail.com> (v2)
* br/blame-ignore (2019-04-14) 6 commits
* dl/merge-cleanup-scissors-fix (2019-04-19) 10 commits
- - cherry-pick/revert: add scissors line on merge conflict
- - sequencer.c: save and restore cleanup mode
- - merge: add scissors line on merge conflict
- - merge: cleanup messages like commit
- - parse-options.h: extract common --cleanup option
- - commit: extract cleanup_mode functions to sequencer
- - t7502: clean up style
- - t7604: clean up style
- - t3507: clean up style
- - t7600: clean up style
+ (merged to 'next' on 2019-04-25 at 2014eef6b1)
+ + cherry-pick/revert: add scissors line on merge conflict
+ + sequencer.c: save and restore cleanup mode
+ + merge: add scissors line on merge conflict
+ + merge: cleanup messages like commit
+ + parse-options.h: extract common --cleanup option
+ + commit: extract cleanup_mode functions to sequencer
+ + t7502: clean up style
+ + t7604: clean up style
+ + t3507: clean up style
+ + t7600: clean up style
(this branch uses pw/sequencer-cleanup-with-signoff-x-fix.)
The list of conflicted paths shown in the editor while concluding a
out just like the list of updated paths and other information to
help the user explain the merge better.
- Will merge to 'next'.
+ Will merge to 'master'.
* jn/unknown-index-extensions (2018-11-21) 2 commits
exist is getting revamped.
Expecting a reroll.
-
-
-* ag/sequencer-reduce-rewriting-todo (2019-03-07) 18 commits
- (merged to 'next' on 2019-04-10 at 7eab7c7800)
- + rebase--interactive: move transform_todo_file()
- + sequencer: use edit_todo_list() in complete_action()
- + rebase-interactive: rewrite edit_todo_list() to handle the initial edit
- + rebase-interactive: append_todo_help() changes
- + rebase-interactive: use todo_list_write_to_file() in edit_todo_list()
- + sequencer: refactor skip_unnecessary_picks() to work on a todo_list
- + rebase--interactive: move rearrange_squash_in_todo_file()
- + rebase--interactive: move sequencer_add_exec_commands()
- + sequencer: change complete_action() to use the refactored functions
- + sequencer: make sequencer_make_script() write its script to a strbuf
- + sequencer: refactor rearrange_squash() to work on a todo_list
- + sequencer: refactor sequencer_add_exec_commands() to work on a todo_list
- + sequencer: refactor check_todo_list() to work on a todo_list
- + sequencer: introduce todo_list_write_to_file()
- + sequencer: refactor transform_todos() to work on a todo_list
- + sequencer: remove the 'arg' field from todo_item
- + sequencer: make the todo_list structure public
- + sequencer: changes in parse_insn_buffer()
- (this branch is used by pw/rebase-i-internal.)
-
- The scripted version of "git rebase -i" wrote and rewrote the todo
- list many times during a single step of its operation, and the
- recent C-rewrite made a faithful conversion of the logic to C. The
- implementation has been updated to carry necessary information
- around in-core to avoid rewriting the same file over and over
- unnecessarily.
-
- Will merge to 'master'.
- cf. <20190305191805.13561-1-alban.gruin@gmail.com> (v8)
-
---------------------------------------------------
-[Discarded]
-
-* js/rev-list-exclude-promisor-objects (2019-04-09) 1 commit
- . rev-list: exclude promisor objects at walk time
-
- "git rev-list --exclude-promisor-objects" learned not to bother
- enumerating all promisor objects, and instead filter these objects
- at walk time for performance.
-
- Discarded; js/partial-clone-connectivity-check replaces this.
- cf. <9856e7fc74f51b60ae162cbed3f5c0cf8c603222.1554757275.git.steadmon@google.com> (v3)
- cf. <20190413053434.GA31884@sigill.intra.peff.net>