1 |
On Tue, Oct 26, 2010 at 07:15:46PM +0000, Robin H. Johnson wrote: |
2 |
> Repo layout |
3 |
> * Natural option (seems to be used by most projects) is one package per repo |
4 |
> * Main problems: how to manage initial clones, updates, package moves, category moves |
5 |
> * The "repo" tool written for Android can handle most of this |
6 |
> * Renaming packages a problem (requires admin participation) |
7 |
> * Average 1-2/week over the past few years |
8 |
> * Moving packages between categories can be done by committers |
9 |
The other major problem with splitting the repo, is that the overhead |
10 |
that will be imposed by it. This got lost during the talks, but I've |
11 |
followed up with warthog9, and the size is going to hurt. |
12 |
|
13 |
In an attempt to explain that better, I've laid out below, the (inode) |
14 |
overhead costs per checkouts in each VCS, in a variant of O-notation. |
15 |
d = number of directories, f = number of files, r = number of |
16 |
repositories. |
17 |
CVS: O(3d) |
18 |
SVN: O(8d + 2f) |
19 |
Git: O(35r) |
20 |
|
21 |
All of which represent the bare minimum number of inodes are required. |
22 |
|
23 |
Our CVS tree tracks 21481 directories, and 118286 files. |
24 |
14302 of those directories are packages. |
25 |
|
26 |
For the 3 models of Git: |
27 |
1 giant repo: 1 repo only. |
28 |
repo-per-package: 14302 repos |
29 |
repo-per-category: 154 repos. |
30 |
|
31 |
-- |
32 |
Robin Hugh Johnson |
33 |
Gentoo Linux: Developer, Trustee & Infrastructure Lead |
34 |
E-Mail : robbat2@g.o |
35 |
GnuPG FP : 11AC BA4F 4778 E3F6 E4ED F38E B27B 944E 3488 4E85 |