diff options
Diffstat (limited to 'src/refspec.h')
-rw-r--r-- | src/refspec.h | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/src/refspec.h b/src/refspec.h index 2db504910..a7a4dd834 100644 --- a/src/refspec.h +++ b/src/refspec.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009-2012 the libgit2 contributors + * Copyright (C) the libgit2 contributors. All rights reserved. * * This file is part of libgit2, distributed under the GNU GPL v2 with * a Linking Exception. For full terms see the included COPYING file. @@ -19,7 +19,15 @@ struct git_refspec { matching :1; }; +#define GIT_REFSPEC_TAGS "refs/tags/*:refs/tags/*" + int git_refspec_parse(struct git_refspec *refspec, const char *str); +int git_refspec__parse( + struct git_refspec *refspec, + const char *str, + bool is_fetch); + +void git_refspec__free(git_refspec *refspec); /** * Transform a reference to its target following the refspec's rules, @@ -32,4 +40,25 @@ int git_refspec_parse(struct git_refspec *refspec, const char *str); */ int git_refspec_transform_r(git_buf *out, const git_refspec *spec, const char *name); +/** + * Transform a reference from its target following the refspec's rules, + * and writes the results into a git_buf. + * + * @param out where to store the source name + * @param spec the refspec + * @param name the name of the reference to transform + * @return 0 or error if buffer allocation fails + */ +int git_refspec_transform_l(git_buf *out, const git_refspec *spec, const char *name); + +int git_refspec__serialize(git_buf *out, const git_refspec *refspec); + +/** + * Determines if a refspec is a wildcard refspec. + * + * @param spec the refspec + * @return 1 if the refspec is a wildcard, 0 otherwise + */ +int git_refspec_is_wildcard(const git_refspec *spec); + #endif |