Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> writes: > This is basically dwim_ref() without @{} support. To be used on the > server side where we want to expand abbreviated to full ref names and > nothing else. It is unclear why we want to have such an expansion on the server, though. That is something this commit needs to justify, isn't it? > > Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> > --- > refs.c | 8 +++++++- > refs.h | 1 + > 2 files changed, 8 insertions(+), 1 deletion(-) > > diff --git a/refs.c b/refs.c > index e2d34b2..842e4d8 100644 > --- a/refs.c > +++ b/refs.c > @@ -392,6 +392,13 @@ static char *substitute_branch_name(const char **string, int *len) > int dwim_ref(const char *str, int len, unsigned char *sha1, char **ref) > { > char *last_branch = substitute_branch_name(&str, &len); > + int refs_found = expand_ref(str, len, sha1, ref); > + free(last_branch); > + return refs_found; > +} > + > +int expand_ref(const char *str, int len, unsigned char *sha1, char **ref) > +{ > const char **p, *r; > int refs_found = 0; > > @@ -417,7 +424,6 @@ int dwim_ref(const char *str, int len, unsigned char *sha1, char **ref) > warning("ignoring broken ref %s.", fullref); > } > } > - free(last_branch); > return refs_found; > } > > diff --git a/refs.h b/refs.h > index 3c3da29..31a2fa6 100644 > --- a/refs.h > +++ b/refs.h > @@ -90,6 +90,7 @@ extern int resolve_gitlink_ref(const char *path, const char *refname, unsigned c > */ > extern int refname_match(const char *abbrev_name, const char *full_name); > > +extern int expand_ref(const char *str, int len, unsigned char *sha1, char **ref); > 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); -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html