Gentoo Archives: gentoo-dev

From: hasufell <hasufell@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] gentoo git workflow
Date: Mon, 15 Sep 2014 14:49:19
Message-Id: 5416FC64.1050608@gentoo.org
In Reply to: Re: [gentoo-dev] gentoo git workflow by Ian Stakenvicius
1 Ian Stakenvicius:
2 >
3 > I'm not that worried about the big (multi-package) commits, as it does
4 > make sense we're going to have difficulty and lots of potential
5 > conflicts there, but aren't we going to run into this issue just with
6 > multiple people committing separate single-package commits at the same
7 > time??
8 >
9
10 Yes. If that becomes a major problem, then we have to say goodbye to the
11 central repository workflow, because we either
12 * allow inconsistency and broken states as we do now with CVS (and rely
13 on QA to run a repoman tinderbox and reverse-fixing broken crap)
14 * require devs to rebase+merge and rerun repoman 10+ times in order to
15 get a single commit pushed
16
17 It is already pretty gross and broken to have ~200 people have direct
18 push access to a single repository.
19
20 However, having ~150 commits per day I don't think this commit rate is
21 high enough to deadlock push access.
22
23 git pull --rebase=preserve && repoman full && git push origin master
24
25 or something similar. This can even be implemented a bit more sanely
26 within repoman or another script, but I don't think we need that yet.
27
28 It's also possible that projects start accumulating changes in branches
29 or even their own repositories to minimize the amount of pushes to
30 master. The merge-rate will be something that has to be dynamically
31 figured out and will improve tree quality.
32
33 We shouldn't try to map our CVS workflow 1:1 to git, so there have to be
34 changes in workflow. The optimum would be to have a real review workflow
35 enforced with only a handful of people having direct push access, but I
36 doubt this will work in our current community and mindset.
37 However, such a review workflow can dynamically evolve, because it's git
38 after all! If that happens, we can just make it a policy at some point
39 or even implement it on infra-level.