What's cooking in git.git (Feb 2021, #03; Wed, 17)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Here are the topics that have been cooking.  Commits prefixed with '-' are
only in 'seen' (formerly 'pu'---proposed updates) while commits prefixed
with '+' are in 'next'.  The ones marked with '.' do not appear in any of
the integration branches, but I am still holding onto them.

The eighth batch of topics are in 'master'.

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/

--------------------------------------------------
[Graduated to 'master']

* ab/tests-various-fixup (2021-01-23) 10 commits
  (merged to 'next' on 2021-02-01 at a604a6e217)
 + rm tests: actually test for SIGPIPE in SIGPIPE test
 + archive tests: use a cheaper "zipinfo -h" invocation to get header
 + upload-pack tests: avoid a non-zero "grep" exit status
 + git-svn tests: rewrite brittle tests to use "--[no-]merges".
 + git svn mergeinfo tests: refactor "test -z" to use test_must_be_empty
 + git svn mergeinfo tests: modernize redirection & quoting style
 + cache-tree tests: explicitly test HEAD and index differences
 + cache-tree tests: use a sub-shell with less indirection
 + cache-tree tests: remove unused $2 parameter
 + cache-tree tests: refactor for modern test style

 Various test updates.


* en/merge-ort-perf (2021-01-23) 6 commits
  (merged to 'next' on 2021-02-01 at ca3c07579b)
 + merge-ort: begin performance work; instrument with trace2_region_* calls
 + merge-ort: ignore the directory rename split conflict for now
 + merge-ort: fix massive leak
 + Merge branch 'en/ort-directory-rename' into en/merge-ort-perf
 + Merge branch 'en/ort-conflict-handling' into en/merge-ort-perf
 + Merge branch 'en/diffcore-rename' into en/merge-ort-perf
 (this branch uses en/ort-directory-rename.)

 The "ort" merge strategy.


* en/ort-directory-rename (2021-01-20) 18 commits
  (merged to 'next' on 2021-02-01 at 5c1cdd13a1)
 + merge-ort: fix a directory rename detection bug
 + merge-ort: process_renames() now needs more defensiveness
 + merge-ort: implement apply_directory_rename_modifications()
 + merge-ort: add a new toplevel_dir field
 + merge-ort: implement handle_path_level_conflicts()
 + merge-ort: implement check_for_directory_rename()
 + merge-ort: implement apply_dir_rename() and check_dir_renamed()
 + merge-ort: implement compute_collisions()
 + merge-ort: modify collect_renames() for directory rename handling
 + merge-ort: implement handle_directory_level_conflicts()
 + merge-ort: implement compute_rename_counts()
 + merge-ort: copy get_renamed_dir_portion() from merge-recursive.c
 + merge-ort: add outline of get_provisional_directory_renames()
 + merge-ort: add outline for computing directory renames
 + merge-ort: collect which directories are removed in dirs_removed
 + merge-ort: initialize and free new directory rename data structures
 + merge-ort: add new data structures for directory rename detection
 + Merge branch 'en/merge-ort-3' into en/ort-directory-rename
 (this branch is used by en/merge-ort-perf.)

 ORT merge strategy learns to infer "renamed directory" while
 merging.


* jk/complete-branch-force-delete (2021-02-03) 3 commits
  (merged to 'next' on 2021-02-03 at 6454bb89b5)
 + doc/git-branch: fix awkward wording for "-c"
 + completion: handle other variants of "branch -m"
 + completion: treat "branch -D" the same way as "branch -d"

 The command line completion (in contrib/) completed "git branch -d"
 with branch names, but "git branch -D" offered tagnames in addition,
 which has been corrected.  "git branch -M" had the same problem.


* jv/upload-pack-filter-spec-quotefix (2021-02-02) 2 commits
  (merged to 'next' on 2021-02-03 at 2e34f74e3a)
 + t5544: clarify 'hook works with partial clone' test
  (merged to 'next' on 2021-01-31 at 789bf4154e)
 + upload-pack.c: fix filter spec quoting bug

 Fix in passing custom args from "git clone" to "upload-pack" on the
 other side.


* tb/ci-run-cocci-with-18.04 (2021-02-08) 1 commit
  (merged to 'next' on 2021-02-09 at c50bc53527)
 + .github/workflows/main.yml: run static-analysis on bionic

 The version of Ubuntu Linux used by default at GitHub Actions CI
 has been updated to one that lack coccinelle; until it gets fixed,
 work it around by sticking to the previous release (18.04).


* tb/pack-revindex-on-disk (2021-01-28) 10 commits
  (merged to 'next' on 2021-02-01 at bd6a780213)
 + t5325: check both on-disk and in-memory reverse index
 + pack-revindex: ensure that on-disk reverse indexes are given precedence
 + t: support GIT_TEST_WRITE_REV_INDEX
 + t: prepare for GIT_TEST_WRITE_REV_INDEX
 + Documentation/config/pack.txt: advertise 'pack.writeReverseIndex'
 + builtin/pack-objects.c: respect 'pack.writeReverseIndex'
 + builtin/index-pack.c: write reverse indexes
 + builtin/index-pack.c: allow stripping arbitrary extensions
 + pack-write.c: prepare to write 'pack-*.rev' files
 + packfile: prepare for the existence of '*.rev' files
 (this branch is used by tb/reverse-midx.)

 Introduce an on-disk file to record revindex for packdata, which
 traditionally was always created on the fly and only in-core.


