summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Locations.hs5
-rw-r--r--debian/changelog8
-rw-r--r--doc/bugs/case_sensitivity_on_FAT.mdwn (renamed from doc/bugs/directory_remote_and_case_sensitivity_on_FAT.mdwn)3
3 files changed, 12 insertions, 4 deletions
diff --git a/Locations.hs b/Locations.hs
index 425e4fdcf..fb5ee517e 100644
--- a/Locations.hs
+++ b/Locations.hs
@@ -75,7 +75,10 @@ annexLocations key = [using hashDirMixed, using hashDirLower]
gitAnnexLocation :: Key -> Git.Repo -> IO FilePath
gitAnnexLocation key r
| Git.repoIsLocalBare r =
- go (Git.workTree r) $ annexLocations key
+ -- bare repositories default to hashDirLower for new
+ -- content, as it's more portable, so check locations
+ -- in reverse order
+ go (Git.workTree r) $ reverse $ annexLocations key
| otherwise =
go (Git.workTree r </> ".git") $ annexLocations key
where
diff --git a/debian/changelog b/debian/changelog
index 9cd915885..8da74af2f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,7 +1,11 @@
git-annex (3.20111123) UNRELEASED; urgency=low
- * Put a workaround in the directory special remote for strange behavior
- with VFAT filesystems on Linux (mounted with shortname=mixed)
+ * The VFAT filesystem on recent versions of Linux, when mounted with
+ shortname=mixed, does not get along well with git-annex's mixed case
+ .git/annex/objects hash directories. To better support it, bare
+ repositories (and the directory special remote) now store content
+ in all-lowercase hash directories. Mixed case hash directories are
+ still used for non-bare directories, which cannot be put in VFAT.
* Flush json output, avoiding a buffering problem that could result in
doubled output.
* Avoid needing haskell98 and other fixes for new ghc. Thanks, Mark Wright.
diff --git a/doc/bugs/directory_remote_and_case_sensitivity_on_FAT.mdwn b/doc/bugs/case_sensitivity_on_FAT.mdwn
index ae653d619..cb3424e34 100644
--- a/doc/bugs/directory_remote_and_case_sensitivity_on_FAT.mdwn
+++ b/doc/bugs/case_sensitivity_on_FAT.mdwn
@@ -42,4 +42,5 @@ I wonder if the directory remote should use hashDirLower instead of hashDirMixed
>> and for the even more unlikely configuration of a rsync special remote
>> stored on VFAT. --[[Joey]]
-[[!meta title="bare git repository not supported on VFAT"]]
+>>> Bare repositories now use lowercase. rsync is the only remaining
+>>> unsupported possibility. --[[Joey]]