Hello Thomas,

you got some serious volume of stuff there, allow me some time to assimilate em

1) agreed, though editing in vim is just so quick
2) svn2git looks good, but I can't use it. In my case (corporate environment) 
neither I control svn repo, nor have physical access to it. only svn+ssh
3) I am not complaining about performance, as in CPU cycles, git is beyond my 
expectations there. I am the only odd out here, everyone else is too happy 
about tortoise UI. Hence, sharing is not too high on my TODO list.

I understand svn-cloning on *nix OS, and git-clone elsewhere. As I already said 
we have multiple projects in same svn repo and I don't want all of them, I am 
afraid local git repo might exceed 5GB if I attempt so. Our svn repo layout is 
something like

<url>/branches/project000_v1.1
<url>/branches/project000_v1.2
<url>/branches/project111_v1.1
<url>/branches/project111_v1.2
<url>/branches/project222_v1.0

and I am interested in only say project222 and its versions

Even if I svn-clone on *nix OS, then after git-cloning on my workstation, I 
need it to work with git-svn, thus I will issue something like "git svn fetch 
-r BEGIN:HEAD.
This again will have to incur network latency for each revision. From your 
response, it looks like this the norm :(


thanks,
Quark




>________________________________
> From: Thomas Ferris Nicolaisen <tfn...@gmail.com>
>To: git-users@googlegroups.com 
>Sent: Tuesday, 28 May 2013 4:55 PM
>Subject: [git-users] Re: git-svn too slow, contacts upstream svn repo
> 
>
>
>Just a quick answer, I haven't got time to drill too much into it now:
>
>
>1) Use git svn clone or git svn init to configure the svn remote branch. You 
>should not fiddle with the config file directly.
>
>
>2) Yes Git-SVN is slow because it needs to fetch every revision. Other tools 
>can make use of SVN-exports and stuff like that. Google around (svn2git is one 
>I've heard about).
>
>
>3) Git-SVN is especially slow on Windows (or used to be anyway), although 
>waiting a day or two for cloning 100k revisions is normal, even on Linux/Mac. 
>You could try to do the initial git-svn clone on a Linux/Mac, and then share 
>this repository with others so they don't have to repeat the tedious initial 
>clone. This is not trivial, and I've thoroughly explored the possibilities in 
>this screen cast series.
>
>On Tuesday, May 28, 2013 10:28:15 AM UTC+2, Quark wrote:
>Orignally posted @ Git List <g...@vger.kernel.org>; no response :(
>>
>>Hello list,
>>
>>I have been using git-svn in an corporate environment where svn repo has lot 
>>of branches, (lot means 100). To avoid cloning all branches my config looks 
>>as below
>>
>>[svn-remote "svn"]
>>        url = svn+ssh://url
>>        fetch = srcroot/trunk:refs/remotes/ trunk
>>        branches = srcroot/branches/{branch_1, branch_2,
>>branch_3}:refs/remotes/*
>>
>>Now, when a new branch of my interest is added in svn repo, I had like it to 
>>be in my git-repo as well. In an ideal world, one shall simply add that 
>>branch name to list in curly braces above, but that does not work. I had love 
>>to be proved wrong here. Somebody on stackoverflow.com suggested (to else's 
>>question, not
>>mine) to add one more "fetch" as show below.
>>
>>[svn-remote "svn"]
>>        url = svn+ssh://url
>>        fetch = srcroot/trunk:refs/remotes/ trunk
>>        fetch = srcroot/branch_4:refs/remotes/ * # NEW BRANCH
>>        branches = srcroot/branches/{branch_1, branch_2,
>>branch_3}:refs/remotes/*
>>
>>Haven't tried it, neither do I like it.
>>
>>I do have a solution which WORKS, it is modified version of an example from 
>>\doc\git\html\git-svn.html page. Below I have pasted the example and modified 
>>it to reflect my specifics.
>>
>># assume an existing git-svn repo
>>        D:\sourcecode
>># Clone locally - make sure the refs/remotes/ space matches the server
>>        mkdir project
>>        cd project
>>        git init
>>        git remote add origin file:///D:/sourcecode # file:// is delibrate, 
>>want
>>true n/w behaviour
>>        git config --replace-all remote.origin.fetch
>>'+refs/remotes/*:refs/remotes/ *'
>>        git fetch
>># Prevent fetch/pull from local git repo,
>># we only want to use git svn for form here
>>       git config --remove-section remote.origin
>># Create a local branch from one of the branches just fetched
>>        git checkout -b master FETCH_HEAD
>># Initialize 'git svn' locally (be sure to use the same URL and -T/-b/-t
>>options as were used on server)
>>        git svn init http://svn.example.com/project
>>
>># edit config to include newly added branch in curly braces
>># Pull the latest changes from Subversion
>>        git svn fetch -r <recentish rev, say BEGIN:HEAD
>>
>>Above works exactly as I want, except the last step of "git-svn fetch" 
>>connects to svn repo for each revision from BEGIN to HEAD. I want fairly long 
>>history (for pretty blame). Which implies my BEGIN is not so recentish after 
>>all. Hence, it takes awfully long to finish, 2 days typically.
>>
>>When GIT_TRACE is 1, below is output received
>>
>>trace: exec: 'git-svn' 'fetch'
>>trace: run_command: 'git-svn' 'fetch'
>>trace: built-in: git 'config' '--bool' '--get'
>>'svn.fetchall'
>>trace: built-in: git 'config' '--bool' '--get'
>>'svn.parent'
>>trace: built-in: git 'config' '--bool' '--get'
>>'svn.noauthcache'
>>trace: built-in: git 'config' '--get' 'svn.revision'
>>trace: built-in: git 'config' '--bool' '--get'
>>'svn.nocheckout'
>>trace: built-in: git 'config' '--get' 'svn.authorsprog'
>>trace: built-in: git 'config' '--bool' '--get'
>>'svn.followparent'
>>trace: built-in: git 'config' '--get' 'svn.authorsfile'
>>trace: built-in: git 'config' '--bool' '--get'
>>'svn.useSvmProps'
>>trace: built-in: git 'config' '--get' 'svn.username'
>>trace: built-in: git 'config' '--get' 'svn.repackflags'
>>trace: built-in: git 'config' '--bool' '--get'
>>'svn.localtime'
>>trace: built-in: git 'config' '--int' '--get'
>>'svn.repack'
>>trace: built-in: git 'config' '--get' 'svn.ignorepaths'
>>trace: built-in: git 'config' '--int' '--get'
>>'svn.logwindowsize'
>>trace: built-in: git 'config' '--bool' '--get'
>>'svn.quiet'
>>trace: built-in: git 'config' '--get' 'svn.ignorerefs'
>>trace: built-in: git 'config' '--get' 'svn.configdir'
>>trace: built-in: git 'config' '--bool' '--get'
>>'svn.addauthorfrom'
>>trace: built-in: git 'config' '--bool' '--get'
>>'svn.useSvnsyncProps'
>>trace: built-in: git 'config' '--bool' '--get'
>>'svn.noMetadata'
>>trace: built-in: git 'config' '--bool' '--get'
>>'svn.uselogauthor'
>>trace: built-in: git 'rev-parse' '--symbolic' '--all'
>>trace: built-in: git 'config' '-l'
>>trace: built-in: git 'config' '-l'
>>trace: built-in: git 'config' '--bool' 'svn.useSvmProps'
>>trace: built-in: git 'config' '-l'
>>trace: built-in: git 'config' 'svn-remote.svn.branches- maxRev'
>>'524908'
>>trace: built-in: git 'rev-list' '--pretty=raw'
>>'--reverse'
>>' 9f1414be94ab007b62ace31bf4d210 a069276127..refs/remotes/ branch_1'
>>'--'
>>trace: built-in: git 'rev-list' '--pretty=raw'
>>'--reverse'
>>' 5eb0a454bcf066a8199b851add9ec0 7cde80119d..refs/remotes/ branch_2'
>>'--'
>>trace: built-in: git 'rev-list' '--pretty=raw'
>>'--reverse'
>>' 383b68b8514010a71efe10821e5ccc 3541903ceb..refs/remotes/ branch_3'
>>'--'
>>trace: built-in: git 'rev-list' '--pretty=raw'
>>'--reverse'
>>' 89fe1a1d2cfca0886003f043c408fb 5afadfec93..refs/remotes/ trunk'
>>'--'
>>
>>I keep an watch for "svn-remote.svn.branches- maxRev", this serves as
>>my progress. This wait is too much for a simple branch. Though, I must point
>>out, day feels fresh once it finishes :) Does any one know any for this?
>>
>>If you paid attention this is Windows machine
>>git version 1.8.1.msysgit.1
>>
>>thanks,
>>Quark
>>
-- 
>You received this message because you are subscribed to the Google Groups "Git 
>for human beings" group.
>To unsubscribe from this group and stop receiving emails from it, send an 
>email to git-users+unsubscr...@googlegroups.com.
>For more options, visit https://groups.google.com/groups/opt_out.
> 
> 
>
>
>

-- 
You received this message because you are subscribed to the Google Groups "Git 
for human beings" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to git-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to