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

Re: git-svn-Cloning repository with complicate nesting

From: Daniele Segato <hidden>
Date: 2016-06-15 22:47:21

On Thu, Sep 3, 2009 at 4:31 PM, Marc Branchaud[off-list ref] wrote:
Hi Daniele,
Hi Marc and thank you for your reply.
I think you're stuck.  Someone who knows git-svn better than I might be able to figure out a solution (I haven't played with using wildcards in the middle of branches refspecs), but as far as I can tell git-svn can't support your repository's structure.

The fundamental problem is that the BRANCHES/ hierarchy isn't consistent.  git-svn expects the directories under a 'branches' path to be branch names.  In your case, you can't specify a configuration that covers your whole repository.
yes..
and developers should be smart enought to keep consistency on their
own.. unfurtunately they oftern aren't
So I think git-svn would need to be modified to support your situation.
I'm not feeling that lucky but I would be happy about it. :-)
One possible approach is to make git-svn smart about what it considers a branch's name.  In theory, what you'd like is to just specify
To do this, git-svn could track the current 'trunk' directory structure (just the top-level contents of the root should suffice).  Then when it detects a new path under BRANCHES it could search through that path until it finds the same 'trunk' directory structure, and then use the path as the full branch name.
When a commit creates a new branch:
git-svn sees that the commit is to a new path under branches/ and looks through branches/some/ and branches/some/path/ to find the trunk's contents, deciding in this case that 'some/path' is the branch's name.

Anyway, this is just an idea of how things might work.  There are probably some corner-cases that could make this a bit tricky to implement...
hum...
It could be an idea but I don't know how hard could it be to check it:
how much deep inside the tree should Git search for branch? what if
there are branches that are completely differents?

may be the user could create and pass a "branch model" to git svn to
make it able to decide what is a branch and what isn't.

I think there are many options

In my case It would have worked defining a structure like:
BRANCHES/*/root -> remote/svn/branch/*
BRANCHES/*/*/root -> remote/svn/branch/*/*

But it would be better with something like:
BRANCHES/\([^\/]+\)/root -> remote/svn/branch/$1
BRANCHES/\([^\/]+\)/\([^\/]+\)/root -> remote/svn/branch/$1/$2

like a grouped regex.

every branch not matching the regex will be skipped..
only an idea.. It couln't work in every situation but it would allow a
greater degree of freedom in the configuration.

I don't know if Git developers are interested in thinking on some
features like this.. it sound like an SVN-only hack to me.

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