Gentoo Archives: gentoo-scm

From: Brian Harring <ferringb@×××××.com>
To: gentoo-scm@l.g.o
Cc: "Michał Górny" <mgorny@g.o>, gentoo-dev <gentoo-dev@l.g.o>, infra-bugs@g.o, qa@g.o, Gentoo Council <council@g.o>
Subject: Re: [gentoo-scm] Re: My masterplan for git migration (+ looking for infra to test it)
Date: Tue, 16 Sep 2014 03:50:55
Message-Id: CAMMrfH7AgFvFKcCT9di35Dfn2CSaM=fs8fdisdeQ8XDZmRge1w@mail.gmail.com
In Reply to: [gentoo-scm] Re: My masterplan for git migration (+ looking for infra to test it) by Rich Freeman
1 Folks, pardon the earlier empty reply. Bit of a fat fingered fuck up on my
2 part, sorry for that. Responses inline meanwhile.
3
4 On Sun, Sep 14, 2014 at 10:33 AM, Rich Freeman <rich0@g.o> wrote:
5
6 > On Sun, Sep 14, 2014 at 8:03 AM, Michał Górny <mgorny@g.o> wrote:
7 > >
8 > > I'm quite tired of promises and all that perfectionist non-sense which
9 > > locks us up with CVS for next 10 years of bikeshed.
10 >
11 > While I tend to agree with the sentiment, I don't think you're
12 > actually targeting the problems that aren't already solved here.
13 >
14
15 Fully agreed; additionally there is an annoying ignorance of the full body
16 of work folks have done over said years- thin manifests/md5 cache are
17 simple examples, but there is a lot of work that was done to even make it
18 *possible* to run from a git repository sanely.
19
20
21 > Of course, that assumes infra is
22 > > going to cooperate quickly or someone else is willing to provide the
23 > > infra for it.
24 >
25 > The infra components to a git infrastructure are one of the main
26 > blockers at this point. I don't really see cooperation as the issue -
27 > just lack of manpower or interest.
28 >
29
30 I can't speak for current gentoo infra, but it'd help to think through
31 exactly who will have RO access to the git repo.
32
33 Trying to have the entire gentoo userbase accessing the repo via git is
34 going to be resource intensive- if you're intending that, well, start
35 donating frankly.
36
37 If however you're angling for just devs having git access, and utilizing
38 the existing rsync mirror, that should be a helluva lot more doable (even
39 with shitty hardware).
40
41 My point there is you probably need to be specific, rather than
42 vague/bitchy. It'll avoid the bikeshed, among other things.
43
44
45 > 1. send announcement to devs to explain how to use git,
46 >
47 > This is one of the blockers. We haven't actually decided how we want
48 > to use git.
49 >
50 > Sure, everybody knows how to use git. The problem is that there are a
51 > dozen different ways we COULD use git, and nobody has picked the ONE
52 > way we WILL use it.
53 >
54 > This isn't as trivial as you might think. We have a fairly high
55 > commit rate and with a single repository that means that in-between a
56 > pull-merge/rebase-push there is a decent chance of another commit that
57 > will make the resulting push a non-fast-forward.
58 >
59 > People love to point out linux and its insane commit rate. The thing
60 > is, the mainline git repo with all those commits has exactly one
61 > committer - Linus himself. They don't have one big repo with one
62 > master branch that everybody pushes to. At least, that is my
63 > understanding (and there are certainly others here who are more
64 > involved with kernel development).
65 >
66
67 To be frank, I think you're seriously overthinking it and worrying about a
68 nonissue. Worrying about this while ignoring security enhancements like
69 requiring signed commits on push is a bit weird to me.
70
71 I think prior to arguing this point, folks should take a look at the
72 chromium-os commit rates and approach. Gentoo's commit rate will be in the
73 same rough range- the difference for cros is purely that it was a gated
74 commit model where pushes didn't land in trunk till they'd had basically
75 validation- after that validation they were automatically merged in. If
76 gentoo really hits that level of churn, that model would work (and have
77 additional benefits).
78
79 Do some research and look at what came before; worst case, just use a
80 simple model and sort any workflow inefficiencies *after* they come up.
81
82
83 >
84 > > 2. lock CVS out to read-only,
85 > >
86 > > 3. create all the git repos, get hooks rolling,
87 >
88
89 The git -> rsync mirror generation will have to be finished for this-
90 specifically, converting thin manifests to thick manifests, resigning as
91 needed. I believe zmedico did some work on that before moving on, but
92 others more in the know would have to address that.
93
94 ChangeLog generation also would be a nice to have there, and quick to
95 integrate.
96
97 One additional point no one has mentioned; when cutting over to git,
98 afterwards someone will need to go through and rip out all of the cvs $Id
99 style tags that exist in the tree- depending on how folks are doing the
100 conversion, it might be worth just jamming that in right off the bat rather
101 than trying to clean the tree afterwards.
102
103
104 Actually doing the conversion is basically a solved problem. If this
105 > were actually the blocker I'd be all for just sticking the history in
106 > a different repo and starting from scratch with a new one.
107 >
108
109 Just reiterating; this is a solved problem, and has been for ~2 years.
110
111 If somebody can come up with a set of hooks/scripts that will create
112 > the various trees and the only thing that is left is to get infra to
113 > host them, I think we can make real progress. I don't think this is
114 > something that needs to take a long time. The pieces are mostly there
115 > - they just have to be assembled.
116 >
117
118 Frankly, I think Mgorny volunteered himself w/ his earlier "it's been 10
119 years and y'all haven't done anythign" claim.
120
121 ~ferringb, who was enjoying his retirement very much thank you

Replies