git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Geoff Russell" <geoffrey.russell@gmail.com>
To: "Martin Langhoff" <martin.langhoff@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: Incremental cvsimports
Date: Wed, 24 May 2006 20:49:03 +0930	[thread overview]
Message-ID: <93c3eada0605240419o48891cdle6c100fc0ac870ff@mail.gmail.com> (raw)
In-Reply-To: <46a038f90605240121o117fadb6vf3ce910a3ad3e90@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 1972 bytes --]

Dear Martin,


On 5/24/06, Martin Langhoff <martin.langhoff@gmail.com> wrote:
> On 5/24/06, Geoff Russell <geoffrey.russell@gmail.com> wrote:
> > Dear Git,
>
> Dear Geoff,
>
> if you look at the list archive for the last couple of days, you'll
> see there's been quite a bit of activity in tuning cvsimport so that
> it scales better with large imports like yours. We have been playing
> with a gentoo cvs repo with 300K commits / 1.6GB uncompressed.
>
> Don't split up the tree... that'll lead to something rather ackward.
> Instead, fetch and build git from Junio's 'master' branch which seems
> to have collected most (all?) of the patches posted, including one
> from Linus that will repack the repo every 1K commits -- keeping the
> import size down.

I got the latest git and yes, the size is kept down. I've only tried with
a smaller repository but it looks promising. When I ran git-cvsimport without a
CVS-module name (wanting the entire repository), it gave me a Usage message
indicating that the CVS-module name was optional - but it isn't :)

I did have to change
2 lines in git-cvsimport to get it to run with my 5.8.0 perl (problems with
POSIX errno). I've attached a patch but my work around isn't as quick as
what it replaced.

Many thanks, I'll have a go with the big repository at work tomorrow!

Cheers,
Geoff Russell

P.S. I've just started to look with git. We have wanted a cvs replacement for
a while but have been too scared to change (until now).



>
> You _will_ need a lot of memory though, as cvsps grows large (working
> on a workaround now) and cvsimport grows a bit over time (where is
> that last leak?!). And a fast machine -- specially fast IO. I've just
> switched from an old test machine to an AMD64 with fast disks, and
> it's importing around 10K commits per hour.

I

>
> You will probably want to run cvsps by hand, and later use the -P flag.
>
> cheers,
>
>
> martin
>
>

[-- Attachment #2: 999 --]
[-- Type: application/octet-stream, Size: 903 bytes --]

*** git-cvsimport	2006-05-24 20:13:19.000000000 +0930
--- /usr/local/bin/git-cvsimport	2006-05-24 20:22:27.000000000 +0930
*************** use File::Basename qw(basename dirname);
*** 23,29 ****
  use Time::Local;
  use IO::Socket;
  use IO::Pipe;
! use POSIX qw(strftime dup2 :errno_h);
  use IPC::Open2;
  
  $SIG{'PIPE'}="IGNORE";
--- 23,29 ----
  use Time::Local;
  use IO::Socket;
  use IO::Pipe;
! use POSIX qw(strftime dup2);
  use IPC::Open2;
  
  $SIG{'PIPE'}="IGNORE";
*************** sub get_headref ($$) {
*** 446,452 ****
  	    is_sha1($r) or die "Cannot get head id for $name ($r): $!";
  	    return $r;
      }
!     die "unable to open $f: $!" unless $! == POSIX::ENOENT;
      return undef;
  }
  
--- 446,452 ----
  	    is_sha1($r) or die "Cannot get head id for $name ($r): $!";
  	    return $r;
      }
!     die "unable to open $f: $!" if -f $f;
      return undef;
  }
  






  parent reply	other threads:[~2006-05-24 11:30 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-05-24  7:46 Incremental cvsimports Geoff Russell
2006-05-24  8:21 ` Martin Langhoff
2006-05-24  8:25   ` Martin Langhoff
2006-05-24 11:19   ` Geoff Russell [this message]
2006-05-24 12:22     ` Jeff King
2006-05-24 12:33       ` Geoff Russell
2006-05-24 13:23         ` Jeff King
2006-05-24 13:47           ` Geoff Russell
2006-05-24 13:58             ` Jeff King
2006-05-24 17:05               ` Junio C Hamano

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=93c3eada0605240419o48891cdle6c100fc0ac870ff@mail.gmail.com \
    --to=geoffrey.russell@gmail.com \
    --cc=geoff@austrics.com.au \
    --cc=git@vger.kernel.org \
    --cc=martin.langhoff@gmail.com \
    /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).