* tb/precompose-prefix-too (2021-02-03) 1 commit
  (merged to 'next' on 2021-02-05 at 1dd43136b1)
 + MacOS: precompose_argv_prefix()

 When commands are started from a subdirectory, they may have to
 compare the path to the subdirectory (called prefix and found out
 from $(pwd)) with the tracked paths.  On macOS, $(pwd) and
 readdir() yield decomposed path, while the tracked paths are
 usually normalized to the precomposed form, causing mismatch.  This
 has been fixed by taking the same approach used to normalize the
 command line arguments.

--------------------------------------------------
[New Topics]

* tb/reverse-midx (2021-02-10) 9 commits
 - pack-revindex: write multi-pack reverse indexes
 - pack-write.c: extract 'write_rev_file_order'
 - pack-revindex: read multi-pack reverse indexes
 - Documentation/technical: describe multi-pack reverse indexes
 - midx: make some functions non-static
 - midx: keep track of the checksum
 - midx: don't free midx_name early
 - midx: allow marking a pack as preferred
 - t/helper/test-read-midx.c: add '--show-objects'

 An on-disk reverse-index to map the in-pack location of an object
 back to its object name across multiple packfiles is introduced.


* ab/detox-gettext-tests (2021-02-10) 4 commits
 - tests: remove most uses of test_i18ncmp
 - tests: remove last uses of C_LOCALE_OUTPUT
 - tests: remove most uses of C_LOCALE_OUTPUT
 - tests: remove last uses of GIT_TEST_GETTEXT_POISON=false

 Removal of GIT_TEST_GETTEXT_POISON continues.

 Will merge to 'next'.


* ab/diff-deferred-free (2021-02-11) 2 commits
  (merged to 'next' on 2021-02-12 at 5e24106122)
 + diff: plug memory leak from regcomp() on {log,diff} -I
 + diff: add an API for deferred freeing

 A small memleak in "diff -I<regexp>" has been corrected.

 Will merge to 'master'.


* ak/config-bad-bool-error (2021-02-11) 1 commit
  (merged to 'next' on 2021-02-12 at 76784be663)
 + config: improve error message for boolean config

 The error message given when a configuration variable that is
 expected to have a boolean value has been improved.

 Will merge to 'master'.


* jc/diffcore-rotate (2021-02-16) 1 commit
 - diff: --{rotate,skip}-to=<path>

 "git {diff,log} --{skip,rotate}-to=<path>" allows the user to
 discard diff output for early paths or move them to the end of the
 output.

 Will merge to 'next'.


* js/commit-graph-warning (2021-02-11) 1 commit
  (merged to 'next' on 2021-02-12 at e9faad550a)
 + commit-graph: when incompatible with graphs, indicate why

 When certain features (e.g. grafts) used in the repository are
 incompatible with the use of the commit-graph, we used to silently
 turned commit-graph off; we now tell the user what we are doing.

 Will merge to 'master'.


* js/reflog-expire-stale-fix (2021-02-11) 1 commit
  (merged to 'next' on 2021-02-12 at 899034efca)
 + reflog expire --stale-fix: be generous about missing objects

 "git reflog expire --stale-fix" can be used to repair the reflog by
 removing entries that refer to objects that have been pruned away,
 but was not careful to tolerate missing objects.

 Will merge to 'master'.


* mz/doc-notes-are-not-anchors (2021-02-10) 1 commit
 - docs: clarify that refs/notes/ do not keep the attached objects alive

 Objects that lost references can be pruned away, even when they
 have notes attached to it (and these notes will become dangling,
 which in turn can be pruned with "git notes prune").  This has been
 clarified in the documentation.

 Will merge to 'next'.


* en/diffcore-rename (2021-02-15) 8 commits
 - merge-ort: call diffcore_rename() directly
 - gitdiffcore doc: mention new preliminary step for rename detection
 - diffcore-rename: guide inexact rename detection based on basenames
 - diffcore-rename: complete find_basename_matches()
 - diffcore-rename: compute basenames of source and dest candidates
 - t4001: add a test comparing basename similarity and content similarity
 - diffcore-rename: filter rename_src list when possible
 - diffcore-rename: no point trying to find a match better than exact

 Performance optimization work on the rename detection continues.

 Will merge to 'next'.


* ab/pickaxe-pcre2 (2021-02-16) 24 commits
 - pickaxe -G: don't special-case create/delete
 - pickaxe -G: terminate early on matching lines
 - xdiff-interface: support early exit in xdiff_outf()
 - xdiff-interface: allow early return from xdiff_emit_{line,hunk}_fn
 - pickaxe -S: slightly optimize contains()
 - pickaxe: rename variables in has_changes() for brevity
 - pickaxe -S: support content with NULs under --pickaxe-regex
 - pickaxe: assert that we must have a needle under -G or -S
 - pickaxe: refactor function selection in diffcore-pickaxe()
 - perf: add performance test for pickaxe
 - pickaxe/style: consolidate declarations and assignments
 - diff.h: move pickaxe fields together again
 - pickaxe: die when --find-object and --pickaxe-all are combined
 - pickaxe: die when -G and --pickaxe-regex are combined
 - pickaxe tests: test for -G, -S and --find-object incompatibility
 - pickaxe tests: add test for "log -S" not being a regex
 - pickaxe tests: add test for diffgrep_consume() internals
 - pickaxe tests: refactor to use test_commit --append --printf
 - test-lib functions: add --printf option to test_commit
 - test-lib-functions: reword "test_commit --append" docs
 - test-lib-functions: document and test test_commit --no-tag
 - grep/pcre2 tests: reword comments referring to kwset
 - Merge branch 'jk/rev-list-disk-usage' into ab/pickaxe-pcre2
 - Merge branch 'ab/test-lib' into ab/pickaxe-pcre2
 (this branch uses ab/test-lib and jk/rev-list-disk-usage.)


