@@ -102,21 +102,28 @@ void setup_unpack_trees_porcelain(struct unpack_trees_options *opts,
102
102
opts -> unpack_rejects [i ].strdup_strings = 1 ;
103
103
}
104
104
105
- static void add_entry (struct unpack_trees_options * o , struct cache_entry * ce ,
106
- unsigned int set , unsigned int clear )
105
+ static void do_add_entry (struct unpack_trees_options * o , struct cache_entry * ce ,
106
+ unsigned int set , unsigned int clear )
107
107
{
108
- unsigned int size = ce_size (ce );
109
- struct cache_entry * new = xmalloc (size );
110
-
111
108
clear |= CE_HASHED | CE_UNHASHED ;
112
109
113
110
if (set & CE_REMOVE )
114
111
set |= CE_WT_REMOVE ;
115
112
113
+ ce -> next = NULL ;
114
+ ce -> ce_flags = (ce -> ce_flags & ~clear ) | set ;
115
+ add_index_entry (& o -> result , ce ,
116
+ ADD_CACHE_OK_TO_ADD | ADD_CACHE_OK_TO_REPLACE );
117
+ }
118
+
119
+ static void add_entry (struct unpack_trees_options * o , struct cache_entry * ce ,
120
+ unsigned int set , unsigned int clear )
121
+ {
122
+ unsigned int size = ce_size (ce );
123
+ struct cache_entry * new = xmalloc (size );
124
+
116
125
memcpy (new , ce , size );
117
- new -> next = NULL ;
118
- new -> ce_flags = (new -> ce_flags & ~clear ) | set ;
119
- add_index_entry (& o -> result , new , ADD_CACHE_OK_TO_ADD |ADD_CACHE_OK_TO_REPLACE );
126
+ do_add_entry (o , new , set , clear );
120
127
}
121
128
122
129
/*
@@ -587,7 +594,7 @@ static int unpack_nondirectories(int n, unsigned long mask,
587
594
588
595
for (i = 0 ; i < n ; i ++ )
589
596
if (src [i ] && src [i ] != o -> df_conflict_entry )
590
- add_entry (o , src [i ], 0 , 0 );
597
+ do_add_entry (o , src [i ], 0 , 0 );
591
598
return 0 ;
592
599
}
593
600
@@ -772,7 +779,7 @@ static int unpack_callback(int n, unsigned long mask, unsigned long dirmask, str
772
779
if (unpack_nondirectories (n , mask , dirmask , src , names , info ) < 0 )
773
780
return -1 ;
774
781
775
- if (src [0 ]) {
782
+ if (o -> merge && src [0 ]) {
776
783
if (ce_stage (src [0 ]))
777
784
mark_ce_used_same_name (src [0 ], o );
778
785
else
0 commit comments