diff options
-rw-r--r-- | Utility/Rsync.hs | 13 | ||||
-rw-r--r-- | debian/changelog | 1 |
2 files changed, 13 insertions, 1 deletions
diff --git a/Utility/Rsync.hs b/Utility/Rsync.hs index b314df14e..ed1eab6f3 100644 --- a/Utility/Rsync.hs +++ b/Utility/Rsync.hs @@ -5,6 +5,8 @@ - License: BSD-2-clause -} +{-# LANGUAGE CPP #-} + module Utility.Rsync where import Common @@ -53,12 +55,18 @@ rsync = boolSystem "rsync" . rsyncParamsFixup {- On Windows, rsync is from Cygwin, and expects to get Cygwin formatted - paths to files. (It thinks that C:foo refers to a host named "C"). - - Fix up all Files in the Params appropriately. -} + - Fix up the Params appropriately. -} rsyncParamsFixup :: [CommandParam] -> [CommandParam] +#ifdef mingw32_HOST_OS rsyncParamsFixup = map fixup where fixup (File f) = File (toCygPath f) + fixup (Param s) + | rsyncUrlIsPath s = Param (toCygPath s) fixup p = p +#else +rsyncParamsFixup = id +#endif {- Checks if an rsync url involves the remote shell (ssh or rsh). - Use of such urls with rsync requires additional shell @@ -78,6 +86,9 @@ rsyncUrlIsShell s {- Checks if a rsync url is really just a local path. -} rsyncUrlIsPath :: String -> Bool rsyncUrlIsPath s +#ifdef mingw32_HOST_OS + | not (null (takeDrive s)) = True +#endif | rsyncUrlIsShell s = False | otherwise = ':' `notElem` s diff --git a/debian/changelog b/debian/changelog index 4f10dd333..7f5f9cf88 100644 --- a/debian/changelog +++ b/debian/changelog @@ -9,6 +9,7 @@ git-annex (5.20141220) UNRELEASED; urgency=medium added files even if adding one of the urls fails. * bittorrent: Fix locking problem when using addurl file:// * Windows: Fix local rsync filepath munging (fixes 26 test suite failures). + * Windows: Got the rsync special remote working. -- Joey Hess <id@joeyh.name> Mon, 22 Dec 2014 15:16:38 -0400 |