Re: [PATCH] log: diagnose empty HEAD more clearly
From: Junio C Hamano <hidden>
Date: 2016-06-15 23:05:10
Jeff King [off-list ref] writes:
But if you are OK to eventually stop dying, I think this line of reasoning is OK.quoted
diff --git a/builtin/log.c b/builtin/log.c index 4c4e6be..3b568a1 100644 --- a/builtin/log.c +++ b/builtin/log.c@@ -148,6 +148,9 @@ static void cmd_log_init_finish(int argc, const char **argv, const char *prefix, rev->diffopt.output_format |= DIFF_FORMAT_NO_OUTPUT; argc = setup_revisions(argc, argv, rev, opt); + if (!rev->pending.nr && !opt->def) + die("you do not have a commit yet on your branch");Do we want to mention the name of the branch here? I guess it does not really matter. Perhaps "the current branch" would be better than "your branch", though. Maybe: fatal: you do not have any commits yet on the current branch This message hopefully goes away in the long run, but we'll have it for a while.quoted
+static void default_to_head_if_exists(struct setup_revision_opt *opt) +{ + unsigned char unused[20]; + + if (resolve_ref_unsafe("HEAD", RESOLVE_REF_READING, unused, NULL)) + opt->def = "HEAD"; +}This approach looks sane to me. Want to wrap it up with a commit message and a test?
There is an unmerged attempt jc/log-missing-default-HEAD in my "broken-out" repository https://github.com/gitster/git; I do agree that we should spend more cycles after deciding to error out to give a more detailed diagnosis, but I didn't have enough energy to bring myself do that, so I've tentatively merged your version instead of this one.