b3c4579c79
git-annex get when run as the first git-annex command in a new repo did not
populate unlocked files. (Reversion in version 8.20210621)
I am not entirely happy with this, because I don't understand how
428c91606b
caused the problem in the first
place, and I don't fully understand how skipping calling scanAnnexedFiles
during autoinit avoids the problem.
Kept the explicit call to scanAnnexedFiles during git-annex init,
so that when reconcileStaged is expensive, it can be made to run then,
rather than at some later point when the information is needed.
Sponsored-by: Brock Spratlen on Patreon
50 lines
1.3 KiB
Haskell
50 lines
1.3 KiB
Haskell
{- git-annex command
|
|
-
|
|
- Copyright 2011-2020 Joey Hess <id@joeyh.name>
|
|
-
|
|
- Licensed under the GNU AGPL version 3 or higher.
|
|
-}
|
|
|
|
module Command.Upgrade where
|
|
|
|
import Command
|
|
import Upgrade
|
|
import Annex.Version
|
|
import Annex.Init
|
|
|
|
cmd :: Command
|
|
cmd = dontCheck
|
|
-- because an old version may not seem to exist
|
|
-- and also, this avoids automatic silent upgrades before
|
|
-- this command can start up.
|
|
repoExists $
|
|
-- avoid upgrading repo out from under daemon
|
|
noDaemonRunning $
|
|
command "upgrade" SectionMaintenance "upgrade repository"
|
|
paramNothing (seek <$$> optParser)
|
|
|
|
data UpgradeOptions = UpgradeOptions
|
|
{ autoOnly :: Bool
|
|
}
|
|
|
|
optParser :: CmdParamsDesc -> Parser UpgradeOptions
|
|
optParser _ = UpgradeOptions
|
|
<$> switch
|
|
( long "autoonly"
|
|
<> help "only do automatic upgrades"
|
|
)
|
|
|
|
seek :: UpgradeOptions -> CommandSeek
|
|
seek o = commandAction (start o)
|
|
|
|
start :: UpgradeOptions -> CommandStart
|
|
start (UpgradeOptions { autoOnly = True }) =
|
|
starting "upgrade" (ActionItemOther Nothing) (SeekInput []) $ do
|
|
getVersion >>= maybe noop checkUpgrade
|
|
next $ return True
|
|
start _ =
|
|
starting "upgrade" (ActionItemOther Nothing) (SeekInput []) $ do
|
|
whenM (isNothing <$> getVersion) $ do
|
|
initialize False Nothing Nothing
|
|
r <- upgrade False latestVersion
|
|
next $ return r
|