merge-tree: update documentation for differences in -z output
The Informational Messages was updated in de90581141
("merge-ort:
optionally produce machine-readable output", 2022-06-18) to provide more
detailed and machine parseable output when `-z` is passed, but the
Documentation was not updated to reflect these changes. Update it now.
Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
1fc3c0ad40
commit
a9f5bb83e0
@ -108,18 +108,50 @@ character instead of a newline character.
|
|||||||
Informational messages
|
Informational messages
|
||||||
~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
This always starts with a blank line (or NUL if `-z` is passed) to
|
This section provides informational messages, typically about
|
||||||
separate it from the previous sections, and then has free-form
|
conflicts. The format of the section varies significantly depending
|
||||||
messages about the merge, such as:
|
on whether `-z` is passed.
|
||||||
|
|
||||||
|
If `-z` is passed:
|
||||||
|
|
||||||
|
The output format is zero or more conflict informational records, each
|
||||||
|
of the form:
|
||||||
|
|
||||||
|
<list-of-paths><conflict-type>NUL<conflict-message>NUL
|
||||||
|
|
||||||
|
where <list-of-paths> is of the form
|
||||||
|
|
||||||
|
<number-of-paths>NUL<path1>NUL<path2>NUL...<pathN>NUL
|
||||||
|
|
||||||
|
and includes paths (or branch names) affected by the conflict or
|
||||||
|
informational message in <conflict-message>. Also, <conflict-type> is a
|
||||||
|
stable string explaining the type of conflict, such as
|
||||||
|
|
||||||
|
* "Auto-merging"
|
||||||
|
* "CONFLICT (rename/delete)"
|
||||||
|
* "CONFLICT (submodule lacks merge base)"
|
||||||
|
* "CONFLICT (binary)"
|
||||||
|
|
||||||
|
and <conflict-message> is a more detailed message about the conflict which often
|
||||||
|
(but not always) embeds the <stable-short-type-description> within it. These
|
||||||
|
strings may change in future Git versions. Some examples:
|
||||||
|
|
||||||
* "Auto-merging <file>"
|
* "Auto-merging <file>"
|
||||||
* "CONFLICT (rename/delete): <oldfile> renamed...but deleted in..."
|
* "CONFLICT (rename/delete): <oldfile> renamed...but deleted in..."
|
||||||
* "Failed to merge submodule <submodule> (<reason>)"
|
* "Failed to merge submodule <submodule> (no merge base)"
|
||||||
* "Warning: cannot merge binary files: <filename>"
|
* "Warning: cannot merge binary files: <filename>"
|
||||||
|
|
||||||
Note that these free-form messages will never have a NUL character
|
If `-z` is NOT passed:
|
||||||
in or between them, even if -z is passed. It is simply a large block
|
|
||||||
of text taking up the remainder of the output.
|
This section starts with a blank line to separate it from the previous
|
||||||
|
sections, and then only contains the <conflict-message> information
|
||||||
|
from the previous section (separated by newlines). These are
|
||||||
|
non-stable strings that should not be parsed by scripts, and are just
|
||||||
|
meant for human consumption. Also, note that while <conflict-message>
|
||||||
|
strings usually do not contain embedded newlines, they sometimes do.
|
||||||
|
(However, the free-form messages will never have an embedded NUL
|
||||||
|
character). So, the entire block of information is meant for human
|
||||||
|
readers as an agglomeration of all conflict messages.
|
||||||
|
|
||||||
EXIT STATUS
|
EXIT STATUS
|
||||||
-----------
|
-----------
|
||||||
|
Reference in New Issue
Block a user