117
void add_pending_object(struct rev_info *revs, struct object *obj, const char *name)
119
add_pending_object_with_mode(revs, obj, name, S_IFINVALID);
122
void add_pending_object_with_mode(struct rev_info *revs, struct object *obj, const char *name, unsigned mode)
117
static void add_pending_object_with_mode(struct rev_info *revs, struct object *obj, const char *name, unsigned mode)
124
119
if (revs->no_walk && (obj->flags & UNINTERESTING))
125
120
die("object ranges do not make sense when not walking revisions");
121
if (revs->reflog_info && obj->type == OBJ_COMMIT &&
122
add_reflog_for_walk(revs->reflog_info,
123
(struct commit *)obj, name))
126
125
add_object_array_with_mode(obj, name, &revs->pending, mode);
127
if (revs->reflog_info && obj->type == OBJ_COMMIT)
128
add_reflog_for_walk(revs->reflog_info,
129
(struct commit *)obj, name);
128
void add_pending_object(struct rev_info *revs, struct object *obj, const char *name)
130
add_pending_object_with_mode(revs, obj, name, S_IFINVALID);
132
133
static struct object *get_reference(struct rev_info *revs, const char *name, const unsigned char *sha1, unsigned int flags)
262
263
options->has_changes = 1;
265
int rev_compare_tree(struct rev_info *revs, struct tree *t1, struct tree *t2)
266
static int rev_compare_tree(struct rev_info *revs, struct tree *t1, struct tree *t2)
268
269
return REV_TREE_NEW;
459
460
left_first = left_count < right_count;
460
461
init_patch_ids(&ids);
462
if (revs->diffopt.nr_paths) {
463
ids.diffopts.nr_paths = revs->diffopt.nr_paths;
464
ids.diffopts.paths = revs->diffopt.paths;
465
ids.diffopts.pathlens = revs->diffopt.pathlens;
462
468
/* Compute patch-ids for one side */
463
469
for (p = list; p; p = p->next) {
1128
1136
if (!strncmp(arg, "--date=", 7)) {
1129
1137
if (!strcmp(arg + 7, "relative"))
1130
1138
revs->date_mode = DATE_RELATIVE;
1139
else if (!strcmp(arg + 7, "iso8601") ||
1140
!strcmp(arg + 7, "iso"))
1141
revs->date_mode = DATE_ISO8601;
1142
else if (!strcmp(arg + 7, "rfc2822") ||
1143
!strcmp(arg + 7, "rfc"))
1144
revs->date_mode = DATE_RFC2822;
1145
else if (!strcmp(arg + 7, "short"))
1146
revs->date_mode = DATE_SHORT;
1131
1147
else if (!strcmp(arg + 7, "local"))
1132
1148
revs->date_mode = DATE_LOCAL;
1133
1149
else if (!strcmp(arg + 7, "default"))
1152
1172
add_message_grep(revs, arg+7);
1175
if (!strcmp(arg, "--extended-regexp") ||
1176
!strcmp(arg, "-E")) {
1177
regflags |= REG_EXTENDED;
1180
if (!strcmp(arg, "--regexp-ignore-case") ||
1181
!strcmp(arg, "-i")) {
1182
regflags |= REG_ICASE;
1155
1185
if (!strcmp(arg, "--all-match")) {
1168
1198
revs->reverse ^= 1;
1201
if (!strcmp(arg, "--no-walk")) {
1205
if (!strcmp(arg, "--do-walk")) {
1172
1210
opts = diff_opt_parse(&revs->diffopt, argv+i, argc-i);
1173
1211
if (opts > 0) {
1174
if (strcmp(argv[i], "-z"))
1213
1252
add_pending_object_with_mode(revs, object, def, mode);
1255
/* Did the user ask for any diff output? Run the diff! */
1256
if (revs->diffopt.output_format & ~DIFF_FORMAT_NO_OUTPUT)
1259
/* Pickaxe needs diffs */
1260
if (revs->diffopt.pickaxe)
1216
1263
if (revs->topo_order)
1217
1264
revs->limited = 1;
1219
1266
if (revs->prune_data) {
1220
1267
diff_tree_setup_paths(revs->prune_data, &revs->pruning);
1221
revs->prune_fn = try_to_simplify_commit;
1268
/* Can't prune commits with rename following: the paths change.. */
1269
if (!revs->diffopt.follow_renames)
1270
revs->prune_fn = try_to_simplify_commit;
1222
1271
if (!revs->full_diff)
1223
1272
diff_tree_setup_paths(revs->prune_data, &revs->diffopt);
1350
static void remove_duplicate_parents(struct commit *commit)
1352
struct commit_list **pp, *p;
1354
/* Examine existing parents while marking ones we have seen... */
1355
pp = &commit->parents;
1356
while ((p = *pp) != NULL) {
1357
struct commit *parent = p->item;
1358
if (parent->object.flags & TMP_MARK) {
1362
parent->object.flags |= TMP_MARK;
1365
/* ... and clear the temporary mark */
1366
for (p = commit->parents; p; p = p->next)
1367
p->item->object.flags &= ~TMP_MARK;
1298
1370
static int rewrite_parents(struct rev_info *revs, struct commit *commit)
1300
1372
struct commit_list **pp = &commit->parents;