[PATCH] Warn about invalid refs
Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
---
On Thu, 27 Oct 2005, Junio C Hamano wrote:
> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
>
> > On Thu, 27 Oct 2005, Junio C Hamano wrote:
> >
> >> Not that the current loop is any better for that purpose.
> >> We silently ignore not just dangling ref and ref not storing
> >> 40-byte hex, but files starting with a period '.', names
> >> longer than 255 bytes, and unreadable ones, all of which we
> >> would probably want to warn about in such a tool.
> >
> > Okay, how about 'fprintf(stderr, "Warning: ...\n"); continue;'
> > instead of 'die("...");' then?
>
> Yup. That sounds sensible. Sorry for taking so long...
refs.c | 9 +++++++--
1 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/refs.c b/refs.c
index 826ae7a..982ebf8 100644
--- a/refs.c
+++ b/refs.c
@@ -151,10 +151,15 @@ static int do_for_each_ref(const char *b
break;
continue;
}
- if (read_ref(git_path("%s", path), sha1) < 0)
+ if (read_ref(git_path("%s", path), sha1) < 0) {
+ fprintf(stderr, "%s points nowhere!", path);
continue;
- if (!has_sha1_file(sha1))
+ }
+ if (!has_sha1_file(sha1)) {
+ fprintf(stderr, "%s does not point to a valid "
+ "commit object!", path);
continue;
+ }
retval = fn(path, sha1);
if (retval)
break;