Commit Diff


commit - b32c452563c515bd8597b168d85510fa50d64f65
commit + 1accf02b5869ef6a1d4ec4fc3f7a1bdb6e4ff93b
blob - e7022555ae9106a6b519d797cb9e28bbdfe897b4
blob + c79dababb892c0f37a97b01e493ccdc7a996f5bb
--- lib/repository.c
+++ lib/repository.c
@@ -1156,6 +1156,8 @@ match_packed_object(struct got_object_id **unique_id,
 					goto done;
 				}
 			} else {
+				if (got_object_id_cmp(*unique_id, qid->id) == 0)
+					continue; /* packed multiple times */
 				err = got_error(GOT_ERR_AMBIGUOUS_ID);
 				goto done;
 			}
@@ -1241,6 +1243,8 @@ match_loose_object(struct got_object_id **unique_id, c
 				goto done;
 			}
 		} else {
+			if (got_object_id_cmp(*unique_id, &id) == 0)
+				continue; /* both packed and loose */
 			err = got_error(GOT_ERR_AMBIGUOUS_ID);
 			free(id_str);
 			goto done;