{"thread":{"id":"54519","subject":"What's cooking in git.git (Oct 2020, #04; Tue, 27)","startedAt":"2020-10-28T01:48:02Z","lastAt":"2020-11-04T13:23:07Z","messageCount":14,"participants":["Junio C Hamano","Johannes Schindelin","Jonathan Tan","Alban Gruin"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"408548","messageId":"xmqqmu079rbv.fsf@gitster.c.googlers.com","threadId":"54519","inReplyTo":null,"subject":"What's cooking in git.git (Oct 2020, #04; Tue, 27)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2020-10-27T23:33:56Z","receivedAt":"2020-10-28T01:48:02Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Here are the topics that have been cooking.  Commits prefixed with '-' are\nonly in 'seen' (formerly 'pu'---proposed updates) while commits prefixed\nwith '+' are in 'next'.  The ones marked with '.' do not appear in any of\nthe integration branches, but I am still holding onto them.\n\nThe first batch of topics in this cycle are merged to 'master', and\nthe tip of 'next' has been rewound and rebuilt.  A handful of new\ntopics are also in 'next'.\n\nCopies of the source code to Git live in many repositories, and the\nfollowing is a list of the ones I push into.  Some repositories have\nonly a subset of branches.\n\nWith maint, master, next, seen, todo:\n\n\tgit://git.kernel.org/pub/scm/git/git.git/\n\tgit://repo.or.cz/alt-git.git/\n\thttps://kernel.googlesource.com/pub/scm/git/git/\n\thttps://github.com/git/git/\n\nWith all the integration branches and topics broken out:\n\n\thttps://github.com/gitster/git/\n\nEven though the preformatted documentation in HTML and man format\nare not sources, they are published in these repositories for\nconvenience (replace \"htmldocs\" with \"manpages\" for the manual\npages):\n\n\tgit://git.kernel.org/pub/scm/git/git-htmldocs.git/\n\thttps://github.com/gitster/git-htmldocs.git/\n\nRelease tarballs are available at:\n\n\thttps://www.kernel.org/pub/software/scm/git/\n\n--------------------------------------------------\n[Graduated to 'master']\n\n* cc/doc-filter-branch-typofix (2020-10-20) 1 commit\n  (merged to 'next' on 2020-10-23 at fc3c91dbc4)\n + filter-branch doc: fix filter-repo typo\n\n Docfix.\n\n\n* cw/ci-ghwf-check-ws-errors (2020-10-09) 1 commit\n  (merged to 'next' on 2020-10-26 at e7f8479a06)\n + ci: github action - add check for whitespace errors\n\n Originally merged to 'next' on 2020-10-15\n\n Dev support.\n\n\n* dl/checkout-guess (2020-10-08) 2 commits\n  (merged to 'next' on 2020-10-26 at ba63e6e268)\n + checkout: learn to respect checkout.guess\n + Documentation/config/checkout: replace sq with backticks\n\n Originally merged to 'next' on 2020-10-08\n\n \"git checkout\" learned to use checkout.guess configuration variable\n and enable/disable its \"--[no-]guess\" option accordingly.\n\n\n* dl/checkout-p-merge-base (2020-10-07) 4 commits\n  (merged to 'next' on 2020-10-26 at 1c401bcb0b)\n + t2016: add a NEEDSWORK about the PERL prerequisite\n + add-patch: add NEEDSWORK about comparing commits\n + Doc: document \"A...B\" form for <tree-ish> in checkout and switch\n + builtin/checkout: fix `git checkout -p HEAD...` bug\n\n Originally merged to 'next' on 2020-10-08\n\n \"git checkout -p A...B [-- <path>]\" did not work, even though the\n same command without \"-p\" correctly used the merge-base between\n commits A and B.\n\n\n* ds/maintenance-part-2 (2020-09-25) 8 commits\n  (merged to 'next' on 2020-10-26 at 226ac6646d)\n + maintenance: add incremental-repack auto condition\n + maintenance: auto-size incremental-repack batch\n + maintenance: add incremental-repack task\n + midx: use start_delayed_progress()\n + midx: enable core.multiPackIndex by default\n + maintenance: create auto condition for loose-objects\n + maintenance: add loose-objects task\n + maintenance: add prefetch task\n (this branch is used by ds/maintenance-part-3.)\n\n Originally merged to 'next' on 2020-10-04\n\n \"git maintenance\", an extended big brother of \"git gc\", continues\n to evolve.\n\n\n* jk/committer-date-is-author-date-fix (2020-10-23) 3 commits\n  (merged to 'next' on 2020-10-23 at ee490e95b8)\n + rebase: fix broken email with --committer-date-is-author-date\n + am: fix broken email with --committer-date-is-author-date\n + t3436: check --committer-date-is-author-date result more carefully\n (this branch is used by jk/committer-date-is-author-date-fix-simplify.)\n\n In 2.29, \"--committer-date-is-author-date\" option of \"rebase\" and\n \"am\" subcommands lost the e-mail address by mistake, which has been\n corrected.\n\n\n* js/no-builtins-on-disk-option (2020-10-21) 1 commit\n  (merged to 'next' on 2020-10-22 at 88cec4a607)\n + SKIP_DASHED_BUILT_INS: do not skip the bin/ programs\n\n Brown-paper-bag fix.\n\n\n* js/userdiff-php (2020-10-07) 1 commit\n  (merged to 'next' on 2020-10-26 at 21dc182f78)\n + userdiff: PHP: catch \"abstract\" and \"final\" functions\n\n Originally merged to 'next' on 2020-10-08\n\n Userdiff for PHP update.\n\n\n* kb/userdiff-rust-macro-rules (2020-10-07) 1 commit\n  (merged to 'next' on 2020-10-26 at 681f75320c)\n + userdiff: recognize 'macro_rules!' as starting a Rust function block\n\n Originally merged to 'next' on 2020-10-08\n\n Userdiff for Rust update.\n\n\n* rk/completion-stash (2020-10-07) 2 commits\n  (merged to 'next' on 2020-10-26 at d694e89155)\n + git-completion.bash: stash-show: complete $__git_diff_common_options\n + git-completion.bash: __git_diff_common_options: add --[no-]patch\n\n Originally merged to 'next' on 2020-10-08\n\n The command line completion script (in contrib/) learned that \"git\n stash show\" takes the options \"git diff\" takes.\n\n\n* rs/dist-doc-with-git-archive (2020-10-12) 2 commits\n  (merged to 'next' on 2020-10-26 at 1391e1ae82)\n + Makefile: remove the unused variable TAR_DIST_EXTRA_OPTS\n + Makefile: use git init/add/commit/archive for dist-doc\n\n Originally merged to 'next' on 2020-10-15\n\n Use \"git archive\" more to produce the release tarball.\n\n\n* rs/tighten-callers-of-deref-tag (2020-10-12) 3 commits\n  (merged to 'next' on 2020-10-26 at b33d5986e5)\n + line-log: handle deref_tag() returning NULL\n + blame: handle deref_tag() returning NULL\n + grep: handle deref_tag() returning NULL\n\n Originally merged to 'next' on 2020-10-15\n\n Code clean-up.\n\n\n* rs/worktree-list-show-locked (2020-10-12) 1 commit\n  (merged to 'next' on 2020-10-26 at 398e14f216)\n + worktree: teach `list` to annotate locked worktree\n\n Originally merged to 'next' on 2020-10-15\n\n \"git worktree list\" now shows if each worktree is locked.  This\n possibly may open us to show other kinds of states in the future.\n\n\n* sb/clone-origin (2020-09-30) 7 commits\n  (merged to 'next' on 2020-10-26 at 83fbb58da1)\n + clone: allow configurable default for `-o`/`--origin`\n + clone: read new remote name from remote_name instead of option_origin\n + clone: validate --origin option before use\n + refs: consolidate remote name validation\n + remote: add tests for add and rename with invalid names\n + clone: use more conventional config/option layering\n + clone: add tests for --template and some disallowed option pairs\n\n Originally merged to 'next' on 2020-10-06\n\n \"git clone\" learned clone.defaultremotename configuration variable\n to customize what nickname to use to call the remote the repository\n was cloned from.\n\n\n* sd/userdiff-css-update (2020-10-08) 1 commit\n  (merged to 'next' on 2020-10-26 at 253e1d021b)\n + userdiff: expand detected chunk headers for css\n\n Originally merged to 'next' on 2020-10-08\n\n Userdiff for CSS update.\n\n\n* sk/force-if-includes (2020-10-03) 4 commits\n  (merged to 'next' on 2020-10-26 at 648422f517)\n + t, doc: update tests, reference for \"--force-if-includes\"\n + push: parse and set flag for \"--force-if-includes\"\n + push: add reflog check for \"--force-if-includes\"\n + Merge branch 'ds/in-merge-bases-many-optim-bug' into sk/force-if-includes\n\n Originally merged to 'next' on 2020-10-04\n\n \"git push --force-with-lease[=<ref>]\" can easily be misused to lose\n commits unless the user takes good care of their own \"git fetch\".\n A new option \"--force-if-includes\" attempts to ensure that what is\n being force-pushed was created after examining the commit at the\n tip of the remote ref that is about to be force-replaced.\n\n--------------------------------------------------\n[New Topics]\n\n* cm/t7xxx-cleanup (2020-10-22) 6 commits\n  (merged to 'next' on 2020-10-26 at 8b58e54942)\n + t7102: prepare expected output inside test_expect_* block\n + t7201: put each command on a separate line\n + t7201: use 'git -C' to avoid subshell\n + t7102,t7201: remove whitespace after redirect operator\n + t7102,t7201: remove unnecessary blank spaces in test body\n + t7101,t7102,t7201: modernize test formatting\n\n Originally merged to 'next' on 2020-10-23\n\n Micro clean-up.\n\n Will merge to 'master'.\n\n\n* js/avoid-split-sideband-message (2020-10-27) 3 commits\n  (merged to 'next' on 2020-10-27 at 06b2f75522)\n + test-pkt-line: drop colon from sideband identity\n  (merged to 'next' on 2020-10-26 at 1b550f3245)\n + sideband: report unhandled incomplete sideband messages as bugs\n + sideband: avoid reporting incomplete sideband messages\n\n The side-band status report can be sent at the same time as the\n primary payload multiplexed, but the demultiplexer on the receiving\n end incorrectly split a single status report into two, which has\n been corrected.\n\n Will merge to 'master'.\n\n\n* jt/apply-reverse-twice (2020-10-20) 1 commit\n  (merged to 'next' on 2020-10-26 at f060893eb7)\n + apply: when -R, also reverse list of sections\n\n \"git apply -R\" did not handle patches that touch the same path\n twice correctly, which has been corrected.  This is most relevant\n in a patch that changes a path from a regular file to a symbolic\n link (and vice versa).\n\n Will merge to 'master'.\n\n\n* av/fsmonitor-cleanup (2020-10-21) 2 commits\n - fsmonitor: make output of test-dump-fsmonitor more concise\n - fsmonitor: stop inline'ing mark_fsmonitor_valid / _invalid\n\n Code clean-up.\n\n Unneeded?\n cf. <20201022183822.GA781760@nand.local>\n\n\n* bc/svn-hash-oid-fix (2020-10-21) 1 commit\n  (merged to 'next' on 2020-10-26 at 743b549d5d)\n + svn: use correct variable name for short OID\n\n A recent oid->hash conversion missed one spot, breaking \"git svn\".\n\n Will merge to 'master'.\n\n\n* en/sequencer-rollback-lock-cleanup (2020-10-21) 1 commit\n  (merged to 'next' on 2020-10-26 at 1234e8297f)\n + sequencer: remove duplicate rollback_lock_file() call\n\n Code clean-up.\n\n Will merge to 'master'.\n\n\n* jc/sequencer-stopped-sha-simplify (2020-10-21) 1 commit\n - sequencer: tolerate abbreviated stopped-sha file\n\n Recently the format of an internal state file \"rebase -i\" uses has\n been tightened up for consistency, which would hurt those who start\n \"rebase -i\" with old git and then continue with new git.  Loosen\n the reader side a bit (which we may want to tighten again in a year\n or so).\n\n Is this a real issue, or just a theoretical one?\n cf. <xmqqd01b429a.fsf@gitster.c.googlers.com>\n\n\n* jk/perl-warning (2020-10-21) 1 commit\n - perl: check for perl warnings while running tests\n\n Dev support.\n\n Will merge to 'next'.\n cf. <20201022032400.GC1480820@coredump.intra.peff.net>\n\n\n* js/default-branch-name-part-4-minus-1 (2020-10-23) 9 commits\n  (merged to 'next' on 2020-10-26 at 0a66b76c66)\n + t1400: prepare for `main` being default branch name\n + tests: prepare aligned mentions of the default branch name\n + t9902: prepare a test for the upcoming default branch name\n + t3200: prepare for `main` being shorter than `master`\n + t5703: adjust a test case for the upcoming default branch name\n + t6200: adjust suppression pattern to also match \"main\"\n + tests: start moving to a different default main branch name\n + t9801: use `--` in preparation for default branch rename\n + fmt-merge-msg: also suppress \"into main\" by default\n\n Adjust tests so that they won't scream when the default initial\n branch name is changed to 'main'.\n\n Will merge to 'master'.\n\n\n* js/t7006-cleanup (2020-10-21) 1 commit\n  (merged to 'next' on 2020-10-26 at b8582f842d)\n + t7006: Use test_path_is_* functions in test script\n\n Code clean-up.\n\n Will merge to 'master'.\n\n\n* pb/ref-filter-with-crlf (2020-10-22) 2 commits\n - log, show: add tests for messages containing CRLF\n - ref-filter: handle CRLF at end-of-line more gracefully\n\n A commit and tag object may have CR at the end of each and\n every line (you can create such an object with hash-object or\n using --cleanup=verbatim to decline the default clean-up\n action), but it would make it impossible to have a blank line\n to separate the title from the body of the message.  Be lenient\n and accept a line with lone CR on it as a blank line, too.\n\n Will merge to 'next'.\n\n\n* ve/userdiff-bash (2020-10-22) 1 commit\n  (merged to 'next' on 2020-10-26 at 2b34be98fe)\n + userdiff: support Bash\n\n The userdiff pattern learned to identify the function definition in\n POSIX shells and bash.\n\n Will merge to 'master'.\n\n\n* ab/git-remote-exit-code (2020-10-27) 1 commit\n - remote: add meaningful exit code on missing/existing\n\n Exit codes from \"git remote add\" etc. were not usable by scripted\n callers.\n\n\n* en/merge-ort-api-null-impl (2020-10-26) 4 commits\n - merge,rebase,revert: select ort or recursive by config or environment\n - fast-rebase: demonstrate merge-ort's API via temporary/hidden command\n - merge-ort-wrappers: new convience wrappers to mimic the old merge API\n - merge-ort: barebones API of new merge strategy with empty implementation\n\n Preparation for a new merge strategy.\n\n\n* en/merge-tests (2020-10-26) 9 commits\n - t6423: add more details about direct resolution of directories\n - t6423: note improved ort handling with untracked files\n - t6423, t6436: note improved ort handling with dirty files\n - merge tests: expect slight differences in output for recursive vs. ort\n - t6423: expect improved conflict markers labels in the ort backend\n - t6404, t6423: expect improved rename/delete handling in ort backend\n - t6416: correct expectation for rename/rename(1to2) + directory/file\n - merge tests: expect improved directory/file conflict handling in ort\n - t/: new helper for tests that pass with ort but fail with recursive\n (this branch uses en/dir-rename-tests.)\n\n Preparation for a new merge strategy.\n\n\n* jk/committer-date-is-author-date-fix-simplify (2020-10-26) 1 commit\n - am, sequencer: stop parsing our own committer ident\n\n Code symplification.\n\n\n* sj/untracked-files-in-submodule-directory-is-not-dirty (2020-10-26) 1 commit\n - diff: do not show submodule with untracked files as \"-dirty\"\n\n \"git diff\" showed a submodule working tree with untracked cruft as\n \"Submodule commit <objectname>-dirty\", but a natural expectation is\n that the \"-dirty\" indicator would align with \"git describe --dirty\",\n which does not consider having untracked files in the working tree\n as source of dirtiness.  The inconsistency has been fixed.\n\n Needs doc update.\n\n\n* fc/zsh-completion (2020-10-26) 29 commits\n - zsh: update copyright notices\n - completion: bash: remove old compat wrappers\n - completion: bash: cleanup cygwin check\n - completion: bash: trivial cleanup\n - completion: zsh: add simple version check\n - completion: zsh: trivial simplification\n - completion: zsh: add alias descriptions\n - completion: zsh: improve command tags\n - completion: zsh: refactor command completion\n - completion: zsh: shuffle functions around\n - completion: zsh: simplify file_direct\n - completion: zsh: simplify nl_append\n - completion: zsh: trivial cleanup\n - completion: zsh: simplify direct compadd\n - completion: zsh: simplify compadd functions\n - completion: zsh: fix splitting of words\n - completion: zsh: add missing direct_append\n - completion: fix conflict with bashcomp\n - completion: zsh: fix completion for --no-.. options\n - completion: bash: remove zsh wrapper\n - completion: bash: synchronize zsh wrapper\n - completion: zsh: fix for command aliasing\n - completion: prompt: fix color for Zsh\n - completion: zsh: update slave script locations\n - completion: zsh: fix for directories with spaces\n - completion: zsh: reorganize install instructions\n - completion: zsh: fix bash script extension\n - completion: zsh: fix name due to broken autoloading\n - completion: zsh: fix __gitcomp_direct()\n\n\n* jc/doc-final-resend (2020-10-26) 1 commit\n - SubmittingPatches: clarify the purpose of the final resend\n\n\n* nk/perf-fsmonitor (2020-10-26) 10 commits\n - t/perf/fsmonitor: add benchmark for dirty status\n - t/perf/fsmonitor: perf comparison of multiple fsmonitor integrations\n - t/perf/fsmonitor: initialize test with git reset\n - t/perf/fsmonitor: factor setup for fsmonitor into function\n - t/perf/fsmonitor: silence initial git commit\n - t/perf/fsmonitor: shorten DESC to basename\n - t/perf/fsmonitor: factor description out for readability\n - t/perf/fsmonitor: improve error message if typoing hook name\n - t/perf/fsmonitor: move watchman setup to one-time-repo-setup\n - t/perf/fsmonitor: separate one time repo initialization\n (this branch uses nk/diff-files-vs-fsmonitor.)\n\n\n* jk/checkout-index-errors (2020-10-27) 2 commits\n - checkout-index: propagate errors to exit code\n - checkout-index: drop error message from empty --stage=all\n\n\n* pw/rebase-i-orig-head (2020-10-27) 4 commits\n - rebase -i: simplify get_revision_ranges()\n - rebase -i: use struct object_id when writing state\n - rebase -i: use struct object_id rather than looking up commit\n - rebase -i: stop overwriting ORIG_HEAD buffer\n\n--------------------------------------------------\n[Stalled]\n\n* hn/reftable (2020-10-01) 13 commits\n . reftable: \"test-tool dump-reftable\" command.\n . reftable: rest of library\n . reftable: file level tests\n . reftable: read reftable files\n . reftable: write reftable files\n . reftable: a generic binary tree implementation\n . reftable: reading/writing blocks\n . reftable: (de)serialization for the polymorphic record type.\n . reftable: utility functions\n . reftable: add a barebones unittest framework\n . vcxproj: adjust for the reftable changes\n . reftable: define the public API\n . reftable: add LICENSE\n\n The reftable backend for the refs API.\n\n Expecting a reroll.\n Seems not to build for Windows folks.\n cf. <nycvar.QRO.7.76.6.2010021555290.50@tvgsbejvaqbjf.bet>\n cf. <nycvar.QRO.7.76.6.2010021557570.50@tvgsbejvaqbjf.bet>\n\n\n* sm/curl-retry (2020-10-13) 3 commits\n - http: automatically retry some requests\n - replace CURLOPT_FILE With CURLOPT_WRITEDATA\n - remote-curl: add testing for intelligent retry for HTTP\n\n The http transport has been taught to retry a failed request that\n may reasonably be retried.\n\n cf. <20201015000410.GB328643@google.com>\n\n\n* sv/t7001-modernize (2020-09-25) 11 commits\n - t7001: move cleanup code from outside the tests into them\n - t7001: use `test` rather than `[`\n - t7001: use here-docs instead of echo\n - t7001: put each command on a separate line\n - t7001: use ': >' rather than 'touch'\n - t7001: change (cd <path> && git foo) to (git -C <path> foo)\n - t7001: remove whitespace after redirect operators\n - t7001: change the style for cd according to subshell\n - t7001: remove unnecessary blank lines\n - t7001: use TAB instead of spaces\n - t7001: convert tests from the old style to the current style\n\n Test script modernization.\n\n Expecting a reroll.\n cf. <20200925170256.11490-1-shubhunic@gmail.com>\n\n\n* ew/decline-core-abbrev (2020-09-01) 1 commit\n - core.abbrev <off|false|no> disables abbreviations\n\n Allow the configuration to specify no abbreviation regardless of\n the hash algorithm.\n\n Expecting a reroll.  The intent is very good.\n\n\n* bc/rev-parse-path-format (2020-10-09) 2 commits\n - rev-parse: add option for absolute or relative path formatting\n - abspath: add a function to resolve paths with missing components\n\n \"git rev-parse\" can be explicitly told to give output as absolute\n or relative path.\n\n\n* ar/fetch-transfer-ipversion (2020-09-16) 1 commit\n - config: option transfer.ipversion to set transport protocol version for network fetches\n\n Adds transfer.ipversion configuration variable.\n\n Needs more work.\n\n\n* vv/send-email-with-less-secure-apps-access (2020-08-29) 1 commit\n - Documentation/git-send-email.txt: Mention less secure app access might need to enable.\n\n Doc update.\n\n Expecting a reroll.\n cf. <xmqqwo1hi9nv.fsf@gitster.c.googlers.com>\n cf. <xmqqft85i72s.fsf@gitster.c.googlers.com>\n\n\n* jc/war-on-dashed-git (2020-08-27) 1 commit\n - git: catch an attempt to run \"git-foo\"\n\n The first step to remove on-disk binaries for built-in subcommands\n by soliciting objections.\n\n On hold for now.\n\n\n* dr/push-remoteref-fix (2020-04-23) 1 commit\n - remote.c: fix handling of %(push:remoteref)\n\n The \"%(push:remoteref)\" placeholder in the \"--format=\" argument of\n \"git format-patch\" (and friends) only showed what got explicitly\n configured, not what ref at the receiving end would be updated when\n \"git push\" was used, as it ignored the default behaviour (e.g. update\n the same ref as the source).\n\n Discard for now.\n cf. <xmqqv9gu7c61.fsf@gitster.c.googlers.com>\n cf. <20200911214358.acl3hy2e763begoo@feanor>\n\n\n* mk/use-size-t-in-zlib (2018-10-15) 1 commit\n - zlib.c: use size_t for size\n\n The wrapper to call into zlib followed our long tradition to use\n \"unsigned long\" for sizes of regions in memory, which have been\n updated to use \"size_t\".\n\n--------------------------------------------------\n[Cooking]\n\n* en/strmap (2020-10-13) 10 commits\n - strmap: enable allocations to come from a mem_pool\n - strmap: add a strset sub-type\n - strmap: add functions facilitating use as a string->int map\n - strmap: enable faster clearing and reusing of strmaps\n - strmap: add more utility functions\n - strmap: new utility functions\n - hashmap: introduce a new hashmap_partial_clear()\n - hashmap: allow re-use after hashmap_free()\n - hashmap: adjust spacing to fix argument alignment\n - hashmap: add usage documentation explaining hashmap_free[_entries]()\n\n A speciailization of hashmap that uses a string as key has been\n introduced.  Hopefully it will see wider use over time.\n\n On hold.\n cf. <20201023080202.GA4012156@coredump.intra.peff.net>\n cf. <CABPp-BFV8ZAu5vLarG2mX8gT5bfV31oqbd-vjAQF_YDcyNSRiw@mail.gmail.com>\n\n\n* en/test-selector (2020-10-18) 3 commits\n  (merged to 'next' on 2020-10-26 at 3d6e77c3ff)\n + test-lib: reduce verbosity of skipped tests\n + t6006, t6012: adjust tests to use 'setup' instead of synonyms\n + test-lib: allow selecting tests by substring/glob with --run\n\n Our test scripts can be told to run only individual pieces while\n skipping others with the \"--run=...\" option; they were taught to\n take a substring of test title, in addition to numbers, to name the\n test pices to run.\n\n Will merge to 'master'.\n\n\n* jk/report-fn-typedef (2020-10-16) 1 commit\n  (merged to 'next' on 2020-10-26 at fa4e128b65)\n + usage: define a type for a reporting function\n\n Code clean-up.\n\n Will merge to 'master'.\n\n\n* mr/bisect-in-c-3 (2020-10-16) 7 commits\n - bisect--helper: retire `--bisect-autostart` subcommand\n - bisect--helper: retire `--write-terms` subcommand\n - bisect--helper: retire `--check-expected-revs` subcommand\n - bisect--helper: reimplement `bisect_state` & `bisect_head` shell functions in C\n - bisect--helper: retire `--next-all` subcommand\n - bisect--helper: retire `--bisect-clean-state` subcommand\n - bisect--helper: finish porting `bisect_start()` to C\n\n Rewriting \"git bisect\" in C continues.\n\n Will merge to 'next'.\n\n\n* sc/sequencer-gpg-octopus (2020-10-18) 3 commits\n  (merged to 'next' on 2020-10-26 at e1c956e52a)\n + t3435: add tests for rebase -r GPG signing\n + sequencer: pass explicit --no-gpg-sign to merge\n + sequencer: fix gpg option passed to merge subcommand\n\n \"git rebase --rebase-merges\" did not correctly pass --gpg-sign\n command line option to underying \"git merge\" when replaying a merge\n using non-default merge strategy or when replaying an octopus merge\n (because replaying a two-head merge with the default strategy was\n done in a separate codepath, the problem did not trigger for most\n users), which has been corrected.\n\n Will merge to 'master'.\n\n\n* as/sample-push-to-checkout-hook (2020-10-16) 1 commit\n  (merged to 'next' on 2020-10-26 at 644026c2f6)\n + hook: add sample template for push-to-checkout\n\n Add a sample 'push-to-checkout' hook, that performs the same as\n what the built-in default action does.\n\n Will merge to 'master'.\n\n\n* as/tests-cleanup (2020-10-18) 1 commit\n - t2200,t9832: avoid using 'git' upstream in a pipe\n\n Micro clean-up of a couple of test scripts.\n\n Will merge to 'next'.\n\n\n* bk/sob-dco (2020-10-20) 4 commits\n  (merged to 'next' on 2020-10-26 at d0e5066a7e)\n + Documentation: stylistically normalize references to Signed-off-by:\n + SubmittingPatches: clarify DCO is our --signoff rule\n + Documentation: clarify and expand description of --signoff\n + doc: preparatory clean-up of description on the sign-off option\n\n Document that the meaning of a Signed-off-by trailer can vary from\n project to project in the end-user documentation, and clarify what\n it means to this project.\n\n Will merge to 'master'.\n\n\n* ct/t0000-use-test-path-is-file (2020-10-18) 1 commit\n  (merged to 'next' on 2020-10-26 at 9b70aa748f)\n + t0000: use test_path_is_file instead of \"test -f\"\n\n Originally merged to 'next' on 2020-10-23\n\n Micro clean-up of a test script.\n\n Will merge to 'master'.\n\n\n* en/dir-rename-tests (2020-10-16) 4 commits\n - t6423: more involved rules for renaming directories into each other\n - t6423: update directory rename detection tests with new rule\n - t6423: more involved directory rename test\n - directory-rename-detection.txt: update references to regression tests\n (this branch is used by en/merge-tests.)\n\n More preliminary tests have been added to document desired outcome\n of various \"directory rename\" situations.\n\n Will merge to 'next'.\n\n\n* en/t7518-unflake (2020-10-18) 1 commit\n  (merged to 'next' on 2020-10-26 at 443459f7ca)\n + t7518: fix flaky grep invocation\n\n Originally merged to 'next' on 2020-10-23\n\n Work around flakiness in a test.\n\n Will merge to 'master'.\n\n\n* es/test-cmp-typocatcher (2020-10-20) 1 commit\n  (merged to 'next' on 2020-10-26 at 62d89db753)\n + Revert \"test_cmp: diagnose incorrect arguments\"\n\n A test helper \"test_cmp A B\" was taught to diagnose missing files A\n or B as a bug in test, but some tests legitimately wanted to notice\n a failure to even create file B as an error, in addition to leaving\n the expected result in it, and were misdiagnosed as a bug.  This\n has been corrected.\n\n Will merge to 'master'.\n\n\n* es/tutorial-mention-asciidoc-early (2020-10-16) 1 commit\n - MyFirstContribution: clarify asciidoc dependency\n\n Doc update.\n\n Will merge to 'next'.\n\n\n* jk/fast-import-marks-alloc-fix (2020-10-15) 1 commit\n  (merged to 'next' on 2020-10-26 at 2f0a73fd48)\n + fast-import: fix over-allocation of marks storage\n\n \"git fast-import\" wasted a lot of memory when many marks were in use.\n\n Will merge to 'master'.\n\n\n* jk/fast-import-marks-cleanup (2020-10-16) 1 commit\n  (merged to 'next' on 2020-10-26 at 1ba987dd54)\n + fast-import: remove duplicated option-parsing line\n\n Code clean-up.\n\n Will merge to 'master'.\n\n\n* jk/no-common (2020-10-16) 1 commit\n  (merged to 'next' on 2020-10-26 at c888cb8b28)\n + config.mak.dev: build with -fno-common\n\n Dev support to catch a tentative definition of a variable in our C\n code as an error.\n\n Will merge to 'master'.\n\n\n* js/ci-ghwf-dedup-tests (2020-10-12) 2 commits\n  (merged to 'next' on 2020-10-26 at 4832a8f40b)\n + ci: make the \"skip-if-redundant\" check more defensive\n + ci: work around old records of GitHub runs\n\n Originally merged to 'next' on 2020-10-23\n\n GitHub Actions automated test improvement to skip tests on a tree\n identical to what has already been tested.\n\n Will merge to 'master'.\n\n\n* lo/zsh-completion (2020-10-16) 1 commit\n  (merged to 'next' on 2020-10-26 at 100dc6adde)\n + completion: fix zsh installation instructions\n\n Update instructions for command line completion (in contrib/) for zsh.\n\n Will merge to 'master'.\n\n\n* nk/diff-files-vs-fsmonitor (2020-10-20) 7 commits\n - p7519-fsmonitor: add a git add benchmark\n - p7519-fsmonitor: refactor to avoid code duplication\n - perf lint: add make test-lint to perf tests\n - t/perf: add fsmonitor perf test for git diff\n - t/perf/p7519-fsmonitor.sh: warm cache on first git status\n - t/perf/README: elaborate on output format\n - fsmonitor: use fsmonitor data in `git diff`\n (this branch is used by nk/perf-fsmonitor.)\n\n \"git diff\" and other commands that share the same machinery to\n compare with working tree files have been taught to take advantage\n of the fsmonitor data when available.\n\n Will merge to 'next'.\n\n\n* nk/dir-c-comment-update (2020-10-16) 1 commit\n  (merged to 'next' on 2020-10-26 at 3a4cb82ad6)\n + dir.c: fix comments to agree with argument name\n\n Update stale in-code comment.\n\n Will merge to 'master'.\n\n\n* tk/credential-config (2020-10-16) 1 commit\n  (merged to 'next' on 2020-10-26 at 6ab486f389)\n + credential: load default config\n\n \"git credential' didn't honor the core.askPass configuration\n variable (among other things), which has been corrected.\n\n Will merge to 'master'.\n\n\n* ag/merge-strategies-in-c (2020-10-06) 11 commits\n - sequencer: use the \"octopus\" merge strategy without forking\n - sequencer: use the \"resolve\" strategy without forking\n - merge: use the \"octopus\" strategy without forking\n - merge: use the \"resolve\" strategy without forking\n - merge-octopus: rewrite in C\n - merge-recursive: move better_branch_name() to merge.c\n - merge-resolve: rewrite in C\n - merge-index: don't fork if the requested program is `git-merge-one-file'\n - merge-index: libify merge_one_path() and merge_all()\n - merge-one-file: rewrite in C\n - t6027: modernise tests\n\n The resolve and octopus merge strategy backends have been rewritten\n in C.\n\n\n* jk/symlinked-dotgitx-files (2020-10-23) 9 commits\n  (merged to 'next' on 2020-10-26 at c1dd37b024)\n + docs: document symlink restrictions for .git* files\n + fsck: complain when .gitattributes or .gitignore is a symlink\n + verify_path(): disallow symlinks in .gitattributes and .gitignore\n + t0060: test obscured .gitattributes and .gitignore matching\n + t7450: test .gitmodules symlink matching against obscured names\n + t7450: test verify_path() handling of gitmodules\n + t7415: rename to expand scope\n + fsck_tree(): wrap some long lines\n + fsck_tree(): fix shadowed variable\n\n Originally merged to 'next' on 2020-10-23\n\n \"git fsck\" and the corresponding check done during the transport\n learned to ensure that in-tree files like `.gitignore` and\n `.gitattributes` are not symbolic links.\n\n Will merge to 'master'.\n\n\n* dl/resurrect-update-for-sha256 (2020-10-08) 2 commits\n  (merged to 'next' on 2020-10-26 at 7e94297aa4)\n + contrib/git-resurrect.sh: use hash-agnostic OID pattern\n + contrib/git-resurrect.sh: indent with tabs\n\n Originally merged to 'next' on 2020-10-23\n\n \"git resurrect\" script (in contrib/) learned that the object names\n may be longer than 40-hex depending on the hash function in use.\n\n Will merge to 'master'.\n\n\n* ds/commit-graph-merging-fix (2020-10-09) 2 commits\n  (merged to 'next' on 2020-10-26 at a0cf763826)\n + commit-graph: don't write commit-graph when disabled\n + commit-graph: ignore duplicates when merging layers\n\n When \"git commit-graph\" detects the same commit recorded more than\n once while it is merging the layers, it used to die.  The code now\n ignores all but one of them and continues.\n\n Will merge to 'master'.\n\n\n* ds/maintenance-commit-graph-auto-fix (2020-10-12) 2 commits\n  (merged to 'next' on 2020-10-26 at 429d1371d8)\n + maintenance: core.commitGraph=false prevents writes\n + maintenance: test commit-graph auto condition\n\n Test-coverage enhancement of running commit-graph task \"git\n maintenance\" as needed led to discovery and fix of a bug.\n\n Will merge to 'master'.\n\n\n* ss/submodule-add-in-c (2020-10-07) 3 commits\n - t7400: add test to check 'submodule add' for tracked paths\n - submodule: port submodule subcommand 'add' from shell to C\n - dir: change the scope of function 'directory_exists_in_index()'\n\n \"git submodule add\" being rewritten in C.\n\n\n* ak/corrected-commit-date (2020-10-08) 10 commits\n - doc: add corrected commit date info\n - commit-reach: use corrected commit dates in paint_down_to_common()\n - commit-graph: use generation v2 only if entire chain does\n - commit-graph: implement generation data chunk\n - commit-graph: implement corrected commit date\n - commit-graph: add a slab to store topological levels\n - commit-graph: return 64-bit generation number\n - commit-graph: consolidate fill_commit_graph_info\n - revision: parse parent in indegree_walk_step()\n - commit-graph: fix regression when computing Bloom filters\n\n The commit-graph learned to use corrected commit dates instead of\n the generation number to help topological revision traversal.\n\n Almost there.\n cf. <685afed6-f01f-5d22-80d4-00fdc11caf0a@gmail.com>\n\n\n* mk/diff-ignore-regex (2020-10-20) 2 commits\n  (merged to 'next' on 2020-10-26 at c68727da93)\n + diff: add -I<regex> that ignores matching changes\n + merge-base, xdiff: zero out xpparam_t structures\n\n \"git diff\" family of commands learned the \"-I<regex>\" option to\n ignore hunks whose changed lines all match the given pattern.\n\n Will merge to 'master'.\n\n\n* mt/parallel-checkout-part-1 (2020-10-22) 20 commits\n - parallel-checkout: drop unused checkout state parameter\n - ci: run test round with parallel-checkout enabled\n - parallel-checkout: add tests related to .gitattributes\n - parallel-checkout: add tests related to clone collisions\n - parallel-checkout: add tests for basic operations\n - checkout-index: add parallel checkout support\n - builtin/checkout.c: complete parallel checkout support\n - make_transient_cache_entry(): optionally alloc from mem_pool\n - parallel-checkout: support progress displaying\n - parallel-checkout: make it truly parallel\n - unpack-trees: add basic support for parallel checkout\n - entry: add checkout_entry_ca() which takes preloaded conv_attrs\n - entry: move conv_attrs lookup up to checkout_entry()\n - entry: extract cache_entry update from write_entry()\n - entry: make fstat_output() and read_blob_entry() public\n - entry: extract a header file for entry.c functions\n - convert: add conv_attrs classification\n - convert: add get_stream_filter_ca() variant\n - convert: add [async_]convert_to_working_tree_ca() variants\n - convert: make convert_attrs() and convert structs public\n\n Parallel checkout.\n\n Ejected from 'next'\n cf. <CAHd-oW568aNLYYMBDPJiUsWzh2xxtm8gnqLEiX_RTDa81BL_yw@mail.gmail.com>\n\n\n* dl/diff-merge-base (2020-09-21) 10 commits\n  (merged to 'next' on 2020-10-26 at 114d94030b)\n + contrib/completion: complete `git diff --merge-base`\n + builtin/diff-tree: learn --merge-base\n + builtin/diff-index: learn --merge-base\n + t4068: add --merge-base tests\n + diff-lib: define diff_get_merge_base()\n + diff-lib: accept option flags in run_diff_index()\n + contrib/completion: extract common diff/difftool options\n + git-diff.txt: backtick quote command text\n + git-diff-index.txt: make --cached description a proper sentence\n + t4068: remove unnecessary >tmp\n\n \"git diff A...B\" learned \"git diff --merge-base A B\", which is a\n longer short-hand to say the same thing.\n\n Will merge to 'master'.\n\n\n* ds/maintenance-part-3 (2020-10-16) 8 commits\n - maintenance: add troubleshooting guide to docs\n - maintenance: use 'incremental' strategy by default\n - maintenance: create maintenance.strategy config\n - maintenance: add start/stop subcommands\n - maintenance: add [un]register subcommands\n - for-each-repo: run subcommands on configured repos\n - maintenance: add --schedule option and config\n - maintenance: optionally skip --auto process\n\n Parts of \"git maintenance\" to ease writing crontab entries (and\n other scheduling system configuration) for it.\n\n\n* es/config-hooks (2020-10-16) 8 commits\n - hook: replace find_hook() with hook_exists()\n - hook: add 'run' subcommand\n - parse-options: parse into strvec\n - hook: implement hookcmd.<name>.skip\n - hook: include hookdir hook in list\n - hook: add list command\n - hook: scaffolding for git-hook subcommand\n - doc: propose hooks managed by the config\n\n The \"hooks defined in config\" topic.\n\n\n* mt/grep-sparse-checkout (2020-09-10) 9 commits\n - config: add setting to ignore sparsity patterns in some cmds\n - grep: honor sparse checkout patterns\n - config: correctly read worktree configs in submodules\n - config: make do_git_config_sequence receive a 'struct repository'\n - t/helper/test-config: unify exit labels\n - t/helper/test-config: diagnose missing arguments\n - t/helper/test-config: be consistent with exit codes\n - t1308-config-set: avoid false positives when using test-config\n - doc: grep: unify info on configuration variables\n\n \"git grep\" has been tweaked to be limited to the sparse checkout\n paths.\n"},{"id":"408859","messageId":"nycvar.QRO.7.76.6.2011020237070.18437@tvgsbejvaqbjf.bet","threadId":"54519","inReplyTo":"xmqqmu079rbv.fsf@gitster.c.googlers.com","subject":"jc/sequencer-stopped-sha-simplify, was Re: What's cooking in git.git (Oct 2020, #04; Tue, 27)","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2020-11-02T01:47:49Z","receivedAt":"2020-11-02T12:25:34Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi Junio,\n\nOn Tue, 27 Oct 2020, Junio C Hamano wrote:\n\n> * jc/sequencer-stopped-sha-simplify (2020-10-21) 1 commit\n>  - sequencer: tolerate abbreviated stopped-sha file\n>\n>  Recently the format of an internal state file \"rebase -i\" uses has\n>  been tightened up for consistency, which would hurt those who start\n>  \"rebase -i\" with old git and then continue with new git.  Loosen\n>  the reader side a bit (which we may want to tighten again in a year\n>  or so).\n>\n>  Is this a real issue, or just a theoretical one?\n>  cf. <xmqqd01b429a.fsf@gitster.c.googlers.com>\n\nWe had a similar situation when we decided to fix the incorrect quoting in\nthe `author-script` file, and we decided that we have to be careful:\nhttps://lore.kernel.org/git/nycvar.QRO.7.76.6.1807271415410.10478@tvgsbejvaqbjf.bet/\n\nIn light of that, I think we should go with Jonathan's patch for a couple\nof versions before tightening the reader side again.\n\nCiao,\nDscho\n"},{"id":"408860","messageId":"nycvar.QRO.7.76.6.2011020250170.18437@tvgsbejvaqbjf.bet","threadId":"54519","inReplyTo":"xmqqmu079rbv.fsf@gitster.c.googlers.com","subject":"jk/committer-date-is-author-date-fix-simplify, was Re: What's cooking in git.git (Oct 2020, #04; Tue, 27)","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2020-11-02T01:50:50Z","receivedAt":"2020-11-02T12:28:34Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi Junio,\n\nOn Tue, 27 Oct 2020, Junio C Hamano wrote:\n\n> * jk/committer-date-is-author-date-fix-simplify (2020-10-26) 1 commit\n>  - am, sequencer: stop parsing our own committer ident\n>\n>  Code symplification.\n\ns/y/i/ ;-)\n\nCiao,\nDscho\n"},{"id":"408861","messageId":"nycvar.QRO.7.76.6.2011020251520.18437@tvgsbejvaqbjf.bet","threadId":"54519","inReplyTo":"xmqqmu079rbv.fsf@gitster.c.googlers.com","subject":"sj/untracked-files-in-submodule-directory-is-not-dirty, was Re: What's cooking in git.git (Oct 2020, #04; Tue, 27)","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2020-11-02T01:58:26Z","receivedAt":"2020-11-02T12:36:10Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi Junio,\n\nOn Tue, 27 Oct 2020, Junio C Hamano wrote:\n\n> * sj/untracked-files-in-submodule-directory-is-not-dirty (2020-10-26) 1 commit\n>  - diff: do not show submodule with untracked files as \"-dirty\"\n>\n>  \"git diff\" showed a submodule working tree with untracked cruft as\n>  \"Submodule commit <objectname>-dirty\", but a natural expectation is\n>  that the \"-dirty\" indicator would align with \"git describe --dirty\",\n>  which does not consider having untracked files in the working tree\n>  as source of dirtiness.  The inconsistency has been fixed.\n>\n>  Needs doc update.\n\nI *think* the original rationale for marking submodules with untracked\n(_un-ignored_) files was to avoid deleting a submodule that has\nuncommitted (because untracked) files.\n\nThis is just a fall-out of the submodule design where it pretends that\nsubmodules are files, but files only have a handful \"aggregate states\":\nthey are either ignored, untracked, up to date or dirty. Whereas submodule\ncan be all of the above, pretty much at the same time.\n\nThis patch affects e.g. if some script wants to determine whether a\nsubmodule can be deleted safely and uses `git diff` to do so. With this\npatch, it is possible to lose data irretrievably.\n\nCiao,\nDscho\n"},{"id":"408863","messageId":"nycvar.QRO.7.76.6.2011020333440.18437@tvgsbejvaqbjf.bet","threadId":"54519","inReplyTo":"xmqqmu079rbv.fsf@gitster.c.googlers.com","subject":"ag/merge-strategies-in-c, was Re: What's cooking in git.git (Oct 2020, #04; Tue, 27)","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2020-11-02T02:37:58Z","receivedAt":"2020-11-02T13:15:43Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi Junio,\n\nOn Tue, 27 Oct 2020, Junio C Hamano wrote:\n\n> * ag/merge-strategies-in-c (2020-10-06) 11 commits\n>  - sequencer: use the \"octopus\" merge strategy without forking\n>  - sequencer: use the \"resolve\" strategy without forking\n>  - merge: use the \"octopus\" strategy without forking\n>  - merge: use the \"resolve\" strategy without forking\n>  - merge-octopus: rewrite in C\n>  - merge-recursive: move better_branch_name() to merge.c\n>  - merge-resolve: rewrite in C\n>  - merge-index: don't fork if the requested program is `git-merge-one-file'\n>  - merge-index: libify merge_one_path() and merge_all()\n>  - merge-one-file: rewrite in C\n>  - t6027: modernise tests\n>\n>  The resolve and octopus merge strategy backends have been rewritten\n>  in C.\n\nFrom where I sit, this is ready for `next`.\n\nCiao,\nDscho\n\nP.S.: I recently mused about the `pu -> seen` rename, and how the rest of\nthe integration branches' names could be renamed, too. It did strike me as\nsomewhat unfortunate that `master` is not called `next`, because it\nessentially hosts the changes lined up for the next version. And what is\ncurrently `next` could become `cooking` instead. Or `kitchen`. Or\n`cauldron`. And in my musing's universe, there would not be any `maint`\nbranch, only `maint-<version>` branches à la `maint-2.29`...\n"},{"id":"408874","messageId":"xmqqsg9rvc9z.fsf@gitster.c.googlers.com","threadId":"54519","inReplyTo":"nycvar.QRO.7.76.6.2011020237070.18437@tvgsbejvaqbjf.bet","subject":"Re: jc/sequencer-stopped-sha-simplify, was Re: What's cooking in git.git (Oct 2020, #04; Tue, 27)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2020-11-02T18:34:00Z","receivedAt":"2020-11-02T18:34:08Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:\n\n> Hi Junio,\n>\n> On Tue, 27 Oct 2020, Junio C Hamano wrote:\n>\n>> * jc/sequencer-stopped-sha-simplify (2020-10-21) 1 commit\n>>  - sequencer: tolerate abbreviated stopped-sha file\n>>\n>>  Recently the format of an internal state file \"rebase -i\" uses has\n>>  been tightened up for consistency, which would hurt those who start\n>>  \"rebase -i\" with old git and then continue with new git.  Loosen\n>>  the reader side a bit (which we may want to tighten again in a year\n>>  or so).\n>>\n>>  Is this a real issue, or just a theoretical one?\n>>  cf. <xmqqd01b429a.fsf@gitster.c.googlers.com>\n>\n> We had a similar situation when we decided to fix the incorrect quoting in\n> the `author-script` file, and we decided that we have to be careful:\n> https://lore.kernel.org/git/nycvar.QRO.7.76.6.1807271415410.10478@tvgsbejvaqbjf.bet/\n>\n> In light of that, I think we should go with Jonathan's patch for a couple\n> of versions before tightening the reader side again.\n\nI do not mind taking the approach as a prudent and careful thing,\nbut I want the question answered regardless, as I know Jonathan is\nin a good position to tell if this is just a theoretical issue than\nI am, and depending on the answer, we may rethink the approach of\ntrying to be overly careful.\n\nThanks.\n"},{"id":"408876","messageId":"20201102184634.3280859-1-jonathantanmy@google.com","threadId":"54519","inReplyTo":"xmqqsg9rvc9z.fsf@gitster.c.googlers.com","subject":"Re: jc/sequencer-stopped-sha-simplify, was Re: What's cooking in git.git (Oct 2020, #04; Tue, 27)","fromName":"Jonathan Tan","fromEmail":"jonathantanmy@google.com","sentAt":"2020-11-02T18:46:34Z","receivedAt":"2020-11-02T18:46:42Z","isPatch":false,"sender":{"key":"jonathantanmy@fastmail.com","avatar":null},"body":"> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:\n> \n> > Hi Junio,\n> >\n> > On Tue, 27 Oct 2020, Junio C Hamano wrote:\n> >\n> >> * jc/sequencer-stopped-sha-simplify (2020-10-21) 1 commit\n> >>  - sequencer: tolerate abbreviated stopped-sha file\n> >>\n> >>  Recently the format of an internal state file \"rebase -i\" uses has\n> >>  been tightened up for consistency, which would hurt those who start\n> >>  \"rebase -i\" with old git and then continue with new git.  Loosen\n> >>  the reader side a bit (which we may want to tighten again in a year\n> >>  or so).\n> >>\n> >>  Is this a real issue, or just a theoretical one?\n> >>  cf. <xmqqd01b429a.fsf@gitster.c.googlers.com>\n> >\n> > We had a similar situation when we decided to fix the incorrect quoting in\n> > the `author-script` file, and we decided that we have to be careful:\n> > https://lore.kernel.org/git/nycvar.QRO.7.76.6.1807271415410.10478@tvgsbejvaqbjf.bet/\n> >\n> > In light of that, I think we should go with Jonathan's patch for a couple\n> > of versions before tightening the reader side again.\n> \n> I do not mind taking the approach as a prudent and careful thing,\n> but I want the question answered regardless, as I know Jonathan is\n> in a good position to tell if this is just a theoretical issue than\n> I am, and depending on the answer, we may rethink the approach of\n> trying to be overly careful.\n\nFrom what I see, this is just a theoretical issue for now. (I spotted it\nwhile looking at the code, not because of a bug report.)\n"},{"id":"408877","messageId":"xmqqo8kfvbgf.fsf@gitster.c.googlers.com","threadId":"54519","inReplyTo":"20201102184634.3280859-1-jonathantanmy@google.com","subject":"Re: jc/sequencer-stopped-sha-simplify, was Re: What's cooking in git.git (Oct 2020, #04; Tue, 27)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2020-11-02T18:51:44Z","receivedAt":"2020-11-02T18:51:53Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Jonathan Tan <jonathantanmy@google.com> writes:\n\n>> I do not mind taking the approach as a prudent and careful thing,\n>> but I want the question answered regardless, as I know Jonathan is\n>> in a good position to tell if this is just a theoretical issue than\n>> I am, and depending on the answer, we may rethink the approach of\n>> trying to be overly careful.\n>\n> From what I see, this is just a theoretical issue for now. (I spotted it\n> while looking at the code, not because of a bug report.)\n\nIf there is no actual damage, then probably the earlier \"let's be\nextra careful\" Dscho mentioned may equally have been us being\nunnecessarily cautious.  Assuming that you didn't apply this patch\nto the internal version you ship to your developers---if you did,\nthen we truly gained no data from this exchange because the original\ntightening had no chance to even cause the damage.\n\nIn any case, let's merge the loosening patch down to 'maint'.\n\nThanks for being careful.\n.\n"},{"id":"408894","messageId":"xmqqa6vzvb74.fsf@gitster.c.googlers.com","threadId":"54519","inReplyTo":"nycvar.QRO.7.76.6.2011020250170.18437@tvgsbejvaqbjf.bet","subject":"Re: jk/committer-date-is-author-date-fix-simplify, was Re: What's cooking in git.git (Oct 2020, #04; Tue, 27)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2020-11-02T18:57:19Z","receivedAt":"2020-11-02T18:57:26Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:\n\n> Hi Junio,\n>\n> On Tue, 27 Oct 2020, Junio C Hamano wrote:\n>\n>> * jk/committer-date-is-author-date-fix-simplify (2020-10-26) 1 commit\n>>  - am, sequencer: stop parsing our own committer ident\n>>\n>>  Code symplification.\n>\n> s/y/i/ ;-)\n\nThanks.\n"},{"id":"408930","messageId":"xmqqv9ensao7.fsf@gitster.c.googlers.com","threadId":"54519","inReplyTo":"nycvar.QRO.7.76.6.2011020333440.18437@tvgsbejvaqbjf.bet","subject":"Re: ag/merge-strategies-in-c, was Re: What's cooking in git.git (Oct 2020, #04; Tue, 27)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2020-11-02T21:36:56Z","receivedAt":"2020-11-02T21:36:59Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:\n\n> On Tue, 27 Oct 2020, Junio C Hamano wrote:\n>\n>> * ag/merge-strategies-in-c (2020-10-06) 11 commits\n>>  - sequencer: use the \"octopus\" merge strategy without forking\n>>  - sequencer: use the \"resolve\" strategy without forking\n>>  - merge: use the \"octopus\" strategy without forking\n>>  - merge: use the \"resolve\" strategy without forking\n>>  - merge-octopus: rewrite in C\n>>  - merge-recursive: move better_branch_name() to merge.c\n>>  - merge-resolve: rewrite in C\n>>  - merge-index: don't fork if the requested program is `git-merge-one-file'\n>>  - merge-index: libify merge_one_path() and merge_all()\n>>  - merge-one-file: rewrite in C\n>>  - t6027: modernise tests\n>>\n>>  The resolve and octopus merge strategy backends have been rewritten\n>>  in C.\n>\n> From where I sit, this is ready for `next`.\n\nI just went back to the thread.\n\nhttps://lore.kernel.org/git/20201005122646.27994-1-alban.gruin@gmail.com/\n\nIt seems that the topic saw quite a few comments and help by Phillip\nWood in its earliest iteration, but I didn't see any review from\nthose other than myself on the last iteration v3, and the review\ncomments on the iteration haven't been acted upon yet.\n\nThat was why I threw the topic in \"needs review\" bucket.  The later\nhalf of the series got no comments (I lost steam after reviewing the\nearlier half) and I suspect they would have be adjusted for fixes\nand improvements done to polish the earlier parts, so I am not sure\nwhere your \"ready for 'next'\" comes from.\n\nThanks.\n"},{"id":"408947","messageId":"693f417c-5612-7878-a055-2810f62af3b4@gmail.com","threadId":"54519","inReplyTo":"xmqqv9ensao7.fsf@gitster.c.googlers.com","subject":"Re: ag/merge-strategies-in-c, was Re: What's cooking in git.git (Oct 2020, #04; Tue, 27)","fromName":"Alban Gruin","fromEmail":"alban.gruin@gmail.com","sentAt":"2020-11-02T22:31:12Z","receivedAt":"2020-11-02T22:31:36Z","isPatch":false,"sender":{"key":"alban.gruin@gmail.com","avatar":"https://avatars.githubusercontent.com/u/6310153?v=4"},"body":"Hi Junio & Johannes,\n\nLe 02/11/2020 à 22:36, Junio C Hamano a écrit :\n> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:\n> \n>> On Tue, 27 Oct 2020, Junio C Hamano wrote:\n>>\n>>> * ag/merge-strategies-in-c (2020-10-06) 11 commits\n>>>  - sequencer: use the \"octopus\" merge strategy without forking\n>>>  - sequencer: use the \"resolve\" strategy without forking\n>>>  - merge: use the \"octopus\" strategy without forking\n>>>  - merge: use the \"resolve\" strategy without forking\n>>>  - merge-octopus: rewrite in C\n>>>  - merge-recursive: move better_branch_name() to merge.c\n>>>  - merge-resolve: rewrite in C\n>>>  - merge-index: don't fork if the requested program is `git-merge-one-file'\n>>>  - merge-index: libify merge_one_path() and merge_all()\n>>>  - merge-one-file: rewrite in C\n>>>  - t6027: modernise tests\n>>>\n>>>  The resolve and octopus merge strategy backends have been rewritten\n>>>  in C.\n>>\n>> From where I sit, this is ready for `next`.\n> \n> I just went back to the thread.\n> \n> https://lore.kernel.org/git/20201005122646.27994-1-alban.gruin@gmail.com/\n> \n> It seems that the topic saw quite a few comments and help by Phillip\n> Wood in its earliest iteration, but I didn't see any review from\n> those other than myself on the last iteration v3, and the review\n> comments on the iteration haven't been acted upon yet.\n> \n> That was why I threw the topic in \"needs review\" bucket.  The later\n> half of the series got no comments (I lost steam after reviewing the\n> earlier half) and I suspect they would have be adjusted for fixes\n> and improvements done to polish the earlier parts, so I am not sure\n> where your \"ready for 'next'\" comes from.\n> \n> Thanks.\n> \n\nSorry, I am short on time to work on this these days, but I’m still\nplanning to apply Junio’s latest suggestions.  So I agree with you, this\nis not yet ready for `next'.\n\nCheers,\nAlban\n\n"},{"id":"408968","messageId":"xmqqlffjqnzp.fsf@gitster.c.googlers.com","threadId":"54519","inReplyTo":"693f417c-5612-7878-a055-2810f62af3b4@gmail.com","subject":"Re: ag/merge-strategies-in-c, was Re: What's cooking in git.git (Oct 2020, #04; Tue, 27)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2020-11-03T00:32:10Z","receivedAt":"2020-11-03T00:32:17Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Alban Gruin <alban.gruin@gmail.com> writes:\n\n>> I just went back to the thread.\n>> \n>> https://lore.kernel.org/git/20201005122646.27994-1-alban.gruin@gmail.com/\n>> \n>> It seems that the topic saw quite a few comments and help by Phillip\n>> Wood in its earliest iteration, but I didn't see any review from\n>> those other than myself on the last iteration v3, and the review\n>> comments on the iteration haven't been acted upon yet.\n>> \n>> That was why I threw the topic in \"needs review\" bucket.  The later\n>> half of the series got no comments (I lost steam after reviewing the\n>> earlier half) and I suspect they would have be adjusted for fixes\n>> and improvements done to polish the earlier parts, so I am not sure\n>> where your \"ready for 'next'\" comes from.\n>> \n>> Thanks.\n>\n> Sorry, I am short on time to work on this these days, but I’m still\n> planning to apply Junio’s latest suggestions.  So I agree with you, this\n> is not yet ready for `next'.\n\nThanks for a status update.  Be well and happy hacking ;-)\n\n"},{"id":"408970","messageId":"xmqqa6vzqmmc.fsf@gitster.c.googlers.com","threadId":"54519","inReplyTo":"nycvar.QRO.7.76.6.2011020251520.18437@tvgsbejvaqbjf.bet","subject":"Re: sj/untracked-files-in-submodule-directory-is-not-dirty, was Re: What's cooking in git.git (Oct 2020, #04; Tue, 27)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2020-11-03T01:01:47Z","receivedAt":"2020-11-03T01:01:54Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:\n\n>> * sj/untracked-files-in-submodule-directory-is-not-dirty (2020-10-26) 1 commit\n>>  - diff: do not show submodule with untracked files as \"-dirty\"\n>>\n>>  \"git diff\" showed a submodule working tree with untracked cruft as\n>>  \"Submodule commit <objectname>-dirty\", but a natural expectation is\n>>  that the \"-dirty\" indicator would align with \"git describe --dirty\",\n>>  which does not consider having untracked files in the working tree\n>>  as source of dirtiness.  The inconsistency has been fixed.\n>>\n>>  Needs doc update.\n>\n> I *think* the original rationale for marking submodules with untracked\n> (_un-ignored_) files was to avoid deleting a submodule that has\n> uncommitted (because untracked) files.\n\nI agree with you that that the motivation was exactly that, but I\nhave a suspicion that its execution was misguided.\n\n> This patch affects e.g. if some script wants to determine whether a\n> submodule can be deleted safely and uses `git diff` to do so. With this\n> patch, it is possible to lose data irretrievably.\n\nLet's play devil's advocate.\n\nWhen one has a subdirectory D where one might or might not have an\nuntracked new file that one does not want to lose, but one otherwise\nwould want to clean up (perhaps an errant process created tons of\ngarbage files in the directory), one would not\n\n\tgit diff D\n\nto see if there are important changes in that directory before doing\n\n\trm -rf D && git checkout D\n\nto bring it back to pristine state, exactly because one would not\nwant to lose newly-created but not added files.  One would instead\nuse\n\n\tgit status D\n\nfor checking.  Why would a user change the habit when D happens to\nbe a submodule?\n\nSo I would say that \"git status [D]\", if it does not let the user\nnotice that there is untracked contents in the submodule working\ntree, would be a bad idea.  \"git diff\" that ignores untracked paths\nin the submodule working tree, on the other hand, is a good thing.\n\nNow, the patch as-is may change the behaviour of \"git status D\" in\nthis case, and the internal invocation of diff-files made somewhere\nin wt-status.c may have to be adjusted to keep such a submodule with\nforgotten newly created files shown as modified.\n\nFurther discussion on this should be done on the original review\nthread for continuity, not here, in any case.\n\nThanks.\n"},{"id":"409070","messageId":"nycvar.QRO.7.76.6.2011041422120.18437@tvgsbejvaqbjf.bet","threadId":"54519","inReplyTo":"xmqqv9ensao7.fsf@gitster.c.googlers.com","subject":"Re: ag/merge-strategies-in-c, was Re: What's cooking in git.git (Oct 2020, #04; Tue, 27)","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2020-11-04T13:22:57Z","receivedAt":"2020-11-04T13:23:07Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi Junio,\n\nOn Mon, 2 Nov 2020, Junio C Hamano wrote:\n\n> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:\n>\n> > On Tue, 27 Oct 2020, Junio C Hamano wrote:\n> >\n> >> * ag/merge-strategies-in-c (2020-10-06) 11 commits\n> >>  - sequencer: use the \"octopus\" merge strategy without forking\n> >>  - sequencer: use the \"resolve\" strategy without forking\n> >>  - merge: use the \"octopus\" strategy without forking\n> >>  - merge: use the \"resolve\" strategy without forking\n> >>  - merge-octopus: rewrite in C\n> >>  - merge-recursive: move better_branch_name() to merge.c\n> >>  - merge-resolve: rewrite in C\n> >>  - merge-index: don't fork if the requested program is `git-merge-one-file'\n> >>  - merge-index: libify merge_one_path() and merge_all()\n> >>  - merge-one-file: rewrite in C\n> >>  - t6027: modernise tests\n> >>\n> >>  The resolve and octopus merge strategy backends have been rewritten\n> >>  in C.\n> >\n> > From where I sit, this is ready for `next`.\n>\n> I just went back to the thread.\n>\n> https://lore.kernel.org/git/20201005122646.27994-1-alban.gruin@gmail.com/\n>\n> It seems that the topic saw quite a few comments and help by Phillip\n> Wood in its earliest iteration, but I didn't see any review from\n> those other than myself on the last iteration v3, and the review\n> comments on the iteration haven't been acted upon yet.\n>\n> That was why I threw the topic in \"needs review\" bucket.  The later\n> half of the series got no comments (I lost steam after reviewing the\n> earlier half) and I suspect they would have be adjusted for fixes\n> and improvements done to polish the earlier parts, so I am not sure\n> where your \"ready for 'next'\" comes from.\n\nSorry, I had missed your latest suggestion had not been addressed yet.\nMaybe I am a bit over-eager to get rid of those scripts...\n\nCiao,\nDscho\n"}]}