Windows: Avoid using unix-compat's rename, which refuses to rename directories.
Opened a bug about this: https://github.com/jystic/unix-compat/issues/10
This commit is contained in:
parent
4b37bc6493
commit
1669e80e85
17 changed files with 35 additions and 22 deletions
|
@ -35,7 +35,6 @@ module Annex.Content (
|
|||
) where
|
||||
|
||||
import System.IO.Unsafe (unsafeInterleaveIO)
|
||||
import System.PosixCompat.Files
|
||||
|
||||
import Common.Annex
|
||||
import Logs.Location
|
||||
|
|
|
@ -11,8 +11,6 @@
|
|||
|
||||
module CmdLine.Seek where
|
||||
|
||||
import System.PosixCompat.Files
|
||||
|
||||
import Common.Annex
|
||||
import Types.Command
|
||||
import Types.Key
|
||||
|
|
|
@ -9,8 +9,6 @@
|
|||
|
||||
module Command.Add where
|
||||
|
||||
import System.PosixCompat.Files
|
||||
|
||||
import Common.Annex
|
||||
import Annex.Exception
|
||||
import Command
|
||||
|
|
|
@ -9,8 +9,6 @@
|
|||
|
||||
module Command.Fix where
|
||||
|
||||
import System.PosixCompat.Files
|
||||
|
||||
import Common.Annex
|
||||
import Command
|
||||
import qualified Annex.Queue
|
||||
|
|
|
@ -7,8 +7,6 @@
|
|||
|
||||
module Command.FromKey where
|
||||
|
||||
import System.PosixCompat.Files
|
||||
|
||||
import Common.Annex
|
||||
import Command
|
||||
import qualified Annex.Queue
|
||||
|
|
|
@ -9,8 +9,6 @@
|
|||
|
||||
module Command.Fsck where
|
||||
|
||||
import System.PosixCompat.Files
|
||||
|
||||
import Common.Annex
|
||||
import Command
|
||||
import qualified Annex
|
||||
|
|
|
@ -7,8 +7,6 @@
|
|||
|
||||
module Command.Import where
|
||||
|
||||
import System.PosixCompat.Files
|
||||
|
||||
import Common.Annex
|
||||
import Command
|
||||
import qualified Annex
|
||||
|
|
|
@ -7,7 +7,6 @@
|
|||
|
||||
module Command.Indirect where
|
||||
|
||||
import System.PosixCompat.Files
|
||||
import Control.Exception.Extensible
|
||||
|
||||
import Common.Annex
|
||||
|
|
|
@ -14,7 +14,6 @@ import qualified Data.Map as M
|
|||
import Text.JSON
|
||||
import Data.Tuple
|
||||
import Data.Ord
|
||||
import System.PosixCompat.Files
|
||||
|
||||
import Common.Annex
|
||||
import qualified Remote
|
||||
|
|
|
@ -7,8 +7,6 @@
|
|||
|
||||
module Command.RecvKey where
|
||||
|
||||
import System.PosixCompat.Files
|
||||
|
||||
import Common.Annex
|
||||
import Command
|
||||
import CmdLine
|
||||
|
|
|
@ -15,7 +15,6 @@ import Data.String.Utils as X hiding (join)
|
|||
import System.FilePath as X
|
||||
import System.Directory as X
|
||||
import System.IO as X hiding (FilePath)
|
||||
import System.PosixCompat.Files as X
|
||||
#ifndef mingw32_HOST_OS
|
||||
import System.Posix.IO as X
|
||||
#endif
|
||||
|
@ -31,5 +30,6 @@ import Utility.Monad as X
|
|||
import Utility.Data as X
|
||||
import Utility.Applicative as X
|
||||
import Utility.FileSystemEncoding as X
|
||||
import Utility.PosixFiles as X
|
||||
|
||||
import Utility.PartialPrelude as X
|
||||
|
|
1
Limit.hs
1
Limit.hs
|
@ -13,7 +13,6 @@ import Data.Time.Clock.POSIX
|
|||
import qualified Data.Set as S
|
||||
import qualified Data.Map as M
|
||||
import System.Path.WildMatch
|
||||
import System.PosixCompat.Files
|
||||
|
||||
import Common.Annex
|
||||
import qualified Annex
|
||||
|
|
1
Test.hs
1
Test.hs
|
@ -17,7 +17,6 @@ import Test.Tasty.Ingredients.Rerun
|
|||
import Data.Monoid
|
||||
|
||||
import Options.Applicative hiding (command)
|
||||
import System.PosixCompat.Files
|
||||
import Control.Exception.Extensible
|
||||
import qualified Data.Map as M
|
||||
import System.IO.HVFS (SystemFS(..))
|
||||
|
|
|
@ -11,7 +11,7 @@ import Common hiding (isDirectory)
|
|||
import Utility.DirWatcher.Types
|
||||
|
||||
import System.Win32.Notify
|
||||
import qualified System.PosixCompat.Files as Files
|
||||
import qualified Utility.PosixFiles as Files
|
||||
|
||||
watchDir :: FilePath -> (FilePath -> Bool) -> WatchHooks -> IO WatchManager
|
||||
watchDir dir ignored hooks = do
|
||||
|
|
|
@ -10,7 +10,6 @@
|
|||
module Utility.Directory where
|
||||
|
||||
import System.IO.Error
|
||||
import System.PosixCompat.Files
|
||||
import System.Directory
|
||||
import Control.Exception (throw)
|
||||
import Control.Monad
|
||||
|
@ -19,6 +18,7 @@ import System.FilePath
|
|||
import Control.Applicative
|
||||
import System.IO.Unsafe (unsafeInterleaveIO)
|
||||
|
||||
import Utility.PosixFiles
|
||||
import Utility.SafeCommand
|
||||
import Utility.Tmp
|
||||
import Utility.Exception
|
||||
|
|
30
Utility/PosixFiles.hs
Normal file
30
Utility/PosixFiles.hs
Normal file
|
@ -0,0 +1,30 @@
|
|||
{- POSIX files (and compatablity wrappers).
|
||||
-
|
||||
- This is like System.PosixCompat.Files, except with a fixed rename.
|
||||
-
|
||||
- Copyright 2014 Joey Hess <joey@kitenet.net>
|
||||
-
|
||||
- Licensed under the GNU GPL version 3 or higher.
|
||||
-}
|
||||
|
||||
{-# LANGUAGE CPP #-}
|
||||
|
||||
module Utility.PosixFiles (
|
||||
module X,
|
||||
rename
|
||||
) where
|
||||
|
||||
import System.PosixCompat.Files as X hiding (rename)
|
||||
|
||||
#ifndef mingw32_HOST_OS
|
||||
import System.Posix.Files (rename)
|
||||
#else
|
||||
import System.Win32.File (moveFile)
|
||||
#endif
|
||||
|
||||
{- System.PosixCompat.Files.rename on Windows calls renameFile,
|
||||
- so cannot rename directories. Instead, use Win32 moveFile, which can. -}
|
||||
#ifdef mingw32_HOST_OS
|
||||
rename :: FilePath -> FilePath -> IO ()
|
||||
rename = moveFile
|
||||
#endif
|
2
debian/changelog
vendored
2
debian/changelog
vendored
|
@ -4,6 +4,8 @@ git-annex (5.20140128) UNRELEASED; urgency=medium
|
|||
on Windows; the lock files have been sorted out.
|
||||
* Fixed direct mode annexed content locking code, which is used to
|
||||
guard against recursive file drops.
|
||||
* Windows: Avoid using unix-compat's rename, which refuses to rename
|
||||
directories.
|
||||
|
||||
-- Joey Hess <joeyh@debian.org> Tue, 28 Jan 2014 13:57:19 -0400
|
||||
|
||||
|
|
Loading…
Reference in a new issue