Thread (11 messages) flat view 11 messages, 4 authors, 2016-06-15

Re: git-svn and a nested branches folder

From: Russ Brown <hidden>
Date: 2016-06-15 22:43:33

David Kastrup wrote:
Russ Brown [off-list ref] writes:
quoted
David Kastrup wrote:
quoted
Russ Brown [off-list ref] writes:
quoted
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.
quoted
Is it possible to specify more than one folder for the branches
option?
It is possible to adapt the config section to the actual layout.  If
not otherwise, by starting with
git svn init
with a clean slate, editing the config file, and only then actually
fetching stuff.

However, git-svn will not magically start guessing that you changed
your structure around.  You have to edit the configuration
appropriately.
That's why I suggested that a method involving detecting branches based
on whether the directory is a copy of trunk or another branch might
'magically' work in all scenarios. I've used a similar branch 'scanning'
technique before for a different reason. But I realise there may be
technical reasons as to why that might not be possible.

-- 

Russ
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help