* cm/rebase-i-fixup-amend-reword (2021-02-17) 6 commits
 - doc/git-commit: add documentation for fixup[amend|reword] options
 - t3437: use --fixup with options to create amend! commit
 - t7500: add tests for --fixup[amend|reword] options
 - commit: add a reword suboption to --fixup
 - commit: add amend suboption to --fixup to create amend! commit
 - sequencer: export subject_length()
 (this branch uses cm/rebase-i and cm/rebase-i-updates.)

 "git commit --fixup" learns to optionally create "amend!" and
 "reword!"  commits, that use the log message in "fixup" commit
 as the message of the resulting commit.


* dl/stash-show-untracked (2021-02-16) 4 commits
 - SQUASH???
 - SQUASH???
 - stash show: learn stash.showIncludeUntracked
 - stash show: teach --include-untracked and --only-untracked
 (this branch uses dl/stash-cleanup.)

 "git stash show" learned to optionally show untracked part of the
 stash.


* es/config-hooks-part-1 (2021-02-16) 17 commits
 - hooks: allow callers to capture output
 - run-command: allow capturing of collated output
 - hook: provide stdin by string_list or callback
 - run-command: add stdin callback for parallelization
 - hook: allow specifying working directory for hooks
 - hook: allow parallel hook execution
 - run-command: allow stdin for run_processes_parallel
 - hook: support passing stdin to hooks
 - hook: replace find_hook() with hook_exists()
 - hook: add 'run' subcommand
 - parse-options: parse into strvec
 - hook: implement hookcmd.<name>.skip
 - hook: respect hook.runHookDir
 - hook: include hookdir hook in list
 - hook: add list command
 - hook: scaffolding for git-hook subcommand
 - doc: propose hooks managed by the config
 (this branch is used by es/config-hooks.)

 A way to specify hooks in the configuration files is introduced.

 Will merge to 'next'.


* jh/fsmonitor-prework (2021-02-16) 11 commits
 - fsmonitor: refactor initialization of fsmonitor_last_update token
 - fsmonitor: allow all entries for a folder to be invalidated
 - fsmonitor: log FSMN token when reading and writing the index
 - fsmonitor: log invocation of FSMonitor hook to trace2
 - read-cache: log the number of scanned files to trace2
 - read-cache: log the number of lstat calls to trace2
 - preload-index: log the number of lstat calls to trace2
 - p7519: add trace logging during perf test
 - p7519: move watchman cleanup earlier in the test
 - p7519: fix watchman watch-list test on Windows
 - p7519: do not rely on "xargs -d" in test

 Preliminary changes to fsmonitor integration.

 Will merge to 'next'.


* jk/open-dotgitx-with-nofollow (2021-02-16) 6 commits
 - mailmap: do not respect symlinks for in-tree .mailmap
 - exclude: do not respect symlinks for in-tree .gitignore
 - attr: do not respect symlinks for in-tree .gitattributes
 - exclude: add flags parameter to add_patterns()
 - attr: convert "macro_ok" into a flags field
 - add open_nofollow() helper

 It does not make sense to make ".gitattributes", ".gitignore" and
 ".mailmap" symlinks, as they are supposed to be usable from the
 object store (think: bare repositories where HEAD:.mailmap etc. are
 used).  When these files are symbolic links, we used to read the
 contents of the files pointed by them by mistake, which has been
 corrected.


* js/doc-proto-v2-response-end (2021-02-17) 1 commit
 - doc: fix naming of response-end-pkt

 Docfix.

 Will merge to 'next'.


* ma/doc-markup-fix (2021-02-17) 2 commits
 - gitmailmap.txt: fix rendering of e-mail addresses
 - rev-list-options.txt: fix rendering of bonus paragraph

 Docfix.

 Will merge to 'next'.


* rs/blame-optim (2021-02-17) 1 commit
 - blame: remove unnecessary use of get_commit_info()

 Optimization in "git blame"

 Will merge to 'next'.


* rs/pretty-describe (2021-02-17) 2 commits
 - pretty: add merge and exclude options to %(describe)
 - pretty: add %(describe)

 "git log --format='...'" learned "%(describe)" placeholder.

--------------------------------------------------
[Stalled]

* ab/make-cleanup (2021-02-01) 6 commits
 - Makefile: add {program,xdiff,test,git}-objs & objects targets
 - Makefile: split OBJECTS into OBJECTS and GIT_OBJS
 - Makefile: sort OBJECTS assignment for subsequent change
 - Makefile: split up long OBJECTS line
 - Makefile: guard against TEST_OBJS in the environment
 - Makefile: remove "all" on "$(FUZZ_OBJS)"

 Reorganize Makefile to allow building git.o and other essential
 objects without extra stuff needed only for testing.

 Expecting a reroll (or retraction)
 cf. <YBuZVfnc0ECuoKkK@xxxxxxxxxxxxxxxxxxxxxxx>
 cf. <xmqq1rdzjuaa.fsf@xxxxxxxxxxxxxxxxxxxxxx>


