From: Johannes Schindelin <johannes.schindelin@gmx.de>
To: git@vger.kernel.org
Cc: "Junio C Hamano" <gitster@pobox.com>,
"Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>,
"Michael Rappazzo" <rappazzo@gmail.com>
Subject: [PATCH v3 0/2] Fix bugs in rev-parse's output when run in a subdirectory
Date: Fri, 17 Feb 2017 17:58:53 +0100 (CET) [thread overview]
Message-ID: <cover.1487350582.git.johannes.schindelin@gmx.de> (raw)
In-Reply-To: <cover.1486740772.git.johannes.schindelin@gmx.de>
The bug that bit me (hard!) and that triggered not only a long series of
curses but also my writing a patch and sending it to the list was that
`git rev-parse --git-path HEAD` would give *incorrect* output when run
in a subdirectory of a regular checkout, but *correct* output when run
in a subdirectory of an associated *worktree*.
I had tested the script in question quite a bit, but in a worktree. And
in production, it quietly did exactly the wrong thing.
Changes relative to v2:
- the "iffy" test in t1700 was made "uniffy"
- clarified in the commit message of 2/2 why we can get away with the
"reset then use" pattern
Johannes Schindelin (1):
rev-parse: fix several options when running in a subdirectory
Michael Rappazzo (1):
rev-parse tests: add tests executed from a subdirectory
builtin/rev-parse.c | 15 +++++++++++----
t/t1500-rev-parse.sh | 28 ++++++++++++++++++++++++++++
t/t1700-split-index.sh | 16 ++++++++++++++++
t/t2027-worktree-list.sh | 10 +++++++++-
4 files changed, 64 insertions(+), 5 deletions(-)
base-commit: 076c05393a047247ea723896289b48d6549ed7d0
Published-As: https://github.com/dscho/git/releases/tag/git-path-in-subdir-v3
Fetch-It-Via: git fetch https://github.com/dscho/git git-path-in-subdir-v3
Interdiff vs v2:
diff --git a/builtin/rev-parse.c b/builtin/rev-parse.c
index 84af2802f6f..2cfd8d2aae4 100644
--- a/builtin/rev-parse.c
+++ b/builtin/rev-parse.c
@@ -903,6 +903,7 @@ int cmd_rev_parse(int argc, const char **argv, const char *prefix)
continue;
verify_filename(prefix, arg, 1);
}
+ strbuf_release(&buf);
if (verify) {
if (revs_count == 1) {
show_rev(type, sha1, name);
@@ -912,6 +913,5 @@ int cmd_rev_parse(int argc, const char **argv, const char *prefix)
die_no_single_rev(quiet);
} else
show_default();
- strbuf_release(&buf);
return 0;
}
diff --git a/t/t1700-split-index.sh b/t/t1700-split-index.sh
index 446ff34f966..6096f2c6309 100755
--- a/t/t1700-split-index.sh
+++ b/t/t1700-split-index.sh
@@ -201,17 +201,16 @@ EOF
'
test_expect_success 'rev-parse --shared-index-path' '
- rm -rf .git &&
- test_create_repo . &&
- git update-index --split-index &&
- ls -t .git/sharedindex* | tail -n 1 >expect &&
- git rev-parse --shared-index-path >actual &&
- test_cmp expect actual &&
- mkdir work &&
- test_when_finished "rm -rf work" &&
+ test_create_repo split-index &&
(
- cd work &&
- ls -t ../.git/sharedindex* | tail -n 1 >expect &&
+ cd split-index &&
+ git update-index --split-index &&
+ echo .git/sharedindex* >expect &&
+ git rev-parse --shared-index-path >actual &&
+ test_cmp expect actual &&
+ mkdir subdirectory &&
+ cd subdirectory &&
+ echo ../.git/sharedindex* >expect &&
git rev-parse --shared-index-path >actual &&
test_cmp expect actual
)
--
2.11.1.windows.1.2.g87ad093.dirty
next prev parent reply other threads:[~2017-02-17 16:59 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-08 12:17 [PATCH] rev-parse --git-path: fix output when running in a subdirectory Johannes Schindelin
2017-02-08 18:47 ` Junio C Hamano
2017-02-09 21:05 ` Johannes Schindelin
2017-02-09 21:50 ` Junio C Hamano
2017-02-10 4:21 ` Jeff King
2017-02-09 9:48 ` Duy Nguyen
2017-02-09 13:46 ` Mike Rappazzo
2017-02-09 21:11 ` Johannes Schindelin
2017-02-09 21:33 ` Junio C Hamano
2017-02-09 22:11 ` Johannes Schindelin
2017-02-09 22:54 ` Junio C Hamano
2017-02-10 3:52 ` Mike Rappazzo
2017-02-10 15:44 ` Johannes Schindelin
2017-02-10 15:33 ` [PATCH v2 0/2] Fix bugs in rev-parse's output when run " Johannes Schindelin
2017-02-10 15:33 ` [PATCH v2 1/2] rev-parse tests: add tests executed from " Johannes Schindelin
2017-02-10 18:50 ` Junio C Hamano
2017-02-17 16:55 ` Johannes Schindelin
2017-02-10 20:25 ` Junio C Hamano
2017-02-17 16:57 ` Johannes Schindelin
2017-02-10 15:33 ` [PATCH v2 2/2] rev-parse: fix several options when running in " Johannes Schindelin
2017-02-10 18:57 ` Junio C Hamano
2017-02-17 16:53 ` Johannes Schindelin
2017-02-10 18:59 ` [PATCH v2 0/2] Fix bugs in rev-parse's output when run " Junio C Hamano
2017-02-17 16:58 ` Johannes Schindelin [this message]
2017-02-17 16:59 ` [PATCH v3 1/2] rev-parse tests: add tests executed from " Johannes Schindelin
2017-02-17 16:59 ` [PATCH v3 2/2] rev-parse: fix several options when running in " Johannes Schindelin
2017-02-17 18:25 ` [PATCH v3 0/2] Fix bugs in rev-parse's output when run " Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1487350582.git.johannes.schindelin@gmx.de \
--to=johannes.schindelin@gmx.de \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=pclouds@gmail.com \
--cc=rappazzo@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.