Git conversion: disposition of old branches and tags
Joseph Myers
joseph@codesourcery.com
Wed Sep 16 16:14:00 GMT 2015
On Wed, 16 Sep 2015, Paul_Koning@Dell.com wrote:
>
> > On Sep 16, 2015, at 4:38 AM, Richard Biener <richard.guenther@gmail.com> wrote:
> >
> > On Tue, Sep 15, 2015 at 7:09 PM, Florian Weimer <fw@deneb.enyo.de> wrote:
> >> ...
> >> Unlike Subversion branch deletion, Git branch deletion is permanent,
> >> so this might not be the best option.
> >
> > We could have a 2nd git repository just containing deleted branches...
>
> Agreed. A correctly designed source control system doesn't lose stuff,
> and the fact that GIT fails that test in the case of branches is rather
> disturbing. If the conversion would follow the GIT pattern, then the
> data it is going to delete should be preserved elsewhere. (I suppose
> another answer might be to keep the existing SVN server available
> read-only.)
*Of course* the SVN repository should remain available read-only, just as
the CVS repository (1997-2005) is available read-only to check things out
from.
But we really don't need to do extra complicated things - just keep the
history in the converted repository without deleting any branches (there
may well be some tags that are purely CVS / SVN artifacts, pointing to
commits on some branch so that deletion of those tags does not make any
objects inaccessible, and that can thus be deleted, but any such tag
cleanup can be done after the conversion). And do the fetch I described
at <https://gcc.gnu.org/ml/gcc/2015-09/msg00040.html> so that the single
git repository also contains the objects and (renamed) refs from the
existing git-svn repository, so git-only branches and commit hashes from
the git-svn history also remain available. git is efficient enough that I
don't think these things will have any significant cost in repository
size.
The question of whether and when branch deletion is then allowed in the
git repository after the conversion is one of the things that needs
sorting out regarding configuration and hooks before the switch (but I
think natural rules are either (a) no branch deletion or (b) branch
deletion only in refs/heads/<user>/, not for branches outside per-user
namespaces).
--
Joseph S. Myers
joseph@codesourcery.com
More information about the Gcc
mailing list