summaryrefslogtreecommitdiff
path: root/builtin
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2021-02-26 00:43:30 (GMT)
committerJunio C Hamano <gitster@pobox.com>2021-02-26 00:43:30 (GMT)
commit3da165ca289efd84ed648a4b87b7d9ed675937c2 (patch)
tree29b1c07ef2d0d5f308b31a137050013dd8393598 /builtin
parentf47c3328effa3016fff5d67ac233ac139ce32525 (diff)
parent3f7ba603500a5dec43a062da5235c69e10d29da6 (diff)
downloadgit-3da165ca289efd84ed648a4b87b7d9ed675937c2.zip
git-3da165ca289efd84ed648a4b87b7d9ed675937c2.tar.gz
git-3da165ca289efd84ed648a4b87b7d9ed675937c2.tar.bz2
Merge branch 'mt/checkout-index-corner-cases'
The error codepath around the "--temp/--prefix" feature of "git checkout-index" has been improved. * mt/checkout-index-corner-cases: checkout-index: omit entries with no tempname from --temp output write_entry(): fix misuses of `path` in error messages
Diffstat (limited to 'builtin')
-rw-r--r--builtin/checkout-index.c35
1 files changed, 24 insertions, 11 deletions
diff --git a/builtin/checkout-index.c b/builtin/checkout-index.c
index 4bbfc92..023e49e 100644
--- a/builtin/checkout-index.c
+++ b/builtin/checkout-index.c
@@ -23,22 +23,35 @@ static struct checkout state = CHECKOUT_INIT;
static void write_tempfile_record(const char *name, const char *prefix)
{
int i;
+ int have_tempname = 0;
if (CHECKOUT_ALL == checkout_stage) {
- for (i = 1; i < 4; i++) {
- if (i > 1)
- putchar(' ');
- if (topath[i][0])
- fputs(topath[i], stdout);
- else
- putchar('.');
+ for (i = 1; i < 4; i++)
+ if (topath[i][0]) {
+ have_tempname = 1;
+ break;
+ }
+
+ if (have_tempname) {
+ for (i = 1; i < 4; i++) {
+ if (i > 1)
+ putchar(' ');
+ if (topath[i][0])
+ fputs(topath[i], stdout);
+ else
+ putchar('.');
+ }
}
- } else
+ } else if (topath[checkout_stage][0]) {
+ have_tempname = 1;
fputs(topath[checkout_stage], stdout);
+ }
- putchar('\t');
- write_name_quoted_relative(name, prefix, stdout,
- nul_term_line ? '\0' : '\n');
+ if (have_tempname) {
+ putchar('\t');
+ write_name_quoted_relative(name, prefix, stdout,
+ nul_term_line ? '\0' : '\n');
+ }
for (i = 0; i < 4; i++) {
topath[i][0] = 0;