Tobias Grosser
2011-Mar-08 03:57 UTC
[LLVMdev] How to make release branch available in git (topic changed)
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
Tobias Grosser
2011-Mar-10 13:48 UTC
[LLVMdev] How to make release branch available in git (topic changed)
On 03/10/2011 02:56 AM, Anton Korobeynikov wrote:>> I would love to. However, as David pointed out, this is difficult with the >> blocked svn access. > I believe that --no-minimize-url might help: > > --no-minimize-url > When tracking multiple directories (using --stdlayout, --branches, or > --tags options), git svn will attempt to connect to the root (or > highest allowed level) of the Subversion repository. This default > allows better tracking of history if entire projects are moved within > a repository, but may cause issues on repositories where read access > restrictions are in place. Passing --no-minimize-url will allow git > svn to accept URLs as-is without attempting to connect to a higher > level directory. This option is off by default when only one > URL/branch is tracked (it would do little good). >Sorry I did not get it. git svn clone https://grosser at llvm.org/svn/llvm-project/llvm --branches=branches --no-minimize-url Initialized empty Git repository in /tmp/test3/llvm/.git/ Found possible branch point: https://grosser at llvm.org/svn/llvm-project/llvm/trunk => https://grosser at llvm.org/svn/llvm-project/llvm/branches/llvm, 2 Initializing parent: refs/remotes/llvm at 2 RA layer request failed: Server sent unexpected return value (403 Forbidden) in response to REPORT request for '/svn/llvm-project/!svn/vcc/default' at /usr/lib/git-core/git-svn line 5061 This still gives me the same error. This time its my turn to ask for a command line that works. ;-) Or any other solution that helps me testing this. ;-)
Tobias Grosser
2011-Mar-10 13:54 UTC
[LLVMdev] How to make release branch available in git (topic changed)
On 03/10/2011 02:53 AM, Anton Korobeynikov wrote:> Hi Tobias, > >> The following expression e.g. >> >> /^.*(?<!trunk|RELEASE_2.).$/m >> >> uses lookbehind to matches on: > Thanks. Clever trick, but... > > Variable length lookbehind not implemented in regex > m/^.*(?<!trunk|RELEASE_2.).$/ at /usr/lib/git-core/git-svn line 4078. > > :(I got a new one. Today even with working test case: $cat in.txt tags/SVA tags/eh-experimental tags/ggreif tags/non-call-eh tags/RELEASE_28 at 115869 branches/Apple branches/PowerPC-A branches/PowerPC-B trunk tags/RELEASE_28 tags/RELEASE_29 tags/RELEASE_27 $cat rev_match #!/usr/bin/perl -wn print if /.(?<!trunk)(?<!RELEASE_27)$/; $./rev_match in.txt tags/SVA tags/eh-experimental tags/ggreif tags/non-call-eh tags/RELEASE_28 at 115869 branches/Apple branches/PowerPC-A branches/PowerPC-B tags/RELEASE_28 tags/RELEASE_29 Cheers Tobi -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: in.txt URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110310/0373cbd5/attachment.txt> -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: rev_match URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110310/0373cbd5/attachment.ksh>
Maybe Matching Threads
- [LLVMdev] How to make release branch available in git (topic changed)
- [LLVMdev] How to make release branch available in git (topic changed)
- [LLVMdev] [cfe-dev] Reminder: LLVM 2.9 Branching in One Week
- [LLVMdev] [cfe-dev] Reminder: LLVM 2.9 Branching in One Week
- [LLVMdev] svnsync of llvm tree