summaryrefslogtreecommitdiff
path: root/Upgrade
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2011-10-03 15:41:25 -0400
committerGravatar Joey Hess <joey@kitenet.net>2011-10-03 15:41:25 -0400
commitf77979b8b5ef1dc59b45c03ba6febfacdf904491 (patch)
tree952982098f70079e67347fce3e2fd99e515a708e /Upgrade
parent6dfb94b2d783ef848c651ab20818b05c8a0504a6 (diff)
improved git-annex branch changing
All changes to files in the branch are now made via pure functions that transform the old file into the new. This will allow adding locking to prevent read/write races. It also makes the code nicer, and purer. I noticed a behavior change, really a sort of bug fix. Before, 'git annex untrust foo --trust bar' would change both trust levels permanantly, now the --trust doesn't get stored.
Diffstat (limited to 'Upgrade')
-rw-r--r--Upgrade/V2.hs4
1 files changed, 2 insertions, 2 deletions
diff --git a/Upgrade/V2.hs b/Upgrade/V2.hs
index e99a7cf81..4e686288f 100644
--- a/Upgrade/V2.hs
+++ b/Upgrade/V2.hs
@@ -87,8 +87,8 @@ inject :: FilePath -> FilePath -> Annex ()
inject source dest = do
g <- Annex.gitRepo
new <- liftIO (readFile $ olddir g </> source)
- prev <- Branch.get dest
- Branch.change dest $ unlines $ nub $ lines prev ++ lines new
+ Branch.change dest $ \prev ->
+ unlines $ nub $ lines prev ++ lines new
showProgress
logFiles :: FilePath -> Annex [FilePath]