diff options
author | Joey Hess <joeyh@joeyh.name> | 2016-03-29 13:52:13 -0400 |
---|---|---|
committer | Joey Hess <joeyh@joeyh.name> | 2016-03-29 13:54:42 -0400 |
commit | d3eac61d33603ef2896be9e4b20217e63505a4d6 (patch) | |
tree | b97d6480e05ee7d4dc22ea595d1309d227ac5729 /Annex | |
parent | 2c2a41bce93797f348604fd11fdbd77fe12eaa9c (diff) |
init: Automatically enter the adjusted unlocked branch when in a v6 repo on a filesystem not supporting symlinks.
Diffstat (limited to 'Annex')
-rw-r--r-- | Annex/AdjustedBranch.hs | 13 | ||||
-rw-r--r-- | Annex/Init.hs | 12 |
2 files changed, 21 insertions, 4 deletions
diff --git a/Annex/AdjustedBranch.hs b/Annex/AdjustedBranch.hs index b2ca7dbf6..8b4712db1 100644 --- a/Annex/AdjustedBranch.hs +++ b/Annex/AdjustedBranch.hs @@ -14,6 +14,7 @@ module Annex.AdjustedBranch ( fromAdjustedBranch, getAdjustment, enterAdjustedBranch, + adjustToCrippledFileSystem, updateAdjustedBranch, propigateAdjustedCommits, ) where @@ -151,6 +152,18 @@ enterAdjustedBranch adj = go =<< originalBranch ] go Nothing = error "not on any branch!" +adjustToCrippledFileSystem :: Annex () +adjustToCrippledFileSystem = do + warning "Entering an adjusted branch where files are unlocked as this filesystem does not support locked files." + whenM (isNothing <$> originalBranch) $ + void $ inRepo $ Git.Branch.commitCommand Git.Branch.AutomaticCommit + [ Param "--quiet" + , Param "--allow-empty" + , Param "-m" + , Param "commit before entering adjusted unlocked branch" + ] + enterAdjustedBranch UnlockAdjustment + adjustBranch :: Adjustment -> OrigBranch -> Annex AdjBranch adjustBranch adj origbranch = do sha <- adjust adj origbranch diff --git a/Annex/Init.hs b/Annex/Init.hs index 7501d9b8f..99f8ece2c 100644 --- a/Annex/Init.hs +++ b/Annex/Init.hs @@ -33,6 +33,7 @@ import Annex.UUID import Annex.Link import Config import Annex.Direct +import Annex.AdjustedBranch import Annex.Environment import Annex.Hook import Annex.InodeSentinal @@ -92,10 +93,13 @@ initialize' mversion = do whenM versionSupportsUnlockedPointers $ do configureSmudgeFilter Database.Keys.scanAssociatedFiles - ifM (crippledFileSystem <&&> (not <$> isBare) <&&> (not <$> versionSupportsUnlockedPointers)) - ( do - enableDirectMode - setDirect True + ifM (crippledFileSystem <&&> (not <$> isBare)) + ( ifM versionSupportsUnlockedPointers + ( adjustToCrippledFileSystem + , do + enableDirectMode + setDirect True + ) -- Handle case where this repo was cloned from a -- direct mode repo , unlessM isBare |