improve alwayscommit=false mode
Now changes are staged into the branch's index, but not committed, which avoids growing a large journal. And sync and merge always explicitly commit, ensuring that even when they do nothing else, they commit the staged changes. Added a flag file to indicate that the branch's journal contains uncommitted changes. (Could use git ls-files, but don't want to run that every time.) In the future, this ability to have uncommitted changes staged in the journal might be used on remotes after a series of oneshot commands.
This commit is contained in:
parent
b49c0c2633
commit
1f73db3469
6 changed files with 44 additions and 7 deletions
|
@ -312,9 +312,11 @@ getKeysPresent' dir = do
|
|||
saveState :: Bool -> Annex ()
|
||||
saveState oneshot = do
|
||||
Annex.Queue.flush False
|
||||
alwayscommit <- Git.configTrue <$> fromRepo (Git.Config.get "annex.alwayscommit" "true")
|
||||
unless (oneshot || not alwayscommit) $ do
|
||||
Annex.Branch.commit "update"
|
||||
unless oneshot $ do
|
||||
alwayscommit <- Git.configTrue <$> fromRepo (Git.Config.get "annex.alwayscommit" "true")
|
||||
if alwayscommit
|
||||
then Annex.Branch.commit "update"
|
||||
else Annex.Branch.stage
|
||||
|
||||
{- Downloads content from any of a list of urls. -}
|
||||
downloadUrl :: [Url.URLString] -> FilePath -> Annex Bool
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue