Make sure get_sha1 does not accept ambiguous sha1 prefix.

The original code did not even check alternates, and was confused if
an unpacked object was uniquely found when there was another object
that shares the same prefix in the pack.

Signed-off-by: Junio C Hamano <junkio@cox.net>
1 file changed
tree: d2dee021c90705a5a6f0f13593c6673469df7377
  1. arm/
  2. compat/
  3. debian/
  4. Documentation/
  5. mozilla-sha1/
  6. ppc/
  7. t/
  8. templates/
  9. .gitignore
  10. apply.c
  11. blob.c
  12. blob.h
  13. cache.h
  14. cat-file.c
  15. checkout-index.c
  16. clone-pack.c
  17. cmd-rename.sh
  18. commit-tree.c
  19. commit.c
  20. commit.h
  21. connect.c
  22. convert-objects.c
  23. COPYING
  24. count-delta.c
  25. count-delta.h
  26. csum-file.c
  27. csum-file.h
  28. daemon.c
  29. date.c
  30. delta.h
  31. diff-delta.c
  32. diff-files.c
  33. diff-index.c
  34. diff-stages.c
  35. diff-tree.c
  36. diff.c
  37. diff.h
  38. diffcore-break.c
  39. diffcore-order.c
  40. diffcore-pathspec.c
  41. diffcore-pickaxe.c
  42. diffcore-rename.c
  43. diffcore.h
  44. entry.c
  45. epoch.c
  46. epoch.h
  47. fetch-pack.c
  48. fetch.c
  49. fetch.h
  50. fsck-objects.c
  51. get-tar-commit-id.c
  52. git-add.sh
  53. git-applymbox.sh
  54. git-applypatch.sh
  55. git-archimport.perl
  56. git-bisect.sh
  57. git-branch.sh
  58. git-checkout.sh
  59. git-cherry.sh
  60. git-clone.sh
  61. git-commit.sh
  62. git-core.spec.in
  63. git-count-objects.sh
  64. git-cvsimport.perl
  65. git-diff.sh
  66. git-external-diff-script
  67. git-fetch.sh
  68. git-fmt-merge-msg.perl
  69. git-format-patch.sh
  70. git-grep.sh
  71. git-log.sh
  72. git-ls-remote.sh
  73. git-merge-octopus.sh
  74. git-merge-one-file.sh
  75. git-merge-recursive.py
  76. git-merge-resolve.sh
  77. git-merge-stupid.sh
  78. git-merge.sh
  79. git-octopus.sh
  80. git-parse-remote.sh
  81. git-prune.sh
  82. git-pull.sh
  83. git-push.sh
  84. git-rebase.sh
  85. git-relink.perl
  86. git-rename.perl
  87. git-repack.sh
  88. git-request-pull.sh
  89. git-reset.sh
  90. git-resolve.sh
  91. git-revert.sh
  92. git-send-email.perl
  93. git-sh-setup.sh
  94. git-shortlog.perl
  95. git-status.sh
  96. git-tag.sh
  97. git-verify-tag.sh
  98. git-whatchanged.sh
  99. git.sh
  100. gitk
  101. gitMergeCommon.py
  102. hash-object.c
  103. http-fetch.c
  104. ident.c
  105. index.c
  106. init-db.c
  107. INSTALL
  108. local-fetch.c
  109. ls-files.c
  110. ls-tree.c
  111. mailinfo.c
  112. mailsplit.c
  113. Makefile
  114. merge-base.c
  115. merge-index.c
  116. mktag.c
  117. object.c
  118. object.h
  119. pack-check.c
  120. pack-objects.c
  121. pack.h
  122. patch-delta.c
  123. patch-id.c
  124. path.c
  125. peek-remote.c
  126. pkt-line.c
  127. pkt-line.h
  128. prune-packed.c
  129. quote.c
  130. quote.h
  131. read-cache.c
  132. read-tree.c
  133. README
  134. receive-pack.c
  135. refs.c
  136. refs.h
  137. rev-list.c
  138. rev-parse.c
  139. rsh.c
  140. rsh.h
  141. run-command.c
  142. run-command.h
  143. send-pack.c
  144. server-info.c
  145. setup.c
  146. sha1_file.c
  147. sha1_name.c
  148. show-branch.c
  149. show-index.c
  150. ssh-fetch.c
  151. ssh-pull.c
  152. ssh-push.c
  153. ssh-upload.c
  154. strbuf.c
  155. strbuf.h
  156. stripspace.c
  157. symbolic-ref.c
  158. tag.c
  159. tag.h
  160. tar-tree.c
  161. test-date.c
  162. test-delta.c
  163. tree.c
  164. tree.h
  165. unpack-file.c
  166. unpack-objects.c
  167. update-index.c
  168. update-ref.c
  169. update-server-info.c
  170. upload-pack.c
  171. usage.c
  172. var.c
  173. verify-pack.c
  174. write-tree.c