Commit Diff


commit - cd78c984bfcd3790ab24fc510f958b584d9fb202
commit + 0cc74c2680627c981bd59b4b445450ff7afa8684
blob - 4ee1df9d2b9a64e0720103a3c135b0f98b40bf19
blob + 6a99c87bcd4304e66565ac48ac46681c1e80c623
--- libexec/got-read-pack/got-read-pack.c
+++ libexec/got-read-pack/got-read-pack.c
@@ -1836,6 +1836,18 @@ paint_commits(struct got_object_id_queue *ids, int *ni
 			nskip--;
 
 		if (got_object_idset_contains(skip, &qid->id)) {
+			got_object_qid_free(qid);
+			qid = NULL;
+			continue;
+		}
+		if (color == COLOR_KEEP &&
+		    got_object_idset_contains(keep, &qid->id)) {
+			got_object_qid_free(qid);
+			qid = NULL;
+			continue;
+		}
+		if (color == COLOR_DROP &&
+		    got_object_idset_contains(drop, &qid->id)) {
 			got_object_qid_free(qid);
 			qid = NULL;
 			continue;