Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
122 commits
Select commit Hold shift + click to select a range
4b0a8b2
remote: qualify "git pull" advice for non-upstream compareBranches
HaraldNordgren May 21, 2026
4ed1ffe
t5710: simplify 'mkdir X' followed by 'git -C X init'
chriscool May 27, 2026
ee7ea49
urlmatch: change 'allow_globs' arg to bool
chriscool May 27, 2026
58880c8
urlmatch: add url_normalize_pattern() helper
chriscool May 27, 2026
5395129
promisor-remote: add 'local_name' to 'struct promisor_info'
chriscool May 27, 2026
78e0d9b
promisor-remote: introduce promisor.acceptFromServerUrl
chriscool May 27, 2026
5dd8043
promisor-remote: trust known remotes matching acceptFromServerUrl
chriscool May 27, 2026
7a56394
promisor-remote: auto-configure unknown remotes
chriscool May 27, 2026
8f32e6f
doc: promisor: improve acceptFromServer entry
chriscool May 27, 2026
59cccb3
Merge branch 'ds/path-walk-filters' into tb/pack-path-walk-bitmap-del…
gitster May 30, 2026
f985a6e
Merge branch 'ps/odb-source-loose' into ps/odb-source-packed
gitster Jun 5, 2026
36bafa0
Merge branch 'ps/setup-centralize-odb-creation' into ps/setup-drop-gl…
gitster Jun 10, 2026
9bef2cf
builtin/init: stop modifying global `git_work_tree_cfg` variable
pks-t Jun 11, 2026
65eb5b9
builtin/init: simplify logic to configure worktree
pks-t Jun 11, 2026
85f5f50
setup: remove global `git_work_tree_cfg` variable
pks-t Jun 11, 2026
f12d731
builtin/init: stop modifying `is_bare_repository_cfg`
pks-t Jun 11, 2026
7ff3a58
environment: split up concerns of `is_bare_repository_cfg`
pks-t Jun 11, 2026
2e1d556
environment: stop using `the_repository` in `is_bare_repository()`
pks-t Jun 11, 2026
1ceee74
treewide: drop USE_THE_REPOSITORY_VARIABLE
pks-t Jun 11, 2026
71386c2
environment: move 'protect_hfs' and 'protect_ntfs' into 'repo_config_…
malon7782 Jun 10, 2026
ad2e20d
ref-filter: restore prefix-scoped iteration
tamird Jun 12, 2026
da80feb
merge-ort: propagate callback errors from traverse_trees_wrapper()
newren Jun 14, 2026
159e4d9
merge-ort: drop unnecessary show_all_errors from collect_merge_info()
newren Jun 14, 2026
83ae606
merge-ort: free diff pairs queue in clear_or_reinit_internal_opts()
newren Jun 14, 2026
43a5fa7
merge-ort: abort merge when trees have duplicate entries
newren Jun 14, 2026
0c8eb46
cache-tree: fix verify_cache() to catch non-adjacent D/F conflicts
newren Jun 14, 2026
800581c
cat-file: speed up default format
rscharfe Jun 14, 2026
16b2924
MyFirstContribution: recommend shallow threading of cover letters
pks-t Jun 15, 2026
efe4ac7
MyFirstContribution: recommend the use of b4
pks-t Jun 15, 2026
84b2ff7
b4: introduce configuration for the Git project
pks-t Jun 15, 2026
54a441b
read_gitfile(): simplify NOT_A_REPO error message
peff Jun 16, 2026
d1b74b6
hash-object: demonstrate a >4GB/LLP64 problem
PhilipOakley Jun 16, 2026
a39fda4
object-file.c: use size_t for header lengths
PhilipOakley Jun 16, 2026
58823d4
hash algorithms: use size_t for section lengths
PhilipOakley Jun 16, 2026
9729b5e
hash-object --stdin: verify that it works with >4GB/LLP64
PhilipOakley Jun 16, 2026
2fefea3
hash-object: add another >4GB/LLP64 test case
PhilipOakley Jun 16, 2026
d99e13d
hash-object: add a >4GB/LLP64 test case using filtered input
PhilipOakley Jun 16, 2026
e2fb4ba
packfile: rename `struct packfile_store` to `odb_source_packed`
pks-t Jun 17, 2026
cf86a18
packfile: split out packfile list logic
pks-t Jun 17, 2026
c71a121
packfile: move packed source into "odb/" subsystem
pks-t Jun 17, 2026
3ac21e6
odb/source-packed: store pointer to "files" instead of generic source
pks-t Jun 17, 2026
0de2467
odb/source-packed: start converting to a proper `struct odb_source`
pks-t Jun 17, 2026
4f35c8b
odb/source-packed: wire up `close()` callback
pks-t Jun 17, 2026
9ea4ef8
odb/source-packed: wire up `reprepare()` callback
pks-t Jun 17, 2026
77e175c
packfile: use higher-level interface to implement `has_object_pack()`
pks-t Jun 17, 2026
64136a8
odb/source-packed: wire up `read_object_info()` callback
pks-t Jun 17, 2026
83f3a2b
odb/source-packed: wire up `read_object_stream()` callback
pks-t Jun 17, 2026
7ed53cd
odb/source-packed: wire up `for_each_object()` callback
pks-t Jun 17, 2026
6b7484f
odb/source-packed: wire up `count_objects()` callback
pks-t Jun 17, 2026
3c0f7b7
odb/source-packed: wire up `find_abbrev_len()` callback
pks-t Jun 17, 2026
98189bd
odb/source-packed: wire up `freshen_object()` callback
pks-t Jun 17, 2026
f236b0c
odb/source-packed: stub out remaining functions
pks-t Jun 17, 2026
7fa8c61
midx: refactor interfaces to work on "packed" source
pks-t Jun 17, 2026
1bba3c0
odb/source-packed: drop pointer to "files" parent source
pks-t Jun 17, 2026
d0c6ece
SubmittingPatches: encourage trailer use for substantial help
LemmingAvalanche Jun 19, 2026
b7f68ff
SubmittingPatches: discourage common Linux trailers
LemmingAvalanche Jun 19, 2026
6d26651
SubmittingPatches: document Based-on-patch-by trailer
LemmingAvalanche Jun 19, 2026
89d8644
SubmittingPatches: be consistent with trailer markup
LemmingAvalanche Jun 19, 2026
5511312
SubmittingPatches: note that trailer order matters
LemmingAvalanche Jun 19, 2026
3e09c9e
fetch: fixup set_head advice for warn-if-not-branch
trmalfurious Jun 19, 2026
54c9d48
doc: explain fetchRemoteHEADWarn advice
trmalfurious Jun 19, 2026
f8a7bbf
t5510: cleanup remote in followRemoteHEAD dangling ref test
trmalfurious Jun 19, 2026
b4154d8
fetch: rename function report_set_head
trmalfurious Jun 19, 2026
c6ac26e
fetch: return 0 on known git_fetch_config
trmalfurious Jun 19, 2026
85ef88d
fetch: refactor do_fetch handling of followRemoteHEAD
trmalfurious Jun 19, 2026
7d00999
fetch: add configuration variable fetch.followRemoteHEAD
trmalfurious Jun 19, 2026
1a81aa3
fetch: fixup a misaligned comment
trmalfurious Jun 19, 2026
a472af8
environment: use 'repo->initialized' for repo_protect_hfs() and repo_…
malon7782 Jun 20, 2026
5fe19d2
SubmittingPatches: address design critiques
gitster Jun 20, 2026
7bcc64b
doc: encourage review replies before rerolling
bertyuan Jun 21, 2026
4771726
doc: advise batching patch rerolls
bertyuan Jun 21, 2026
00f7a12
t/perf: drop p5311's lookup-table permutation
ttaylorr Jun 21, 2026
0a37451
pack-objects: support reachability bitmaps with `--path-walk`
ttaylorr Jun 21, 2026
264efee
pack-objects: extract `record_tree_depth()` helper
ttaylorr Jun 21, 2026
7e6de2a
pack-objects: support `--delta-islands` with `--path-walk`
ttaylorr Jun 21, 2026
304812e
log: improve --follow following renames for non-linear history
vmiklos Jun 22, 2026
9b46d7c
Merge branch 'ps/odb-source-packed' into ps/connected-generic-promiso…
gitster Jun 22, 2026
10c2678
sequencer: factor out parsing of todo commands
phillipwood Jun 23, 2026
6f34e5f
status: improve rebase todo list parsing
phillipwood Jun 23, 2026
60cafea
path: extract format_path() and use in rev-parse
jayatheerthkulkarni Jun 24, 2026
1efca6d
repo: add path.commondir with absolute and relative suffix formatting
jayatheerthkulkarni Jun 24, 2026
3ac28d8
repo: add path.gitdir with absolute and relative suffix formatting
jayatheerthkulkarni Jun 24, 2026
d45f956
odb/source-packed: extract logic to skip certain packs
pks-t Jun 25, 2026
8ed9571
odb/source-packed: support flags when iterating an object prefix
pks-t Jun 25, 2026
0a7f338
connected: split out promisor-based connectivity check
pks-t Jun 25, 2026
66ee9cb
connected: search promisor objects generically
pks-t Jun 25, 2026
f19edf4
Merge branch 'ps/setup-centralize-odb-creation' into ps/refs-onbranch…
gitster Jun 11, 2026
35b6b82
setup: inline `check_and_apply_repository_format()`
pks-t Jun 25, 2026
93c4361
setup: stop applying repository format twice
pks-t Jun 25, 2026
7d9ffe6
setup: don't apply "GIT_REFERENCE_BACKEND" without a repository
pks-t Jun 25, 2026
1f43ff2
refs: unregister reference stores from "chdir_notify"
pks-t Jun 25, 2026
5bf5467
chdir-notify: drop unused `chdir_notify_reparent()`
pks-t Jun 25, 2026
432b2e4
repository: free main reference database
pks-t Jun 25, 2026
a9e4ce0
refs: move parsing of "core.logAllRefUpdates" back into ref stores
pks-t Jun 25, 2026
f016ec1
refs/files: lazy-load configuration to fix chicken-and-egg
pks-t Jun 25, 2026
44f46f2
reftable: split up write options
pks-t Jun 25, 2026
79fa75d
refs/reftable: lazy-load configuration to fix chicken-and-egg
pks-t Jun 25, 2026
d6522d0
refs: protect against chicken-and-egg recursion
pks-t Jun 25, 2026
eaad121
t3420-rebase-autostash: don't try to grep non-existing files
szeder Oct 10, 2021
2f63677
Merge branch 'hn/status-pull-advice-qualified'
gitster Jul 6, 2026
57c386f
Merge branch 'cc/promisor-auto-config-url-more'
gitster Jul 6, 2026
e49c0e8
Merge branch 'ps/setup-drop-global-state'
gitster Jul 6, 2026
da89839
Merge branch 'ps/doc-recommend-b4'
gitster Jul 6, 2026
57305b8
Merge branch 'rs/cat-file-default-format-optim'
gitster Jul 6, 2026
ed5d4f6
Merge branch 'jk/setup-gitfile-diag-fix'
gitster Jul 6, 2026
aed0faa
Merge branch 'en/ort-harden-against-corrupt-trees'
gitster Jul 6, 2026
37997b0
Merge branch 'td/ref-filter-restore-prefix-iteration'
gitster Jul 6, 2026
a7f8e84
Merge branch 'ps/odb-source-packed'
gitster Jul 6, 2026
13f5190
Merge branch 'ty/move-protect-hfs-ntfs'
gitster Jul 6, 2026
6786e9c
Merge branch 'po/hash-object-size-t'
gitster Jul 6, 2026
b7daa7e
Merge branch 'mh/fetch-follow-remote-head-config'
gitster Jul 6, 2026
3b89f12
Merge branch 'kh/submittingpatches-trailers'
gitster Jul 6, 2026
32d5049
Merge branch 'jc/submittingpatches-design-critiques'
gitster Jul 6, 2026
982308d
Merge branch 'tb/pack-path-walk-bitmap-delta-islands'
gitster Jul 6, 2026
8af4256
Merge branch 'pw/status-rebase-todo'
gitster Jul 6, 2026
2e5d1cc
Merge branch 'mv/log-follow-mergy'
gitster Jul 6, 2026
2b0d1af
Merge branch 'jk/repo-info-path-keys'
gitster Jul 6, 2026
7fe674d
Merge branch 'wy/doc-clarify-review-replies'
gitster Jul 6, 2026
3442a0f
Merge branch 'ps/refs-onbranch-fixes'
gitster Jul 6, 2026
a4d2e8a
Merge branch 'ps/connected-generic-promisor-checks'
gitster Jul 6, 2026
83fd231
Merge branch 'sg/t3420-do-not-grep-in-missing-file'
gitster Jul 6, 2026
f85a7e6
Start Git 2.56 cycle
gitster Jul 6, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .b4-config
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Note that these are default values that you can tweak via the typical
# git-config(1) machinery. You thus shouldn't ever have to change this file.
# See also https://b4.docs.kernel.org/en/latest/config.html.
[b4]
send-same-thread = shallow
prep-cover-template = ./.b4-cover-template
11 changes: 11 additions & 0 deletions .b4-cover-template
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
${cover}

