threads / bug / 50116

a git svn bug

Subject: a git svn bug

## tl;dr

3 messages between Dec 27, 2018 and Feb 11, 2019.

replies: 2people: 2as markdown or json

肖建晶· Dec 27, 2018, 17:02 UTC · lore
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· Dec 29, 2018, 04:16 UTC · re: 肖建晶 · lore

Re: a git svn bug

肖建晶 <06271023@bjtu.edu.cn> wrote:
Show 7 quoted lines
> 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).

Show 7 quoted lines
>    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.
肖建晶· Feb 11, 2019, 08:57 UTC · re: Eric Wong · lore

Re: Re: a git svn bug

Show 11 quoted lines
> 肖建晶 <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
 
Show 6 quoted lines
> >    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.

Show 13 quoted lines
> >    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.

← back to recent threads