1 module deimos.git2.refs; 2 3 import deimos.git2.common; 4 import deimos.git2.oid; 5 import deimos.git2.strarray; 6 import deimos.git2.sys.refdb_backend; 7 import deimos.git2.types; 8 import deimos.git2.util; 9 10 extern (C): 11 12 int git_reference_lookup(git_reference **out_, git_repository *repo, const(char)* name); 13 int git_reference_name_to_id( 14 git_oid *out_, git_repository *repo, const(char)* name); 15 int git_reference_dwim(git_reference **out_, git_repository *repo, const(char)* shorthand); 16 int git_reference_symbolic_create(git_reference **out_, git_repository *repo, const(char)* name, const(char)* target, int force); 17 int git_reference_create(git_reference **out_, git_repository *repo, const(char)* name, const(git_oid)* id, int force); 18 const(git_oid)* git_reference_target(const(git_reference)* ref_); 19 const(git_oid)* git_reference_target_peel(const(git_reference)* ref_); 20 const(char)* git_reference_symbolic_target(const(git_reference)* ref_); 21 git_ref_t git_reference_type(const(git_reference)* ref_); 22 const(char)* git_reference_name(const(git_reference)* ref_); 23 int git_reference_resolve(git_reference **out_, const(git_reference)* ref_); 24 git_repository * git_reference_owner(const(git_reference)* ref_); 25 int git_reference_symbolic_set_target( 26 git_reference **out_, 27 git_reference *ref_, 28 const(char)* target); 29 int git_reference_set_target( 30 git_reference **out_, 31 git_reference *ref_, 32 const(git_oid)* id); 33 int git_reference_rename( 34 git_reference **new_ref, 35 git_reference *ref_, 36 const(char)* new_name, 37 int force); 38 int git_reference_delete(git_reference *ref_); 39 int git_reference_list(git_strarray *array, git_repository *repo); 40 41 alias git_reference_foreach_cb = int function(git_reference *reference, void *payload); 42 alias git_reference_foreach_name_cb = int function(const(char)* name, void *payload); 43 44 int git_reference_foreach( 45 git_repository *repo, 46 git_reference_foreach_cb callback, 47 void *payload); 48 int git_reference_foreach_name( 49 git_repository *repo, 50 git_reference_foreach_name_cb callback, 51 void *payload); 52 void git_reference_free(git_reference *ref_); 53 int git_reference_cmp(git_reference *ref1, git_reference *ref2); 54 int git_reference_iterator_new( 55 git_reference_iterator **out_, 56 git_repository *repo); 57 int git_reference_iterator_glob_new( 58 git_reference_iterator **out_, 59 git_repository *repo, 60 const(char)* glob); 61 int git_reference_next(git_reference **out_, git_reference_iterator *iter); 62 int git_reference_next_name(const(char)** out_, git_reference_iterator *iter); 63 void git_reference_iterator_free(git_reference_iterator *iter); 64 int git_reference_foreach_glob( 65 git_repository *repo, 66 const(char)* glob, 67 git_reference_foreach_name_cb callback, 68 void *payload); 69 int git_reference_has_log(git_reference *ref_); 70 int git_reference_is_branch(git_reference *ref_); 71 int git_reference_is_remote(git_reference *ref_); 72 int git_reference_is_tag(git_reference *ref_); 73 74 enum git_reference_normalize_t { 75 GIT_REF_FORMAT_NORMAL = 0u, 76 GIT_REF_FORMAT_ALLOW_ONELEVEL = (1u << 0), 77 GIT_REF_FORMAT_REFSPEC_PATTERN = (1u << 1), 78 GIT_REF_FORMAT_REFSPEC_SHORTHAND = (1u << 2), 79 } 80 mixin _ExportEnumMembers!git_reference_normalize_t; 81 82 int git_reference_normalize_name( 83 char *buffer_out, 84 size_t buffer_size, 85 const(char)* name, 86 uint flags); 87 int git_reference_peel( 88 git_object **out_, 89 git_reference *ref_, 90 git_otype type); 91 int git_reference_is_valid_name(const(char)* refname); 92 const(char)* git_reference_shorthand(git_reference *ref_);