git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Joe Corneli <holtzermann17@gmail.com>
To: git@vger.kernel.org
Subject: working with a large repository and git svn
Date: Wed, 12 Jan 2011 01:27:10 +0000	[thread overview]
Message-ID: <AANLkTimKbS3ECzOaGtNgvx7DThJGH_DkPmg4ehKXGtwc@mail.gmail.com> (raw)

Greetings -

I am experiencing trouble with git svn, trying to import a
large repository (7.9 gigs, ~54000 commits) from Git into
SVN.

This has failed in a couple of different ways, depending
on the operating environment.  With Git version 1.7.3.5
running on Ubuntu 9.10, in the final step

  git svn dcommit --no-rebase

of the formula described below, I get:

 failing with "Can't fork at /usr/share/perl/5.10.0/Git.pm line 1261."

after committing just over 2000 revisions.

Previously, on Mac OS X 10.6.4 with git version 1.7.3.4,
it made it through about 18000 commits before failing with
some other error.  (I don't have that one recorded at the
moment.)

Separately from the latest attempt, I tried repacking the
repository before doing the "git svn" stuff, with

  git repack -a -d --depth=250 --window=250 -f

but that also failed ("pack-objects died of signal 11").

Any tips for dealing with new, large, repositories would
be appreciated.  The sequence of commands I used are below
the 8<.

Thanks,
Joe

8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<

## Creating an svn repo

$ mkdir repo;
$ svnadmin create repo;
$ mkdir init;
$ touch init/README;
$ svn import init file://`pwd`/repo/init -m "Initial import";
$ svn checkout file://`pwd`/repo/init working;

## THIS PART FOLLOWS THE MODEL SUGGESTED BY THE FOLKS AT code.google.com
## (/Users/jac2349/planetary/destination/ IS THE LOCATION OF MY GIT REPO.)

$ mkdir cloning
$ cd cloning
$ git svn clone file:///Users/jac2349/planetary/repo/init
$ cd init
$ git fetch git:///Users/jac2349/planetary/destination/.git

$ git branch tmp $(cut -b-40 .git/FETCH_HEAD)
$ git tag -a -m "Last fetch" last tmp

$ INIT_COMMIT=$(git log tmp --pretty=format:%H | tail -1)
$ git checkout $INIT_COMMIT .
$ git commit -C $INIT_COMMIT

$ git rebase master tmp
$ git branch -M tmp master

$ git svn dcommit --no-rebase

$ mv .git/refs/tags/newlast .git/refs/tags/last

## BTW, THE --no-rebase FLAG KEEPS IT FROM BEING IMPOSSIBLY SLOW!

             reply	other threads:[~2011-01-12  1:27 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-01-12  1:27 Joe Corneli [this message]
2011-01-12 15:30 ` working with a large repository and git svn Wesley J. Landaker
2011-01-13  0:54   ` Joe Corneli
2011-01-13  3:23   ` Jonathan Nieder
2011-01-14  7:43     ` Joe Corneli
2011-01-14  8:05       ` Ramkumar Ramachandra
2011-01-14  8:29         ` Jonathan Nieder
2011-01-14  9:23           ` Michael Haggerty
     [not found]           ` <F0299861-B36C-459C-972E-856212A92615@kth.se>
2011-01-14 10:16             ` [PATCH] Optionally parse author information Ramkumar Ramachandra
2011-01-16  2:17               ` Joe Corneli
2011-01-16  2:57                 ` Jonathan Nieder
2011-01-16  3:32                 ` Ramkumar Ramachandra

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=AANLkTimKbS3ECzOaGtNgvx7DThJGH_DkPmg4ehKXGtwc@mail.gmail.com \
    --to=holtzermann17@gmail.com \
    --cc=git@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).