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:
parent
6e82584305
commit
3cff287b26
2 changed files with 5 additions and 3 deletions
|
@ -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
1
debian/changelog
vendored
|
@ -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
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue