summaryrefslogtreecommitdiff
path: root/revision.c
diff options
context:
space:
mode:
authorKevin Willford <kewillf@microsoft.com>2016-07-29 16:19:18 (GMT)
committerJunio C Hamano <gitster@pobox.com>2016-07-29 20:23:03 (GMT)
commit683f17ec440afafd2b375fd1b7a80a1aca219b4f (patch)
tree6b0cf441fcc4069b5c128ffec4127fb610d2087f /revision.c
parentdfb7a1b4d0dafd53bf3980b3bd90668bf8d2a27f (diff)
downloadgit-683f17ec440afafd2b375fd1b7a80a1aca219b4f.zip
git-683f17ec440afafd2b375fd1b7a80a1aca219b4f.tar.gz
git-683f17ec440afafd2b375fd1b7a80a1aca219b4f.tar.bz2
patch-ids: replace the seen indicator with a commit pointer
The cherry_pick_list was looping through the original side checking the seen indicator and setting the cherry_flag on the commit. If we save off the commit in the patch_id we can set the cherry_flag on the correct commit when running through the other side when a patch_id match is found. Signed-off-by: Kevin Willford <kcwillford@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'revision.c')
-rw-r--r--revision.c18
1 files changed, 3 insertions, 15 deletions
diff --git a/revision.c b/revision.c
index d30d1c4..233ec72 100644
--- a/revision.c
+++ b/revision.c
@@ -846,7 +846,7 @@ static void cherry_pick_list(struct commit_list *list, struct rev_info *revs)
*/
if (left_first != !!(flags & SYMMETRIC_LEFT))
continue;
- commit->util = add_commit_patch_id(commit, &ids);
+ add_commit_patch_id(commit, &ids);
}
/* either cherry_mark or cherry_pick are true */
@@ -873,21 +873,9 @@ static void cherry_pick_list(struct commit_list *list, struct rev_info *revs)
id = has_commit_patch_id(commit, &ids);
if (!id)
continue;
- id->seen = 1;
- commit->object.flags |= cherry_flag;
- }
- /* Now check the original side for seen ones */
- for (p = list; p; p = p->next) {
- struct commit *commit = p->item;
- struct patch_id *ent;
-
- ent = commit->util;
- if (!ent)
- continue;
- if (ent->seen)
- commit->object.flags |= cherry_flag;
- commit->util = NULL;
+ commit->object.flags |= cherry_flag;
+ id->commit->object.flags |= cherry_flag;
}
free_patch_ids(&ids);