As for different trees, I'm afraid you've written something that is
_too useful_ to be used in that manner.
Git has brought with it a _major_ increase in my productivity because
I can now easily share ~50 branches with 50 different kernel
hackers, without spending all day running rsync. Suddenly my
kernel development is a whole lot more _open_ to the world, with a
single "./push". And it's awesome.