* jk/symlinked-dotgitx-files (2020-10-23) 9 commits
 - docs: document symlink restrictions for .git* files
 - fsck: complain when .gitattributes or .gitignore is a symlink
 - verify_path(): disallow symlinks in .gitattributes and .gitignore
 - t0060: test obscured .gitattributes and .gitignore matching
 - t7450: test .gitmodules symlink matching against obscured names
 - t7450: test verify_path() handling of gitmodules
 - t7415: rename to expand scope
 - fsck_tree(): wrap some long lines
 - fsck_tree(): fix shadowed variable

 "git fsck" and the corresponding check done during the transport
 learned to ensure that in-tree files like `.gitignore` and
 `.gitattributes` are not symbolic links.

 It seems that there are real projects with .gitignore recorded as
 symlinks, which may need to loosen the fsck setting.  Do we need to
 introduce a class that is separate from symlinked .gitmodules that
 has potential consequences that is more/less grave, so that these
 projects can opt out of the new checks?


* sm/curl-retry (2020-10-13) 3 commits
 - http: automatically retry some requests
 - replace CURLOPT_FILE With CURLOPT_WRITEDATA
 - remote-curl: add testing for intelligent retry for HTTP

 The http transport has been taught to retry a failed request that
 may reasonably be retried.

 Expecting a reroll.
 cf. <20201015000410.GB328643@xxxxxxxxxx>
 cf. <CAM4o00eefXK2CJ_FxwwVPpBKL01JsJANf+SdjCtw_0NVV82L+Q@xxxxxxxxxxxxxx>


* ar/fetch-transfer-ipversion (2020-09-16) 1 commit
 - config: option transfer.ipversion to set transport protocol version for network fetches

 Adds transfer.ipversion configuration variable.

 Needs more work.


* jc/war-on-dashed-git (2020-12-21) 2 commits
 - fixup??? git: catch an attempt to run "git-foo"
 - git: catch an attempt to run "git-foo"

 The first step to remove on-disk binaries for built-in subcommands
 by soliciting objections.

 On hold for now.


* mk/use-size-t-in-zlib (2018-10-15) 1 commit
 - zlib.c: use size_t for size

 The wrapper to call into zlib followed our long tradition to use
 "unsigned long" for sizes of regions in memory, which have been
 updated to use "size_t".


* ag/merge-strategies-in-c (2020-11-24) 13 commits
 - sequencer: use the "octopus" merge 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-index: don't fork if the requested program is `git-merge-one-file'
 - merge-index: libify merge_one_path() and merge_all()
 - merge-one-file: rewrite in C
 - update-index: move add_cacheinfo() to read-cache.c
 - t6060: modify multiple files to expose a possible issue with merge-index
 - t6407: modernise tests

 The resolve and octopus merge strategy backends have been rewritten
 in C.

 Got enough review comments to get updated.

--------------------------------------------------
[Cooking]

* js/range-diff-one-side-only (2021-02-06) 6 commits
  (merged to 'next' on 2021-02-08 at 8c35ed8523)
 + range-diff: offer --left-only/--right-only options
 + range-diff: move the diffopt initialization down one layer
 + range-diff: combine all options in a single data structure
 + range-diff: simplify code spawning `git log`
 + range-diff: libify the read_patches() function again
 + range-diff: avoid leaking memory in two error code paths

 The "git range-diff" command learned "--(left|right)-only" option
 to show only one side of the compared range.

 Will merge to 'master'.


* cm/rebase-i-updates (2021-02-10) 11 commits
  (merged to 'next' on 2021-02-12 at e29227780b)
 + doc/rebase -i: fix typo in the documentation of 'fixup' command
 + t/t3437: fixup the test 'multiple fixup -c opens editor once'
 + t/t3437: use named commits in the tests
 + t/t3437: simplify and document the test helpers
 + t/t3437: check the author date of fixed up commit
 + t/t3437: remove the dependency of 'expected-message' file from tests
 + t/t3437: fixup here-docs in the 'setup' test
 + t/lib-rebase: update the documentation of FAKE_LINES
 + rebase -i: clarify and fix 'fixup -c' rebase-todo help
 + sequencer: rename a few functions
 + sequencer: fixup the datatype of the 'flag' argument
 (this branch is used by cm/rebase-i-fixup-amend-reword; uses cm/rebase-i.)

 Follow-up fixes to "cm/rebase-i" topic.

 Will merge to 'master', together with "cm/rebase-i".


* cw/pack-vs-bigfilethreashold (2021-02-09) 2 commits
 - fixup! doc: mention bigFileThreshold for packing
 - doc: mention bigFileThreshold for packing

 Doc update.

 Expecting a reroll.
 cf. <F63929A8-7BC9-43A7-9E7B-118433F62588@xxxxxx>


* ds/maintenance-pack-refs (2021-02-09) 2 commits
  (merged to 'next' on 2021-02-11 at 36f56bc9ec)
 + maintenance: incremental strategy runs pack-refs weekly
 + maintenance: add pack-refs task

 "git maintenance" tool learned a new "pack-refs" maintenance task.

 Will merge to 'master'.


* jk/mailmap-only-at-root (2021-02-10) 1 commit
  (merged to 'next' on 2021-02-10 at fbd122fd6c)
 + mailmap: only look for .mailmap in work tree

 The .mailmap is documented to be read only from the root level of a
 working tree, but a stray file in a bare repository also was read
 by accident, which has been corrected.

 Will merge to 'master'.


* jk/rev-list-disk-usage (2021-02-11) 2 commits
  (merged to 'next' on 2021-02-11 at 6fb701f287)
 + rev-list: add --disk-usage option for calculating disk usage
 + t: add --no-tag option to test_commit
 (this branch is used by ab/pickaxe-pcre2.)

 "git rev-list" command learned "--disk-usage" option.

 Will merge to 'master'.


