Consolidate binary (hg, git, svn) analysis code into one place
Ref T12942. Currently, we have a bunch of code spread out all over the place for doing version tests on hg, svn, and git.
Consolidate this code a bit so we can use it to drive a new section on the "Version Information" page showing the installed versions (and paths) for binaries.
The primary goal is to reduce the support burden a little bit. Two particular issues are:
- Various stuff with old (or new) VCS binaries, mostly Mercurial.
- Cases where the webserver sees a different binary than sudoers specifies.
These should be easier to spot with binaries in the version info.
Added unit tests, see also next change. Eventual result is this:
Reviewers: chad, avivey
Reviewed By: chad, avivey
Maniphest Tasks: T12942
Differential Revision: https://secure.phabricator.com/D18305