diff options
author | Joey Hess <joeyh@joeyh.name> | 2016-10-05 16:23:09 -0400 |
---|---|---|
committer | Joey Hess <joeyh@joeyh.name> | 2016-10-05 16:23:09 -0400 |
commit | aa38d92afcc0efbe7bb9786d00c45f71af756b75 (patch) | |
tree | 8d41e4a52905d1a6141e2761aeaa5b93ffd36d71 /Upgrade.hs | |
parent | 1497590d45d8f7bebc8b308e7196e493c0489f60 (diff) |
When auto-upgrading a v3 remote, avoid upgrading to version 6, instead keep it at version 5.
Fixes a bug introduced with v6 mode that I didn't notice until now.
Probably not many v3 repos left out there, and upgrading them to v6 mode
is not disastrous, only a little premature.
This commit was sponsored by Riku Voipio
Diffstat (limited to 'Upgrade.hs')
-rw-r--r-- | Upgrade.hs | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/Upgrade.hs b/Upgrade.hs index 6d7759264..20ed7a402 100644 --- a/Upgrade.hs +++ b/Upgrade.hs @@ -26,7 +26,7 @@ checkUpgrade = maybe noop error <=< needsUpgrade needsUpgrade :: Version -> Annex (Maybe String) needsUpgrade v | v `elem` supportedVersions = ok - | v `elem` autoUpgradeableVersions = ifM (upgrade True) + | v `elem` autoUpgradeableVersions = ifM (upgrade True defaultVersion) ( ok , err "Automatic upgrade failed!" ) @@ -37,13 +37,14 @@ needsUpgrade v " is not supported. " ++ msg ok = return Nothing -upgrade :: Bool -> Annex Bool -upgrade automatic = do +upgrade :: Bool -> Version -> Annex Bool +upgrade automatic destversion = do upgraded <- go =<< getVersion when upgraded $ - setVersion latestVersion + setVersion destversion return upgraded where + go (Just v) | v >= destversion = return True #ifndef mingw32_HOST_OS go (Just "0") = Upgrade.V0.upgrade go (Just "1") = Upgrade.V1.upgrade |