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