Great, and now how do you reasonably share a dependency between multiple repositories while correctly tracking the exact version of that dependency at each point in history?
The command line is a little obscure (at least, I can never remember the command to pull the latest remote changes first time) but overall the use of them is a lot nicer, for the way I work at least. Being able to have "local" edits to subtrees while still allowing remote updating and colleagues to clone the repo with the local updates is rather useful.
Use the repo tool used by android? I'm not sure bout dependency versions at each point in history since AOSP usually just points to tags or branches directly, but it seems to work for their style of large, multiple git repo projects.
Python at least doesn't provide any reasonable dependency tool for third-party test suite data. I can't really package a third-party test suite as a Python program.
Why can't you do that with the language package manager? In Node you simply change the version number, run npm install, test the changes, either commit or don't.