---
${shortlog}

${diffstat}

${range_diff}
---
base-commit: ${base_commit}
${prerequisites}
134 changes: 122 additions & 12 deletions Documentation/MyFirstContribution.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -790,7 +790,7 @@ We can note a few things:
v3", etc. in place of "PATCH". For example, "[PATCH v2 1/3]" would be the first of
three patches in the second iteration. Each iteration is sent with a new cover
letter (like "[PATCH v2 0/3]" above), itself a reply to the cover letter of the
previous iteration (more on that below).
first iteration (more on that below).

NOTE: A single-patch topic is sent with "[PATCH]", "[PATCH v2]", etc. without
_i_/_n_ numbering (in the above thread overview, no single-patch topic appears,
Expand Down Expand Up @@ -833,7 +833,7 @@ This patchset is part of the MyFirstContribution tutorial and should not
be merged.
----

At this point the tutorial diverges, in order to demonstrate two
At this point the tutorial diverges, in order to demonstrate three
different methods of formatting your patchset and getting it reviewed.

The first method to be covered is GitGitGadget, which is useful for those
Expand All @@ -845,9 +845,14 @@ more fine-grained control over the emails to be sent. This method requires some
setup which can change depending on your system and will not be covered in this
tutorial.

The third method to be covered is `b4`, which builds on top of `git
format-patch` and `git send-email`. This method is the recommended way to
submit patches via mail as it automates a lot of the bookkeeping required by
`git send-email`.

Regardless of which method you choose, your engagement with reviewers will be
the same; the review process will be covered after the sections on GitGitGadget
and `git send-email`.
the same; the review process will be covered after the sections on GitGitGadget,
`git send-email` and `b4`.

[[howto-ggg]]
== Sending Patches via GitGitGadget
Expand Down Expand Up @@ -1214,7 +1219,7 @@ between your last version and now, if it's something significant. You do not
need the exact same body in your second cover letter; focus on explaining to
reviewers the changes you've made that may not be as visible.

You will also need to go and find the Message-ID of your previous cover letter.
You will also need to go and find the Message-ID of your first cover letter.
You can either note it when you send the first series, from the output of `git
send-email`, or you can look it up on the
https://lore.kernel.org/git[mailing list]. Find your cover letter in the
Expand All @@ -1227,8 +1232,8 @@ Message-ID: <foo.12345.author@example.com>

Your Message-ID is `<foo.12345.author@example.com>`. This example will be used
below as well; make sure to replace it with the correct Message-ID for your
**previous cover letter** - that is, if you're sending v2, use the Message-ID
from v1; if you're sending v3, use the Message-ID from v2.
**first cover letter** - that is, for any subsequent version that you send,
always use the Message-ID from v1.

While you're looking at the email, you should also note who is CC'd, as it's
common practice in the mailing list to keep all CCs on a thread. You can add
Expand Down Expand Up @@ -1296,6 +1301,87 @@ index 88f126184c..38da593a60 100644
2.21.0.392.gf8f6787159e-goog
----

[[howto-b4]]
== Sending Patches with `b4`

`b4` is a tool that builds on top of `git format-patch` and `git send-email`.
It automates much of the bookkeeping involved in sending a patch series to a
mailing-list-based project.

Refer to the https://b4.docs.kernel.org/[b4 documentation] for a full reference.

[[prep-b4]]
=== Preparing a Patch Series

`b4` tracks your patch series as a branch. To start tracking the `psuh` branch
you have been working on, run:

----
$ b4 prep --enroll master
----

This enrolls the current branch, using `master` as the base of the topic. `b4`
manages the cover letter as part of the branch, so you can edit it at any time
with:

----
$ b4 prep --edit-cover
----

The cover letter not only tracks the content of the top-level mail, but also
the set of recipients. You can add recipients by adding `To:` and `Cc:`
trailer lines.

[[send-b4]]
=== Sending the Patches

Before sending the series out for real, you can inspect what `b4` would send by
passing `--dry-run`:

----
$ b4 send --dry-run
----

Once you are happy with the result, send the series with:

----
$ b4 send
----

[[v2-b4]]
=== Sending v2

When you are ready to send a new iteration of your series, refine your
patches as usual using linkgit:git-rebase[1]. Note that you typically want to
rebase on top of the cover letter. You can configure an alias to enable easy
rebases going forward:

---
$ git config set alias.b4-rebase 'rebase "HEAD^{/--- b4-submit-tracking ---}"'
$ git b4-rebase -i
---

Before sending out the new version you should also update the cover letter with
`b4 prep --edit-cover` to note the relevant changes compared to the previous
version. You can inspect the changes between the two versions with `b4 prep
--compare-to=v1`.

Same as with the first version, you can use `b4 send` to send out the second
version. `b4` automatically bumps the version to `v2`, generates the range-diff
against the previous iteration, and threads the new series as a reply to the
cover letter of the first version.

[[configure-b4]]
=== Configure b4

`b4` can be configured via linkgit:git-config[1]. In addition to that, projects
can have their own set of defaults in `.b4-config` in the root tree, which also
uses Git's config format. The user's configuration always takes precedence over
the per-project defaults.

Refer to the https://b4.docs.kernel.org/en/latest/config.html[b4 config documentation]
for more information on the available options.

[[now-what]]
== My Patch Got Emailed - Now What?

Expand Down Expand Up @@ -1330,18 +1416,42 @@ previous one" patches over 2 days), reviewers would strongly prefer if a
single polished version came 2 days later instead, and that version with
fewer mistakes were the only one they would need to review.

This consideration applies not only when going from the initial patch to v2,
but also to later iterations of the same series. There is no fixed rule for how
long to wait before sending a new version. A useful default is to send at most
one new version of the same patch series per day. This gives multiple reviewers
time to comment, gives reviewers across time zones a fair chance to
participate, lets you batch feedback together, and gives you time to think
through the comments you received. Knowing that you should not immediately send
another version also encourages you to review the patches more carefully before
sending them, catch small mistakes such as typos and off-by-one errors
yourself, and let reviewers spend more of their attention on design,
algorithms, and other substantial issues.

The right timing depends on the topic and the feedback. Larger series usually
need more review time. If the only comments so far are minor, such as typo
fixes, it often makes sense to wait a little longer in case deeper reviews are
still coming. If the comments call for substantial rework, do not rush out an
updated version before you have reviewed the larger changes carefully. Instead,
reply to the review that prompted the rewrite, say that you are preparing a
substantial rework, and mention which parts of the current series will become
obsolete so reviewers can avoid spending time on them until the updated series
is ready.


[[reviewing]]
=== Responding to Reviews

After a few days, you will hopefully receive a reply to your patchset with some
comments. Woohoo! Now you can get back to work.

It's good manners to reply to each comment, notifying the reviewer that you have
made the change suggested, feel the original is better, or that the comment
inspired you to do something a new way which is superior to both the original
and the suggested change. This way reviewers don't need to inspect your v2 to
figure out whether you implemented their comment or not.
It's good manners to reply to each comment in the mailing list discussion
instead of letting the next version of your patch be your only response. Tell
the reviewer whether you plan to make the suggested change, keep the original,
or pursue a different approach. This way reviewers can respond to your reasoning
before you spend time preparing a version they may not agree with, and later do
not need to inspect your v2 to figure out whether you implemented their comment
or not.

Reviewers may ask you about what you wrote in the patchset, either in
the proposed commit log message or in the changes themselves. You
Expand Down
113 changes: 113 additions & 0 deletions Documentation/RelNotes/2.56.0.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
Git v2.56 Release Notes
=======================

UI, Workflows & Features
------------------------

* Advice shown by "git status" when the local branch is behind or has
diverged from its push branch has been updated to suggest "git pull
<remote> <branch>".

* The handling of promisor-remote protocol capability has been updated
to allow the other side to add to the list of promisor remotes via the
'promisor.acceptFromServerURL' configuration variable.

* The 'ort' merge backend has been hardened against corrupt trees by
ensuring it aborts under appropriate error conditions.

* The `fetch.followRemoteHEAD` configuration variable has been added to
provide a default for the per-remote `remote.<name>.followRemoteHEAD`
setting.

* "git log --follow" has been updated to better handle non-linear
history, in which the path being tracked gets renamed differently in
multiple history lines.

* The "git repo info" command has been taught new keys to output both
absolute and relative paths for "gitdir" and "commondir", supported by
a new path-formatting helper extracted from "git rev-parse".


Performance, Internal Implementation, Development Support etc.
--------------------------------------------------------------

* The refactoring of 'setup.c' has been continued to drop remaining
global state (`git_work_tree_cfg`, `is_bare_repository_cfg`), updating
`is_bare_repository()` to no longer implicitly rely on
`the_repository`.

* Project-specific configuration for b4 has been introduced, and the
documentation has been updated to recommend using it as a
streamlined method for submitting patches.

* The default format path of git cat-file --batch has been optimized
to use strbuf_add_oid_hex() and strbuf_add_uint() instead of
strbuf_addf(), yielding a noticeable speedup.

* Commands that list branches and tags (like git branch and git tag)
have been optimized to pass the namespace prefix when initializing
their ref iterator, avoiding a loose-ref scaling regression in
repositories with many unrelated loose references.

* The packed object source has been refactored into a proper struct
odb_source.

* The global configuration variables protect_hfs and protect_ntfs have
been migrated into struct repo_config_values to tie them to
per-repository configuration state.

* The trailer sections in SubmittingPatches have been updated to
encourage use of standard trailers.

* The documentation in SubmittingPatches has been updated to clarify how
patch contributors should respond to design and viability critiques,
and how the resolution of such critiques should be recorded in the
final commit messages.

* The pack-objects command has been updated to support reachability
bitmaps and delta-islands concurrently with the `--path-walk` option,
allowing faster packaging by falling back to path-walk when bitmaps
cannot fully satisfy the request.

* Documentation on community contribution guidelines has been updated to
encourage replying to review comments before rerolling, and to advise
a default limit of at most one reroll per day to give reviewers across
different time zones enough time to participate.


Fixes since v2.55
-----------------

* A regression in the error diagnosis code for invalid .git files has
been fixed, avoiding a potential NULL-pointer crash when reporting
that a .git file does not point to a valid repository.
(merge 54a441bcea jk/setup-gitfile-diag-fix later to maint).

* Support for hashing loose or packed objects larger than 4GB on Windows
and other LLP64 platforms has been improved by converting object header
buffers and data-handling functions from 'unsigned long' to 'size_t'.
(merge d99e13d0be po/hash-object-size-t later to maint).

* The display of the rebase todo list in "git status" has been
improved to correctly abbreviate object IDs for more commands and
avoid misinterpreting refs as object IDs.
(merge 6f34e5f9e3 pw/status-rebase-todo later to maint).

* Reference backend configuration has been updated to load lazily to
avoid recursive calls during repository initialization when 'onbranch'
configuration conditions are evaluated. This has also fixed a memory
leak and allowed the unused `chdir_notify_reparent()` machinery to be
dropped.
(merge d6522d01df ps/refs-onbranch-fixes later to maint).

* The connectivity check has been refactored to search for promisor
objects in a generic way using the object database interface,
rather than iterating packfiles directly. This allows connectivity
checks to work properly in repositories that do not use packfiles.
(merge 66ee9cb930 ps/connected-generic-promisor-checks later to maint).

* A test checking interactions between git rebase --quit and
autostash in t3420-rebase-autostash.sh has been corrected to use
test_path_is_missing instead of ! grep on a file that shouldn't
exist in the conflicted state.
(merge eaad121fef sg/t3420-do-not-grep-in-missing-file later to maint).
Loading