Currently using both --shallow and a branch (rather than master) fails since GetComponents wants to first clone the full repo then switch to the requested branch which fails with a shallow clone.
However newer versions of git (>=1.7) support a "-b" (branch) option for clone and that one works fine even with shallow clones.
My recollection is that we could not use this method initially since there were clusters around that only offered git 1.6 (queenbee likely). This is no longer the case and all clusters in simfactory offer at least git 1.7.
This pull request:
both fixes the problem and simplifies the code.