Subject: Re: Bad URL passed to RA lay

From: [email-masked]
Date: Wed, 14 Oct 2009 16:02:11 +0200

> -----Ursprüngliche Nachricht-----
> Von: "Eric Wong" <[email-masked]>
> Gesendet: 14.10.09 09:07:31
> An: [email-masked]
> CC: [email-masked]
> Betreff: Re: Bad URL passed to RA lay

> [email-masked] wrote:
> > Hi List,
> > 
> > i have a problem with git-svn clone / fetch. I get following error
> > while doing one of previous command -> "Bad URL passed to RA lay" This
> > happens because a branch doesn't exists in svn anymore and git wants
> > to retrieve data from it. Here is the complete error message
> > 
> > Initializing parent: Abo-Uebernahme (Bug #994)@341
> > Found possible branch point: "quoted"..trunk => "quoted"...Abo-Uebernahme (Bug #994), 203
> > Found branch parent: (Abo-Uebernahme (Bug #994)@341) bb831869748c98bf97d105c5894ae65331c95c08
> > Bad URL passed to RA layer: Malformed URL for repository at /usr/bin/git-svn line 4311
> > 
> > git version 1.6.3.3
> > 
> > Aynone else has this Problem?
> 
> Hi,
> 
> Unlikely, not many people use URIs as weird as yours :)

Ye, i know ;) This is really old stuff and we already changed them to more sane ones ;)

> The existing test case (t9118) we have was also inspired by you,
> on the same branch, even.
> 
> > Can anyone help me?
> 
> What exactly is the "quoted" you refer to?  That's not an actual branch
> name, is it?

ah brainfart.

This info is essential!

quoted = branches/dirk/Abo-Uebernahme... => https...branches/Abo-Uebernahme...

> Can you try it with v1.6.5?  You might need to edit your $GIT_CONFIG,
> but commit 5268f9edc3c86b07a64fcc2679e5ffe39be28d97 was the last
> fix for URI-escaping problems:

This is not a URI Escaping Problem. As i allready mentioned: I think its a svn
problem and git can't handle that.

svn History:

r203 svn copy /trunk/ /branches/dirk/Abo..
r204 svn mv /branches/dirk/Abo..   /branches/Abo..
r341 svn mv /branches/Abo.. /branches/0944-Abo..

r203 branch was created from trunk.
r204 branch was moved from /branches/dirk/ to /branches
r341 branch was renamed to 0944-Abo

This is what git does.

>Initializing parent: refs/remote/Abo-Uebernahme (Bug #994)@341
>Found possible branch point: branches/Abo => branches/dirk/Abo-Uebernahme (Bug #994), 203
>Found branch parent: (Abo-Uebernahme (Bug #994)@341) bb831869748c98bf97d105c5894ae65331c95c08
>Bad URL passed to RA layer: Malformed URL for repository at /usr/bin/git-svn line 4311

I think the problem is that git doesn't like this kinda action.
branch -> do something with branch -> rename branch.

After some debugging i found something in git-svn

sub find_parent_branch
{
...
	} elseif ($self->ra->trees_match($new_url, $r0, $self->full_url, $rev))
	....
}

the trees_match sub doesn't do any error handling. if $self->full_url doesn't
exits anymore this will fail, right? 

I don't know if the followong piece of code in find_parent_branch works like
you expect it!?

>unless (defined $paths) {
>	my $err_handler = $SVN::Error::handler;
>        $SVN::Error::handler = \&Git::SVN::Ra::skip_unknown_revs;
>        $self->ra->get_log([$self->{path}], $rev, $rev, 0, 1, 1,
>                                 sub { $paths = $_[0] });
>        $SVN::Error::handler = $err_handler;
>}
>return undef unless defined $paths;

Maybe its just a problem with renaming branches or something!?
My Perl knowledge is really limited, so its up to you my friend ;)

Majk

______________________________________________________
GRATIS für alle WEB.DE-Nutzer: Die maxdome Movie-FLAT!
Jetzt freischalten unter http://movieflat.web.de