* jt/trace2-BUG (2021-02-09) 1 commit
  (merged to 'next' on 2021-02-09 at 94911ad676)
 + usage: trace2 BUG() invocations

 Even though invocations of "die()" were logged to the trace2
 system, "BUG()"s were not, which has been corrected.

 Will merge to 'master'.


* mt/checkout-index-corner-cases (2021-02-16) 2 commits
 - checkout-index: omit entries with no tempname from --temp output
 - write_entry(): fix misuses of `path` in error messages

 The error codepath around the "--temp/--prefix" feature of "git
 checkout-index" has been improved.

 Will merge to 'next'.


* mt/grep-cached-untracked (2021-02-09) 1 commit
  (merged to 'next' on 2021-02-10 at e1fca79104)
 + grep: error out if --untracked is used with --cached

 "git grep --untracked" is meant to be "let's ALSO find in these
 files on the filesystem" when looking for matches in the working
 tree files, and does not make any sense if the primary search is
 done against the index, or the tree objects.  The "--cached" and
 "--untracked" options have been marked as mutually incompatible.

 Will merge to 'master'.


* ab/test-lib (2021-02-12) 11 commits
  (merged to 'next' on 2021-02-12 at 666a0422dc)
 + test-lib-functions: assert correct parameter count
 + test-lib-functions: remove bug-inducing "diagnostics" helper param
 + test libs: rename "diff-lib" to "lib-diff"
 + t/.gitattributes: sort lines
 + test-lib-functions: move function to lib-bitmap.sh
 + test libs: rename gitweb-lib.sh to lib-gitweb.sh
 + test libs: rename bundle helper to "lib-bundle.sh"
 + test-lib-functions: remove generate_zero_bytes() wrapper
 + test-lib-functions: move test_set_index_version() to its user
 + test lib: change "error" to "BUG" as appropriate
 + test-lib: remove check_var_migration
 (this branch is used by ab/pickaxe-pcre2.)

 Test framework clean-up.

 Will merge to 'master'.


* dl/stash-cleanup (2021-02-11) 7 commits
  (merged to 'next' on 2021-02-11 at ae1cde1380)
 + stash: declare ref_stash as an array
 + t3905: use test_cmp() to check file contents
 + t3905: replace test -s with test_file_not_empty
 + t3905: remove nested git in command substitution
 + t3905: move all commands into test cases
 + t3905: remove spaces after redirect operators
 + git-stash.txt: be explicit about subcommand options
 (this branch is used by dl/stash-show-untracked.)

 Documentation, code and test clean-up around "git stash".

 Will merge to 'master'.
 This is an early part of a topic that added a new feature to the
 command, but the implementation is expected to need a handful of
 iterations; I split the preparatory part up to fast-track it.


* ew/rev-parse-since-test (2021-02-10) 1 commit
  (merged to 'next' on 2021-02-11 at 2490918be8)
 + t1500: ensure current --since= behavior remains

 Test to make sure "git rev-parse one-thing one-thing" gives
 the same thing twice (when one-thing is --since=X).

 Will merge to 'master'.


* js/fsck-name-objects-fix (2021-02-10) 2 commits
  (merged to 'next' on 2021-02-10 at 79afd7ebdc)
 + fsck --name-objects: be more careful parsing generation numbers
 + t1450: robustify `remove_object()`

 Fix "git fsck --name-objects" which apparently has not been used by
 anybody who is motivated enough to report breakage.

 Will merge to 'master'.


* sv/t7001-modernize (2021-02-11) 10 commits
 - t7001: use `test` rather than `[`
 - t7001: use here-docs instead of echo
 - t7001: put each command on a separate line
 - t7001: use '>' rather than 'touch'
 - t7001: avoid using `cd` outside of subshells
 - t7001: remove whitespace after redirect operators
 - t7001: modernize subshell formatting
 - t7001: remove unnecessary blank lines
 - t7001: indent with TABs instead of spaces
 - t7001: modernize test formatting

 Test script modernization.

 Expecting the final version with corrected author attribution.


* mt/grep-sparse-checkout (2021-02-09) 1 commit
 - grep: honor sparse-checkout on working tree searches

 "git grep" has been tweaked to be limited to the sparse checkout
 paths.

 Break out and fast-track bugfix from the remainder of the topic.
 cf. <CABPp-BFkACtF6LHkFJNt9dTOmwfQbf8ZO=BTrPYwPSmbqc9+hg@xxxxxxxxxxxxxx>


* ds/commit-graph-genno-fix (2021-02-01) 6 commits
  (merged to 'next' on 2021-02-03 at b3a9e11efb)
 + commit-graph: prepare commit graph
 + commit-graph: be extra careful about mixed generations
 + commit-graph: compute generations separately
 + commit-graph: validate layers for generation data
 + commit-graph: always parse before commit_graph_data_at()
 + commit-graph: use repo_parse_commit
 (this branch uses ak/corrected-commit-date; is tangled with ds/chunked-file-api and ds/merge-base-independent.)

 Fix incremental update of commit-graph file around corrected commit
 date data.

 Will merge to 'master', together with "ak/corrected-commit-date".


* jh/simple-ipc (2021-02-17) 12 commits
 - t0052: add simple-ipc tests and t/helper/test-simple-ipc tool
 - simple-ipc: add Unix domain socket implementation
 - unix-socket: create `unix_stream_server__listen_with_lock()`
 - unix-socket: disallow chdir() when creating unix domain sockets
 - unix-socket: add backlog size option to unix_stream_listen()
 - unix-socket: elimiate static unix_stream_socket() helper function
 - simple-ipc: add win32 implementation
 - simple-ipc: design documentation for new IPC mechanism
 - pkt-line: add options argument to read_packetized_to_strbuf()
 - pkt-line: (optionally) libify the packet readers
 - pkt-line: do not issue flush packets in write_packetized_*()
 - pkt-line: eliminate the need for static buffer in packet_write_gently()

 A simple IPC interface gets introduced to build services like
 fsmonitor on top.


