docurium 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +3 -0
- data/Gemfile +5 -0
- data/LICENCE +19 -0
- data/README.md +39 -0
- data/TODO.txt +19 -0
- data/bin/cm +31 -0
- data/docurium.gemspec +25 -0
- data/lib/docurium.rb +435 -0
- data/lib/docurium/cli.rb +10 -0
- data/site/css/style.css +236 -0
- data/site/images/search_icon.png +0 -0
- data/site/index.html +65 -0
- data/site/js/backbone.js +27 -0
- data/site/js/docurium.js +649 -0
- data/site/js/json2.js +26 -0
- data/site/js/underscore.js +26 -0
- data/site/shared/css/documentation.css +797 -0
- data/site/shared/css/pygments.css +60 -0
- data/site/shared/images/active-arrow.png +0 -0
- data/site/shared/images/background-v2.png +0 -0
- data/site/shared/images/background-white.png +0 -0
- data/site/shared/images/dropdown_sprites.jpg +0 -0
- data/site/shared/images/footer_logo.png +0 -0
- data/site/shared/images/logo.png +0 -0
- data/site/shared/images/nav-rule.png +0 -0
- data/site/shared/images/next_step_arrow.gif +0 -0
- data/site/shared/images/qmark.png +0 -0
- data/site/shared/js/documentation.js +43 -0
- data/site/shared/js/jquery.js +154 -0
- data/test/fixtures/git2/api.docurium +6 -0
- data/test/fixtures/git2/blob.h +121 -0
- data/test/fixtures/git2/commit.h +302 -0
- data/test/fixtures/git2/common.h +98 -0
- data/test/fixtures/git2/errors.h +149 -0
- data/test/fixtures/git2/index.h +270 -0
- data/test/fixtures/git2/object.h +147 -0
- data/test/fixtures/git2/odb.h +302 -0
- data/test/fixtures/git2/odb_backend.h +107 -0
- data/test/fixtures/git2/oid.h +191 -0
- data/test/fixtures/git2/refs.h +325 -0
- data/test/fixtures/git2/repository.h +217 -0
- data/test/fixtures/git2/revwalk.h +187 -0
- data/test/fixtures/git2/signature.h +81 -0
- data/test/fixtures/git2/tag.h +297 -0
- data/test/fixtures/git2/thread-utils.h +71 -0
- data/test/fixtures/git2/tree.h +266 -0
- data/test/fixtures/git2/types.h +162 -0
- data/test/fixtures/git2/zlib.h +58 -0
- data/test/repo_test.rb +101 -0
- data/test/test_helper.rb +29 -0
- metadata +167 -0
@@ -0,0 +1,191 @@
|
|
1
|
+
/*
|
2
|
+
* This file is free software; you can redistribute it and/or modify
|
3
|
+
* it under the terms of the GNU General Public License, version 2,
|
4
|
+
* as published by the Free Software Foundation.
|
5
|
+
*
|
6
|
+
* In addition to the permissions in the GNU General Public License,
|
7
|
+
* the authors give you unlimited permission to link the compiled
|
8
|
+
* version of this file into combinations with other programs,
|
9
|
+
* and to distribute those combinations without any restriction
|
10
|
+
* coming from the use of this file. (The General Public License
|
11
|
+
* restrictions do apply in other respects; for example, they cover
|
12
|
+
* modification of the file, and distribution when not linked into
|
13
|
+
* a combined executable.)
|
14
|
+
*
|
15
|
+
* This file is distributed in the hope that it will be useful, but
|
16
|
+
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
17
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
18
|
+
* General Public License for more details.
|
19
|
+
*
|
20
|
+
* You should have received a copy of the GNU General Public License
|
21
|
+
* along with this program; see the file COPYING. If not, write to
|
22
|
+
* the Free Software Foundation, 51 Franklin Street, Fifth Floor,
|
23
|
+
* Boston, MA 02110-1301, USA.
|
24
|
+
*/
|
25
|
+
#ifndef INCLUDE_git_oid_h__
|
26
|
+
#define INCLUDE_git_oid_h__
|
27
|
+
|
28
|
+
#include "common.h"
|
29
|
+
#include "types.h"
|
30
|
+
|
31
|
+
/**
|
32
|
+
* @file git2/oid.h
|
33
|
+
* @brief Git object id routines
|
34
|
+
* @defgroup git_oid Git object id routines
|
35
|
+
* @ingroup Git
|
36
|
+
* @{
|
37
|
+
*/
|
38
|
+
GIT_BEGIN_DECL
|
39
|
+
|
40
|
+
/** Size (in bytes) of a raw/binary oid */
|
41
|
+
#define GIT_OID_RAWSZ 20
|
42
|
+
|
43
|
+
/** Size (in bytes) of a hex formatted oid */
|
44
|
+
#define GIT_OID_HEXSZ (GIT_OID_RAWSZ * 2)
|
45
|
+
|
46
|
+
/** Unique identity of any object (commit, tree, blob, tag). */
|
47
|
+
typedef struct {
|
48
|
+
/** raw binary formatted id */
|
49
|
+
unsigned char id[GIT_OID_RAWSZ];
|
50
|
+
} git_oid;
|
51
|
+
|
52
|
+
/**
|
53
|
+
* Parse a hex formatted object id into a git_oid.
|
54
|
+
* @param out oid structure the result is written into.
|
55
|
+
* @param str input hex string; must be pointing at the start of
|
56
|
+
* the hex sequence and have at least the number of bytes
|
57
|
+
* needed for an oid encoded in hex (40 bytes).
|
58
|
+
* @return GIT_SUCCESS if valid; GIT_ENOTOID on failure.
|
59
|
+
*/
|
60
|
+
GIT_EXTERN(int) git_oid_mkstr(git_oid *out, const char *str);
|
61
|
+
|
62
|
+
/**
|
63
|
+
* Copy an already raw oid into a git_oid structure.
|
64
|
+
* @param out oid structure the result is written into.
|
65
|
+
* @param raw the raw input bytes to be copied.
|
66
|
+
*/
|
67
|
+
GIT_EXTERN(void) git_oid_mkraw(git_oid *out, const unsigned char *raw);
|
68
|
+
|
69
|
+
/**
|
70
|
+
* Format a git_oid into a hex string.
|
71
|
+
* @param str output hex string; must be pointing at the start of
|
72
|
+
* the hex sequence and have at least the number of bytes
|
73
|
+
* needed for an oid encoded in hex (40 bytes). Only the
|
74
|
+
* oid digits are written; a '\\0' terminator must be added
|
75
|
+
* by the caller if it is required.
|
76
|
+
* @param oid oid structure to format.
|
77
|
+
*/
|
78
|
+
GIT_EXTERN(void) git_oid_fmt(char *str, const git_oid *oid);
|
79
|
+
|
80
|
+
/**
|
81
|
+
* Format a git_oid into a loose-object path string.
|
82
|
+
* <p>
|
83
|
+
* The resulting string is "aa/...", where "aa" is the first two
|
84
|
+
* hex digitis of the oid and "..." is the remaining 38 digits.
|
85
|
+
*
|
86
|
+
* @param str output hex string; must be pointing at the start of
|
87
|
+
* the hex sequence and have at least the number of bytes
|
88
|
+
* needed for an oid encoded in hex (41 bytes). Only the
|
89
|
+
* oid digits are written; a '\\0' terminator must be added
|
90
|
+
* by the caller if it is required.
|
91
|
+
* @param oid oid structure to format.
|
92
|
+
*/
|
93
|
+
GIT_EXTERN(void) git_oid_pathfmt(char *str, const git_oid *oid);
|
94
|
+
|
95
|
+
/**
|
96
|
+
* Format a gid_oid into a newly allocated c-string.
|
97
|
+
* @param oid the oid structure to format
|
98
|
+
* @return the c-string; NULL if memory is exhausted. Caller must
|
99
|
+
* deallocate the string with free().
|
100
|
+
*/
|
101
|
+
GIT_EXTERN(char *) git_oid_allocfmt(const git_oid *oid);
|
102
|
+
|
103
|
+
/**
|
104
|
+
* Format a git_oid into a buffer as a hex format c-string.
|
105
|
+
* <p>
|
106
|
+
* If the buffer is smaller than GIT_OID_HEXSZ+1, then the resulting
|
107
|
+
* oid c-string will be truncated to n-1 characters. If there are
|
108
|
+
* any input parameter errors (out == NULL, n == 0, oid == NULL),
|
109
|
+
* then a pointer to an empty string is returned, so that the return
|
110
|
+
* value can always be printed.
|
111
|
+
*
|
112
|
+
* @param out the buffer into which the oid string is output.
|
113
|
+
* @param n the size of the out buffer.
|
114
|
+
* @param oid the oid structure to format.
|
115
|
+
* @return the out buffer pointer, assuming no input parameter
|
116
|
+
* errors, otherwise a pointer to an empty string.
|
117
|
+
*/
|
118
|
+
GIT_EXTERN(char *) git_oid_to_string(char *out, size_t n, const git_oid *oid);
|
119
|
+
|
120
|
+
/**
|
121
|
+
* Copy an oid from one structure to another.
|
122
|
+
* @param out oid structure the result is written into.
|
123
|
+
* @param src oid structure to copy from.
|
124
|
+
*/
|
125
|
+
GIT_EXTERN(void) git_oid_cpy(git_oid *out, const git_oid *src);
|
126
|
+
|
127
|
+
/**
|
128
|
+
* Compare two oid structures.
|
129
|
+
* @param a first oid structure.
|
130
|
+
* @param b second oid structure.
|
131
|
+
* @return <0, 0, >0 if a < b, a == b, a > b.
|
132
|
+
*/
|
133
|
+
GIT_EXTERN(int) git_oid_cmp(const git_oid *a, const git_oid *b);
|
134
|
+
|
135
|
+
/**
|
136
|
+
* OID Shortener object
|
137
|
+
*/
|
138
|
+
typedef struct git_oid_shorten git_oid_shorten;
|
139
|
+
|
140
|
+
/**
|
141
|
+
* Create a new OID shortener.
|
142
|
+
*
|
143
|
+
* The OID shortener is used to process a list of OIDs
|
144
|
+
* in text form and return the shortest length that would
|
145
|
+
* uniquely identify all of them.
|
146
|
+
*
|
147
|
+
* E.g. look at the result of `git log --abbrev`.
|
148
|
+
*
|
149
|
+
* @param min_length The minimal length for all identifiers,
|
150
|
+
* which will be used even if shorter OIDs would still
|
151
|
+
* be unique.
|
152
|
+
* @return a `git_oid_shorten` instance, NULL if OOM
|
153
|
+
*/
|
154
|
+
git_oid_shorten *git_oid_shorten_new(size_t min_length);
|
155
|
+
|
156
|
+
/**
|
157
|
+
* Add a new OID to set of shortened OIDs and calculate
|
158
|
+
* the minimal length to uniquely identify all the OIDs in
|
159
|
+
* the set.
|
160
|
+
*
|
161
|
+
* The OID is expected to be a 40-char hexadecimal string.
|
162
|
+
* The OID is owned by the user and will not be modified
|
163
|
+
* or freed.
|
164
|
+
*
|
165
|
+
* For performance reasons, there is a hard-limit of how many
|
166
|
+
* OIDs can be added to a single set (around ~22000, assuming
|
167
|
+
* a mostly randomized distribution), which should be enough
|
168
|
+
* for any kind of program, and keeps the algorithm fast and
|
169
|
+
* memory-efficient.
|
170
|
+
*
|
171
|
+
* Attempting to add more than those OIDs will result in a
|
172
|
+
* GIT_ENOMEM error
|
173
|
+
*
|
174
|
+
* @param os a `git_oid_shorten` instance
|
175
|
+
* @param text_oid an OID in text form
|
176
|
+
* @return the minimal length to uniquely identify all OIDs
|
177
|
+
* added so far to the set; or an error code (<0) if an
|
178
|
+
* error occurs.
|
179
|
+
*/
|
180
|
+
int git_oid_shorten_add(git_oid_shorten *os, const char *text_oid);
|
181
|
+
|
182
|
+
/**
|
183
|
+
* Free an OID shortener instance
|
184
|
+
*
|
185
|
+
* @param os a `git_oid_shorten` instance
|
186
|
+
*/
|
187
|
+
void git_oid_shorten_free(git_oid_shorten *os);
|
188
|
+
|
189
|
+
/** @} */
|
190
|
+
GIT_END_DECL
|
191
|
+
#endif
|
@@ -0,0 +1,325 @@
|
|
1
|
+
/*
|
2
|
+
* This file is free software; you can redistribute it and/or modify
|
3
|
+
* it under the terms of the GNU General Public License, version 2,
|
4
|
+
* as published by the Free Software Foundation.
|
5
|
+
*
|
6
|
+
* In addition to the permissions in the GNU General Public License,
|
7
|
+
* the authors give you unlimited permission to link the compiled
|
8
|
+
* version of this file into combinations with other programs,
|
9
|
+
* and to distribute those combinations without any restriction
|
10
|
+
* coming from the use of this file. (The General Public License
|
11
|
+
* restrictions do apply in other respects; for example, they cover
|
12
|
+
* modification of the file, and distribution when not linked into
|
13
|
+
* a combined executable.)
|
14
|
+
*
|
15
|
+
* This file is distributed in the hope that it will be useful, but
|
16
|
+
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
17
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
18
|
+
* General Public License for more details.
|
19
|
+
*
|
20
|
+
* You should have received a copy of the GNU General Public License
|
21
|
+
* along with this program; see the file COPYING. If not, write to
|
22
|
+
* the Free Software Foundation, 51 Franklin Street, Fifth Floor,
|
23
|
+
* Boston, MA 02110-1301, USA.
|
24
|
+
*/
|
25
|
+
#ifndef INCLUDE_git_refs_h__
|
26
|
+
#define INCLUDE_git_refs_h__
|
27
|
+
|
28
|
+
#include "common.h"
|
29
|
+
#include "types.h"
|
30
|
+
#include "oid.h"
|
31
|
+
|
32
|
+
/**
|
33
|
+
* @file git2/refs.h
|
34
|
+
* @brief Git reference management routines
|
35
|
+
* @defgroup git_reference Git reference management routines
|
36
|
+
* @ingroup Git
|
37
|
+
* @{
|
38
|
+
*/
|
39
|
+
GIT_BEGIN_DECL
|
40
|
+
|
41
|
+
/**
|
42
|
+
* Lookup a reference by its name in a repository.
|
43
|
+
*
|
44
|
+
* The generated reference is owned by the repository and
|
45
|
+
* should not be freed by the user.
|
46
|
+
*
|
47
|
+
* @param reference_out pointer to the looked-up reference
|
48
|
+
* @param repo the repository to look up the reference
|
49
|
+
* @param name the long name for the reference (e.g. HEAD, ref/heads/master, refs/tags/v0.1.0, ...)
|
50
|
+
* @return 0 on success; error code otherwise
|
51
|
+
*/
|
52
|
+
GIT_EXTERN(int) git_reference_lookup(git_reference **reference_out, git_repository *repo, const char *name);
|
53
|
+
|
54
|
+
/**
|
55
|
+
* Create a new symbolic reference.
|
56
|
+
*
|
57
|
+
* The reference will be created in the repository and written
|
58
|
+
* to the disk.
|
59
|
+
*
|
60
|
+
* This reference is owned by the repository and shall not
|
61
|
+
* be free'd by the user.
|
62
|
+
*
|
63
|
+
* @param ref_out Pointer to the newly created reference
|
64
|
+
* @param repo Repository where that reference will live
|
65
|
+
* @param name The name of the reference
|
66
|
+
* @param target The target of the reference
|
67
|
+
* @return 0 on success; error code otherwise
|
68
|
+
*/
|
69
|
+
GIT_EXTERN(int) git_reference_create_symbolic(git_reference **ref_out, git_repository *repo, const char *name, const char *target);
|
70
|
+
|
71
|
+
/**
|
72
|
+
* Create a new symbolic reference, overwriting an existing one with
|
73
|
+
* the same name, if it exists.
|
74
|
+
*
|
75
|
+
* If the new reference isn't a symbolic one, any pointers to the old
|
76
|
+
* reference become invalid.
|
77
|
+
*
|
78
|
+
* The reference will be created in the repository and written
|
79
|
+
* to the disk.
|
80
|
+
*
|
81
|
+
* This reference is owned by the repository and shall not
|
82
|
+
* be free'd by the user.
|
83
|
+
*
|
84
|
+
* @param ref_out Pointer to the newly created reference
|
85
|
+
* @param repo Repository where that reference will live
|
86
|
+
* @param name The name of the reference
|
87
|
+
* @param target The target of the reference
|
88
|
+
* @return 0 on success; error code otherwise
|
89
|
+
*/
|
90
|
+
GIT_EXTERN(int) git_reference_create_symbolic_f(git_reference **ref_out, git_repository *repo, const char *name, const char *target);
|
91
|
+
|
92
|
+
/**
|
93
|
+
* Create a new object id reference.
|
94
|
+
*
|
95
|
+
* The reference will be created in the repository and written
|
96
|
+
* to the disk.
|
97
|
+
*
|
98
|
+
* This reference is owned by the repository and shall not
|
99
|
+
* be free'd by the user.
|
100
|
+
*
|
101
|
+
* @param ref_out Pointer to the newly created reference
|
102
|
+
* @param repo Repository where that reference will live
|
103
|
+
* @param name The name of the reference
|
104
|
+
* @param id The object id pointed to by the reference.
|
105
|
+
* @return 0 on success; error code otherwise
|
106
|
+
*/
|
107
|
+
GIT_EXTERN(int) git_reference_create_oid(git_reference **ref_out, git_repository *repo, const char *name, const git_oid *id);
|
108
|
+
|
109
|
+
/**
|
110
|
+
* Create a new object id reference, overwriting an existing one with
|
111
|
+
* the same name, if it exists.
|
112
|
+
*
|
113
|
+
* If the new reference isn't an object id one, any pointers to the
|
114
|
+
* old reference become invalid.
|
115
|
+
*
|
116
|
+
* The reference will be created in the repository and written
|
117
|
+
* to the disk.
|
118
|
+
*
|
119
|
+
* This reference is owned by the repository and shall not
|
120
|
+
* be free'd by the user.
|
121
|
+
*
|
122
|
+
* @param ref_out Pointer to the newly created reference
|
123
|
+
* @param repo Repository where that reference will live
|
124
|
+
* @param name The name of the reference
|
125
|
+
* @param id The object id pointed to by the reference.
|
126
|
+
* @return 0 on success; error code otherwise
|
127
|
+
*/
|
128
|
+
GIT_EXTERN(int) git_reference_create_oid_f(git_reference **ref_out, git_repository *repo, const char *name, const git_oid *id);
|
129
|
+
|
130
|
+
/**
|
131
|
+
* Get the OID pointed to by a reference.
|
132
|
+
*
|
133
|
+
* Only available if the reference is direct (i.e. not symbolic)
|
134
|
+
*
|
135
|
+
* @param ref The reference
|
136
|
+
* @return a pointer to the oid if available, NULL otherwise
|
137
|
+
*/
|
138
|
+
GIT_EXTERN(const git_oid *) git_reference_oid(git_reference *ref);
|
139
|
+
|
140
|
+
/**
|
141
|
+
* Get full name to the reference pointed by this reference
|
142
|
+
*
|
143
|
+
* Only available if the reference is symbolic
|
144
|
+
*
|
145
|
+
* @param ref The reference
|
146
|
+
* @return a pointer to the name if available, NULL otherwise
|
147
|
+
*/
|
148
|
+
GIT_EXTERN(const char *) git_reference_target(git_reference *ref);
|
149
|
+
|
150
|
+
/**
|
151
|
+
* Get the type of a reference
|
152
|
+
*
|
153
|
+
* Either direct (GIT_REF_OID) or symbolic (GIT_REF_SYMBOLIC)
|
154
|
+
*
|
155
|
+
* @param ref The reference
|
156
|
+
* @return the type
|
157
|
+
*/
|
158
|
+
GIT_EXTERN(git_rtype) git_reference_type(git_reference *ref);
|
159
|
+
|
160
|
+
/**
|
161
|
+
* Get the full name of a reference
|
162
|
+
*
|
163
|
+
* @param ref The reference
|
164
|
+
* @return the full name for the ref
|
165
|
+
*/
|
166
|
+
GIT_EXTERN(const char *) git_reference_name(git_reference *ref);
|
167
|
+
|
168
|
+
/**
|
169
|
+
* Resolve a symbolic reference
|
170
|
+
*
|
171
|
+
* Thie method iteratively peels a symbolic reference
|
172
|
+
* until it resolves to a direct reference to an OID.
|
173
|
+
*
|
174
|
+
* If a direct reference is passed as an argument,
|
175
|
+
* that reference is returned immediately
|
176
|
+
*
|
177
|
+
* @param resolved_ref Pointer to the peeled reference
|
178
|
+
* @param ref The reference
|
179
|
+
* @return 0 on success; error code otherwise
|
180
|
+
*/
|
181
|
+
GIT_EXTERN(int) git_reference_resolve(git_reference **resolved_ref, git_reference *ref);
|
182
|
+
|
183
|
+
/**
|
184
|
+
* Get the repository where a reference resides
|
185
|
+
*
|
186
|
+
* @param ref The reference
|
187
|
+
* @return a pointer to the repo
|
188
|
+
*/
|
189
|
+
GIT_EXTERN(git_repository *) git_reference_owner(git_reference *ref);
|
190
|
+
|
191
|
+
/**
|
192
|
+
* Set the symbolic target of a reference.
|
193
|
+
*
|
194
|
+
* The reference must be a symbolic reference, otherwise
|
195
|
+
* this method will fail.
|
196
|
+
*
|
197
|
+
* The reference will be automatically updated in
|
198
|
+
* memory and on disk.
|
199
|
+
*
|
200
|
+
* @param ref The reference
|
201
|
+
* @param target The new target for the reference
|
202
|
+
* @return 0 on success; error code otherwise
|
203
|
+
*/
|
204
|
+
GIT_EXTERN(int) git_reference_set_target(git_reference *ref, const char *target);
|
205
|
+
|
206
|
+
/**
|
207
|
+
* Set the OID target of a reference.
|
208
|
+
*
|
209
|
+
* The reference must be a direct reference, otherwise
|
210
|
+
* this method will fail.
|
211
|
+
*
|
212
|
+
* The reference will be automatically updated in
|
213
|
+
* memory and on disk.
|
214
|
+
*
|
215
|
+
* @param ref The reference
|
216
|
+
* @param target The new target OID for the reference
|
217
|
+
* @return 0 on success; error code otherwise
|
218
|
+
*/
|
219
|
+
GIT_EXTERN(int) git_reference_set_oid(git_reference *ref, const git_oid *id);
|
220
|
+
|
221
|
+
/**
|
222
|
+
* Rename an existing reference
|
223
|
+
*
|
224
|
+
* This method works for both direct and symbolic references.
|
225
|
+
* The new name will be checked for validity and may be
|
226
|
+
* modified into a normalized form.
|
227
|
+
*
|
228
|
+
* The refernece will be immediately renamed in-memory
|
229
|
+
* and on disk.
|
230
|
+
*
|
231
|
+
*/
|
232
|
+
GIT_EXTERN(int) git_reference_rename(git_reference *ref, const char *new_name);
|
233
|
+
|
234
|
+
/**
|
235
|
+
* Rename an existing reference, overwriting an existing one with the
|
236
|
+
* same name, if it exists.
|
237
|
+
*
|
238
|
+
* This method works for both direct and symbolic references.
|
239
|
+
* The new name will be checked for validity and may be
|
240
|
+
* modified into a normalized form.
|
241
|
+
*
|
242
|
+
* The refernece will be immediately renamed in-memory
|
243
|
+
* and on disk.
|
244
|
+
*
|
245
|
+
*/
|
246
|
+
GIT_EXTERN(int) git_reference_rename_f(git_reference *ref, const char *new_name);
|
247
|
+
|
248
|
+
/**
|
249
|
+
* Delete an existing reference
|
250
|
+
*
|
251
|
+
* This method works for both direct and symbolic references.
|
252
|
+
*
|
253
|
+
* The reference will be immediately removed on disk and from
|
254
|
+
* memory. The given reference pointer will no longer be valid.
|
255
|
+
*
|
256
|
+
*/
|
257
|
+
GIT_EXTERN(int) git_reference_delete(git_reference *ref);
|
258
|
+
|
259
|
+
/**
|
260
|
+
* Pack all the loose references in the repository
|
261
|
+
*
|
262
|
+
* This method will load into the cache all the loose
|
263
|
+
* references on the repository and update the
|
264
|
+
* `packed-refs` file with them.
|
265
|
+
*
|
266
|
+
* Once the `packed-refs` file has been written properly,
|
267
|
+
* the loose references will be removed from disk.
|
268
|
+
*
|
269
|
+
* WARNING: calling this method may invalidate any existing
|
270
|
+
* references previously loaded on the cache.
|
271
|
+
*
|
272
|
+
* @param repo Repository where the loose refs will be packed
|
273
|
+
* @return 0 on success; error code otherwise
|
274
|
+
*/
|
275
|
+
GIT_EXTERN(int) git_reference_packall(git_repository *repo);
|
276
|
+
|
277
|
+
/**
|
278
|
+
* Fill a list with all the references that can be found
|
279
|
+
* in a repository.
|
280
|
+
*
|
281
|
+
* The listed references may be filtered by type, or using
|
282
|
+
* a bitwise OR of several types. Use the magic value
|
283
|
+
* `GIT_REF_LISTALL` to obtain all references, including
|
284
|
+
* packed ones.
|
285
|
+
*
|
286
|
+
* The string array will be filled with the names of all
|
287
|
+
* references; these values are owned by the user and
|
288
|
+
* should be free'd manually when no longer needed, using
|
289
|
+
* `git_strarray_free`.
|
290
|
+
*
|
291
|
+
* @param array Pointer to a git_strarray structure where
|
292
|
+
* the reference names will be stored
|
293
|
+
* @param repo Repository where to find the refs
|
294
|
+
* @param list_flags Filtering flags for the reference
|
295
|
+
* listing.
|
296
|
+
* @return 0 on success; error code otherwise
|
297
|
+
*/
|
298
|
+
GIT_EXTERN(int) git_reference_listall(git_strarray *array, git_repository *repo, unsigned int list_flags);
|
299
|
+
|
300
|
+
|
301
|
+
/**
|
302
|
+
* List all the references in the repository, calling a custom
|
303
|
+
* callback for each one.
|
304
|
+
*
|
305
|
+
* The listed references may be filtered by type, or using
|
306
|
+
* a bitwise OR of several types. Use the magic value
|
307
|
+
* `GIT_REF_LISTALL` to obtain all references, including
|
308
|
+
* packed ones.
|
309
|
+
*
|
310
|
+
* The `callback` function will be called for each of the references
|
311
|
+
* in the repository, and will receive the name of the reference and
|
312
|
+
* the `payload` value passed to this method.
|
313
|
+
*
|
314
|
+
* @param repo Repository where to find the refs
|
315
|
+
* @param list_flags Filtering flags for the reference
|
316
|
+
* listing.
|
317
|
+
* @param callback Function which will be called for every listed ref
|
318
|
+
* @param payload Additional data to pass to the callback
|
319
|
+
* @return 0 on success; error code otherwise
|
320
|
+
*/
|
321
|
+
GIT_EXTERN(int) git_reference_listcb(git_repository *repo, unsigned int list_flags, int (*callback)(const char *, void *), void *payload);
|
322
|
+
|
323
|
+
/** @} */
|
324
|
+
GIT_END_DECL
|
325
|
+
#endif
|