[PATCH v7 9/9] submodule: fix normalization to handle repeated ./
- From
Jon Seymour <jon.seymour@gmail.com>
- Date
- May 27, 2012, 15:34 UTC
- Message-ID
- <1338132851-23497-10-git-send-email-jon.seymour@gmail.com>
- In-Reply-To
- <1338132851-23497-1-git-send-email-jon.seymour@gmail.com>
Currently path/./foo/./bar is denormalized correctly, but path/foo/././bar is not.
We fix the normalization script to allow repeated application of the ./ -> / normalization in the same way that foo/.. is handled - by moving it inside a sed loop.
The existing sed label, start, is renamed to fooslashdotdotslash to indicate which of the two loops is being refered to by the second branch directive.
Signed-off-by: Jon Seymour <jon.seymour@gmail.com> --- git-submodule.sh | 8 +++++--- t/t7400-submodule-basic.sh | 6 +++--- 2 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/git-submodule.sh b/git-submodule.sh index 1f0983c..8f3bc71 100755 --- a/git-submodule.sh +++ b/git-submodule.sh @@ -229,10 +229,12 @@ normalize_path() sed -e ' s|//*|/|g s|^\(\./\)*|| - s|/\./|/|g - :start + :slashdotslash + s|/\./|/| + tslashdotslash + :fooslashdotdotslash s|\([^/]*\)/\.\./|| - tstart + tfooslashdotdotslash s|/*$|| ' } diff --git a/t/t7400-submodule-basic.sh b/t/t7400-submodule-basic.sh index b01f479..61887b2 100755 --- a/t/t7400-submodule-basic.sh +++ b/t/t7400-submodule-basic.sh @@ -499,7 +499,7 @@ test_expect_success '../subrepo works with URL - ssh://hostname/repo' ' ) ' -test_expect_failure 'relative path works with URL - ssh://hostname/path/././repo' ' +test_expect_success 'relative path works with URL - ssh://hostname/path/././repo' ' ( cd reltest && cp pristine-.git-config .git/config && @@ -510,7 +510,7 @@ test_expect_failure 'relative path works with URL - ssh://hostname/path/././repo ) ' -test_expect_failure 'relative path works with URL - ssh://hostname/path/detour/././../repo' ' +test_expect_success 'relative path works with URL - ssh://hostname/path/detour/././../repo' ' ( cd reltest && cp pristine-.git-config .git/config && @@ -685,7 +685,7 @@ test_expect_success 'relative path works with user@host:path/to/./repo' ' ) ' -test_expect_failure 'relative path works with user@host:path/to/././repo' ' +test_expect_success 'relative path works with user@host:path/to/././repo' ' ( cd reltest && cp pristine-.git-config .git/config &&
-- 1.7.10.2.656.g24a6219