mirror of
https://github.com/git/git.git
synced 2024-11-23 18:05:29 +08:00
log --reflog: use dwim_log
Since "git log origin/master" uses dwim_log() to match "refs/remotes/origin/master", it makes sense to do that for "git log --reflog", too. Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
parent
e00de24b10
commit
eb3a48221f
1
cache.h
1
cache.h
@ -302,6 +302,7 @@ extern char *sha1_to_hex(const unsigned char *sha1); /* static buffer result! */
|
||||
extern int read_ref(const char *filename, unsigned char *sha1);
|
||||
extern const char *resolve_ref(const char *path, unsigned char *sha1, int, int *);
|
||||
extern int dwim_ref(const char *str, int len, unsigned char *sha1, char **ref);
|
||||
extern int dwim_log(const char *str, int len, unsigned char *sha1, char **ref);
|
||||
|
||||
extern int create_symref(const char *ref, const char *refs_heads_master, const char *logmsg);
|
||||
extern int validate_headref(const char *ref);
|
||||
|
@ -174,6 +174,19 @@ void add_reflog_for_walk(struct reflog_walk_info *info,
|
||||
branch = xstrdup(head);
|
||||
}
|
||||
reflogs = read_complete_reflog(branch);
|
||||
if (!reflogs || reflogs->nr == 0) {
|
||||
unsigned char sha1[20];
|
||||
char *b;
|
||||
if (dwim_log(branch, strlen(branch), sha1, &b) == 1) {
|
||||
if (reflogs) {
|
||||
free(reflogs->ref);
|
||||
free(reflogs);
|
||||
}
|
||||
free(branch);
|
||||
branch = b;
|
||||
reflogs = read_complete_reflog(branch);
|
||||
}
|
||||
}
|
||||
if (!reflogs || reflogs->nr == 0)
|
||||
die("No reflogs found for '%s'", branch);
|
||||
path_list_insert(branch, &info->complete_reflogs)->util
|
||||
|
@ -267,7 +267,7 @@ int dwim_ref(const char *str, int len, unsigned char *sha1, char **ref)
|
||||
return refs_found;
|
||||
}
|
||||
|
||||
static int dwim_log(const char *str, int len, unsigned char *sha1, char **log)
|
||||
int dwim_log(const char *str, int len, unsigned char *sha1, char **log)
|
||||
{
|
||||
const char **p;
|
||||
int logs_found = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user