Den ons 20 maj 2026 kl 10:55 skrev <[email protected]>:
>
> Author: rinrab
> Date: Wed May 20 08:55:33 2026
> New Revision: 1934426
>
> Log:
> Use UTF-8 alignement for the 'author' column in the 'svn blame' command.
>
> * subversion/svn/blame-cmd.c
>   (#include): Add svn_utf_private.h.
>   (print_line_info): Call svn_utf__cstring_utf8_align_right() to
>    prepare author.
>
> Modified:
>    subversion/trunk/subversion/svn/blame-cmd.c
>
> Modified: subversion/trunk/subversion/svn/blame-cmd.c
> ==============================================================================
> --- subversion/trunk/subversion/svn/blame-cmd.c Wed May 20 08:30:24 2026      
>   (r1934425)
> +++ subversion/trunk/subversion/svn/blame-cmd.c Wed May 20 08:55:33 2026      
>   (r1934426)
> @@ -24,6 +24,7 @@
>
>  /*** Includes. ***/
>
> +#include "private/svn_utf_private.h"
>  #include "svn_client.h"
>  #include "svn_error.h"
>  #include "svn_dirent_uri.h"
> @@ -150,8 +151,9 @@ print_line_info(svn_stream_t *out,
>            time_stdout = "                                           -";
>          }
>
> -      SVN_ERR(svn_stream_printf(out, pool, "%s %10s %s ", rev_str,
> -                                author ? author : "         -",
> +      SVN_ERR(svn_stream_printf(out, pool, "%s %s %s ", rev_str,
> +                                svn_utf__cstring_utf8_align_right(
> +                                    author ? author : "-", 10, pool),
>                                  time_stdout));

After this change the output of svn blame is different from before if
there is a very long author name.

I have tested with svn compiled about a month ago (the version in
$PATH) and from a brand new (in ./subversion/svn). I have prepared a
repo with a file where all lines are authored by "dsg" and the
remaining by "averylongauthor" (15 characters, ASCII).

This is my commit #2 by the long author:
[[[
dsg@devi-25-01:~/svn_trunk3$ ./subversion/svn/svn proplist -v
--revprop -r2 ../wc/foo
Unversioned properties on revision 2:
  svn:author
    averylongauthor
  svn:date
    2026-05-20T11:52:35.534418Z
  svn:log
    Modify line 4
]]]

Blame before the change above:
[[[
dsg@devi-25-01:~/svn_trunk3$ svn blame ../wc/foo
     1        dsg 1
     1        dsg 2
     1        dsg 3
     2 averylonga Line 4
     1        dsg 5
     1        dsg 6
     1        dsg 7
     1        dsg 8
     1        dsg 9
]]]
Author names are right adjusted but when overflowing, the first 10
characters are displayed.

Blame after the change above:
[[[
dsg@devi-25-01:~/svn_trunk3$ ./subversion/svn/svn blame ../wc/foo
     1        dsg 1
     1        dsg 2
     1        dsg 3
     2 longauthor Line 4
     1        dsg 5
     1        dsg 6
     1        dsg 7
     1        dsg 8
     1        dsg 9
]]]
Author names are right adjusted but when overflowing, the last 10
characters are displayed.

(I'm aware there are more instances of svn_stream_printf and I haven't
analysed exactly which one is involved here).

I think we need to keep the precision in the formatting string and use
the _align_left version.

Kind regards,
Daniel

Reply via email to