On Sun, Sep 08, 2019 at 05:18:07PM +0000, brian m. carlson wrote:
> > - 2. hand resolve the conflict in the working directory, and
> > update the
> > + 2. hand resolve the conflict in the working directory, and
> > update the
> > index file to bring it into a state that the patch should have
> > produced. Then run the command with the --continue option.
> >
> > I tricked doc-diff into doing a comparison against 1.5.5 without the
> > patch and 2.0.10 with the patch, and the diff is similar.
>
> I see the same thing in doc-diff, but this issue doesn't appear to
> actually render in the manual pages themselves, even with MANWIDTH=80.
> I'm not sure why, but it doesn't seem to misrender in the actual man
> output.
Hrm. But doc-diff _is_ diffing the output of man, so that implies a bug
in that script. However, if I manually go into tmp-doc-diff/installed
and run "man -l git-am.1", I do see the extra whitespace, which is what
I'd expect. Are you sure you did your manual inspection on the right
thing?
I was also curious about the root cause at the roff level, so I did this
hack:
diff --git a/Documentation/doc-diff b/Documentation/doc-diff
index 88a9b20168..fde3ac7154 100755
--- a/Documentation/doc-diff
+++ b/Documentation/doc-diff
@@ -22,6 +22,7 @@ to-asciidoc use asciidoc with the 'to'-commit
to-asciidoctor use asciidoctor with the 'to'-commit
asciidoctor use asciidoctor with both commits
cut-footer cut away footer
+raw diff roff instead of rendered manpages
"
SUBDIRECTORY_OK=1
. "$(git --exec-path)/git-sh-setup"
@@ -32,6 +33,7 @@ clean=
from_program=
to_program=
cut_footer=
+raw=
while test $# -gt 0
do
case "$1" in
@@ -57,6 +59,8 @@ do
to_program=-asciidoc ;;
--cut-footer)
cut_footer=-cut-footer ;;
+ --raw)
+ raw=t ;;
--)
shift; break ;;
*)
@@ -159,6 +163,11 @@ render_tree () {
mv "$tmp/installed/$dname+" "$tmp/installed/$dname"
fi &&
+ if test -n "$raw"
+ then
+ return 0
+ fi &&
+
# As with "installed" above, we skip the render if it's already been
# done. So using make here is primarily just about running in
# parallel.
@@ -181,6 +190,13 @@ render_tree () {
fi
}
+if test -z "$raw"
+then
+ diffdir=$tmp/rendered
+else
+ diffdir=$tmp/installed
+fi
+
render_tree $from_oid $from_dir $from_makemanflags &&
render_tree $to_oid $to_dir $to_makemanflags &&
-git -C $tmp/rendered diff --no-index "$@" $from_dir $to_dir
+git -C $diffdir diff --no-index "$@" $from_dir $to_dir
The results are quite noisy compared to the rendered output (i.e.,
stylistic choices in the roff output that have equivalent outputs). But
it did let me easily find the difference in one of these cases:
@@ -312,6 +458,7 @@ option\&.
.sp -1
.IP " 2." 4.2
.\}
+
hand resolve the conflict in the working directory, and update the index
file to bring it into a state that the patch should have produced\&. Then run
the command with the
\fB\-\-continue\fR
option\&.
But it's not clear from that whether asciidoc's docbook5 backend inserts
an extra newline, or if it's part of the xml translation. Looking at the
actual XML, I see:
<listitem>
<simpara>hand resolve the conflict in the working directory, and update
the index file to bring it into a state that the patch should
have produced. Then run the command with the <literal>--continue</literal>
option.</simpara>
</listitem>
which looks OK. I wondered if there should not be a break between
<listitem> and <simpara>, but it's there in the asciidoc version, too.
So I'm inclined to blame xmlto/docbook5 here.
-Peff