git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: how to skip branches on git svn clone/fetch when there are errors

From
EWEric Wong <normalperson@yhbt.net>
Date
Sep 5, 2009, 06:16 UTC
Message-ID
<20090905061657.GC22272@dcvr.yhbt.net>
In-Reply-To
<9accb4400908310126v15b08c7fr425c9daff26012f3@mail.gmail.com>
Daniele Segato <daniele.bilug@gmail.com> wrote:
Show 37 quoted lines
> Hi,
> 
> I'm trying to clone a big repository.
> 
> I follow this steps:
> 
> git init
> git svn init svn://svn.mydomain.com/path/to/repo -T HEAD -b BRANCHES -t TAGS
> 
> vim .git/config # edited the svn-remote config as follow (add /root to
> branches and tag) to match the repo structure
> [svn-remote "svn"]
>        url = svn://svn.mydomain.com
>        fetch = path/to/repo/HEAD/root:refs/remotes/svn/trunk
>        branches = path/to/repo/BRANCHES/*/root:refs/remotes/svn/*
>        tags = path/to/repo/TAGS/*/root:refs/remotes/svn/tags/*
> 
> git svn fetch
> 
> When I reach revision ~7500 (I don't remember the exact number) I get an error:
> 
> $ git svn fetch
> Use of uninitialized value in concatenation (.) or string at
> /usr/lib/perl5/SVN/Core.pm line 584.
> Authorization failed:  at /usr/bin/git-svn line 1415
> 
> 
> After some debugging I found out the reason is something strange on
> the SVN server: there is a folder in the SVN that give an error when
> trying to access:
> 
> $ svn info svn://svn.mydomain.com/path/to/repo/BRANCHES/V2.1-A
> svn: Authorization failed
> 
> The same error with svn list.
> 
> I don't know what's wrong with that branch but I just want to skip it...
Ouch :(
> I tried modifying the .git/config svn-remote configuration adding this:
> 
> ignore-paths = path\\/to\\/repo\\/BRANCHES\\/V2\\.1-A
> and re-launching git svn fetch.

ignore-paths is only for paths that get converted into part of the git tree

> I had no luck.
> 
> Ho do I skip a path on the svn repository?

It's unfortunate, but there's not yet an exclude/ignore directive when globbing. You'll have to change your $GIT_CONFIG to only have a list of branches you want, something like this:

[svn-remote "svn"]
	url = svn://svn.mydomain.com
	fetch = path/to/repo/HEAD/root:refs/remotes/svn/trunk
	; have one "fetch" line for every branch except the one you want
	fetch = path/to/repo/BRANCHES/a/root:refs/remotes/svn/a
	fetch = path/to/repo/BRANCHES/b/root:refs/remotes/svn/b
	fetch = path/to/repo/BRANCHES/c/root:refs/remotes/svn/c
	; you can do the same for tags if you have the same problem
	tags = path/to/repo/TAGS/*/root:refs/remotes/svn/tags/*

But you shouldn't have to worry about having "fetch" entries for stale/old branches/tags you've already imported.

-- 
Eric Wong
Previous: Daniele SegatoNext: Daniele Segato
Message 2 of 9 in “how to skip branches on git svn clone/fetch when there are errors”
  1. Daniele SegatoAug 31, 2009
  2. Eric WongSep 5, 2009
  3. Daniele SegatoSep 5, 2009
  4. Eric WongSep 6, 2009
  5. Daniele SegatoSep 7, 2009
  6. Daniele SegatoSep 7, 2009
  7. Daniele SegatoSep 7, 2009
  8. Paolo CiarrocchiSep 7, 2009
  9. Daniele SegatoSep 7, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.