Wednesday, May 15, 2019

multi level tags and branches from svn to git and splitting of projects

In SVN, we may have projects which have tags and branches inside them again as sub branches or tags.

Like below.

















But in Git, we can only get the one level of branches or tags.
In that case, we can divide them into sub projects and by splitting these tags and branches at sub level to these projects.


translation of SVN repositories of this layout is described in this manual:


Shortly, each project should be translated separately (answering your question -- yes, it's perfectly possible)
taking its own trunk, branches, and tags only. For example, to translate subproj1 project use this configuration:

[svn]
url = http://url/rootproj

trunk = trunk/subproj1:refs/heads/master
branches = branches/subproj1/*:refs/heads/*
tags = tags/subproj1/*:refs/tags/subproj1/*

Same for other projects, just put appropriate project name to the mapping.
 if want tags to be displayed as root instead of showing the root tag again.
tags = tags/subproj1/*:refs/tags/*

All these are in REPOS.git folder generated by subgit in the first phase.
REPOS.git/subgit/config file.

You can replace * with exact name of tag/branch if only 1 we need to copy.

if you need more than one particular tags, just add another one line for the tags follows:

trunk = …
branches = …
tags = tags/SMXMLSchema/tag1:refs/tags/SMXMLSchema/tag1
tags = tags/SMXMLSchema/tag2:refs/tags/SMXMLSchema/tag2


Same applieas to 'branches' if you need more than one mapping.

No comments:

Post a Comment