Changes to our Git infrastructure

Jeff Mitchell mitchell at
Mon Dec 29 17:13:38 GMT 2014

On 29 Dec 2014, at 11:36, Jan Kundrát wrote:
>> As I see it, scratch repos are the first stage in a project's life 
>> cycle.
>> Before playground, you might fiddle with something, drop it in a 
>> scratch
>> repo and share the link on IRC. Deleting it is painless when you 
>> discover
>> that your idea is terrible, or already exists elsewhere.
> I agree with scratch repos being useful as a first step.

Except nobody deletes it. That's a large problem. Scratch is nice in 
concept but it's a sysadmin nightmare.

Out of the 846 repos I currently count in scratch/, nearly all of them 
haven't seen a commit in years. Meanwhile that's an extra 846 repos that 
have to be hosted, distributed to anongits, and backed up. That's not 
just a lot; that's the largest piece of our Git hosting. There are more 
scratch repos than normal repos. If clone repos were excluded, scratch 
repos would actually be a majority of all repos -- and again, most of 
them haven't been touched in years. People complain about propagation 
delay of repos to anongits -- syncing all these totally outdated repos 
is a major reason.

I understand the reason people like them -- as a place to test out early 
concepts before making them official projects -- but I think that a 
combination of social changes and technical changes can address losing 

One social change would be divesting ourselves of the idea that getting 
a Git repo from sysadmins is onerous. You can start a git repo locally 
and push it up later; the extra few hours or even a day it might take to 
get a hosted version should really not be the reason that your project 
simply cannot see the light of day.

Another social change, in combination with a technical change, would be 
to get interested people who would like to see this kind of thing happen 
faster and have them take on specific sysadmin tasks -- for instance, 
creating repos on request as soon as possible, spreading the workload 
out so that any given request is likely to be handled faster (your 
standard task queue). The reason it's semi-onerous now (but we should 
stop thinking that it is, see above) is due to lack of manpower. But 
volunteers can be given rights to handle specific ticket types without 
having to become full sysadmins. Like anything else, if people think it 
takes too long, get involved.

Clones (336 of them) are also nice in concept but with better code 
review and/or auditing capabilities (especially pre-commit 
capabilities), I think they will become less important, and remarks on 
this thread seem to back that idea up. On GitHub they're mostly used to 
prepare branches for merge requests because random user X can't commit 
to a branch in repo Y, but KDE's open-to-all-by-default policy, and 
generally decent project communication (IRC, mailing lists, and other 
means), makes that less necessary. Approved developers discussing 
improvements with developers are more likely to get approved to have a 
branch in the main repo; tiny fixes can be approved via a pre-commit 
audit. IOW, I think losing clones can be dealt with by some reasonable 
workflow rejiggering and social engineering.

Remember, we don't have the resources of GitHub or Bitbucket. No 
solution will be 100%. We're trying to decide what solution will, on 
balance, be closest to that 100%. But this also needs to factor in 
actual sysadmin time constraints/availability.

Sorry to be the sad-sack voice in this conversation. Ben and I have been 
having many conversations about alternate hosting mechanisms over the 
past few days, weeks, months, and (yes, really) years, and he's 
definitely Good Cop and I'm definitely Bad Cop when it comes to meeting 
every single desire of every single community member. We'd both love to 
do it (again, really), but I'm trying to be pragmatic, not the least 
because my availability is very hit and miss now and so even more burden 
falls on Ben. I don't want the minimal sysadmin staff we have getting 
crushed by the weight of requirements. Again -- I'd like to see us get 
as close to 100% as possible, and I think that some features that a few 
people find very useful -- but that can fairly effectively be addressed 
through other means -- and that cause amazing amounts of sysadmin and 
system burden should be up on the chopping block unless there are truly 
compelling arguments against.


More information about the kde-core-devel mailing list