This commit is contained in:
parent
835a214de6
commit
c6a66353bb
1 changed files with 51 additions and 0 deletions
|
@ -0,0 +1,51 @@
|
|||
I expected `git annex init --version=N`, where N is a version in
|
||||
`autoUpgradeableVersions`, to auto-upgrade in a way that lands on a
|
||||
supported version. For example, with a git-annex built from a recent
|
||||
master (835a214de), `supportedVersions` contains only 8, and I
|
||||
expected
|
||||
|
||||
git init && git annex init --version=6
|
||||
|
||||
to result in a v8 repo. Instead it lands on v7:
|
||||
|
||||
git config annex.version # => 7
|
||||
|
||||
Shouldn't the auto-upgrade mapping by `init` be carried all the way
|
||||
through until a supported version is reached?
|
||||
|
||||
I was able to get the behavior I expected with the change below.
|
||||
|
||||
[[!format diff """
|
||||
diff --git a/Command/Init.hs b/Command/Init.hs
|
||||
index db6cb14fb..ad7ed8962 100644
|
||||
--- a/Command/Init.hs
|
||||
+++ b/Command/Init.hs
|
||||
@@ -36,11 +36,15 @@ optParser desc = InitOptions
|
||||
parseRepoVersion :: Monad m => String -> m RepoVersion
|
||||
parseRepoVersion s = case RepoVersion <$> readish s of
|
||||
Nothing -> fail $ "version parse error"
|
||||
- Just v
|
||||
- | v `elem` supportedVersions -> return v
|
||||
- | otherwise -> case M.lookup v autoUpgradeableVersions of
|
||||
- Just v' -> return v'
|
||||
- Nothing -> fail $ s ++ " is not a currently supported repository version"
|
||||
+ Just v -> case check v of
|
||||
+ Nothing -> fail $ s ++ " is not a currently supported repository version"
|
||||
+ Just supported -> return supported
|
||||
+ where
|
||||
+ check v'
|
||||
+ | v' `elem` supportedVersions = Just v'
|
||||
+ | otherwise = case M.lookup v' autoUpgradeableVersions of
|
||||
+ Just v'' -> check v''
|
||||
+ Nothing -> Nothing
|
||||
|
||||
seek :: InitOptions -> CommandSeek
|
||||
seek = commandAction . start
|
||||
"""]]
|
||||
|
||||
I'm quite confident that my attempt above is not pretty, but if I got
|
||||
lucky and it's passable Haskell, I'd be happy to send a patch.
|
||||
|
||||
|
||||
[[!meta author=kyle]]
|
||||
[[!tag projects/datalad]]
|
Loading…
Add table
Reference in a new issue