summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2014-06-05 15:31:23 -0400
committerGravatar Joey Hess <joey@kitenet.net>2014-06-05 15:31:23 -0400
commitd572ad5910796510c7bd0ad494d1ba0573e998ae (patch)
treee5bb7cd3665b73c711880188219c8b8d287beffb
parent6aed1208802265448d98bdc4d07ea219cd4b5bb3 (diff)
wip
-rw-r--r--Annex/Content.hs11
-rw-r--r--debian/changelog1
-rw-r--r--doc/bugs/fails_to_get_content_from_bare_repo_on_windows.mdwn2
3 files changed, 13 insertions, 1 deletions
diff --git a/Annex/Content.hs b/Annex/Content.hs
index 9c71037de..f2d6e3249 100644
--- a/Annex/Content.hs
+++ b/Annex/Content.hs
@@ -124,7 +124,16 @@ inAnnexSafe key = inAnnex' (fromMaybe False) (Just False) go key
Nothing -> is_unlocked
check def Nothing = return def
#else
- checkindirect _ = return is_missing
+ checkindirect f = ifM (liftIO $ doesFileExist f)
+ ( do
+ v <- lockShared f
+ case v of
+ Nothing -> return is_locked
+ Just lockhandle -> do
+ dropLock lockhandle
+ return is_unlocked
+ , return is_missing
+ )
{- In Windows, see if we can take a shared lock. If so,
- remove the lock file to clean up after ourselves. -}
checkdirect contentfile lockfile =
diff --git a/debian/changelog b/debian/changelog
index 790ee90d2..64a930098 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -11,6 +11,7 @@ git-annex (5.20140530) UNRELEASED; urgency=medium
* webapp: Include ssh port in mangled hostname.
* Windows: Fix bug introduced in last release that caused files
in the git-annex branch to have lines teminated with \r.
+ * Windows: Fix retrieving of files from local bare git repositories.
-- Joey Hess <joeyh@debian.org> Thu, 29 May 2014 20:10:59 -0400
diff --git a/doc/bugs/fails_to_get_content_from_bare_repo_on_windows.mdwn b/doc/bugs/fails_to_get_content_from_bare_repo_on_windows.mdwn
index a3cd81aed..b54cbb444 100644
--- a/doc/bugs/fails_to_get_content_from_bare_repo_on_windows.mdwn
+++ b/doc/bugs/fails_to_get_content_from_bare_repo_on_windows.mdwn
@@ -139,3 +139,5 @@ I have a annex repo in external drive (a bare repo), usually synced with a macbo
upgrade supported from repository versions: 2 3 4
[[!tag confirmed]]
+
+> [[fixed|done]] --[[Joey]]