Yeah, but it's kind of tricky.  Imagine that you already have a shallow clone with a depth of 1, and you want to do a new fetch with depth=2.  You want to avoid the commits that you already have, but then unshallow the old boundary commits and start sending stuff below those again.  I wasn't quite clear on the best way to handle that, so I basically just copped out and sent the whole tree.  

This can probably be solved somehow by adding all of the parents of the client's shallow commits back into the generator as interesting so that they'll be picked up again, but right now the DepthGenerator doesn't do anything with uninteresting commits.  I'm not sure I completely understand the logic that would need to be used for those, especially in conjunction with the depth tagging stuff--can you provide any insight?