summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Remote/Directory.hs5
-rw-r--r--Test.hs3
-rw-r--r--debian/changelog2
-rw-r--r--doc/todo/windows_support.mdwn2
4 files changed, 8 insertions, 4 deletions
diff --git a/Remote/Directory.hs b/Remote/Directory.hs
index adf2c09dc..6cc75d2f1 100644
--- a/Remote/Directory.hs
+++ b/Remote/Directory.hs
@@ -231,6 +231,11 @@ retrieveCheap _ _ _ _ = return False
remove :: FilePath -> Key -> Annex Bool
remove d k = liftIO $ do
void $ tryIO $ allowWrite dir
+#ifdef mingw32_HOST_OS
+ {- Windows needs the files inside the directory to be writable
+ - before it can delete them. -}
+ void $ tryIO $ mapM_ allowWrite =<< dirContents dir
+#endif
catchBoolIO $ do
removeDirectoryRecursive dir
return True
diff --git a/Test.hs b/Test.hs
index 5a869fa7c..49f93ce23 100644
--- a/Test.hs
+++ b/Test.hs
@@ -802,13 +802,10 @@ test_directory_remote env = "git-annex directory remote" ~: intmpclonerepo env $
annexed_present annexedfile
git_annex env "drop" [annexedfile, "--numcopies=2"] @? "drop failed"
annexed_notpresent annexedfile
-#ifndef mingw32_HOST_OS
- -- moving from directory special remote fails on Windows TODO
git_annex env "move" [annexedfile, "--from", "foo"] @? "move --from directory remote failed"
annexed_present annexedfile
not <$> git_annex env "drop" [annexedfile, "--numcopies=2"] @? "drop failed to fail"
annexed_present annexedfile
-#endif
test_rsync_remote :: TestEnv -> Test
test_rsync_remote env = "git-annex rsync remote" ~: intmpclonerepo env $ do
diff --git a/debian/changelog b/debian/changelog
index e51636ec0..08a94dbc3 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -7,6 +7,8 @@ git-annex (4.20130803) UNRELEASED; urgency=low
when a feed has repeatedly had a problems for at least 1 day.
* importfeed: Fix handling of dots in extensions.
* Windows: Added support for encrypted special remotes.
+ * Windows: Fixed permissions problem that prevented removing files
+ from directory special remote. Directory special remotes now fully usable.
-- Joey Hess <joeyh@debian.org> Fri, 02 Aug 2013 19:26:20 -0400
diff --git a/doc/todo/windows_support.mdwn b/doc/todo/windows_support.mdwn
index 8864424f9..1204618d0 100644
--- a/doc/todo/windows_support.mdwn
+++ b/doc/todo/windows_support.mdwn
@@ -7,7 +7,7 @@ now! --[[Joey]]
support use of DOS style paths, which git-annex uses on Windows).
Must use the upstream build of git for Windows.
* Test suite works and passes, but 6 tests are disabled due to failing.
-* Directory and rsync special remotes are known buggy.
+* rsync special remotes are known buggy.
* Bad file locking, it's probably not safe to run more than one git-annex
process at the same time on Windows.
* No support for the assistant or webapp.