Re: Help converting a large repository
Michael Haggerty <[email protected]> Mon, 15 Apr 2013 17:30:28 +0200
| Newsgroups | gmane.comp.version-control.subversion.cvs2svn.user |
|---|---|
| Message-ID | <[email protected]> |
On 04/15/2013 10:02 AM, Giulio Eulisse wrote: > Ciao, > >> 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? > > Thank you for the reply. > > Maybe I did not explain myself, we do not care about the per package tags, > what we would like to have is the global tags being migrated, for which we > want to impose the order in which they were done, which is stored in the separate DB. The main question is whether the branching structure of each subproject matches those of the others or whether the branching trees of the subprojects are very different. If the branching structures match up, then you don't have to tell cvs2svn how the branches are related because it can infer that information itself. But you would have to ensure that the corresponding branches and tags have the same names in each subproject. > Is there a way to say: > > v1.0.0 -> v2.0.0 -> v3.0.0 > > and have cvs2git simply interpolate the file revision changes > between the tags? I was hoping the symbol-hints file could drive this kind of > migration (by specifying the correct parent for global tags, which we > always know), but I cannot get it to work. Assuming that the subproject tags have different names than the project-wide tag names that you want, you cannot do this via hints. You have to make the change at the very beginning of cvs2svn processing by using symbol_transforms to rename the tags. You will probably want a SubtreeSymbolMapper for each subproject, telling how the symbols within that project should be renamed. But if the branch structures don't match up, you should definitely consider converting each subproject into a separate git repo. Michael -- Michael Haggerty [email protected] http://softwareswirl.blogspot.com/ ------------------------------------------------------ http://cvs2svn.tigris.org/ds/viewMessage.do?dsForumId=1670&dsMessageId=3053373 To unsubscribe from this discussion, e-mail: [[email protected]].