diff options
author | Junio C Hamano <junkio@cox.net> | 2007-01-19 22:51:49 -0800 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2007-01-19 22:51:49 -0800 |
commit | b15af07928cf8aaf405407ec94fca4a9202edbc2 (patch) | |
tree | 206a716a0f9e9f08f0dc5d53581ecac96ffe55b0 /builtin-show-branch.c | |
parent | 76a44c5c0b25b1dbde56d17353d5b0821b7c6981 (diff) | |
download | git-b15af07928cf8aaf405407ec94fca4a9202edbc2.tar.gz |
show-branch --reflog: tighten input validation.
Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'builtin-show-branch.c')
-rw-r--r-- | builtin-show-branch.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/builtin-show-branch.c b/builtin-show-branch.c index 452c15fd1b..651d27c2c0 100644 --- a/builtin-show-branch.c +++ b/builtin-show-branch.c @@ -4,7 +4,9 @@ #include "builtin.h" static const char show_branch_usage[] = -"git-show-branch [--sparse] [--current] [--all] [--remotes] [--topo-order] [--more=count | --list | --independent | --merge-base ] [--topics] [<refs>...] | --reflog[=n] <branch>"; +"git-show-branch [--sparse] [--current] [--all] [--remotes] [--topo-order] [--more=count | --list | --independent | --merge-base ] [--topics] [<refs>...] | --reflog[=n[,b]] <branch>"; +static const char show_branch_usage_reflog[] = +"--reflog is incompatible with --all, --remotes, --independent or --merge-base"; static int default_num; static int default_alloc; @@ -664,12 +666,14 @@ int cmd_show_branch(int ac, const char **av, const char *prefix) */ if (independent || merge_base) usage(show_branch_usage); - if (!!reflog && (0 < extra)) + if (!!reflog && ((0 < extra) || all_heads || all_remotes)) /* * Asking for --more in reflog mode does not - * make sense. + * make sense. --list is Ok. + * + * Also --all and --remotes do not make sense either. */ - usage(show_branch_usage); + usage(show_branch_usage_reflog); } /* If nothing is specified, show all branches by default */ @@ -685,6 +689,9 @@ int cmd_show_branch(int ac, const char **av, const char *prefix) int base = 0; if (ac != 1) die("--reflog option needs one branch name"); + if (MAX_REVS < reflog) + die("Only %d entries can be shown at one time.", + MAX_REVS); if (!dwim_ref(*av, strlen(*av), sha1, &ref)) die("No such ref %s", *av); |