# a git svn bug

3 messages from 2018-12-27 to 2019-02-11. Participants: 肖建晶, Eric Wong.
Thread: https://gitlist.dev/t/50116

## 肖建晶, 2018-12-27 17:02

Subject: a git svn bug
Message-ID: <650358a3.8395.167f09e21b6.Coremail.06271023@bjtu.edu.cn>
URL: https://gitlist.dev/e/650358a3.8395.167f09e21b6.Coremail.06271023%40bjtu.edu.cn

```
hi,
   git developers. I found a bug when i want to convert webkit to git
   there are some branch named safari... in webkit svn repo.
   when i want to convert them to branch in git. a problem happen.

   if you want to reproduce the problem, just follow the guide below.
   1. git svn clone -s https://svn.webkit.org/......

   2. when it runs to about r13800, stop it and rerun the above command

   3. the git client will check the refs it already found, and if it met a ~ in the branch name. it will failed to proceed. error is git thinks it an invalid ref name

   i digged into it, and found a solution in git/perl/git/svn.pm. I mod this file and bypass the problem.

   plean be kind to fix the problem and remind me the fix commit, and i will update to a new version.


```

## Eric Wong, 2018-12-29 04:16

Subject: Re: a git svn bug
Message-ID: <20181229041615.ay7pazjqozbvz7qz@dcvr>
URL: https://gitlist.dev/e/20181229041615.ay7pazjqozbvz7qz%40dcvr
In-Reply-To: <650358a3.8395.167f09e21b6.Coremail.06271023@bjtu.edu.cn>

```
肖建晶 <06271023@bjtu.edu.cn> wrote:
> hi,
>    git developers. I found a bug when i want to convert webkit to git
>    there are some branch named safari... in webkit svn repo.
>    when i want to convert them to branch in git. a problem happen.
> 
>    if you want to reproduce the problem, just follow the guide below.
>    1. git svn clone -s https://svn.webkit.org/......

Do you mean  https://svn.webkit.org/repository/webkit ?

>    2. when it runs to about r13800, stop it and rerun the above command

So running "clone" again?  Normally, I'd run "git svn fetch" if
I stopped and want to resume (or my Internet connection drops,
which happens a lot).

>    3. the git client will check the refs it already found, and
>    if it met a ~ in the branch name. it will failed to
>    proceed. error is git thinks it an invalid ref name
>j
>    i digged into it, and found a solution in
>    git/perl/git/svn.pm. I mod this file and bypass the
>    problem.

Can you show us what you did to perl/Git/SVN.pm?

the "refname" sub in perl/Git/SVN.pm already escapes "~",
it seems.

>    plean be kind to fix the problem and remind me the fix
>    commit, and i will update to a new version.

We'll try, but I think we need more information.  Thanks.

```

## 肖建晶, 2019-02-11 08:57

Subject: Re: Re: a git svn bug
Message-ID: <16f3efae.125ea.168dbc6689b.Coremail.06271023@bjtu.edu.cn>
URL: https://gitlist.dev/e/16f3efae.125ea.168dbc6689b.Coremail.06271023%40bjtu.edu.cn
In-Reply-To: <20181229041615.ay7pazjqozbvz7qz@dcvr>

```

> 肖建晶 <06271023@bjtu.edu.cn> wrote:
> > hi,
> >    git developers. I found a bug when i want to convert webkit to git
> >    there are some branch named safari... in webkit svn repo.
> >    when i want to convert them to branch in git. a problem happen.
> > 
> >    if you want to reproduce the problem, just follow the guide below.
> >    1. git svn clone -s https://svn.webkit.org/......
> 
> Do you mean  https://svn.webkit.org/repository/webkit ?
>
You are right. I use this url to fetch svn repo
 
> >    2. when it runs to about r13800, stop it and rerun the above command
> 
> So running "clone" again?  Normally, I'd run "git svn fetch" if
> I stopped and want to resume (or my Internet connection drops,
> which happens a lot).
> 
In fact, git svn clone again and git svn fetch will do nearly the same thing.
So we could use these two commands either. I just get used to git svn clone.

> >    3. the git client will check the refs it already found, and
> >    if it met a ~ in the branch name. it will failed to
> >    proceed. error is git thinks it an invalid ref name
> >j
> >    i digged into it, and found a solution in
> >    git/perl/git/svn.pm. I mod this file and bypass the
> >    problem.
> 
> Can you show us what you did to perl/Git/SVN.pm?
> 
> the "refname" sub in perl/Git/SVN.pm already escapes "~",
> it seems.
> 

  ***  i used this sed to fix it:
       sed -i "/refname = /a\\\t\t\$refname =~ s/~/%7E/g;" perl/Git/SVN.pm
       sed -i "/refname = /a\\\t\t\$refname =~ s/ /%20/g;" perl/Git/SVN.pm
       You can use the regex above to find the exact place (about line 93 )where the issue happens. I think after the sentence refname = ....,  variable refname should be right, but it seems not. Please examine if after that sentence, refname contains some symbol like ~ or " "(space). If it does, the command after that may not deal with it correctly. Please be kind to check it again.

> >    plean be kind to fix the problem and remind me the fix
> >    commit, and i will update to a new version.
> 
> We'll try, but I think we need more information.  Thanks.

unfortunately, after several days of work. The whole webkit is not converted into git repo, because I met another problem. It said index mismatch. And I was not able to solve it anymore. I plan to convert it later again. It's awful.

If you have any question, feel free to inform me. I always eager to help in my spare time.


```
