Re: git-svn does not support intermediate directories?
- From
- Tim Stoakes <tim@stoakes.net>
- Date
- Mar 4, 2009, 04:30 UTC
- Message-ID
- <20090304043019.GC20790@mail.rocksoft.com>
- In-Reply-To
- <21fc26450903031743x4beda8a3i835ecbd428817070@mail.gmail.com>
Michael Lai(myllai@gmail.com)@030309-17:43:
Show 23 quoted lines
> After spending some hours struggling with git svn, it would appear
> that it does not support svn projects stored in paths similar to
> "http://foo.com/svn/repos/bar/myproject", where "myproject" uses the
> standard SVN tags/trunk/branches layout. I'm currently using git
> 1.6.1, though I tried this with 1.6.2-rc2 as well. The resulting
> .git/config looks something like this:
>
> [svn-remote "svn"]
> url = http://foo.com/svn/repos/bar
> fetch = myproject/trunk:refs/remotes/trunk
> branches = bar/myproject/branches/*:refs/remotes/*
> tags = bar/myproject/tags/*:refs/remotes/tags/*
>
> Yes, that's a redundant "bar" directory under "branches =" and "tags
> =". The issue seems to lie in git-svn doing something intelligent to
> extract the appropriate trunk directory. For the branches and tags,
> however, it just takes the full URL and removes the repository root
> (http://foo.com/svn/repos/bar) to produce "bar/myproject/{branches,
> tags}/*". The second effect is that "git svn fetch" will run but exit
> quietly without actually pulling anything from the repository. I
> tracked down an existing thread on the mailing list from a while ago
> (Feb 4th, title of "git-svn doesn't fetch anything"), but there was no
> resolution.I've just run into this exact same issue.
Show 13 quoted lines
> There is a quick workaround, which was to make this change to match_paths:
> < $self->{path_regex} ||= qr/^\/\Q$self->{path}\E\//;
> ---
> > $self->{path_regex} ||= qr/\/\Q$self->{path}\E\//;
>
> The additional "bar" directory gets pulled in when git-svn tries to
> determine what paths to pull down, and tries to match
> "/myproject/trunk" to "/bar/myproject/trunk". I've merely put a
> band-aid on the situation. My perl is rudimentary at best, or I'd
> have spent additional time to try to put in a "proper" patch, but was
> wondering if anyone else had run into this problem and would be
> willing to put in a fix (or point me in the right direction, that
> works too).I messed about with disabling $Git::SVN::_minimize_url, but that seemed to break other things.
Made worse for me was the fact that my 'bar' in the present was renamed from 'baz' in the past, so git-svn couldn't find it at r1. Very confusing!
I'd like a nicer solution too.
Tim
-- Tim Stoakes