Samuel Rossille
Samuel Rossille

Reputation: 19858

Why does "git svn fetch" command seem to be stuck and does nothing?

EDIT: Workaround. Now we understand the issue, here is the solution: do

git svn fetch -r REVISION:HEAD

where REVISION is the number of the svn commit of the branch creation.


I've been happy using git svn to work on the trunk of my project for a while, but now I need to track branches also.

I've tried to initialize a new repository to do that with

git init
git svn init https://svnserver/svn/repository

Then I edit the local configuration file to reflect the structure of my svn repository:

[svn-remote "svn"]
    url = https://svnserver/svn/repository
    fetch = path/to/trunk:refs/remotes/trunk
    branches = path/to/branches/*:refs/remotes/branches/*

Then I run

git svn fetch

And this command just does nothing:

I gave up after 10 minutes

I've checked that the svn repository is working, because git svn fetch works perfectly on my git repository where I track only the trunk.

Is this a bug or am I missing something here ?

Upvotes: 38

Views: 13940

Answers (5)

Benjamin Toueg
Benjamin Toueg

Reputation: 10867

It becomes verbose after fetching the first relevant commit.

But until it fetches that commit, you can ensure the command is working properly by checking the .git\svn\.metadata file. The lines branches-maxRev = 123 and tags-maxRev = 123 will keep updating and increasing their numbers as it works.

Upvotes: 35

nnovich-OK
nnovich-OK

Reputation: 3163

In case of using Git for Windows, make sure to upgrade from 2.20.1 to either previous (2.20.0), next (2.21.0) or any other. Mentioned version has a bug making "git svn fetch" hang, which was later fixed.

Upvotes: 12

Artaban
Artaban

Reputation: 85

For those who were not satisfied with the solution above :

ISSUE : svn+ssh://svn.xxxxxxx.com/svnroot/strategy/products/mysoftware hangs on :

Initialized empty Git repository in [MyLocalRepositoryPath]

SOLUTION: Insert

username@

in front of svn url

svn+ssh://[email protected]/svnroot/strategy/products/mysoftware

Upvotes: 2

Yassine CHABLI
Yassine CHABLI

Reputation: 3724

i have change the fetch property to :refs/remotes/git-svn and it works for me

Upvotes: 0

Ian Dunn
Ian Dunn

Reputation: 3680

Try adding the --log-window-size=5000 parameter.

If the repo has a large number of commits, git-svn will go through them 100 at a time by default. Bumping that up can increase its speed tremendously.

Upvotes: 16

Related Questions