Page MenuHomePhabricator

Consolidate binary (hg, git, svn) analysis code into one place
ClosedPublic

Authored by epriestley on Jul 31 2017, 7:19 PM.
Tags
None
Referenced Files
F14103366: D18305.diff
Tue, Nov 26, 9:55 PM
F14100668: D18305.id44017.diff
Tue, Nov 26, 2:45 PM
Unknown Object (File)
Fri, Nov 22, 3:10 AM
Unknown Object (File)
Mon, Nov 18, 8:39 AM
Unknown Object (File)
Thu, Nov 14, 10:46 AM
Unknown Object (File)
Sat, Nov 9, 5:02 PM
Unknown Object (File)
Wed, Nov 6, 8:06 AM
Unknown Object (File)
Thu, Oct 31, 2:21 PM
Subscribers

Details

Summary

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.

Test Plan

Added unit tests, see also next change. Eventual result is this:

Screen Shot 2017-07-31 at 12.14.42 PM.png (341×777 px, 101 KB)

Diff Detail

Repository
rPHU libphutil
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

This revision is now accepted and ready to land.Jul 31 2017, 7:29 PM

Also Pygmentize and nodejs?

Also, what happens if different servers in the cluster have different versions of git?

  • Support pygmentize.
  • Node is a whole separate mess, and not something we execute from the web, so skip it for now.

Also, what happens if different servers in the cluster have different versions of git?

In theory, we could enumerate every device assigned to a repository service in Almanac and query all of them for binary versions and paths to detect this. I'm inclined to wait until this actually happens before pursuing it, though.

This revision was automatically updated to reflect the committed changes.