contrib/subtree: Handle '--prefix' argument with a slash appended

'git subtree merge' will fail if the argument of '--prefix' has a slash
appended.

Signed-off-by: Techlive Zheng <techlivezheng@gmail.com>
Signed-off-by: David A. Greene <greened@obbligato.org>
Signed-off-by: Jeff King <peff@peff.net>
This commit is contained in:
Techlive Zheng 2015-11-12 20:32:36 -06:00 committed by Jeff King
parent 43711746bd
commit d16031caf1
2 changed files with 21 additions and 1 deletions

View File

@ -90,7 +90,7 @@ while [ $# -gt 0 ]; do
--annotate) annotate="$1"; shift ;; --annotate) annotate="$1"; shift ;;
--no-annotate) annotate= ;; --no-annotate) annotate= ;;
-b) branch="$1"; shift ;; -b) branch="$1"; shift ;;
-P) prefix="$1"; shift ;; -P) prefix="${1%/}"; shift ;;
-m) message="$1"; shift ;; -m) message="$1"; shift ;;
--no-prefix) prefix= ;; --no-prefix) prefix= ;;
--onto) onto="$1"; shift ;; --onto) onto="$1"; shift ;;

View File

@ -257,6 +257,26 @@ test_expect_success 'merge the added subproj again, should do nothing' '
) )
' '
next_test
test_expect_success 'merge new subproj history into subdir/ with a slash appended to the argument of --prefix' '
test_create_repo "$test_count" &&
test_create_repo "$test_count/subproj" &&
test_create_commit "$test_count" main1 &&
test_create_commit "$test_count/subproj" sub1 &&
(
cd "$test_count" &&
git fetch ./subproj master &&
git subtree add --prefix=subdir/ FETCH_HEAD
) &&
test_create_commit "$test_count/subproj" sub2 &&
(
cd "$test_count" &&
git fetch ./subproj master &&
git subtree merge --prefix=subdir/ FETCH_HEAD &&
check_equal "$(last_commit_message)" "Merge commit '\''$(git rev-parse FETCH_HEAD)'\''"
)
'
# #
# Tests for 'git subtree split' # Tests for 'git subtree split'
# #