Re: git-svn and a nested branches folder
On Tue, Sep 04, 2007 at 10:21:22AM -0500, Russ Brown wrote:
Show 54 quoted lines
> David Kastrup wrote:
> > Russ Brown <pickscrape@gmail.com> writes:
> >
> >> David Kastrup wrote:
> >>> Russ Brown <pickscrape@gmail.com> writes:
> >>>
> >>>> I'm having some trouble with using git-svn to fetch a repository, and I
> >>>> think it's because the repository doesn't store branches as a flat list
> >>>> directly under the 'branches' directory.
> >>>>
> >>>> Basically, we have a structure like this:
> >>>>
> >>>> |
> >>>> +-trunk
> >>>> +-tags
> >>>> +-branches
> >>>> + category-a
> >>>> + branch-a
> >>>> + branch-b
> >>>> + category-b
> >>>> + branch-c
> >>>> + branch-d
> >>>>
> >>>> etc. category-a and category-b are simple directories created using svn
> >>>> mkdir. The branches are created using svn cp.
> >>>>
> >>>> It helps us to organise the branches better, but the rationale is
> >>>> besides the point. The problem is that git-svn seems to want to
> >>>> treat category-a and category-b as branches, which isn't right at
> >>>> all. As a result, git-svn seems to skip most (if not all) revisions
> >>>> that occur in these directories and creates a lot of entries in
> >>>> unhandled.log.
> >>> So what did you specify in your .git/config file regarding the svn
> >>> structure?
> >> I specified the 'branches' directory, but that's because earlier in
> >> the life of the repo we did just do the flat branch layout, but
> >> decided to make it more structured once that got unwieldy.
> >
> > Cough, cough. _What_ did you specify in your .git/config file
> > regarding the svn structure? Please quote the section.
> >
>
> Erm, sorry.
>
> [svn-remote "svn"]
> url = svn://svn.<name>.com
> fetch = trunk:refs/remotes/trunk
> branches = branches/*:refs/remotes/*
> tags = tags/*:refs/remotes/tags/*
>
> (URL changed in case it annoys my employers)
>
> I didn't write this by hand: it was generated by git-svn init.
>
Try something like this:
[svn-remote "svn"]
# trunk
fetch = trunk:refs/remotes/trunk
# branches
fetch = branches/category-a/branch_a:refs/remotes/svn/branch_a
fetch = branches/category-a/branch_b:refs/remotes/svn/branch_b
fetch = branches/category-b/branch_c:refs/remotes/svn/branch_c
# tags
tags = tags/*:refs/remotes/tags/*
(Not sure if wildcards will work here, but I'm sure you could experiment and try
it out :-)
-Peter