Subject: Re: Three issues from a Subversion-to-git migration

From: Eric Raymond <[email-masked]>
Date: Mon, 29 Mar 2010 14:01:58 -0400

Gabriel Filion <[email-masked]>:
> > 1. Turn unmodified tag directories into git tags
> > 2. Turn odified tags into branches.
> > 3. Recognize when a formerly unmodified tag has been modified, remove
> >    the git tag, and turn it into a branch.
> 
> The 3rd point seems a bit weird to me.. users don't expect tags to
> disappear magically. Especially if it's done during a fetch while working.

A reasonable objection.
 
> Here's how I would change the scenario:
> 
> 1. For each creation of a sub-directory in SVN's tag directory, create a
> git tag on the revision that was referenced by the directory copy in SVN.
> 2. If (and only if) there are later modifications in the tag directory,
> create a branch starting from that tag.
> 
> This way, the tag would be there but a branch would hold modifications
> based on code at this point, if there is any.

That would work for me.
 
> The problem with my scenario, though is that it doesn't take care of tag
> creation + modification in the same commit (yuukkkk, but it's possible
> that it exists somewhere). If it could be possible to verify if
> modifications were made during the tag creation, then we could make the
> case hit both points.

Doesn't seem like that should be difficult.

> The other big "thing" is that it expects a certain correct separation
> into different directories (e.g. trunk/ tags/ branches/ ), which SVN
> doesn't enforce.

Are you suggesting that branch directory copies should be handled with
the same rule? I think I could live with that.
-- 
		<a href="http://www.catb.org/~esr/">Eric S. Raymond</a>