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.UserInfo
{- Simplifies a path, removing any ".." or ".", and removing the trailing
- path separator.
{- Simplifies a path, removing any "." component, collapsing "dir/..",
- and removing the trailing path separator.
-
- On Windows, preserves whichever style of path separator might be used in
- the input FilePaths. This is done because some programs in Windows
@ -50,7 +50,8 @@ simplifyPath path = dropTrailingPathSeparator $
norm c [] = reverse c
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
| otherwise = norm (p:c) ps
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,
make the proxied command fail the same way.
* 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