Skip to content

Commit

Permalink
reflog-delete: parse standard reflog options
Browse files Browse the repository at this point in the history
Add support for some standard reflog options such as --dry-run and
--verbose to the reflog delete subcommand.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
drafnel authored and gitster committed Feb 23, 2008
1 parent 50f3ac2 commit 3c386aa
Showing 1 changed file with 21 additions and 3 deletions.
24 changes: 21 additions & 3 deletions builtin-reflog.c
Expand Up @@ -14,6 +14,8 @@

static const char reflog_expire_usage[] =
"git-reflog (show|expire) [--verbose] [--dry-run] [--stale-fix] [--expire=<time>] [--expire-unreachable=<time>] [--all] <refs>...";
static const char reflog_delete_usage[] =
"git-reflog delete [--verbose] [--dry-run] <refs>...";

static unsigned long default_reflog_expire;
static unsigned long default_reflog_expire_unreachable;
Expand Down Expand Up @@ -425,12 +427,28 @@ static int cmd_reflog_delete(int argc, const char **argv, const char *prefix)
struct cmd_reflog_expire_cb cb;
int i, status = 0;

if (argc < 2)
return error("Nothing to delete?");

memset(&cb, 0, sizeof(cb));

for (i = 1; i < argc; i++) {
const char *arg = argv[i];
if (!strcmp(arg, "--dry-run") || !strcmp(arg, "-n"))
cb.dry_run = 1;
else if (!strcmp(arg, "--verbose"))
cb.verbose = 1;
else if (!strcmp(arg, "--")) {
i++;
break;
}
else if (arg[0] == '-')
usage(reflog_delete_usage);
else
break;
}

if (argc - i < 1)
return error("Nothing to delete?");

for ( ; i < argc; i++) {
const char *spec = strstr(argv[i], "@{");
unsigned char sha1[20];
char *ep, *ref;
Expand Down

0 comments on commit 3c386aa

Please sign in to comment.