Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
merge-recursive: Small cleanups for conflict_rename_rename_1to2
author
Elijah Newren
<newren@gmail.com>
Fri, 12 Aug 2011 05:20:14 +0000
(23:20 -0600)
committer
Junio C Hamano
<gitster@pobox.com>
Sun, 14 Aug 2011 21:19:38 +0000
(14:19 -0700)
Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
merge-recursive.c
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
c52ff85
)
diff --git
a/merge-recursive.c
b/merge-recursive.c
index f64cfc582a80e22d20f95784c3ed0be25d9c3964..8020d4b5139fbb7c2661e4e032845c703542605e 100644
(file)
--- a/
merge-recursive.c
+++ b/
merge-recursive.c
@@
-964,58
+964,55
@@
static void conflict_rename_delete(struct merge_options *o,
}
static void conflict_rename_rename_1to2(struct merge_options *o,
}
static void conflict_rename_rename_1to2(struct merge_options *o,
- struct diff_filepair *pair1,
- const char *branch1,
- struct diff_filepair *pair2,
- const char *branch2)
+ struct rename_conflict_info *ci)
{
/* One file was renamed in both branches, but to different names. */
{
/* One file was renamed in both branches, but to different names. */
+ struct diff_filespec *one = ci->pair1->one;
+ struct diff_filespec *a = ci->pair1->two;
+ struct diff_filespec *b = ci->pair2->two;
+ const char *dst_name_a = a->path;
+ const char *dst_name_b = b->path;
char *del[2];
int delp = 0;
char *del[2];
int delp = 0;
- const char *src = pair1->one->path;
- const char *ren1_dst = pair1->two->path;
- const char *ren2_dst = pair2->two->path;
- const char *dst_name1 = ren1_dst;
- const char *dst_name2 = ren2_dst;
output(o, 1, "CONFLICT (rename/rename): "
"Rename \"%s\"->\"%s\" in branch \"%s\" "
"rename \"%s\"->\"%s\" in \"%s\"%s",
output(o, 1, "CONFLICT (rename/rename): "
"Rename \"%s\"->\"%s\" in branch \"%s\" "
"rename \"%s\"->\"%s\" in \"%s\"%s",
-
src, pair1->two->path,
branch1,
-
src, pair2->two->path,
branch2,
+
one->path, a->path, ci->
branch1,
+
one->path, b->path, ci->
branch2,
o->call_depth ? " (left unresolved)" : "");
o->call_depth ? " (left unresolved)" : "");
- if (dir_in_way(
ren1_dst
, !o->call_depth)) {
- dst_name
1 = del[delp++] = unique_path(o, ren1_dst,
branch1);
+ if (dir_in_way(
a->path
, !o->call_depth)) {
+ dst_name
_a = del[delp++] = unique_path(o, a->path, ci->
branch1);
output(o, 1, "%s is a directory in %s adding as %s instead",
output(o, 1, "%s is a directory in %s adding as %s instead",
-
ren1_dst, branch2, dst_name1
);
+
a->path, ci->branch2, dst_name_a
);
}
}
- if (dir_in_way(
ren2_dst
, !o->call_depth)) {
- dst_name
2 = del[delp++] = unique_path(o, ren2_dst,
branch2);
+ if (dir_in_way(
b->path
, !o->call_depth)) {
+ dst_name
_b = del[delp++] = unique_path(o, b->path, ci->
branch2);
output(o, 1, "%s is a directory in %s adding as %s instead",
output(o, 1, "%s is a directory in %s adding as %s instead",
-
ren2_dst, branch1, dst_name2
);
+
b->path, ci->branch1, dst_name_b
);
}
if (o->call_depth) {
struct merge_file_info mfi;
}
if (o->call_depth) {
struct merge_file_info mfi;
- mfi = merge_file(o,
src
,
-
pair1->one->sha1, pair1->
one->mode,
-
pair1->two->sha1, pair1->two
->mode,
-
pair2->two->sha1, pair2->two
->mode,
-
branch1,
branch2);
+ mfi = merge_file(o,
one->path
,
+
one->sha1,
one->mode,
+
a->sha1, a
->mode,
+
b->sha1, b
->mode,
+
ci->branch1, ci->
branch2);
/*
* FIXME: For rename/add-source conflicts (if we could detect
* such), this is wrong. We should instead find a unique
* pathname and then either rename the add-source file to that
* unique path, or use that unique path instead of src here.
*/
/*
* FIXME: For rename/add-source conflicts (if we could detect
* such), this is wrong. We should instead find a unique
* pathname and then either rename the add-source file to that
* unique path, or use that unique path instead of src here.
*/
- update_file(o, 0, mfi.sha, mfi.mode,
src
);
- remove_file_from_cache(
ren1_dst
);
- remove_file_from_cache(
ren2_dst
);
+ update_file(o, 0, mfi.sha, mfi.mode,
one->path
);
+ remove_file_from_cache(
a->path
);
+ remove_file_from_cache(
b->path
);
} else {
} else {
- update_stages(
ren1_dst, NULL, pair1->two
, NULL);
- update_stages(
ren2_dst, NULL, NULL, pair2->two
);
+ update_stages(
a->path, NULL, a
, NULL);
+ update_stages(
b->path, NULL, NULL, b
);
- update_file(o, 0,
pair1->two->sha1, pair1->two->mode, dst_name1
);
- update_file(o, 0,
pair2->two->sha1, pair2->two->mode, dst_name2
);
+ update_file(o, 0,
a->sha1, a->mode, dst_name_a
);
+ update_file(o, 0,
b->sha1, b->mode, dst_name_b
);
}
while (delp--)
free(del[delp]);
}
while (delp--)
free(del[delp]);
@@
-1503,10
+1500,7
@@
static int process_entry(struct merge_options *o,
break;
case RENAME_ONE_FILE_TO_TWO:
clean_merge = 0;
break;
case RENAME_ONE_FILE_TO_TWO:
clean_merge = 0;
- conflict_rename_rename_1to2(o, conflict_info->pair1,
- conflict_info->branch1,
- conflict_info->pair2,
- conflict_info->branch2);
+ conflict_rename_rename_1to2(o, conflict_info);
break;
default:
entry->processed = 0;
break;
default:
entry->processed = 0;