Gentoo Archives: gentoo-scm

From: Rich Freeman <rich0@g.o>
To: gentoo-scm@l.g.o
Subject: Re: [gentoo-scm] Git Migration: launch plan & schedule (2015/Aug/08-09)
Date: Fri, 03 Jul 2015 01:27:05
Message-Id: CAGfcS_=mHvrQ107eeFyry_zrnOpWFAQ7gM4KXdoQ1LEQupzZ2w@mail.gmail.com
In Reply to: Re: [gentoo-scm] Git Migration: launch plan & schedule (2015/Aug/08-09) by "Robin H. Johnson"
1 On Thu, Jul 2, 2015 at 8:51 PM, Robin H. Johnson <robbat2@g.o> wrote:
2 > On Thu, Jul 02, 2015 at 06:05:10PM -0400, Rich Freeman wrote:
3 >> On Thu, Jul 2, 2015 at 5:39 PM, Robin H. Johnson <robbat2@g.o> wrote:
4 >> > 2015/08/08 15:00 UTC - Freeze
5 >> > 2015/08/11 - History repo available to graft
6 >> I'm not sure if you already had plans for creating the history, but
7 >> I've generally been able to turn them around in 12 hours without
8 >> really trying too hard.
9 > I expect verification of the conversion to take longer than the runs,
10 > and that we're going to find we miss something at least once, so it'll
11 > be 2 or 3 runs before we get output we're happy with.
12
13 I'm sure we'll be doing 10-20 runs over the subsequent 3 years before
14 we really get it "perfect." :) I've never had an issue with doing a
15 migration, but if you look closely enough I'm sure you'll find
16 something that could be done better, especially with the commit
17 merging. In particular you'll probably almost never get a tree in the
18 past where all the Manfests are valid. I don't really see that as
19 being important, however.
20
21 >
22 >> I have it all running in a container/chroot
23 >> where I mount the cvsroot so I could probably get it running on EC2 or
24 >> elsewhere easily enough if we're in a real hurry.
25 > Can you publish the container? Letting other people be able to replicate
26 > the result here would be a benefit, and we can easily shuffle it as
27 > well.
28
29 I'll take a look at it and see if I can clean out anything sensitive.
30 I have published all my conversion sources on github:
31 https://github.com/gentoo/git-migration-scripts-rich0
32
33 I'll publish a tarball of the container when I can make sure it
34 doesn't contain any keys/etc. I do believe that you need a patch for
35 cvs2svn to get it to use the old date format.
36
37 >
38 >> If I had a ton of RAM and store everything in tmpfs then I suspect
39 >> that it could be done faster -
40 > How much RAM & CPU have you been running it with? I was planning on
41 > 64GB+ tmpfs and 12+ dedicated cores.
42
43 I've been running it on 16GB+4 amd64 cores (ie nothing all that
44 fancy). I do the output to tmpfs and use a squashfs cvsroot as the
45 input typically, but that isn't ideal in a hurry since creating a
46 squashfs takes time (the goal was to cut down on disk IO). The actual
47 migration uses very little RAM - it is just whatever you stick in
48 tmpfs.
49
50 >> With git replace we don't need the history to go live, and this also
51 >> means that if we find a mistake in the history we can fix it and issue
52 >> a new history. So, there isn't really a rush. But, if you don't
53 >> already have the history conversion taken care of or need it faster, I
54 >> can take care of it.
55 > The history is needed within a few days if we go with the changelog
56 > generation step; but is NOT in the critical path for developers being
57 > able to carry on committing.
58 >
59
60 I'll go ahead and try to give you what I have. It sounds like you
61 have it under control, but if you need me to do anything just let me
62 know. I'll see about getting that container packaged up in case it is
63 useful. That was why I containerized it in the first place. I
64 typically run it in a network namespace using nspawn for convenience,
65 but I'm sure you could easily just chroot into the thing after
66 bind-mounting in whatever you need.
67
68 --
69 Rich