Currently the version check checks for 0.9.3.
We can take an optimistic approach: check dotted version (ie. 0.9.3) and only
refuse executables that report lower version. Treat higher and unrecognized as
If it's less than 0.9.3:
Tell user in a popup that the version is unsupported, Mercurial support is
disabled and to enable it they must install 0.9.3. Persist this notification and
perhaps set the Mercurial submenu to have just one "unsupported" entry. Better
solution would be to not show the Mercurial menu at all, but unsure at preset
how to do this.
If it's == 0.9.3:
Good to go :)
If it's > than 0.9.3:
Tell user in a popup that the version is unsupported, 0.9.3 is the only
supported version, but this version may work. Persist this notification.
Mercurial menu is enabled but actions may have unpredictable results.
To support the persistence even though we are not yet supporting Mecurial
Properties we could setup a HgSettings.java class with serialization support.
For now it's only getter/setter would be the boolean versionNotificationRun.
I am not sure how we can distinguish between a version which is less than 0.9.3
and a version which is greater than 0.9.3.
I have prepared a patch
It checks whether the version found is the same as the version we tested against.
If not, a dialog is presented. If the user wishes to proceed the version is stored
in preferences so it persists.
I have noticed that Mercurial is initialized twice during startup so that if the
user answer no in the dialog the question is asked again.
To test this either use a version of mercurial different from 0.9.3 or change
MERCURIAL_GOOD_VERSION to 0.9.2.
Created attachment 42140 [details]