apply --root: thinkofix.
The end of a string is string[length-1], not string[length+1]. I pointed it out during the review, but I forgot about it when applying the patch. This should fix it. Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
@ -3130,10 +3130,10 @@ int cmd_apply(int argc, const char **argv, const char *unused_prefix)
|
|||||||
inaccurate_eof = 1;
|
inaccurate_eof = 1;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (!strncmp(arg, "--root=", strlen("--root="))) {
|
if (!prefixcmp(arg, "--root=")) {
|
||||||
arg += strlen("--root=");
|
arg += strlen("--root=");
|
||||||
root_len = strlen(arg);
|
root_len = strlen(arg);
|
||||||
if (root_len && arg[root_len + 1] != '/') {
|
if (root_len && arg[root_len - 1] != '/') {
|
||||||
char *new_root;
|
char *new_root;
|
||||||
root = new_root = xmalloc(root_len + 2);
|
root = new_root = xmalloc(root_len + 2);
|
||||||
strcpy(new_root, arg);
|
strcpy(new_root, arg);
|
||||||
|
@ -8,7 +8,9 @@ test_expect_success 'setup' '
|
|||||||
|
|
||||||
mkdir -p some/sub/dir &&
|
mkdir -p some/sub/dir &&
|
||||||
echo Hello > some/sub/dir/file &&
|
echo Hello > some/sub/dir/file &&
|
||||||
git add some/sub/dir/file
|
git add some/sub/dir/file &&
|
||||||
|
git commit -m initial &&
|
||||||
|
git tag initial
|
||||||
|
|
||||||
'
|
'
|
||||||
|
|
||||||
@ -21,7 +23,7 @@ diff a/bla/blub/dir/file b/bla/blub/dir/file
|
|||||||
+Bello
|
+Bello
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
test_expect_success 'apply --root -p --index' '
|
test_expect_success 'apply --root -p (1)' '
|
||||||
|
|
||||||
git apply --root=some/sub -p3 --index patch &&
|
git apply --root=some/sub -p3 --index patch &&
|
||||||
test Bello = $(git show :some/sub/dir/file) &&
|
test Bello = $(git show :some/sub/dir/file) &&
|
||||||
@ -29,4 +31,13 @@ test_expect_success 'apply --root -p --index' '
|
|||||||
|
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success 'apply --root -p (2) ' '
|
||||||
|
|
||||||
|
git reset --hard initial &&
|
||||||
|
git apply --root=some/sub/ -p3 --index patch &&
|
||||||
|
test Bello = $(git show :some/sub/dir/file) &&
|
||||||
|
test Bello = $(cat some/sub/dir/file)
|
||||||
|
|
||||||
|
'
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
Reference in New Issue
Block a user