1 |
Dnia 2014-09-14, o godz. 15:40:06 |
2 |
Davide Pesavento <pesa@g.o> napisał(a): |
3 |
|
4 |
> On Sun, Sep 14, 2014 at 2:03 PM, Michał Górny <mgorny@g.o> wrote: |
5 |
> > We have main developer repo where developers work & commit and are |
6 |
> > relatively happy. For every push into developer repo, automated magic |
7 |
> > thingie merges stuff into user sync repo and updates the metadata cache |
8 |
> > there. |
9 |
> |
10 |
> How long does the md5-cache regeneration process take? Are you sure it |
11 |
> will be able to keep up with the rate of pushes to the repo during |
12 |
> "peak hours"? If not, maybe we could use a time-based thing similar to |
13 |
> the current cvs->rsync synchronization. |
14 |
|
15 |
This strongly depends on how much data is there to update. A few |
16 |
ebuilds are quite fast, eclass change isn't ;). I was thinking of |
17 |
something along the lines of, in pseudo-code speaking: |
18 |
|
19 |
systemctl restart cache-regen |
20 |
|
21 |
That is, we start the regen on every update. If it finishes in time, it |
22 |
commits the new metadata. If another update occurs during regen, we |
23 |
just restart it to let it catch the new data. |
24 |
|
25 |
Of course, if we can't spare the resources to do intermediate updates, |
26 |
we may as well switch to cron-based update method. |
27 |
|
28 |
> [...] |
29 |
> > In any case, we would likely strip the history anyway to get a small |
30 |
> > repo to work with. |
31 |
> > |
32 |
> > I have prepared a basic git update hook that keeps master clean |
33 |
> > and attached it to the bug [1]. It enforces basic policies, prevents |
34 |
> > forced updates and checks GPG signatures on left-most history line. It |
35 |
> > can also be extended to do more extensive tree checks. |
36 |
> |
37 |
> Are we going to disallow merge commits and ask devs to rebase local |
38 |
> changes in order to keep the history "clean"? |
39 |
|
40 |
I don't think we should cripple git. Just to be clear, 'accidental' |
41 |
merges won't happen because the automatic merges are unsigned |
42 |
and the 'update' hook will refuse them. |
43 |
|
44 |
The developers will have to either rebase and resign the commits, or |
45 |
use a signed merge commit whichever makes more sense in particular |
46 |
context. |
47 |
|
48 |
Signed merge commits will also allow merging user-submitted changes |
49 |
while preserving original history. |
50 |
|
51 |
-- |
52 |
Best regards, |
53 |
Michał Górny |