Resuming git-svn clone

GitGit Svn

Git Problem Overview


I started cloning an SVN repository using the git-svn's clone operation. After about 6 hours of importing (it's a big repo), my computer went and slept on me. Is there a way to resume the operation without redoing all of the initial work?

Git Solutions


Solution 1 - Git

The git svn fetch command to resume a git svn clone is confirmed by several sources:

> (Incidentally, if during the initial clone step your connection dies or you need to stop it then to resume the clone you just have to run the above command to resume downloading the history).

>There seems to be a memory leak in git-svn. The size of the git-svn process grew slowly and after about two weeks it was at 1.2 GB resident size, at which point the OS refused to let it fork.
Thing is, this was a blessing in disguise.
I was able to resume the interrupted clone with a simple "git svn fetch", and it ran much faster with the now radically smaller heap.
This, worked so well, in fact, that I got into the habit of interrupting and restarting the process every evening and every morning. A few days later it was done.

> You start your adventures with git-svn by cloning an existing Subversion repository:

git svn clone url://path/to/repo -s

>The -s flag assumes that your repository uses the "trunk, branches, tags" convention. If not, you have to specify manually which directories represent branches and tags, if you want Git to know about them.

>This will take a long time, as it will fetch every single revision from SVN and commit locally. If for any reason it stops, you can resume with git svn fetch.

Solution 2 - Git

I found a blog post that provided what (I hope) is a correct answer.

Apparently, running git svn fetch effectively completes the clone operation. Here's hoping!

Solution 3 - Git

From at least git 2.1.0 you can resume by just reissuing git svn clone

However this will duplicate some entries in your .git/config remove those and everything will be fine

Solution 4 - Git

As VonC, CaptainAwesomePants and Archi all said git svn fetch does the trick. I was doing a git svn clone url... --authors-file=path/to/file and the clone failed because one of the authors wasn't in the authors file. I added the author to the file and ran git svn fetch and it continued from where it left off and looking at the git log later, it seems that it used the newly added author to replace the commit author's name so all was sweet.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionBrandon YarbroughView Question on Stackoverflow
Solution 1 - GitVonCView Answer on Stackoverflow
Solution 2 - GitBrandon YarbroughView Answer on Stackoverflow
Solution 3 - Gitzan-xhipeView Answer on Stackoverflow
Solution 4 - GitTom SaleebaView Answer on Stackoverflow