From c9f1281cdd937e9facd26741b3e42d60a9c5cf28 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Tue, 6 Jan 2015 15:31:24 -0400 Subject: Switch to using relative paths to the git repository. This allows the git repository to be moved while git-annex is running in it, with fewer problems. On Windows, this avoids some of the problems with the absurdly small MAX_PATH of 260 bytes. In particular, git-annex repositories should work in deeper/longer directory structures than before. See http://git-annex.branchable.com/bugs/__34__git-annex:_direct:_1_failed__34___on_Windows/ There are several possible ways this change could break git-annex: 1. If it changes its working directory while it's running, that would be Bad News. Good news everyone! git-annex never does so. It would also break thread safety, so all such things were stomped out long ago. 2. parentDir "." -> "" which is not a valid path. I had to fix one instace of this, and I should probably wipe all calls to parentDir out of the git-annex code base; it was never a good idea. 3. Things like relPathDirToFile require absolute input paths, and code assumes that the git repo path is absolute and passes it to it as-is. In the case of relPathDirToFile, I converted it to not make this assumption. Currently, the test suite has 16 failures. --- Git/CheckAttr.hs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Git/CheckAttr.hs') diff --git a/Git/CheckAttr.hs b/Git/CheckAttr.hs index bf46b938f..430154116 100644 --- a/Git/CheckAttr.hs +++ b/Git/CheckAttr.hs @@ -84,7 +84,7 @@ checkAttr (h, attrs, oldgit, currdir) want file = do - so use relative filenames. -} file' | oldgit = absPathFrom currdir file - | otherwise = relPathDirToFile currdir $ absPathFrom currdir file + | otherwise = relPathDirToFileAbs currdir $ absPathFrom currdir file oldattrvalue attr l = end bits !! 0 where bits = split sep l -- cgit v1.2.3