have init --version fail when repo is already initialized with other version
init: When the repo is already initialized, and --version requests a different version, error out rather than silently not changing the version.
This commit is contained in:
parent
65f34ffb4c
commit
70b71bf660
3 changed files with 15 additions and 0 deletions
|
@ -15,6 +15,9 @@ git-annex (7.20190731) UNRELEASED; urgency=medium
|
||||||
since it needs 64 bit git now.
|
since it needs 64 bit git now.
|
||||||
* Build with silently-1.2.5.1 on Windows; the old one used "NUL" which
|
* Build with silently-1.2.5.1 on Windows; the old one used "NUL" which
|
||||||
is not supported with recent versions of ghc.
|
is not supported with recent versions of ghc.
|
||||||
|
* init: When the repo is already initialized, and --version requests a
|
||||||
|
different version, error out rather than silently not changing the
|
||||||
|
version.
|
||||||
|
|
||||||
-- Joey Hess <id@joeyh.name> Thu, 01 Aug 2019 00:11:56 -0400
|
-- Joey Hess <id@joeyh.name> Thu, 01 Aug 2019 00:11:56 -0400
|
||||||
|
|
||||||
|
|
|
@ -51,6 +51,12 @@ start os = starting "init" (ActionItemOther (Just $ initDesc os)) $
|
||||||
|
|
||||||
perform :: InitOptions -> CommandPerform
|
perform :: InitOptions -> CommandPerform
|
||||||
perform os = do
|
perform os = do
|
||||||
|
case initVersion os of
|
||||||
|
Nothing -> noop
|
||||||
|
Just wantversion -> getVersion >>= \case
|
||||||
|
Just v | v /= wantversion ->
|
||||||
|
giveup $ "This repository is already a initialized with version " ++ show (fromRepoVersion v) ++ ", not changing to requested version."
|
||||||
|
_ -> noop
|
||||||
initialize
|
initialize
|
||||||
(if null (initDesc os) then Nothing else Just (initDesc os))
|
(if null (initDesc os) then Nothing else Just (initDesc os))
|
||||||
(initVersion os)
|
(initVersion os)
|
||||||
|
|
|
@ -9,3 +9,9 @@ I have not managed to reproduce this outside of the test suite.
|
||||||
I wonder if perhaps the environment variable that the test suite sets
|
I wonder if perhaps the environment variable that the test suite sets
|
||||||
to communicate with itself is not working on Windows, which sometimes
|
to communicate with itself is not working on Windows, which sometimes
|
||||||
has gotchas around environment variables. --[[Joey]]
|
has gotchas around environment variables. --[[Joey]]
|
||||||
|
|
||||||
|
Hmm, I reordered the direct mode tests to come first, and the failure went
|
||||||
|
away. Think that .t/repo gets reused, and being already a v7 repo, git annex
|
||||||
|
init --version=7 silently did not change it. (Made that error out.)
|
||||||
|
So the test suite should use different paths for the base repo in each test
|
||||||
|
pass.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue