diff options
author | Joey Hess <joey@kitenet.net> | 2013-07-07 13:35:06 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2013-07-07 13:35:56 -0400 |
commit | c5c157803bf0119b697a662f278134c2bada3079 (patch) | |
tree | 06c969a2f112a511d7b6a8774fe8a8833be75a2e | |
parent | cd5e8755042eca6254111375e9040f45cb848279 (diff) |
Windows: Fix url to object when using a http remote.
annexLocations uses OS-native directory separators, but for an url,
it needs to use / even on Windows.
This is an ugly workaround. Could parameterize a lot of stuff in
annexLocations to fix it better. I suspect this is probably the only place
it's needed though.
4 files changed, 16 insertions, 1 deletions
diff --git a/Remote/Git.hs b/Remote/Git.hs index 3a277a82a..1e106f2e5 100644 --- a/Remote/Git.hs +++ b/Remote/Git.hs @@ -266,9 +266,14 @@ onLocal r a = do a keyUrls :: Git.Repo -> Key -> [String] -keyUrls r key = map tourl (annexLocations key) +keyUrls r key = map tourl locs where tourl l = Git.repoLocation r ++ "/" ++ l +#ifndef __WINDOWS__ + locs = annexLocations key +#else + locs = replace "\\" "/" $ annexLocations key +#endif dropKey :: Remote -> Key -> Annex Bool dropKey r key diff --git a/debian/changelog b/debian/changelog index 740f34ed5..582f4eab7 100644 --- a/debian/changelog +++ b/debian/changelog @@ -19,6 +19,7 @@ git-annex (4.20130628) UNRELEASED; urgency=low than the urls's path. * Windows: Look for .exe extension when searching for a command in path. * Pass -f to curl when downloading a file with it, so it propigates failure. + * Windows: Fix url to object when using a http remote. -- Joey Hess <joeyh@debian.org> Tue, 02 Jul 2013 15:40:55 -0400 diff --git a/doc/bugs/On_Windows__44___annex_get_fails_with_HTTP_Remote__44___but_believes_it_has_succeeded..mdwn b/doc/bugs/On_Windows__44___annex_get_fails_with_HTTP_Remote__44___but_believes_it_has_succeeded..mdwn index 9604042e2..b34befcc0 100644 --- a/doc/bugs/On_Windows__44___annex_get_fails_with_HTTP_Remote__44___but_believes_it_has_succeeded..mdwn +++ b/doc/bugs/On_Windows__44___annex_get_fails_with_HTTP_Remote__44___but_believes_it_has_succeeded..mdwn @@ -171,3 +171,10 @@ C:\Users\test-git-annex\test_annex>type file1.txt 192.168.0.2 - - [<datetime>] "GET /test_annex/.git/annex\objects\c96\53e\SHA256-s21--6ed275e9e01c84a57fdd99d6af793c5d587d02e699cd2c28b32b7dc90f73e729\SHA256-s21--6ed275e9e01c84a57fdd99d6af793c5d587d02e699cd2c28b32b7dc90f73e729 HTTP/1.1" 404 - 192.168.0.2 - - [<datetime>] code 404, message File not found """]] + +> This seems to be two distinct bugs. First, curl was not propigating the exit +> status. I already fixed that. +> +> Second, it's using DOS style path separators when constructing the url. +> `http://192.168.0.8:8000/test_annex/.git/annex\\objects\\c96` +> I've put in an (ugly) fix for that. [[done]] --[[Joey]] diff --git a/doc/bugs/On_Windows__44___annex_get_over_HTTP_sends_URLs_with_incorrect_separator.mdwn b/doc/bugs/On_Windows__44___annex_get_over_HTTP_sends_URLs_with_incorrect_separator.mdwn index 5b97cfa1e..08bc76ed1 100644 --- a/doc/bugs/On_Windows__44___annex_get_over_HTTP_sends_URLs_with_incorrect_separator.mdwn +++ b/doc/bugs/On_Windows__44___annex_get_over_HTTP_sends_URLs_with_incorrect_separator.mdwn @@ -182,3 +182,5 @@ git-annex: get: 1 failed 192.168.0.2 - - [<datetime>] code 404, message File not found 192.168.0.2 - - [<datetime>] "GET /test_annex/.git/annex%5Cobjects%5CJ9%5Cm6%5CSHA256-s21--6ed275e9e01c84a57fdd99d6af793c5d587d02e699cd2c28b32b7dc90f73e729%5CSHA256-s21--6ed275e9e01c84a57fdd99d6af793c5d587d02e699cd2c28b32b7dc90f73e729 HTTP/1.1" 404 - """]] + +> [[fixed|done]] --[[Joey]] |