proxy: Fix behavior when run in subdirectory of git repo.

This fixes a reversion introduced by relative path changes back last winter.

The root cause is simplifyPath "../foo" was incorrectly yielding "foo".

absPathFrom seems quite horrible. Probably most things that use it should
use </> instead.
This commit is contained in:
Joey Hess 2015-08-04 14:58:21 -04:00
parent 6e82584305
commit 3cff287b26
2 changed files with 5 additions and 3 deletions

View file

@ -30,8 +30,8 @@ import qualified "MissingH" System.Path as MissingH
import Utility.Monad import Utility.Monad
import Utility.UserInfo import Utility.UserInfo
{- Simplifies a path, removing any ".." or ".", and removing the trailing {- Simplifies a path, removing any "." component, collapsing "dir/..",
- path separator. - and removing the trailing path separator.
- -
- On Windows, preserves whichever style of path separator might be used in - On Windows, preserves whichever style of path separator might be used in
- the input FilePaths. This is done because some programs in Windows - the input FilePaths. This is done because some programs in Windows
@ -50,7 +50,8 @@ simplifyPath path = dropTrailingPathSeparator $
norm c [] = reverse c norm c [] = reverse c
norm c (p:ps) norm c (p:ps)
| p' == ".." = norm (drop 1 c) ps | p' == ".." && not (null c) && dropTrailingPathSeparator (c !! 0) /= ".." =
norm (drop 1 c) ps
| p' == "." = norm c ps | p' == "." = norm c ps
| otherwise = norm (p:c) ps | otherwise = norm (p:c) ps
where where

1
debian/changelog vendored
View file

@ -16,6 +16,7 @@ git-annex (5.20150732) UNRELEASED; urgency=medium
would normally fail because of unstaged files in the work tree, would normally fail because of unstaged files in the work tree,
make the proxied command fail the same way. make the proxied command fail the same way.
* proxy: Fix removal of files deleted by the proxied command. * proxy: Fix removal of files deleted by the proxied command.
* proxy: Fix behavior when run in subdirectory of git repo.
-- Joey Hess <id@joeyh.name> Fri, 31 Jul 2015 12:31:39 -0400 -- Joey Hess <id@joeyh.name> Fri, 31 Jul 2015 12:31:39 -0400