Page MenuHomePhabricator

Config - add setup checks for minimum and "bad" versions of VCS software.
ClosedPublic

Authored by btrahan on Nov 14 2014, 8:53 PM.
Tags
None
Referenced Files
Unknown Object (File)
Tue, Nov 19, 9:44 AM
Unknown Object (File)
Fri, Nov 15, 3:41 PM
Unknown Object (File)
Mon, Nov 11, 12:53 AM
Unknown Object (File)
Thu, Nov 7, 3:27 PM
Unknown Object (File)
Tue, Nov 5, 9:30 PM
Unknown Object (File)
Tue, Nov 5, 9:30 PM
Unknown Object (File)
Tue, Nov 5, 9:30 PM
Unknown Object (File)
Tue, Nov 5, 9:30 PM
Subscribers

Details

Reviewers
epriestley
Maniphest Tasks
Restricted Maniphest Task
Commits
Restricted Diffusion Commit
rPc9c4dc1d9b01: Config - add setup checks for minimum and "bad" versions of VCS software.
Summary

Fixes T3046. Git has no minimum or bad versions; svn has no minimum and the bad version of 1.7.1, and mercurial has a minimum of 1.9 and bad versions 2.2 and 2.1. These error messages are specific about the problem but do not include the details as to what specifically is bad about a given version. I don't think that's really necessary - the details don't help solve the problem and its probably booooooring at best to the average user. The details about a bad version are included in the code however.

Test Plan

hardcoded a VCS array to let me test all the VCS stuff. added some phlog() calls to make sure the VCS version parsing stuff was working correctly relative to the version(s) on my system. played around with setting minimum versions and bad versions and saw good results depending on what I set.

Diff Detail

Repository
rP Phabricator
Branch
T3046
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 3049
Build 3055: [Placeholder Plan] Wait for 30 Seconds

Event Timeline

btrahan added a task: Restricted Maniphest Task.
btrahan retitled this revision from to Config - add setup checks for minimum and "bad" versions of VCS software..
btrahan updated this object.
btrahan edited the test plan for this revision. (Show Details)
btrahan added a reviewer: epriestley.
epriestley edited edge metadata.
epriestley added inline comments.
src/applications/config/check/PhabricatorSetupCheckBinaries.php
105

Consider mapping these to a reason string to help us remember what's going on and users understand why the version is bad.

111

e.g., The reason for 2.1 is "This version of Mercurial returns a bad exit code after a successful pull."

119

Use version_compare() to deal with stuff like "10.1.1" being a larger version than "2.0.0" even though the string has a smaller alphabetic value.

This revision is now accepted and ready to land.Nov 14 2014, 8:58 PM
btrahan edited edge metadata.

updates... I wrote the "why" notes but I did not expose them to the user per my reasoning in the diff summary.

This revision was automatically updated to reflect the committed changes.