* ab/pager-exit-log (2021-02-01) 4 commits
  (merged to 'next' on 2021-02-12 at ffe9f2d364)
 + pager: properly log pager exit code when signalled
 + run-command: add braces for "if" block in wait_or_whine()
 + pager: test for exit code with and without SIGPIPE
 + pager: refactor wait_for_pager() function

 When a pager spawned by us exited, the trace log did not record its
 exit status correctly, which has been corrected.

 Will merge to 'master'.
 The original "what should we do with SIGPIPE?" question remains, though.


* ta/hash-function-transition-doc (2021-02-05) 6 commits
  (merged to 'next' on 2021-02-12 at f620f3cfd3)
 + doc: use https links
 + doc hash-function-transition: move rationale upwards
 + doc hash-function-transition: fix incomplete sentence
 + doc hash-function-transition: use upper case consistently
 + doc hash-function-transition: use SHA-1 and SHA-256 consistently
 + doc hash-function-transition: fix asciidoc output

 Update formatting and grammar of the hash transition plan
 documentation, plus some updates.

 Will merge to 'master'.


* ds/chunked-file-api (2021-02-05) 17 commits
 - chunk-format: add technical docs
 - chunk-format: restore duplicate chunk checks
 - midx: use 64-bit multiplication for chunk sizes
 - midx: use chunk-format read API
 - commit-graph: use chunk-format read API
 - chunk-format: create read chunk API
 - midx: use chunk-format API in write_midx_internal()
 - midx: drop chunk progress during write
 - midx: return success/failure in chunk write methods
 - midx: add num_large_offsets to write_midx_context
 - midx: add pack_perm to write_midx_context
 - midx: add entries to write_midx_context
 - midx: use context in write_midx_pack_names()
 - midx: rename pack_info to write_midx_context
 - commit-graph: use chunk-format write API
 - chunk-format: create chunk format write API
 - commit-graph: anonymize data in chunk_write_fn
 (this branch uses ak/corrected-commit-date; is tangled with ds/commit-graph-genno-fix and ds/merge-base-independent.)

 The common code to deal with "chunked file format" that is shared
 by the multi-pack-index and commit-graph files have been factored
 out, to help codepaths for both filetypes to become more rebust.

 Getting there.


* ds/merge-base-independent (2021-02-01) 5 commits
 - commit-reach: stale commits may prune generation further
 - commit-reach: use heuristic in remove_redundant()
 - commit-reach: move compare_commits_by_gen
 - commit-reach: use one walk in remove_redundant()
 - commit-reach: reduce requirements for remove_redundant()
 (this branch uses ak/corrected-commit-date; is tangled with ds/chunked-file-api and ds/commit-graph-genno-fix.)

 The code to implement "git merge-base --independent" was poorly
 done and was kept from the very beginning of the feature.


* hv/trailer-formatting (2021-02-15) 4 commits
 - ref-filter: use pretty.c logic for trailers
 - pretty.c: capture invalid trailer argument
 - pretty.c: refactor trailer logic to `format_set_trailers_options()`
 - t6300: use function to test trailer options

 The logic to handle "trailer" related placeholders in the
 "--format=" mechanisms in the "log" family and "for-each-ref"
 family is getting unified.

 Ready for 'next'?


* sh/mergetool-hideresolved (2021-02-09) 3 commits
  (merged to 'next' on 2021-02-09 at c3ed19b2ec)
 + mergetool: add per-tool support and overrides for the hideResolved flag
 + mergetool: break setup_tool out into separate initialization function
 + mergetool: add hideResolved configuration

 "git mergetool" feeds three versions (base, local and remote) of
 a conflicted path unmodified.  The command learned to optionally
 prepare these files with unconflicted parts already resolved.

 Will merge to 'master'.


* cm/rebase-i (2021-01-29) 9 commits
  (merged to 'next' on 2021-02-01 at 4f9aa6cec3)
 + doc/git-rebase: add documentation for fixup [-C|-c] options
 + rebase -i: teach --autosquash to work with amend!
 + t3437: test script for fixup [-C|-c] options in interactive rebase
 + rebase -i: add fixup [-C | -c] command
 + sequencer: use const variable for commit message comments
 + sequencer: pass todo_item to do_pick_commit()
 + rebase -i: comment out squash!/fixup! subjects from squash message
 + sequencer: factor out code to append squash message
 + rebase -i: only write fixup-message when it's needed
 (this branch is used by cm/rebase-i-fixup-amend-reword and cm/rebase-i-updates.)

 "rebase -i" is getting cleaned up and also enhanced.

 Will merge to 'master', together with "cm/rebase-i-updates".


* tb/geometric-repack (2021-02-03) 8 commits
 - builtin/repack.c: add '--geometric' option
 - packfile: add kept-pack cache for find_kept_pack_entry()
 - builtin/pack-objects.c: rewrite honor-pack-keep logic
 - p5303: measure time to repack with keep
 - p5303: add missing &&-chains
 - builtin/pack-objects.c: add '--stdin-packs' option
 - revision: learn '--no-kept-objects'
 - packfile: introduce 'find_kept_pack_entry()'

 "git repack" so far has been only capable of repacking everything
 under the sun into a single pack (or split by size).  A cleverer
 strategy to reduce the cost of repacking a repository has been
 introduced.


