Re: git-svn and a nested branches folder
From: Russ Brown <hidden>
Date: 2016-06-15 22:43:33
Eric Wong wrote:
Russ Brown [off-list ref] wrote:quoted
Eric Wong wrote:quoted
Russ Brown [off-list ref] wrote:quoted
Basically, we have a structure like this: | +-trunk +-tags +-branches + category-a + branch-a + branch-b + category-b + branch-c + branch-dquoted
quoted
quoted
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?
Ah! I think I know what I've done. I generated the fetch list from the svn repository itself, but ran svn-init against an svk mirror (using --use-svm-props). Nicely spotted. :) Thanks again!
quoted
Thanks for your time.No problem.
-- Russ