[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