* ah/rebase-no-fork-point-config (2021-01-21) 1 commit
 - rebase: add a config option for --no-fork-point

 "git rebase --[no-]fork-point" gained a configuration variable
 rebase.forkPoint so that users do not have to keep specifying a
 non-default setting.

 Expecting a reroll to update its tests.
 cf. <CAMMLpeTDNLUz9UVnL3aVK=J7X50Sq8L-OVGaoEsT5AY6EQON-g@xxxxxxxxxxxxxx>


* js/range-diff-wo-dotdot (2021-02-06) 3 commits
  (merged to 'next' on 2021-02-08 at 9ae8b46d99)
 + range-diff(docs): explain how to specify commit ranges
 + range-diff/format-patch: handle commit ranges other than A..B
 + range-diff/format-patch: refactor check for commit range

 There are other ways than ".." for a single token to denote a
 "commit range", namely "<rev>^!" and "<rev>^-<n>", but "git
 range-diff" did not understand them.

 Will merge to 'master'.


* jx/t5411-unique-filenames (2021-01-22) 2 commits
  (merged to 'next' on 2021-02-11 at bc5c67f70f)
 + t5411: refactor check of refs using test_cmp_refs
 + t5411: use different out file to prevent overwriting

 Avoid individual tests in t5411 from getting affected by each other
 by forcing them to use separate output files during the test.

 Will merge to 'master'.


* jt/transfer-fsck-across-packs (2021-01-25) 5 commits
 - SQUASH??? test fix
 - fetch-pack: print and use dangling .gitmodules
 - fetch-pack: with packfile URIs, use index-pack arg
 - http-fetch: allow custom index-pack args
 - http: allow custom index-pack args

 The approach to "fsck" the incoming objects in "index-pack" is
 attractive for performance reasons (we have them already in core,
 inflated and ready to be inspected), but fundamentally cannot be
 applied fully when we receive more than one pack stream, as a tree
 object in one pack may refer to a blob object in another pack as
 ".gitmodules", when we want to inspect blobs that are used as
 ".gitmodules" file, for example.  Teach "index-pack" to emit
 objects that must be inspected later and check them in the calling
 "fetch-pack" process.

 Expecting an update.


* bc/signed-objects-with-both-hashes (2021-02-10) 6 commits
  (merged to 'next' on 2021-02-11 at 391cc85104)
 + gpg-interface: remove other signature headers before verifying
 + ref-filter: hoist signature parsing
 + commit: allow parsing arbitrary buffers with headers
 + gpg-interface: improve interface for parsing tags
 + commit: ignore additional signatures when parsing signed commits
 + ref-filter: switch some uses of unsigned long to size_t

 Signed commits and tags now allow verification of objects, whose
 two object names (one in SHA-1, the other in SHA-256) are both
 signed.

 Will merge to 'master'.


* ak/corrected-commit-date (2021-01-18) 11 commits
  (merged to 'next' on 2021-01-26 at deae33ec7d)
 + doc: add corrected commit date info
 + commit-reach: use corrected commit dates in paint_down_to_common()
 + commit-graph: use generation v2 only if entire chain does
 + commit-graph: implement generation data chunk
 + commit-graph: implement corrected commit date
 + commit-graph: return 64-bit generation number
 + commit-graph: add a slab to store topological levels
 + t6600-test-reach: generalize *_three_modes
 + commit-graph: consolidate fill_commit_graph_info
 + revision: parse parent in indegree_walk_step()
 + commit-graph: fix regression when computing Bloom filters
 (this branch is used by ds/chunked-file-api, ds/commit-graph-genno-fix and ds/merge-base-independent.)

 The commit-graph learned to use corrected commit dates instead of
 the generation number to help topological revision traversal.

 Will merge to 'master', together with "ds/commit-graph-genno-fix".


* mr/bisect-in-c-4 (2021-02-03) 7 commits
  (merged to 'next' on 2021-02-05 at ea18026619)
 + bisect--helper: retire `--check-and-set-terms` subcommand
 + bisect--helper: reimplement `bisect_skip` shell function in C
 + bisect--helper: retire `--bisect-auto-next` subcommand
 + bisect--helper: use `res` instead of return in BISECT_RESET case option
 + bisect--helper: retire `--bisect-write` subcommand
 + bisect--helper: reimplement `bisect_replay` shell function in C
 + bisect--helper: reimplement `bisect_log` shell function in C

 Piecemeal of rewrite of "git bisect" in C continues.

 Will merge to 'master'.


* jt/clone-unborn-head (2021-02-05) 3 commits
  (merged to 'next' on 2021-02-08 at 3ba9f80e7f)
 + clone: respect remote unborn HEAD
 + connect, transport: encapsulate arg in struct
 + ls-refs: report unborn targets of symrefs

 "git clone" tries to locally check out the branch pointed at by
 HEAD of the remote repository after it is done, but the protocol
 did not convey the information necessary to do so when copying an
 empty repository.  The protocol v2 learned how to do so.

 Will merge to 'master'.


* mt/parallel-checkout-part-1 (2020-12-16) 9 commits
 - entry: add checkout_entry_ca() taking preloaded conv_attrs
 - entry: move conv_attrs lookup up to checkout_entry()
 - entry: extract update_ce_after_write() from write_entry()
 - entry: make fstat_output() and read_blob_entry() public
 - entry: extract a header file for entry.c functions
 - convert: add classification for conv_attrs struct
 - convert: add get_stream_filter_ca() variant
 - convert: add [async_]convert_to_working_tree_ca() variants
 - convert: make convert_attrs() and convert structs public

 Parallel checkout.

 Looking good.


