summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2018-10-19 04:34:04 (GMT)
committerJunio C Hamano <gitster@pobox.com>2018-10-19 04:34:04 (GMT)
commitd152a74e2584dd0e235c9bcc97ef6a9ed239994a (patch)
treea8a6534606e4f64409580b49607cd0a0f9aaada9
parenta1e9dff182b19a2620aab036c22389d22b9dd0be (diff)
parentc5cbb27cb5f0a94ac5d0882778a00add829ad9d9 (diff)
downloadgit-d152a74e2584dd0e235c9bcc97ef6a9ed239994a.zip
git-d152a74e2584dd0e235c9bcc97ef6a9ed239994a.tar.gz
git-d152a74e2584dd0e235c9bcc97ef6a9ed239994a.tar.bz2
Merge branch 'sm/show-superproject-while-conflicted'
A corner-case bugfix. * sm/show-superproject-while-conflicted: rev-parse: --show-superproject-working-tree should work during a merge
-rw-r--r--submodule.c2
-rwxr-xr-xt/t1500-rev-parse.sh16
2 files changed, 17 insertions, 1 deletions
diff --git a/submodule.c b/submodule.c
index 25c6e5d..d9d3046 100644
--- a/submodule.c
+++ b/submodule.c
@@ -1886,7 +1886,7 @@ const char *get_superproject_working_tree(void)
* We're only interested in the name after the tab.
*/
super_sub = strchr(sb.buf, '\t') + 1;
- super_sub_len = sb.buf + sb.len - super_sub - 1;
+ super_sub_len = strlen(super_sub);
if (super_sub_len > cwd_len ||
strcmp(&cwd[cwd_len - super_sub_len], super_sub))
diff --git a/t/t1500-rev-parse.sh b/t/t1500-rev-parse.sh
index 5c715fe..01abee5 100755
--- a/t/t1500-rev-parse.sh
+++ b/t/t1500-rev-parse.sh
@@ -142,6 +142,22 @@ test_expect_success 'showing the superproject correctly' '
git -C super submodule add ../sub dir/sub &&
echo $(pwd)/super >expect &&
git -C super/dir/sub rev-parse --show-superproject-working-tree >out &&
+ test_cmp expect out &&
+
+ test_commit -C super submodule_add &&
+ git -C super checkout -b branch1 &&
+ git -C super/dir/sub checkout -b branch1 &&
+ test_commit -C super/dir/sub branch1_commit &&
+ git -C super add dir/sub &&
+ test_commit -C super branch1_commit &&
+ git -C super checkout -b branch2 master &&
+ git -C super/dir/sub checkout -b branch2 master &&
+ test_commit -C super/dir/sub branch2_commit &&
+ git -C super add dir/sub &&
+ test_commit -C super branch2_commit &&
+ test_must_fail git -C super merge branch1 &&
+
+ git -C super/dir/sub rev-parse --show-superproject-working-tree >out &&
test_cmp expect out
'