On Aug 10, 2008, at 3:01 AM, Junio C Hamano wrote:
- if (!dwim_ref(argv[i], spec - argv[i], sha1, &ref)) {
+ if (!dwim_log(argv[i], spec - argv[i], sha1, &ref)) {
This is also what add_reflog_for_walk() does, but that function tries to resolve
the argv[i] part first, without doing the dwim_log().
Perhaps we can also do this to allow "git reflog expire master" instead of
"git reflog expire refs/heads/master"?
--<8--
Subject: [PATCH] builtin-reflog: Allow reflog expire to name partial ref
This allows you to specify 'git reflog expire master' without needing
to give the full refname like 'git reflog expire refs/heads/master'
Signed-off-by: Pieter de Bie <redacted>
---
builtin-reflog.c | 7 ++++---
1 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/builtin-reflog.c b/builtin-reflog.c
index 5af3f28..a8311a6 100644
--- a/builtin-reflog.c
+++ b/builtin-reflog.c
@@ -541,14 +541,15 @@ static int cmd_reflog_expire(int argc, const char **argv, const char *prefix)
}
while (i < argc) {
- const char *ref = argv[i++];
+ char *ref;
unsigned char sha1[20];
- if (!resolve_ref(ref, sha1, 1, NULL)) {
- status |= error("%s points nowhere!", ref);
+ if (!dwim_log(argv[i], strlen(argv[i]), sha1, &ref)) {
+ status |= error("%s points nowhere!", argv[i]);
continue;
}
set_reflog_expiry_param(&cb, explicit_expiry, ref);
status |= expire_reflog(ref, sha1, 0, &cb);
+ i++;
}
return status;
}--
1.6.0.rc0.320.g49281