Re: git-svn and a nested branches folder
- From
- Eric Wong <normalperson@yhbt.net>
- Date
- Sep 5, 2007, 10:09 UTC
- Message-ID
- <20070905100919.GA11074@soma>
- In-Reply-To
- <46DE7D37.9040905@gmail.com>
Russ Brown <pickscrape@gmail.com> wrote:
Show 14 quoted lines
> Eric Wong wrote: > > Russ Brown <pickscrape@gmail.com> wrote: > >> Basically, we have a structure like this: > >> > >> | > >> +-trunk > >> +-tags > >> +-branches > >> + category-a > >> + branch-a > >> + branch-b > >> + category-b > >> + branch-c > >> + branch-d
Show 38 quoted lines
> >> The only other problem is in branch naming, which could clash if you > >> only use the outer-most directory name, so I'd suggest something that > >> involves concatenating the folders in the path relative to 'branches' to > >> keep them unique (if git can handle slashes in branch names then all the > >> better). > > > > As Peter suggested, disable globbing for branches and use explicit > > fetch refspecs for now... > > > > I've actually knocked up a rough script which generates a list of > refspec lines for you given a repo URL, trunk reference and branches > directory. It uses svn log -v --xml and pipes it through a couple of > XSLT templates, and basically looks for all copies that copy from trunk > (recursively: so it includes branches of branches too). I can post it to > the list if you'd find it useful or interesting. > > It's generating output that looks sensible to me, but the results aren't > quite what I'd expected. I'll paste a sample in here in case there's > anything obvious someone might spot that I've missed > > # This line was generated by git-svn init, and I kept it > fetch = all/trunk:refs/remotes/trunk > > # These lines generated by my tool, dirnames replaced for security reasons: > > fetch = branches/folder/projecta:refs/remotes/svn/folder/projecta > fetch = branches/folder/projectb:refs/remotes/svn/folder/projectb > fetch = branches/folder/projectc:refs/remotes/svn/folder/projectc > fetch = branches/folder/projectd:refs/remotes/svn/folder/projectd > fetch = branches/folder/projecte:refs/remotes/svn/folder/projecte > fetch = branches/folder/projectf:refs/remotes/svn/folder/projectf > fetch = branches/folder/projectg:refs/remotes/svn/folder/projectg > > git branch -a doesn't list any of those branches after fetch completes. > Looking back at the output from fetch, all revisions applied were to trunk. > > Anything wrong with those fetch lines?
>From your tree diagram, it seemed that trunk/ and branches/ were at
the same depth in your SVN repository. However, in your generated fetch lines they all started with "branches/" in front, yet your trunk fetch line had "all/" in front of trunk, so maybe prefixing the generated ones with "all/" helps?
> Thanks for your time.
No problem.
-- Eric Wong