diff mbox series

diff-algorithm to work better with color-moved, and issue with am.messageid (was: [PATCH] bind.2: move EADDRNOTAVAIL to general errors)

Message ID imng4gsmiins23rrpb7zppeambm4wdwfvyhgp4rbzqkc5dyjah@3bckcsvdg42r (mailing list archive)
State New
Headers show
Series diff-algorithm to work better with color-moved, and issue with am.messageid (was: [PATCH] bind.2: move EADDRNOTAVAIL to general errors) | expand

Commit Message

Alejandro Colomar Nov. 6, 2024, 11 a.m. UTC
[To += git@, to report some issue with git(1)]

Hi Philipp, git people,

On Wed, Nov 06, 2024 at 10:53:47AM GMT, Philipp Takacs wrote:
> EADDRNOTAVAIL is not a socket specific error

Thanks!  I've applied the patch.

> ---
>  man/man2/bind.2 | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/man/man2/bind.2 b/man/man2/bind.2
> index a59ac16f9..330a808b7 100644
> --- a/man/man2/bind.2
> +++ b/man/man2/bind.2
> @@ -147,6 +147,10 @@ .SH ERRORS

Wow, thanks for configuring git(1) for that!  :)

>  The file descriptor
>  .I sockfd
>  does not refer to a socket.
> +.TP
> +.B EADDRNOTAVAIL
> +A nonexistent interface was requested or the requested
> +address was not local.
>  .P
>  The following errors are specific to UNIX domain
>  .RB ( AF_UNIX )
> @@ -157,10 +161,6 @@ .SH ERRORS
>  (See also
>  .BR path_resolution (7).)
>  .TP
> -.B EADDRNOTAVAIL
> -A nonexistent interface was requested or the requested
> -address was not local.
> -.TP

And here goes some question to git@ people.  Here, either the .TP from
below or above the rest of the removed text is correct for a diff.
However, when you ask git to --color-moved, it will think the .TP was
not moved, as it's in a different position.   Maybe some diffing
algorithm could have this in mind and favor when in doubt a line that
makes the removed part consistent with the added part, so that more text
is considered to have been moved.  What do you think?  Would that be
doable, or is it easier said than done?  :)


Below is a reproducer.

BTW, now I've noticed that the Message-ID line was written in the wrong
position, next to the commit message body, and not in the trailer
signature fields.  That's the first time I see that happening.  It might
be interesting to check that.  I can consistently reproduce it when
applying this patch.  It might be interesting to investigate why it
happens.


Have a lovely day!
Alex

alx@debian:~$ cd /tmp/
alx@debian:/tmp$ git clone https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git
Cloning into 'man-pages'...
remote: Enumerating objects: 172347, done.
remote: Counting objects: 100% (358/358), done.
remote: Compressing objects: 100% (332/332), done.
remote: Total 172347 (delta 180), reused 0 (delta 0), pack-reused 171989
Receiving objects: 100% (172347/172347), 33.72 MiB | 17.49 MiB/s, done.
Resolving deltas: 100% (141272/141272), done.
alx@debian:/tmp$ cd man-pages/
alx@debian:/tmp/man-pages$ git show --color-moved 577251dfb1d2
commit 577251dfb1d2c63d8022944d12ed567d8409c17a (HEAD -> master, origin/master, origin/HEAD)
Author: Philipp Takacs <philipp@bureaucracy.de>
Date:   Wed Nov 6 10:53:47 2024 +0100

    bind.2: move EADDRNOTAVAIL to general errors
    
    EADDRNOTAVAIL is not a socket specific error
    Message-ID: <eee2fe5c6c3d6203e1e528a998b0de2c.philipp@bureaucracy.de>
    
    Signed-off-by: Alejandro Colomar <alx@kernel.org>


>  .B EFAULT
>  .I addr
>  points outside the user's accessible address space.
> -- 
> 2.39.5
>
diff mbox series

Patch

diff --git a/man/man2/bind.2 b/man/man2/bind.2
index a59ac16f9..330a808b7 100644
--- a/man/man2/bind.2
+++ b/man/man2/bind.2
@@ -147,6 +147,10 @@  .SH ERRORS
 The file descriptor
 .I sockfd
 does not refer to a socket.
+.TP
+.B EADDRNOTAVAIL
+A nonexistent interface was requested or the requested
+address was not local.
 .P
 The following errors are specific to UNIX domain
 .RB ( AF_UNIX )
@@ -157,10 +161,6 @@  .SH ERRORS
 (See also
 .BR path_resolution (7).)
 .TP
-.B EADDRNOTAVAIL
-A nonexistent interface was requested or the requested
-address was not local.
-.TP
 .B EFAULT
 .I addr
 points outside the user's accessible address space.