From: Junio C Hamano Date: Fri, 19 Oct 2018 04:34:04 +0000 (+0900) Subject: Merge branch 'sm/show-superproject-while-conflicted' X-Git-Tag: v2.20.0-rc0~158 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/d152a74e2584dd0e235c9bcc97ef6a9ed239994a?hp=a1e9dff182b19a2620aab036c22389d22b9dd0be 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 --- diff --git a/submodule.c b/submodule.c index 25c6e5d5b9..d9d3046689 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 5c715fe2cf..01abee533d 100755 --- a/t/t1500-rev-parse.sh +++ b/t/t1500-rev-parse.sh @@ -141,6 +141,22 @@ test_expect_success 'showing the superproject correctly' ' test_commit -C sub test_commit && 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 '