So basically assume there's an xml or similar file that's on a web server somewhere that defines a hierarchy of KDE projects. Changes to this file won't happen often, but they will happen. So keep a cache of it and maybe update automatically once a day or when asked to.
The user should be able to perform commands like:
unnamedtool clone KDE/base #clones kdebase unnamedtool clone KDE #clones everything in the trunk/KDE unnamedtool clone extragear #clones all of extragear unnamedtool clone extragear/multimedia #clones just the multimedia repos in extragear unnamedtool clone extragear/multimedia/kaffeine #clones the app kaffeine unnamedtool clone kaffeine #a shortcut to clone kaffeine
So above there are really two types of directories being created. Ones that are part of our 'virtual' hierarchy, and ones that are the actual git repos.The directories that aren't git repos are going to need some sort .file to store the info about what virtual directory they are supposed to be. This will all stuff like the following.
$ unnamedtool clone extragear $ cd extragear $ unnamedtool pull
So this would do a 'git pull origin master:master' command in all the repos. There should also be a 'unnamedtool update' command that works the same, but does a 'git remote update' command instead.
Here is the link to this script project : http://rubyforge.org/projects/build-tool/