On 10/12/2015 11:51 PM, David Turner wrote: > This function does not contain any backend specific code so we > move it to the common code. > > Signed-off-by: David Turner <dturner@xxxxxxxxxxxxxxxx> > --- > refs-be-files.c | 53 ----------------------------------------------------- > refs.c | 31 +++++++++++++++++++++++++++++++ > refs.h | 27 +++++++++++++++++++++++++++ > 3 files changed, 58 insertions(+), 53 deletions(-) > > [...] > diff --git a/refs.c b/refs.c > index bd8c71b..99b31f6 100644 > --- a/refs.c > +++ b/refs.c > @@ -4,6 +4,9 @@ > #include "cache.h" > #include "refs.h" > #include "lockfile.h" > +#include "object.h" > +#include "tag.h" > + > /* > * We always have a files backend and it is the default. > */ > @@ -1059,6 +1062,34 @@ int refname_is_safe(const char *refname) > return 1; > } > > +/* > + * Peel the named object; i.e., if the object is a tag, resolve the > + * tag recursively until a non-tag is found. If successful, store the > + * result to sha1 and return PEEL_PEELED. If the object is not a tag > + * or is not valid, return PEEL_NON_TAG or PEEL_INVALID, respectively, > + * and leave sha1 unchanged. > + */ Please move the docstring to the header file. > [...] > diff --git a/refs.h b/refs.h > index 3da5d09..636f959 100644 > --- a/refs.h > +++ b/refs.h > @@ -76,6 +76,33 @@ extern int is_branch(const char *refname); > */ > extern int peel_ref(const char *refname, unsigned char *sha1); > > +enum peel_status { > + /* object was peeled successfully: */ > + PEEL_PEELED = 0, > + > + /* > + * object cannot be peeled because the named object (or an > + * object referred to by a tag in the peel chain), does not > + * exist. > + */ > + PEEL_INVALID = -1, > + > + /* object cannot be peeled because it is not a tag: */ > + PEEL_NON_TAG = -2, > + > + /* ref_entry contains no peeled value because it is a symref: */ > + PEEL_IS_SYMREF = -3, > + > + /* > + * ref_entry cannot be peeled because it is broken (i.e., the > + * symbolic reference cannot even be resolved to an object > + * name): > + */ > + PEEL_BROKEN = -4 > +}; > + > +enum peel_status peel_object(const unsigned char *name, unsigned char *sha1); > + > /** > * Resolve refname in the nested "gitlink" repository that is located > * at path. If the resolution is successful, return 0 and set sha1 to > Michael -- Michael Haggerty mhagger@xxxxxxxxxxxx -- 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