This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: delete dead feature branches?
- From: Alexandre Oliva <aoliva at redhat dot com>
- To: Jason Merrill <jason at redhat dot com>
- Cc: Andrew Pinski <pinskia at gmail dot com>, Paolo Bonzini <bonzini at gnu dot org>, "Joseph S. Myers" <joseph at codesourcery dot com>, Richard Guenther <richard dot guenther at gmail dot com>, gdr at integrable-solutions dot net, gcc at gcc dot gnu dot org
- Date: Wed, 14 Oct 2009 03:23:28 -0300
- Subject: Re: delete dead feature branches?
- References: <h9in34$4pu$1@ger.gmane.org> <Pine.LNX.4.64.0909251650450.30532@digraph.polyomino.org.uk> <4ABD0F1E.5030807@redhat.com> <206fcf960909251214u5770c7b5o141614226e28fdff@mail.gmail.com> <84fc9c000909251220r62d518bka48cd3a13d0d5ea0@mail.gmail.com> <Pine.LNX.4.64.0909251932570.6234@digraph.polyomino.org.uk> <4AD33BA2.60107@gnu.org> <4AD39C64.3020304@redhat.com> <de8d50360910121417v3eb14c69ue4a4899acac23320@mail.gmail.com> <4AD39DBA.70201@redhat.com>
On Oct 12, 2009, Jason Merrill <jason@redhat.com> wrote:
> On 10/12/2009 05:17 PM, Andrew Pinski wrote:
>> That seems like a huge bug in git-svn because we already use multiple
>> directory levels under branches. Hint ibm and redhat and debain.
> Yep, that's why I said "expand". I've thought about fixing that
> aspect of git-svn, but I'm not sure how it would tell the difference
> between a branch directory and a directory of branches given that SVN
> basically models a filesystem.
I don't think it can tell the difference. AFAICT, we have to tell it
ourselves. For the past several weeks, I've been working on creating
another git repository to address this, using the following
configuration file:
[core]
repositoryformatversion = 0
filemode = true
bare = true
logallrefupdates = true
[svn-remote "svn"]
rewriteRoot = svn+ssh://gcc.gnu.org/svn/gcc
# url = svn+ssh://aoliva@gcc.gnu.org./svn/gcc
url = file:///l/tmp/build/gcc/gccrepo
fetch = trunk:refs/remotes/trunk
branches = branches/ARM/*:refs/remotes/branches/ARM/*
fetch = branches/ARM:refs/remotes/dirs/branches/ARM
branches = branches/apple/*:refs/remotes/branches/apple/*
fetch = branches/apple:refs/remotes/dirs/branches/apple
branches = branches/csl/*:refs/remotes/branches/csl/*
fetch = branches/csl:refs/remotes/dirs/branches/csl
branches = branches/dead/*:refs/remotes/branches/dead/*
fetch = branches/dead:refs/remotes/dirs/branches/dead
branches = branches/gcj/*:refs/remotes/branches/gcj/*
fetch = branches/gcj:refs/remotes/dirs/branches/gcj
branches = branches/ibm/*:refs/remotes/branches/ibm/*
fetch = branches/ibm:refs/remotes/dirs/branches/ibm
branches = branches/ix86/*:refs/remotes/branches/ix86/*
fetch = branches/ix86:refs/remotes/dirs/branches/ix86
branches = branches/redhat/*:refs/remotes/branches/redhat/*
fetch = branches/redhat:refs/remotes/dirs/branches/redhat
branches = branches/st/*:refs/remotes/branches/st/*
fetch = branches/st:refs/remotes/dirs/branches/st
branches = branches/suse/*:refs/remotes/branches/suse/*
fetch = branches/suse:refs/remotes/dirs/branches/suse
branches = branches/ubuntu/*:refs/remotes/barnches/ubuntu/*
fetch = branches/ubuntu:refs/remotes/dirs/branches/ubuntu
branches = branches/*:refs/remotes/branches/*
fetch = branches:refs/remotes/dirs/branches/root
tags = tags/apple/*:refs/remotes/tags/apple/*
fetch = tags/apple:refs/remotes/tags/dirs/apple
tags = tags/csl/arm/*:refs/remotes/tags/csl/arm/*
fetch = tags/csl/arm:refs/remotes/tags/dirs/csl/arm
tags = tags/csl/coldfire/*:refs/remotes/tags/csl/coldfire/*
fetch = tags/csl/coldfire:refs/remotes/tags/dirs/csl/coldfire
tags = tags/csl/morpho/*:refs/remotes/tags/csl/morpho/*
fetch = tags/csl/morpho:refs/remotes/tags/dirs/csl/morpho
tags = tags/csl/renesas/*:refs/remotes/tags/csl/renesas/*
fetch = tags/csl/renesas:refs/remotes/tags/dirs/csl/renesas
tags = tags/csl/sourcerygxx/*:refs/remotes/tags/csl/sourcerygxx/*
fetch = tags/csl/sourcerygxx:refs/remotes/tags/dirs/csl/sourcerygxx
tags = tags/csl/wrs-linux/*:refs/remotes/tags/csl/wrs-linux/*
fetch = tags/csl/wrs-linux:refs/remotes/tags/dirs/csl/wrs-linux
tags = tags/csl/*:refs/remotes/tags/csl/others/*
fetch = tags/csl:refs/remotes/tags/dirs/csl/root
tags = tags/ix86/*:refs/remotes/tags/ix86/*
fetch = tags/ix86:refs/remotes/tags/dirs/ix86
tags = branches/st/tags/*:refs/remotes/tags/st/*
fetch = branches/st/tags:refs/remotes/tags/dirs/st
tags = tags/redhat/*:refs/remotes/tags/redhat/*
fetch = tags/redhat:refs/remotes/tags/dirs/redhat
tags = tags/ubuntu/*:refs/remotes/tags/ubuntu/*
fetch = tags/ubuntu:refs/remotes/tags/dirs/ubuntu
tags = tags/*:refs/remotes/tags/*
fetch = tags:refs/remotes/tags/dirs/root
fetch = :refs/remotes/dirs/root
This preserves the complete svn history, although at times in a somewhat
convoluted way. Because git-svn refuses to treat say branches/redhat as
a branch if branches/redhat/gcc-4_4-branch exists, and vice-versa, I
keep track of directories that do not correspond to a branch or tag of
the entire tree in directories that contain âdirsâ as one of the
pathname components.
I wish the GCC git repository could integrate at least some of these
fetch configurations, so that branches in subdirs can be handled as
proper branches.
All this said, unless we want to expand on the need for ugly git-svn
configurations as above, we'd be better off avoiding more sub-dirs. The
alternative would have been to adopt a uniform depth for all branches
and tags, but it's too late for that now.
--
Alexandre Oliva, freedom fighter http://FSFLA.org/~lxoliva/
You must be the change you wish to see in the world. -- Gandhi
Be Free! -- http://FSFLA.org/ FSF Latin America board member
Free Software Evangelist Red Hat Brazil Compiler Engineer