# [PATCH v2] git-svn: trim leading and trailing whitespaces in author name

3 messages from 2019-09-12 to 2019-09-13. Participants: Tobias Klauser, Eric Sunshine.
Thread: https://gitlist.dev/t/51835

## Tobias Klauser, 2019-09-12 14:56

Subject: [PATCH v2] git-svn: trim leading and trailing whitespaces in author name
Message-ID: <20190912145638.32192-1-tklauser@distanz.ch>
URL: https://gitlist.dev/e/20190912145638.32192-1-tklauser%40distanz.ch

```
In some cases, the svn author names might contain leading or trailing
whitespaces, leading to messages such as:

  Author: user1
   not defined in authors.txt

(the trailing newline leads to the line break). The user "user1" is
defined in authors.txt though, e.g.

  user1 = User <user1@example.com>

Fix this by trimming the author name retreived from svn before using it
in check_author.

Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
---
v2:
 - move whitespace trimming below defined'ness check as per Eric Sunshine's
   review comment

 perl/Git/SVN.pm | 1 +
 1 file changed, 1 insertion(+)

diff --git a/perl/Git/SVN.pm b/perl/Git/SVN.pm
index 76b29659057d..d8c07419f51c 100644
--- a/perl/Git/SVN.pm
+++ b/perl/Git/SVN.pm
@@ -1494,6 +1494,7 @@ sub check_author {
 	if (!defined $author || length $author == 0) {
 		$author = '(no author)';
 	}
+	$author =~ s/^\s+|\s+$//g;
 	if (!defined $::users{$author}) {
 		if (defined $::_authors_prog) {
 			$::users{$author} = call_authors_prog($author);
-- 
2.23.0.dirty


```

## Eric Sunshine, 2019-09-12 18:20

Subject: Re: [PATCH v2] git-svn: trim leading and trailing whitespaces in author name
Message-ID: <CAPig+cTAY=4cuDyrsPiDH+MUvz4+H4eMKAsmTAETep2On5=q3g@mail.gmail.com>
URL: https://gitlist.dev/e/CAPig%2BcTAY%3D4cuDyrsPiDH%2BMUvz4%2BH4eMKAsmTAETep2On5%3Dq3g%40mail.gmail.com
In-Reply-To: <20190912145638.32192-1-tklauser@distanz.ch>

```
On Thu, Sep 12, 2019 at 10:56 AM Tobias Klauser <tklauser@distanz.ch> wrote:
> v2:
>  - move whitespace trimming below defined'ness check as per Eric Sunshine's
>    review comment
> diff --git a/perl/Git/SVN.pm b/perl/Git/SVN.pm
> @@ -1494,6 +1494,7 @@ sub check_author {
>         if (!defined $author || length $author == 0) {
>                 $author = '(no author)';
>         }
> +       $author =~ s/^\s+|\s+$//g;

Hmm, this still looks questionable. I would have expected the
whitespace trimming to be below the 'defined' check but before the
length($author)==0 check (since the length might become 0 once
whitespace is trimmed).

Also, a minor style/comprehension nit: Perhaps I'm just old-school,
but for me, the idiom:

    $author =~ s/^\s+//;
    $author =~ s/\s+$//;

is easier to understand at-a-glance as trimming leading and trailing
whitespace than the more compact (noisy) expression this patch uses.
But that's just a subjective review comment, not necessarily
actionable.

```

## Tobias Klauser, 2019-09-13 07:47

Subject: Re: [PATCH v2] git-svn: trim leading and trailing whitespaces in author name
Message-ID: <20190913074700.hwmyalfmn66kkgbs@distanz.ch>
URL: https://gitlist.dev/e/20190913074700.hwmyalfmn66kkgbs%40distanz.ch
In-Reply-To: <CAPig+cTAY=4cuDyrsPiDH+MUvz4+H4eMKAsmTAETep2On5=q3g@mail.gmail.com>

```
Thank you for the review Eric!

On 2019-09-12 at 20:20:11 +0200, Eric Sunshine <sunshine@sunshineco.com> wrote:
> On Thu, Sep 12, 2019 at 10:56 AM Tobias Klauser <tklauser@distanz.ch> wrote:
> > v2:
> >  - move whitespace trimming below defined'ness check as per Eric Sunshine's
> >    review comment
> > diff --git a/perl/Git/SVN.pm b/perl/Git/SVN.pm
> > @@ -1494,6 +1494,7 @@ sub check_author {
> >         if (!defined $author || length $author == 0) {
> >                 $author = '(no author)';
> >         }
> > +       $author =~ s/^\s+|\s+$//g;
> 
> Hmm, this still looks questionable. I would have expected the
> whitespace trimming to be below the 'defined' check but before the
> length($author)==0 check (since the length might become 0 once
> whitespace is trimmed).

Agree, I didn't consider this case. Will change in v3.

> Also, a minor style/comprehension nit: Perhaps I'm just old-school,
> but for me, the idiom:
> 
>     $author =~ s/^\s+//;
>     $author =~ s/\s+$//;
> 
> is easier to understand at-a-glance as trimming leading and trailing
> whitespace than the more compact (noisy) expression this patch uses.
> But that's just a subjective review comment, not necessarily
> actionable.

Agree, the form you propose is more readable and saving just a line
doesn't seem worth the possible impact on comprehension/readability.
Will change in v3.

```
