@@ -454,8 +454,8 @@ static int real_merge(struct merge_tree_options *o,
merge_get_conflicted_files(&result, &conflicted_files);
for (i = 0; i < conflicted_files.nr; i++) {
- const char *name = conflicted_files.items[i].string;
struct stage_info *c = conflicted_files.items[i].util;
+ const char *name = c->path;
if (!o->name_only)
printf("%06o %s %d\t",
c->mode, oid_to_hex(&c->oid), c->stage);
@@ -4488,7 +4488,7 @@ void merge_get_conflicted_files(struct merge_result *result,
if (!(ci->filemask & (1ul << i)))
continue;
- si = xmalloc(sizeof(*si));
+ FLEX_ALLOC_STR(si, path, ci->pathnames[i]);
si->stage = i+1;
si->mode = ci->stages[i].mode;
oidcpy(&si->oid, &ci->stages[i].oid);
@@ -94,6 +94,7 @@ struct stage_info {
struct object_id oid;
int mode;
int stage;
+ const char path[FLEX_ARRAY];
};
/*
@@ -125,7 +125,7 @@ test_expect_success 'test conflict notices and such' '
cat <<-EOF >expect &&
HASH
greeting
- whatever~side1
+ whatever
Auto-merging greeting
CONFLICT (content): Merge conflict in greeting
@@ -153,7 +153,7 @@ test_expect_success 'Just the conflicted files without the messages' '
test_expect_code 1 git merge-tree --write-tree --no-messages --name-only side1 side2 >out &&
anonymize_hash out >actual &&
- test_write_lines HASH greeting whatever~side1 >expect &&
+ test_write_lines HASH greeting whatever >expect &&
test_cmp expect actual
'
@@ -168,14 +168,14 @@ test_expect_success 'Check conflicted oids and modes without messages' '
100644 HASH 1Qgreeting
100644 HASH 2Qgreeting
100644 HASH 3Qgreeting
- 100644 HASH 1Qwhatever~side1
- 100644 HASH 2Qwhatever~side1
+ 100644 HASH 1Qwhatever
+ 100644 HASH 2Qwhatever
EOF
test_cmp expect actual &&
# Check the actual hashes against the `ls-files -u` output too
- tail -n +2 out | sed -e s/side1/HEAD/ >actual &&
+ tail -n +2 out | sed -e s/whatever/whatever~HEAD/ >actual &&
test_cmp conflicted-file-info actual
'
@@ -200,11 +200,11 @@ test_expect_success 'NUL terminated conflicted file "lines"' '
100644 HASH 1Qgreeting
100644 HASH 2Qgreeting
100644 HASH 3Qgreeting
- 100644 HASH 1Qwhatever~tweak1
- 100644 HASH 2Qwhatever~tweak1
- 100644 HASH 1QΑυτά μου φαίνονται κινέζικα
+ 100644 HASH 1Qwhatever
+ 100644 HASH 2Qwhatever
+ 100644 HASH 1Qnumbers
100644 HASH 2QΑυτά μου φαίνονται κινέζικα
- 100644 HASH 3QΑυτά μου φαίνονται κινέζικα
+ 100644 HASH 3Qnumbers
EOF