summaryrefslogtreecommitdiff
path: root/Command
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2012-02-25 16:11:47 -0400
committerGravatar Joey Hess <joey@kitenet.net>2012-02-25 16:18:55 -0400
commit1f73db3469e29448bcb1520893de11b23da6fb1f (patch)
treeb16fe0b9552818d16067e7cbb7c3403b73fe5e94 /Command
parentb49c0c2633d662a7c91a609aec74f95f189129ad (diff)
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.
Diffstat (limited to 'Command')
-rw-r--r--Command/Merge.hs2
-rw-r--r--Command/Sync.hs1
2 files changed, 3 insertions, 0 deletions
diff --git a/Command/Merge.hs b/Command/Merge.hs
index c1f7e899a..0f4661497 100644
--- a/Command/Merge.hs
+++ b/Command/Merge.hs
@@ -26,4 +26,6 @@ start = do
perform :: CommandPerform
perform = do
Annex.Branch.update
+ -- commit explicitly, in case no remote branches were merged
+ Annex.Branch.commit "update"
next $ return True
diff --git a/Command/Sync.hs b/Command/Sync.hs
index 8e237ae84..f7ebba6f5 100644
--- a/Command/Sync.hs
+++ b/Command/Sync.hs
@@ -75,6 +75,7 @@ commit = do
showStart "commit" ""
next $ next $ do
showOutput
+ Annex.Branch.commit "update"
-- Commit will fail when the tree is clean, so ignore failure.
_ <- inRepo $ Git.Command.runBool "commit"
[Param "-a", Param "-m", Param "git-annex automatic sync"]