1 |
On Sun, Aug 7, 2011 at 5:12 AM, Fabian Groffen <grobian@g.o> wrote: |
2 |
> On 06-08-2011 20:55:05 +0000, Robin H. Johnson wrote: |
3 |
>> Problems: |
4 |
>> - atomic/well-ordered commits that span packages, eclasses and profiles/ |
5 |
>> directories. (Esp. committing to eclasses and then packages |
6 |
>> afterwards). |
7 |
> |
8 |
> This can be done with a single commit to the rsync tree script, and it |
9 |
> doesn't necessarily need git repos. |
10 |
> |
11 |
|
12 |
What exactly are you thinking about here. How about this use case: |
13 |
|
14 |
I have a list of 150 packages/versions. I want to make all of them go |
15 |
from ~x86 to x86 at the same time. |
16 |
|
17 |
If they're all in one git repo, then I can use a script or whatever to |
18 |
go through every one at leisure and rekeyword them. Then I can do a |
19 |
repoman scan on the entire repository for an hour or two if I want. |
20 |
When I'm happy I can commit everything atomically. |
21 |
|
22 |
How do you envision doing this by just making a single commit to the |
23 |
rsync tree script if the files are in multiple repos? Right now that |
24 |
rsync tree is pulling in all those files already - in the ~x86 |
25 |
version. Do you propose cloning all the repos, fixing the arch flag |
26 |
in the new repos, and then re-pointing the rsync tree atomically? |
27 |
That would work, but any commits to the 150 packages by others in the |
28 |
meantime would get lost, and it seems a bit painful to do it this way. |
29 |
I can see how you could atomically add or remove 150 packages |
30 |
entirely, but not how you can tweak individual versions of packages |
31 |
without a fair bit of pain. Admittedly, you could have some clever |
32 |
solution in mind that I'm just not grokking. |
33 |
|
34 |
The other thing that was tossed out is having multiple repos, but |
35 |
putting things like kde/gnome in their own bigger repos. I'm not sure |
36 |
this is going to work, since it only works for those particular |
37 |
situations. A package can only be in one repo, so you can't have one |
38 |
repo for kde, and another repo for everything that uses qt, and |
39 |
another for everything that uses pulseaudio, or whatever. Atomic |
40 |
changes to many packages could be required for any number of unforseen |
41 |
reasons. |
42 |
|
43 |
I can see the elegance of allowing the portage tree to be a collage of |
44 |
packages from different sources, but I'm not convinced we really need |
45 |
this. Users can already accomplish this on their end with overlays. |
46 |
It seems like we're just making the portage tree an overlay of its |
47 |
own. I'm not sure what it really buys us. Just using git in the |
48 |
first place already simplifies distributed development. If you took |
49 |
this idea to an extreme you might not have the rsync server assemble |
50 |
the tree at all, but just push out the official list as a |
51 |
"recommended" list of overlays, and let the users put their own trees |
52 |
together (with the ability to override parts of it). |
53 |
|
54 |
Rich |