I am a
git fanboy.
KDE uses
SVN. Therein lies the problem.
There is a nice little app called
git-svn, which allows you to push and pull from an SVN repo. I was using git-svn to pull and compile KDELibs, and KDEPIMLibs, but it just kept failing when I tried on KDEBase (and KDENetwork and KDESupport).
git-svn fails on one major account. git-svn does NOT handle svn:external tags, so if a repository refers another one (or itself), then you are more or less screwed. This is why I was able to pull some repo's while others seem to 'fail silently'. But git-svn DOES write what it ignored into an unhandled.log
git-svn is also not all that friendly, as you need to manually figure out what the latest commit to that particular directory was (via websvn or otherwise) while cloning. This is not an OPTIONAL feature. The exact command is:
git-svn clone REPO -r REVISION_NUMBER
I decided to go back to my shell scripting roots, and went about making a script which automated these two "bugs", for people who use git-svn like me, ie, want the latest trunk/tag and probably not going to edit what is there in the external repository.
Enter git-svn-deepclone. It's a nice shell script that uses vanilla svn to get the latest revision number (git-svn already has an svn dependency in fedora, so no guilt there), then clones your repo via git-svn. And then it goes ahead and fetches all the external repositories for you, and adds it to your .git/info/ignore folder so that git doesn't track changes to the external folder.
I also made a git-svn-deeprebase so that it is easy to run git-svn rebase on all of the repos.
Make sure to make these scripts chmod +x and put them in your bin.
You can get the scripts over here:
http://tejas.fedorapeople.org/git-svn-deepclonehttp://tejas.fedorapeople.org/git-svn-deeprebase I'll try to move these scripts to the kdesdk/scripts folder (so far I've only tested this with KDE repo), but if the git guys want to include this, go ahead :)