Re: Help converting a large repository

Michael Haggerty <[email protected]> Mon, 15 Apr 2013 06:31:37 +0200
Newsgroups gmane.comp.version-control.subversion.cvs2svn.user
Message-ID <[email protected]>
On 04/13/2013 12:02 AM, Giulio Eulisse wrote:
> I've a rather large repository which I would like to convert to git.
> The current repository layout in CVS is a two layer structure
> 
> SubSystem/Package
> 
> where each package is tagged independently with a VXX-YY-ZZ tag. The
> release is than assembled from a list of pairs
> 
> [(SubSystem/Package, Tag)]
> 
> which is stored in separate database (yuk... I know). The release is
> then tagged with a global tag and I do know both the order in which
> the global tags where done, e.g.
> 
> v5_3_0 -> v5_3_1 -> v6_0_0
> 
> and the possible branch points, e.g.:
> 
>> v5_3_2 -> v5_3_3
> / v5_3_0 -> v5_3_1 -> v6_0_0
> 
> given I do no care about the per package tags, but only the global
> tags, I would have expected that simply having a symbols-hints file
> which does:
> 
> . v5_3_0 tag . . . v5_3_1 tag v5_3_0 . . v5_3_2 tag v5_3_1 . . v5_3_3
> tag v5_3_2 . . v6_0_0 tag v5_3_2 .
> 
> would have solved my problem, but it does not. In particular I'm not
> sure how to make sure v5_3_1 actually results in a new branch (let's
> call it v5_3_X branch), and I'm not sure how to deal with the per
> package branches which pollute the repository, but which I do not
> care about. Any hint of what I should look for?

Unless branches and tags were always created in sync across all
subprojects, this will be a messy problem.  CVS repositories that
consist of subsystems that were independently branched and tagged are
inherently difficult to represent in Git, where commits and
branches/tags are all repository-wide.  The problem is that it is
probably not possible to "match up" the subsystem branch trees into the
single, repository-wide branch tree required by Git and the result of an
attempt to do so will be a mess.

I think it would be useful for you to take a step back and think about
what your *ideal* Git output repository would look like, for example if
you had thousands of intelligent human clerks convert it by hand.  Are
you sure that you even want want all of the subsystems to be converted
into a single Git repository, or would it be more in the Git style of
working to have a separate repo for each subsystem and knit them
together using something like submodules or subtree?

Michael

-- 
Michael Haggerty
[email protected]
http://softwareswirl.blogspot.com/

------------------------------------------------------
http://cvs2svn.tigris.org/ds/viewMessage.do?dsForumId=1670&dsMessageId=3053291

To unsubscribe from this discussion, e-mail: [[email protected]].