[LLVMdev] How to make release branch available in git (topic changed)
Tobias Grosser
grosser at fim.uni-passau.de
Mon Mar 7 19:57:37 PST 2011
On 03/07/2011 08:30 PM, Anton Korobeynikov wrote:
> Hi David
>
>> I think the trouble with branches is the lockdown of the root repository
>> directory.
> Surely not (at the server)
>
>> git svn init --stdlayout https://<user>@llvm.org/svn/llvm-project/llvm \
>> --ignore-paths="^.*(Apple|PowerPC.*|SVA|eh-experimental|ggreif|non-call-eh|parallel|release_.*|vector_llvm|wendling|May2007|checker|cremebrulee|start|RELEASE_1.*|RELEASE_2[0-7])"
> Several problems here:
> 1. Bunch of additional branches / tags are created due to multiple
> branch points. I don't recall for llvm, but for clang we'll end with
> two tags per each release. Something like:
> $ git branch -r
> trunk
> tags/RELEASE_26
> tags/RELEASE_26 at 84939
> tags/RELEASE_27
> tags/RELEASE_27 at 102415
> tags/RELEASE_28
> tags/RELEASE_28 at 115869
>
> The problem will be much worse with new release branch scheme,
> basically we'll need to add each branch by hand, etc...
> 2. We really don't want to push arbitrary branches to git repository.
> It's really easy to add branch by an accident, so it will be much
> better not to ignore stuff, but except - add by some pattern.
> Unfortunately, git-svn does not allow this yet.
Why not? As far as I understand --ignore-paths takes a perl regular
expression. So we could just provide a regular expression that matches
on all paths except the ones we want to keep.
The following expression e.g.
/^.*(?<!trunk|RELEASE_2.).$/m
uses lookbehind to matches on:
tags/SVA
tags/eh-experimental
tags/ggreif
tags/non-call-eh
tags/RELEASE_28 at 115869
branches/Apple
branches/PowerPC-A
branches/PowerPC-B
but not on
trunk
tags/RELEASE_28
tags/RELEASE_29
tags/RELEASE_27
It probably needs some adjustments to get it right, but I believe this
is basically a problem of finding the right regex.
> So, right now I'm experimenting with various ways of doing stuff, but
> the results looks not pretty good.
> If anything would give me a working all-in-one cmdline / .git/config
> entry - I'd really appreciate this :)
>
I would love to. However, as David pointed out, this is difficult with
the blocked svn access.
Cheers
Tobi
More information about the llvm-dev
mailing list