Re: [PATCH v3 27/44] refs.c: move peel_object to the common code

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]