Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
Fix twoway_merge that passed d/f conflict marker to merged_entry().
author
Junio C Hamano
<junkio@cox.net>
Mon, 2 Apr 2007 23:29:56 +0000
(16:29 -0700)
committer
Junio C Hamano
<junkio@cox.net>
Wed, 4 Apr 2007 07:19:29 +0000
(
00:19
-0700)
When switching from one tree to another, we should not send a
marker that says "this file does not exist in the new tree -- I
am a placeholder to tell you that, and not a real blob" down to
merged_entry() as the result of the merge.
unpack-trees.c
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
2960a1d
)
diff --git
a/unpack-trees.c
b/unpack-trees.c
index 4cf83bd90a0d005f481752ef00db76668587bb50..d0367846d4d1d86a16c4c9d20dadb68fa35a94d9 100644
(file)
--- a/
unpack-trees.c
+++ b/
unpack-trees.c
@@
-711,12
+711,18
@@
int twoway_merge(struct cache_entry **src,
struct unpack_trees_options *o)
{
struct cache_entry *current = src[0];
struct unpack_trees_options *o)
{
struct cache_entry *current = src[0];
- struct cache_entry *oldtree = src[1], *newtree = src[2];
+ struct cache_entry *oldtree = src[1];
+ struct cache_entry *newtree = src[2];
if (o->merge_size != 2)
return error("Cannot do a twoway merge of %d trees",
o->merge_size);
if (o->merge_size != 2)
return error("Cannot do a twoway merge of %d trees",
o->merge_size);
+ if (oldtree == o->df_conflict_entry)
+ oldtree = NULL;
+ if (newtree == o->df_conflict_entry)
+ newtree = NULL;
+
if (current) {
if ((!oldtree && !newtree) || /* 4 and 5 */
(!oldtree && newtree &&
if (current) {
if ((!oldtree && !newtree) || /* 4 and 5 */
(!oldtree && newtree &&
@@
-724,7
+730,7
@@
int twoway_merge(struct cache_entry **src,
(oldtree && newtree &&
same(oldtree, newtree)) || /* 14 and 15 */
(oldtree && newtree &&
(oldtree && newtree &&
same(oldtree, newtree)) || /* 14 and 15 */
(oldtree && newtree &&
- !same(oldtree, newtree) && /* 18 and 19*/
+ !same(oldtree, newtree) && /* 18 and 19
*/
same(current, newtree))) {
return keep_entry(current, o);
}
same(current, newtree))) {
return keep_entry(current, o);
}