On Wed, 16 Sep 2015, paul_kon...@dell.com wrote:

> 
> > On Sep 16, 2015, at 4:38 AM, Richard Biener <richard.guent...@gmail.com> 
> > wrote:
> > 
> > On Tue, Sep 15, 2015 at 7:09 PM, Florian Weimer <f...@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
jos...@codesourcery.com

Reply via email to