git-annex/Command/Adjust.hs
Joey Hess 9f05be393e
adjust: If the adjusted branch already exists, avoid overwriting it, since it might contain changes that have not yet been propigated to the original branch.
Could not think of a foolproof way to detect if the old adjusted branch was
just behind the current branch. It's possible that the user amended the
adjusting commit at the head of the adjusted branch, for example.

I decided to bail in this situation, instead of just entering the old
branch, so that if git annex adjust succeeds the user is always in a
*current* adjusted branch, not some old and out of date one.

What could perhaps be done is enter the old branch and then update it. But
that seems too magical; the user may have rebased master or something or
may not want to propigate the changes from the old branch. Best to error
out.
2016-05-13 14:04:22 -04:00

38 lines
844 B
Haskell

{- git-annex command
-
- Copyright 2016 Joey Hess <id@joeyh.name>
-
- Licensed under the GNU GPL version 3 or higher.
-}
module Command.Adjust where
import Command
import Annex.AdjustedBranch
cmd :: Command
cmd = notBareRepo $ notDirect $ noDaemonRunning $
command "adjust" SectionSetup "enter adjusted branch"
paramNothing (seek <$$> optParser)
optParser :: CmdParamsDesc -> Parser Adjustment
optParser _ =
flag' UnlockAdjustment
( long "unlock"
<> help "unlock annexed files"
)
{- Not ready yet
<|> flag' HideMissingAdjustment
( long "hide-missing"
<> help "omit annexed files whose content is not present"
)
-}
seek :: Adjustment -> CommandSeek
seek = commandAction . start
start :: Adjustment -> CommandStart
start adj = do
checkVersionSupported
showStart "adjust" ""
next $ next $ enterAdjustedBranch adj