detect broken alternates.

The real problem triggered an earlier fix was that an alternate
entry was pointing at a removed directory.  Complaining on
object/pack directory that cannot be opendir-ed produces noise
in an ancient repository that does not have object/pack
directory and has never been packed.

Detect the real user error and report it.  Also if opendir
failed for other reasons (e.g. no read permissions), report that
as well.

Spotted by Andrew Vasquez <andrew.vasquez@qlogic.com>.

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