10a30c961d
Fedora's config has over 11,000 repositories and the compiled config file is over 20 MB in size. Although negligible on a server class machine, on my laptop just parsing this file takes a good 2.5 seconds. Even if you use GL_ALL_READ_ALL (see a couple of commits before this one) to remove the overhead for 'read's, that's still a pretty big overhead for writes. And GL_ALL_READ_ALL is not really a solution for most people anyway. With this commit, using GL_BIG_CONFIG adds another optimisation; see doc/big-config.mkd for details (look for the word "split config" to find the section that talks about it). ---- Implementation notes: - the check for GL_NO_CREATE_REPOS has moved *into* the loop (which it completely bypassed earlier) so that write_1_compiled_conf can be called on each item
74 lines
940 B
Groff
74 lines
940 B
Groff
$data_version = '1.7';
|
|
%repos = (
|
|
'@g1' => {
|
|
'@g1' => [
|
|
[
|
|
2,
|
|
'refs/.*',
|
|
'RW+'
|
|
]
|
|
],
|
|
'@g2' => [
|
|
[
|
|
3,
|
|
'refs/.*',
|
|
'RW'
|
|
]
|
|
],
|
|
'R' => {
|
|
'@g1' => 1,
|
|
'@g2' => 1
|
|
},
|
|
'W' => {
|
|
'@g1' => 1,
|
|
'@g2' => 1
|
|
}
|
|
}
|
|
);
|
|
%groups = (
|
|
'@g1' => {
|
|
'aa' => 'master',
|
|
'bb' => 'master'
|
|
}
|
|
);
|
|
%split_conf = (
|
|
'gitolite-admin' => 1,
|
|
'testing' => 1
|
|
);
|
|
repositories/gitolite-admin.git/gl-conf
|
|
repositories/testing.git/gl-conf
|
|
%one_repo = (
|
|
'gitolite-admin' => {
|
|
'R' => {
|
|
'tester' => 1
|
|
},
|
|
'W' => {
|
|
'tester' => 1
|
|
},
|
|
'tester' => [
|
|
[
|
|
0,
|
|
'refs/.*',
|
|
'RW+'
|
|
]
|
|
]
|
|
}
|
|
);
|
|
%one_repo = (
|
|
'testing' => {
|
|
'@all' => [
|
|
[
|
|
1,
|
|
'refs/.*',
|
|
'RW+'
|
|
]
|
|
],
|
|
'R' => {
|
|
'@all' => 1
|
|
},
|
|
'W' => {
|
|
'@all' => 1
|
|
}
|
|
}
|
|
);
|