This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: delete dead feature branches?


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]