* es/config-hooks (2021-02-16) 17 commits
 - run-command: stop thinking about hooks
 - receive-pack: convert receive hooks to hook.h
 - post-update: use hook.h library
 - proc-receive: acquire hook list from hook.h
 - receive-pack: convert 'update' hook to hook.h
 - reference-transaction: look for hooks in config
 - transport: convert pre-push hook to use config
 - hook: convert 'post-rewrite' hook to config
 - hooks: convert 'post-checkout' hook to hook library
 - git-p4: use 'git hook' to run hooks
 - receive-pack: convert push-to-checkout hook to hook.h
 - read-cache: convert post-index-change hook to use config
 - rebase: teach pre-rebase to use hook.h
 - gc: use hook library for pre-auto-gc hook
 - merge: use config-based hooks for post-merge hook
 - am: convert applypatch hooks to use config
 - commit: use config-based hooks
 (this branch uses es/config-hooks-part-1.)

 The "hooks defined in config" topic.

 Expecting doc updates, but otherwise seems to be progressing nicely.


* hn/reftable (2020-12-21) 16 commits
 - SQUASH??? allow t0031 to run with any default branch name
 - Add "test-tool dump-reftable" command.
 - git-prompt: prepare for reftable refs backend
 - Reftable support for git-core
 - reftable: rest of library
 - reftable: reftable file level tests
 - reftable: read reftable files
 - reftable: write reftable files
 - reftable: a generic binary tree implementation
 - reftable: reading/writing blocks
 - reftable: (de)serialization for the polymorphic record type.
 - reftable: add blocksource, an abstraction for random access reads
 - reftable: utility functions
 - reftable: add error related functionality
 - reftable: add LICENSE
 - init-db: set the_repository->hash_algo early on

 The "reftable" backend for the refs API.

--------------------------------------------------
[Discarded]

* ds/update-index (2021-01-09) 14 commits
 . update-index: remove static globals from callbacks
 . update-index: reduce static globals, part 2
 . update-index: reduce static globals, part 1
 . update-index: remove ce_match_stat(), all macros
 . update-index: replace several compatibility macros
 . update-index: use add_index_entry()
 . update-index: use remove_file_from_index()
 . update-index: use index_name_pos() over cache_name_pos()
 . update-index: use istate->cache_changed
 . update-index: use istate->cache_nr over active_nr
 . update-index: use istate->cache over active_cache
 . update-index: drop the_index, the_repository
 . rm: remove compatilibity macros
 . mv: remove index compatibility macros
 (this branch uses ag/merge-strategies-in-c.)

 The implementation of a few commands lost reliance of "the_index"
 compatibility macros by explicitly passing the index_state through
 the callchain.

 Retracted for now.
 cf. <a6906459-3a93-ecad-c460-b6c763819389@xxxxxxxxx>


* fc/mergetool-automerge (2021-01-09) 8 commits
 . fixup! mergetool: break setup_tool out into separate initialization function
 . fixup! fixup! mergetool: add automerge configuration
 . fixup! mergetool: add automerge configuration
 . mergetool: add automerge_enabled tool-specific override function
 . mergetool: break setup_tool out into separate initialization function
 . mergetool: add per-tool support for the autoMerge flag
 . mergetool: alphabetize the mergetool config docs
 . mergetool: add automerge configuration

 "git mergetool" feeds three versions (base, local and remote) of
 a conflicted path unmodified.  The command learned to optionally
 prepare these files with unconflicted parts already resolved.

 Superseded by the sh/mergetool-hideresolved topic.


* mt/rm-sparse-checkout (2020-12-08) 11 commits
 . rm: honor sparse checkout patterns
 . t7817: do not depend on any specific default branch name
 . config: add setting to ignore sparsity patterns in some cmds
 . grep: honor sparse checkout patterns
 . config: correctly read worktree configs in submodules
 . config: make do_git_config_sequence receive a 'struct repository'
 . t/helper/test-config: unify exit labels
 . t/helper/test-config: diagnose missing arguments
 . t/helper/test-config: be consistent with exit codes
 . t1308-config-set: avoid false positives when using test-config
 . doc: grep: unify info on configuration variables

 "git rm" follows suit to "git grep" to ignore paths outside the
 sparsity pattern when the sparse checkout feature is in use.

 Discarded for now, as it depends on an old iteration of
 mt/grep-sparse-checkout topic.


* fc/bash-completion-post-2.29 (2020-12-23) 4 commits
 . completion: bash: add correct suffix in variables
 . completion: bash: fix for multiple dash commands
 . completion: bash: fix for suboptions with value
 . completion: bash: fix prefix detection in branch.*

 Stalled for too long with breakage.
 Seems to break tests on Windows


* ss/submodule-add-in-c (2020-12-15) 3 commits
 . t7400: add test to check 'submodule add' for tracked paths
 . submodule: port submodule subcommand 'add' from shell to C
 . dir: change the scope of function 'directory_exists_in_index()'

 "git submodule add" being rewritten in C.

 Stalled for too long with breakage.
 The patches are split incorrectly; part of 1/3 belongs to 2/3
 cf. <nycvar.QRO.7.76.6.2012190104140.56@xxxxxxxxxxxxxxxxx>
 It seems to introduce a segfault on 'seen'.
 cf. <xmqqft3xflw7.fsf@xxxxxxxxxxxxxxxxxxxxxx>



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux