rugged 1.1.1 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/LICENSE +1 -0
- data/README.md +1 -1
- data/ext/rugged/rugged.c +7 -4
- data/ext/rugged/rugged_object.c +1 -1
- data/ext/rugged/rugged_repo.c +3 -3
- data/lib/rugged/repository.rb +2 -2
- data/lib/rugged/version.rb +1 -1
- data/vendor/libgit2/CMakeLists.txt +11 -6
- data/vendor/libgit2/COPYING +109 -1
- data/vendor/libgit2/cmake/Findfutimens.cmake +14 -0
- data/vendor/libgit2/cmake/SelectHTTPSBackend.cmake +4 -0
- data/vendor/libgit2/cmake/SelectHashes.cmake +1 -0
- data/vendor/libgit2/deps/chromium-zlib/CMakeLists.txt +101 -0
- data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +17 -5
- data/vendor/libgit2/deps/ntlmclient/crypt.h +14 -9
- data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.c +20 -20
- data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.h +3 -3
- data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.c +37 -36
- data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.h +4 -3
- data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +178 -51
- data/vendor/libgit2/deps/ntlmclient/crypt_openssl.h +74 -5
- data/vendor/libgit2/deps/ntlmclient/ntlm.c +150 -118
- data/vendor/libgit2/deps/ntlmclient/ntlm.h +13 -9
- data/vendor/libgit2/deps/ntlmclient/ntlmclient.h +16 -3
- data/vendor/libgit2/deps/ntlmclient/unicode.h +10 -4
- data/vendor/libgit2/deps/ntlmclient/unicode_builtin.c +16 -27
- data/vendor/libgit2/deps/ntlmclient/unicode_builtin.h +20 -0
- data/vendor/libgit2/deps/ntlmclient/unicode_iconv.c +28 -52
- data/vendor/libgit2/deps/ntlmclient/unicode_iconv.h +22 -0
- data/vendor/libgit2/include/git2/attr.h +89 -0
- data/vendor/libgit2/include/git2/blame.h +93 -42
- data/vendor/libgit2/include/git2/blob.h +14 -2
- data/vendor/libgit2/include/git2/branch.h +25 -0
- data/vendor/libgit2/include/git2/cert.h +42 -5
- data/vendor/libgit2/include/git2/checkout.h +28 -12
- data/vendor/libgit2/include/git2/commit.h +35 -19
- data/vendor/libgit2/include/git2/common.h +14 -4
- data/vendor/libgit2/include/git2/deprecated.h +206 -6
- data/vendor/libgit2/include/git2/diff.h +34 -19
- data/vendor/libgit2/include/git2/errors.h +6 -6
- data/vendor/libgit2/include/git2/filter.h +57 -17
- data/vendor/libgit2/include/git2/graph.h +20 -2
- data/vendor/libgit2/include/git2/index.h +2 -2
- data/vendor/libgit2/include/git2/odb.h +29 -0
- data/vendor/libgit2/include/git2/patch.h +8 -0
- data/vendor/libgit2/include/git2/rebase.h +25 -1
- data/vendor/libgit2/include/git2/refs.h +6 -2
- data/vendor/libgit2/include/git2/remote.h +59 -6
- data/vendor/libgit2/include/git2/revparse.h +5 -5
- data/vendor/libgit2/include/git2/status.h +115 -59
- data/vendor/libgit2/include/git2/submodule.h +9 -0
- data/vendor/libgit2/include/git2/sys/commit_graph.h +174 -0
- data/vendor/libgit2/include/git2/sys/filter.h +49 -28
- data/vendor/libgit2/include/git2/sys/midx.h +74 -0
- data/vendor/libgit2/include/git2/sys/odb_backend.h +7 -0
- data/vendor/libgit2/include/git2/sys/transport.h +1 -0
- data/vendor/libgit2/include/git2/tag.h +12 -0
- data/vendor/libgit2/include/git2/tree.h +0 -14
- data/vendor/libgit2/include/git2/types.h +9 -0
- data/vendor/libgit2/include/git2/version.h +4 -4
- data/vendor/libgit2/include/git2/worktree.h +1 -0
- data/vendor/libgit2/src/CMakeLists.txt +25 -4
- data/vendor/libgit2/src/alloc.c +21 -8
- data/vendor/libgit2/src/allocators/failalloc.c +92 -0
- data/vendor/libgit2/src/allocators/failalloc.h +23 -0
- data/vendor/libgit2/src/allocators/stdalloc.c +41 -10
- data/vendor/libgit2/src/allocators/win32_leakcheck.c +118 -0
- data/vendor/libgit2/src/allocators/{win32_crtdbg.h → win32_leakcheck.h} +3 -3
- data/vendor/libgit2/src/annotated_commit.c +21 -9
- data/vendor/libgit2/src/apply.c +16 -7
- data/vendor/libgit2/src/array.h +11 -11
- data/vendor/libgit2/src/attr.c +181 -74
- data/vendor/libgit2/src/attr_file.c +84 -39
- data/vendor/libgit2/src/attr_file.h +32 -11
- data/vendor/libgit2/src/attrcache.c +42 -37
- data/vendor/libgit2/src/attrcache.h +4 -5
- data/vendor/libgit2/src/blame.c +11 -5
- data/vendor/libgit2/src/blob.c +35 -24
- data/vendor/libgit2/src/branch.c +69 -17
- data/vendor/libgit2/src/buffer.c +334 -25
- data/vendor/libgit2/src/buffer.h +153 -2
- data/vendor/libgit2/src/cache.c +2 -2
- data/vendor/libgit2/src/cache.h +7 -7
- data/vendor/libgit2/src/cc-compat.h +10 -2
- data/vendor/libgit2/src/checkout.c +48 -26
- data/vendor/libgit2/src/cherrypick.c +6 -2
- data/vendor/libgit2/src/clone.c +41 -47
- data/vendor/libgit2/src/commit.c +41 -28
- data/vendor/libgit2/src/commit_graph.c +1209 -0
- data/vendor/libgit2/src/commit_graph.h +162 -0
- data/vendor/libgit2/src/commit_list.c +46 -0
- data/vendor/libgit2/src/commit_list.h +2 -0
- data/vendor/libgit2/src/common.h +25 -2
- data/vendor/libgit2/src/config.c +37 -15
- data/vendor/libgit2/src/config_cache.c +5 -3
- data/vendor/libgit2/src/config_file.c +16 -8
- data/vendor/libgit2/src/config_parse.c +4 -6
- data/vendor/libgit2/src/crlf.c +16 -6
- data/vendor/libgit2/src/date.c +4 -3
- data/vendor/libgit2/src/delta.c +1 -1
- data/vendor/libgit2/src/describe.c +6 -3
- data/vendor/libgit2/src/diff.c +11 -8
- data/vendor/libgit2/src/diff_driver.c +21 -17
- data/vendor/libgit2/src/diff_file.c +2 -6
- data/vendor/libgit2/src/diff_generate.c +46 -17
- data/vendor/libgit2/src/diff_print.c +19 -6
- data/vendor/libgit2/src/diff_stats.c +7 -5
- data/vendor/libgit2/src/diff_tform.c +9 -8
- data/vendor/libgit2/src/diff_xdiff.c +4 -2
- data/vendor/libgit2/src/diff_xdiff.h +1 -1
- data/vendor/libgit2/src/errors.c +24 -19
- data/vendor/libgit2/src/features.h.in +5 -1
- data/vendor/libgit2/src/fetch.c +5 -2
- data/vendor/libgit2/src/fetchhead.c +8 -4
- data/vendor/libgit2/src/filebuf.c +9 -7
- data/vendor/libgit2/src/filter.c +206 -110
- data/vendor/libgit2/src/filter.h +24 -5
- data/vendor/libgit2/src/futils.c +5 -5
- data/vendor/libgit2/src/futils.h +1 -1
- data/vendor/libgit2/src/graph.c +64 -9
- data/vendor/libgit2/src/hash/sha1/collisiondetect.c +3 -3
- data/vendor/libgit2/src/hash/sha1/common_crypto.c +3 -3
- data/vendor/libgit2/src/hash/sha1/generic.h +1 -1
- data/vendor/libgit2/src/hash/sha1/mbedtls.c +12 -12
- data/vendor/libgit2/src/hash/sha1/openssl.c +3 -3
- data/vendor/libgit2/src/hash/sha1/sha1dc/sha1.c +0 -2
- data/vendor/libgit2/src/hash/sha1/win32.c +15 -11
- data/vendor/libgit2/src/hash.c +16 -13
- data/vendor/libgit2/src/hash.h +1 -1
- data/vendor/libgit2/src/hashsig.c +23 -10
- data/vendor/libgit2/src/ident.c +13 -3
- data/vendor/libgit2/src/ignore.c +35 -19
- data/vendor/libgit2/src/index.c +106 -70
- data/vendor/libgit2/src/index.h +1 -1
- data/vendor/libgit2/src/indexer.c +31 -29
- data/vendor/libgit2/src/integer.h +64 -2
- data/vendor/libgit2/src/iterator.c +36 -24
- data/vendor/libgit2/src/iterator.h +1 -1
- data/vendor/libgit2/src/khash.h +2 -11
- data/vendor/libgit2/src/{settings.c → libgit2.c} +117 -50
- data/vendor/libgit2/src/libgit2.h +15 -0
- data/vendor/libgit2/src/mailmap.c +23 -10
- data/vendor/libgit2/src/map.h +3 -3
- data/vendor/libgit2/src/merge.c +70 -30
- data/vendor/libgit2/src/merge.h +2 -1
- data/vendor/libgit2/src/merge_driver.c +19 -13
- data/vendor/libgit2/src/merge_file.c +11 -3
- data/vendor/libgit2/src/message.c +3 -1
- data/vendor/libgit2/src/midx.c +471 -10
- data/vendor/libgit2/src/midx.h +28 -1
- data/vendor/libgit2/src/mwindow.c +103 -59
- data/vendor/libgit2/src/mwindow.h +3 -3
- data/vendor/libgit2/src/net.c +127 -3
- data/vendor/libgit2/src/net.h +16 -2
- data/vendor/libgit2/src/netops.c +6 -4
- data/vendor/libgit2/src/netops.h +2 -2
- data/vendor/libgit2/src/notes.c +10 -10
- data/vendor/libgit2/src/object.c +22 -14
- data/vendor/libgit2/src/odb.c +285 -48
- data/vendor/libgit2/src/odb.h +16 -2
- data/vendor/libgit2/src/odb_loose.c +28 -18
- data/vendor/libgit2/src/odb_mempack.c +1 -1
- data/vendor/libgit2/src/odb_pack.c +391 -114
- data/vendor/libgit2/src/oid.c +5 -4
- data/vendor/libgit2/src/pack-objects.c +54 -48
- data/vendor/libgit2/src/pack.c +329 -119
- data/vendor/libgit2/src/pack.h +25 -7
- data/vendor/libgit2/src/patch.c +14 -7
- data/vendor/libgit2/src/patch_generate.c +2 -2
- data/vendor/libgit2/src/patch_parse.c +2 -1
- data/vendor/libgit2/src/path.c +98 -53
- data/vendor/libgit2/src/path.h +79 -6
- data/vendor/libgit2/src/pathspec.c +8 -8
- data/vendor/libgit2/src/pool.c +13 -7
- data/vendor/libgit2/src/posix.c +11 -3
- data/vendor/libgit2/src/reader.c +10 -6
- data/vendor/libgit2/src/rebase.c +93 -49
- data/vendor/libgit2/src/refdb.c +30 -13
- data/vendor/libgit2/src/refdb_fs.c +121 -69
- data/vendor/libgit2/src/reflog.c +19 -14
- data/vendor/libgit2/src/refs.c +76 -41
- data/vendor/libgit2/src/refspec.c +32 -12
- data/vendor/libgit2/src/remote.c +272 -102
- data/vendor/libgit2/src/remote.h +2 -1
- data/vendor/libgit2/src/repository.c +176 -103
- data/vendor/libgit2/src/repository.h +12 -1
- data/vendor/libgit2/src/reset.c +7 -6
- data/vendor/libgit2/src/revert.c +6 -2
- data/vendor/libgit2/src/revparse.c +14 -9
- data/vendor/libgit2/src/revwalk.c +32 -15
- data/vendor/libgit2/src/runtime.c +162 -0
- data/vendor/libgit2/src/runtime.h +62 -0
- data/vendor/libgit2/src/settings.h +11 -0
- data/vendor/libgit2/src/signature.c +6 -5
- data/vendor/libgit2/src/sortedcache.h +10 -8
- data/vendor/libgit2/src/stash.c +3 -1
- data/vendor/libgit2/src/status.c +7 -4
- data/vendor/libgit2/src/strarray.c +2 -1
- data/vendor/libgit2/src/streams/mbedtls.c +14 -17
- data/vendor/libgit2/src/streams/mbedtls.h +1 -1
- data/vendor/libgit2/src/streams/openssl.c +101 -201
- data/vendor/libgit2/src/streams/openssl.h +9 -1
- data/vendor/libgit2/src/streams/openssl_dynamic.c +309 -0
- data/vendor/libgit2/src/streams/openssl_dynamic.h +348 -0
- data/vendor/libgit2/src/streams/openssl_legacy.c +203 -0
- data/vendor/libgit2/src/streams/openssl_legacy.h +63 -0
- data/vendor/libgit2/src/streams/registry.c +5 -6
- data/vendor/libgit2/src/streams/socket.c +6 -2
- data/vendor/libgit2/src/streams/stransport.c +6 -3
- data/vendor/libgit2/src/streams/tls.c +5 -3
- data/vendor/libgit2/src/submodule.c +128 -62
- data/vendor/libgit2/src/submodule.h +9 -9
- data/vendor/libgit2/src/sysdir.c +4 -6
- data/vendor/libgit2/src/tag.c +47 -11
- data/vendor/libgit2/src/thread.c +140 -0
- data/vendor/libgit2/src/thread.h +479 -0
- data/vendor/libgit2/src/threadstate.c +83 -0
- data/vendor/libgit2/src/threadstate.h +24 -0
- data/vendor/libgit2/src/trace.c +2 -2
- data/vendor/libgit2/src/trace.h +17 -13
- data/vendor/libgit2/src/transaction.c +19 -8
- data/vendor/libgit2/src/transport.c +3 -3
- data/vendor/libgit2/src/transports/auth.c +1 -1
- data/vendor/libgit2/src/transports/auth_negotiate.c +11 -4
- data/vendor/libgit2/src/transports/auth_ntlm.c +10 -6
- data/vendor/libgit2/src/transports/credential.c +15 -7
- data/vendor/libgit2/src/transports/git.c +1 -3
- data/vendor/libgit2/src/transports/http.c +19 -17
- data/vendor/libgit2/src/transports/http.h +1 -0
- data/vendor/libgit2/src/transports/httpclient.c +53 -26
- data/vendor/libgit2/src/transports/httpclient.h +1 -1
- data/vendor/libgit2/src/transports/local.c +3 -3
- data/vendor/libgit2/src/transports/smart.c +12 -7
- data/vendor/libgit2/src/transports/smart.h +1 -1
- data/vendor/libgit2/src/transports/smart_protocol.c +11 -5
- data/vendor/libgit2/src/transports/ssh.c +51 -17
- data/vendor/libgit2/src/transports/winhttp.c +41 -31
- data/vendor/libgit2/src/tree.c +100 -77
- data/vendor/libgit2/src/tree.h +1 -0
- data/vendor/libgit2/src/tsort.c +0 -2
- data/vendor/libgit2/src/unix/map.c +3 -1
- data/vendor/libgit2/src/unix/pthread.h +2 -1
- data/vendor/libgit2/src/utf8.c +150 -0
- data/vendor/libgit2/src/utf8.h +52 -0
- data/vendor/libgit2/src/util.c +53 -129
- data/vendor/libgit2/src/util.h +33 -39
- data/vendor/libgit2/src/vector.c +23 -19
- data/vendor/libgit2/src/vector.h +4 -2
- data/vendor/libgit2/src/win32/findfile.c +4 -2
- data/vendor/libgit2/src/win32/map.c +1 -1
- data/vendor/libgit2/src/win32/msvc-compat.h +9 -1
- data/vendor/libgit2/src/win32/path_w32.c +22 -24
- data/vendor/libgit2/src/win32/path_w32.h +0 -1
- data/vendor/libgit2/src/win32/posix_w32.c +7 -1
- data/vendor/libgit2/src/win32/precompiled.h +0 -1
- data/vendor/libgit2/src/win32/reparse.h +4 -4
- data/vendor/libgit2/src/win32/thread.c +24 -15
- data/vendor/libgit2/src/win32/thread.h +1 -1
- data/vendor/libgit2/src/win32/w32_buffer.c +3 -3
- data/vendor/libgit2/src/win32/w32_common.h +18 -9
- data/vendor/libgit2/src/win32/{w32_crtdbg_stacktrace.c → w32_leakcheck.c} +269 -33
- data/vendor/libgit2/src/win32/w32_leakcheck.h +222 -0
- data/vendor/libgit2/src/win32/w32_util.h +6 -6
- data/vendor/libgit2/src/worktree.c +27 -16
- data/vendor/libgit2/src/zstream.c +1 -1
- metadata +32 -16
- data/vendor/libgit2/src/allocators/win32_crtdbg.c +0 -118
- data/vendor/libgit2/src/buf_text.c +0 -316
- data/vendor/libgit2/src/buf_text.h +0 -122
- data/vendor/libgit2/src/global.c +0 -363
- data/vendor/libgit2/src/global.h +0 -41
- data/vendor/libgit2/src/thread-utils.c +0 -58
- data/vendor/libgit2/src/thread-utils.h +0 -369
- data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.h +0 -127
- data/vendor/libgit2/src/win32/w32_stack.c +0 -188
- data/vendor/libgit2/src/win32/w32_stack.h +0 -140
|
@@ -130,9 +130,32 @@ GIT_EXTERN(git_attr_value_t) git_attr_value(const char *attr);
|
|
|
130
130
|
*
|
|
131
131
|
* Passing the `GIT_ATTR_CHECK_INCLUDE_HEAD` flag will use attributes
|
|
132
132
|
* from a `.gitattributes` file in the repository at the HEAD revision.
|
|
133
|
+
*
|
|
134
|
+
* Passing the `GIT_ATTR_CHECK_INCLUDE_COMMIT` flag will use attributes
|
|
135
|
+
* from a `.gitattributes` file in a specific commit.
|
|
133
136
|
*/
|
|
134
137
|
#define GIT_ATTR_CHECK_NO_SYSTEM (1 << 2)
|
|
135
138
|
#define GIT_ATTR_CHECK_INCLUDE_HEAD (1 << 3)
|
|
139
|
+
#define GIT_ATTR_CHECK_INCLUDE_COMMIT (1 << 4)
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* An options structure for querying attributes.
|
|
143
|
+
*/
|
|
144
|
+
typedef struct {
|
|
145
|
+
unsigned int version;
|
|
146
|
+
|
|
147
|
+
/** A combination of GIT_ATTR_CHECK flags */
|
|
148
|
+
unsigned int flags;
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* The commit to load attributes from, when
|
|
152
|
+
* `GIT_ATTR_CHECK_INCLUDE_COMMIT` is specified.
|
|
153
|
+
*/
|
|
154
|
+
git_oid *commit_id;
|
|
155
|
+
} git_attr_options;
|
|
156
|
+
|
|
157
|
+
#define GIT_ATTR_OPTIONS_VERSION 1
|
|
158
|
+
#define GIT_ATTR_OPTIONS_INIT {GIT_ATTR_OPTIONS_VERSION}
|
|
136
159
|
|
|
137
160
|
/**
|
|
138
161
|
* Look up the value of one git attribute for path.
|
|
@@ -156,6 +179,28 @@ GIT_EXTERN(int) git_attr_get(
|
|
|
156
179
|
const char *path,
|
|
157
180
|
const char *name);
|
|
158
181
|
|
|
182
|
+
/**
|
|
183
|
+
* Look up the value of one git attribute for path with extended options.
|
|
184
|
+
*
|
|
185
|
+
* @param value_out Output of the value of the attribute. Use the GIT_ATTR_...
|
|
186
|
+
* macros to test for TRUE, FALSE, UNSPECIFIED, etc. or just
|
|
187
|
+
* use the string value for attributes set to a value. You
|
|
188
|
+
* should NOT modify or free this value.
|
|
189
|
+
* @param repo The repository containing the path.
|
|
190
|
+
* @param opts The `git_attr_options` to use when querying these attributes.
|
|
191
|
+
* @param path The path to check for attributes. Relative paths are
|
|
192
|
+
* interpreted relative to the repo root. The file does
|
|
193
|
+
* not have to exist, but if it does not, then it will be
|
|
194
|
+
* treated as a plain file (not a directory).
|
|
195
|
+
* @param name The name of the attribute to look up.
|
|
196
|
+
*/
|
|
197
|
+
GIT_EXTERN(int) git_attr_get_ext(
|
|
198
|
+
const char **value_out,
|
|
199
|
+
git_repository *repo,
|
|
200
|
+
git_attr_options *opts,
|
|
201
|
+
const char *path,
|
|
202
|
+
const char *name);
|
|
203
|
+
|
|
159
204
|
/**
|
|
160
205
|
* Look up a list of git attributes for path.
|
|
161
206
|
*
|
|
@@ -193,6 +238,30 @@ GIT_EXTERN(int) git_attr_get_many(
|
|
|
193
238
|
size_t num_attr,
|
|
194
239
|
const char **names);
|
|
195
240
|
|
|
241
|
+
/**
|
|
242
|
+
* Look up a list of git attributes for path with extended options.
|
|
243
|
+
*
|
|
244
|
+
* @param values_out An array of num_attr entries that will have string
|
|
245
|
+
* pointers written into it for the values of the attributes.
|
|
246
|
+
* You should not modify or free the values that are written
|
|
247
|
+
* into this array (although of course, you should free the
|
|
248
|
+
* array itself if you allocated it).
|
|
249
|
+
* @param repo The repository containing the path.
|
|
250
|
+
* @param opts The `git_attr_options` to use when querying these attributes.
|
|
251
|
+
* @param path The path inside the repo to check attributes. This
|
|
252
|
+
* does not have to exist, but if it does not, then
|
|
253
|
+
* it will be treated as a plain file (i.e. not a directory).
|
|
254
|
+
* @param num_attr The number of attributes being looked up
|
|
255
|
+
* @param names An array of num_attr strings containing attribute names.
|
|
256
|
+
*/
|
|
257
|
+
GIT_EXTERN(int) git_attr_get_many_ext(
|
|
258
|
+
const char **values_out,
|
|
259
|
+
git_repository *repo,
|
|
260
|
+
git_attr_options *opts,
|
|
261
|
+
const char *path,
|
|
262
|
+
size_t num_attr,
|
|
263
|
+
const char **names);
|
|
264
|
+
|
|
196
265
|
/**
|
|
197
266
|
* The callback used with git_attr_foreach.
|
|
198
267
|
*
|
|
@@ -231,6 +300,26 @@ GIT_EXTERN(int) git_attr_foreach(
|
|
|
231
300
|
git_attr_foreach_cb callback,
|
|
232
301
|
void *payload);
|
|
233
302
|
|
|
303
|
+
/**
|
|
304
|
+
* Loop over all the git attributes for a path with extended options.
|
|
305
|
+
*
|
|
306
|
+
* @param repo The repository containing the path.
|
|
307
|
+
* @param opts The `git_attr_options` to use when querying these attributes.
|
|
308
|
+
* @param path Path inside the repo to check attributes. This does not have
|
|
309
|
+
* to exist, but if it does not, then it will be treated as a
|
|
310
|
+
* plain file (i.e. not a directory).
|
|
311
|
+
* @param callback Function to invoke on each attribute name and value.
|
|
312
|
+
* See git_attr_foreach_cb.
|
|
313
|
+
* @param payload Passed on as extra parameter to callback function.
|
|
314
|
+
* @return 0 on success, non-zero callback return value, or error code
|
|
315
|
+
*/
|
|
316
|
+
GIT_EXTERN(int) git_attr_foreach_ext(
|
|
317
|
+
git_repository *repo,
|
|
318
|
+
git_attr_options *opts,
|
|
319
|
+
const char *path,
|
|
320
|
+
git_attr_foreach_cb callback,
|
|
321
|
+
void *payload);
|
|
322
|
+
|
|
234
323
|
/**
|
|
235
324
|
* Flush the gitattributes cache.
|
|
236
325
|
*
|
|
@@ -26,27 +26,52 @@ GIT_BEGIN_DECL
|
|
|
26
26
|
typedef enum {
|
|
27
27
|
/** Normal blame, the default */
|
|
28
28
|
GIT_BLAME_NORMAL = 0,
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Track lines that have moved within a file (like `git blame -M`).
|
|
32
|
+
*
|
|
33
|
+
* This is not yet implemented and reserved for future use.
|
|
34
|
+
*/
|
|
31
35
|
GIT_BLAME_TRACK_COPIES_SAME_FILE = (1<<0),
|
|
32
|
-
|
|
33
|
-
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Track lines that have moved across files in the same commit
|
|
39
|
+
* (like `git blame -C`).
|
|
40
|
+
*
|
|
41
|
+
* This is not yet implemented and reserved for future use.
|
|
42
|
+
*/
|
|
34
43
|
GIT_BLAME_TRACK_COPIES_SAME_COMMIT_MOVES = (1<<1),
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
*
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Track lines that have been copied from another file that exists
|
|
47
|
+
* in the same commit (like `git blame -CC`). Implies SAME_FILE.
|
|
48
|
+
*
|
|
49
|
+
* This is not yet implemented and reserved for future use.
|
|
50
|
+
*/
|
|
38
51
|
GIT_BLAME_TRACK_COPIES_SAME_COMMIT_COPIES = (1<<2),
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
*
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Track lines that have been copied from another file that exists in
|
|
55
|
+
* *any* commit (like `git blame -CCC`). Implies SAME_COMMIT_COPIES.
|
|
56
|
+
*
|
|
57
|
+
* This is not yet implemented and reserved for future use.
|
|
58
|
+
*/
|
|
42
59
|
GIT_BLAME_TRACK_COPIES_ANY_COMMIT_COPIES = (1<<3),
|
|
43
|
-
|
|
44
|
-
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Restrict the search of commits to those reachable following only
|
|
63
|
+
* the first parents.
|
|
64
|
+
*/
|
|
45
65
|
GIT_BLAME_FIRST_PARENT = (1<<4),
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
*
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Use mailmap file to map author and committer names and email
|
|
69
|
+
* addresses to canonical real names and email addresses. The
|
|
70
|
+
* mailmap will be read from the working directory, or HEAD in a
|
|
71
|
+
* bare repository.
|
|
72
|
+
*/
|
|
49
73
|
GIT_BLAME_USE_MAILMAP = (1<<5),
|
|
74
|
+
|
|
50
75
|
/** Ignore whitespace differences */
|
|
51
76
|
GIT_BLAME_IGNORE_WHITESPACE = (1<<6),
|
|
52
77
|
} git_blame_flag_t;
|
|
@@ -63,25 +88,33 @@ typedef struct git_blame_options {
|
|
|
63
88
|
|
|
64
89
|
/** A combination of `git_blame_flag_t` */
|
|
65
90
|
uint32_t flags;
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
*
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* The lower bound on the number of alphanumeric characters that
|
|
94
|
+
* must be detected as moving/copying within a file for it to
|
|
95
|
+
* associate those lines with the parent commit. The default value
|
|
96
|
+
* is 20.
|
|
97
|
+
*
|
|
98
|
+
* This value only takes effect if any of the `GIT_BLAME_TRACK_COPIES_*`
|
|
99
|
+
* flags are specified.
|
|
71
100
|
*/
|
|
72
101
|
uint16_t min_match_characters;
|
|
102
|
+
|
|
73
103
|
/** The id of the newest commit to consider. The default is HEAD. */
|
|
74
104
|
git_oid newest_commit;
|
|
105
|
+
|
|
75
106
|
/**
|
|
76
107
|
* The id of the oldest commit to consider.
|
|
77
108
|
* The default is the first commit encountered with a NULL parent.
|
|
78
109
|
*/
|
|
79
110
|
git_oid oldest_commit;
|
|
111
|
+
|
|
80
112
|
/**
|
|
81
113
|
* The first line in the file to blame.
|
|
82
114
|
* The default is 1 (line numbers start with 1).
|
|
83
115
|
*/
|
|
84
116
|
size_t min_line;
|
|
117
|
+
|
|
85
118
|
/**
|
|
86
119
|
* The last line in the file to blame.
|
|
87
120
|
* The default is the last line of the file.
|
|
@@ -108,41 +141,59 @@ GIT_EXTERN(int) git_blame_options_init(
|
|
|
108
141
|
|
|
109
142
|
/**
|
|
110
143
|
* Structure that represents a blame hunk.
|
|
111
|
-
*
|
|
112
|
-
* - `lines_in_hunk` is the number of lines in this hunk
|
|
113
|
-
* - `final_commit_id` is the OID of the commit where this line was last
|
|
114
|
-
* changed.
|
|
115
|
-
* - `final_start_line_number` is the 1-based line number where this hunk
|
|
116
|
-
* begins, in the final version of the file
|
|
117
|
-
* - `final_signature` is the author of `final_commit_id`. If
|
|
118
|
-
* `GIT_BLAME_USE_MAILMAP` has been specified, it will contain the canonical
|
|
119
|
-
* real name and email address.
|
|
120
|
-
* - `orig_commit_id` is the OID of the commit where this hunk was found. This
|
|
121
|
-
* will usually be the same as `final_commit_id`, except when
|
|
122
|
-
* `GIT_BLAME_TRACK_COPIES_ANY_COMMIT_COPIES` has been specified.
|
|
123
|
-
* - `orig_path` is the path to the file where this hunk originated, as of the
|
|
124
|
-
* commit specified by `orig_commit_id`.
|
|
125
|
-
* - `orig_start_line_number` is the 1-based line number where this hunk begins
|
|
126
|
-
* in the file named by `orig_path` in the commit specified by
|
|
127
|
-
* `orig_commit_id`.
|
|
128
|
-
* - `orig_signature` is the author of `orig_commit_id`. If
|
|
129
|
-
* `GIT_BLAME_USE_MAILMAP` has been specified, it will contain the canonical
|
|
130
|
-
* real name and email address.
|
|
131
|
-
* - `boundary` is 1 iff the hunk has been tracked to a boundary commit (the
|
|
132
|
-
* root, or the commit specified in git_blame_options.oldest_commit)
|
|
133
144
|
*/
|
|
134
145
|
typedef struct git_blame_hunk {
|
|
146
|
+
/**
|
|
147
|
+
* The number of lines in this hunk.
|
|
148
|
+
*/
|
|
135
149
|
size_t lines_in_hunk;
|
|
136
150
|
|
|
151
|
+
/**
|
|
152
|
+
* The OID of the commit where this line was last changed.
|
|
153
|
+
*/
|
|
137
154
|
git_oid final_commit_id;
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* The 1-based line number where this hunk begins, in the final version
|
|
158
|
+
* of the file.
|
|
159
|
+
*/
|
|
138
160
|
size_t final_start_line_number;
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* The author of `final_commit_id`. If `GIT_BLAME_USE_MAILMAP` has been
|
|
164
|
+
* specified, it will contain the canonical real name and email address.
|
|
165
|
+
*/
|
|
139
166
|
git_signature *final_signature;
|
|
140
167
|
|
|
168
|
+
/**
|
|
169
|
+
* The OID of the commit where this hunk was found.
|
|
170
|
+
* This will usually be the same as `final_commit_id`, except when
|
|
171
|
+
* `GIT_BLAME_TRACK_COPIES_ANY_COMMIT_COPIES` has been specified.
|
|
172
|
+
*/
|
|
141
173
|
git_oid orig_commit_id;
|
|
174
|
+
|
|
175
|
+
/**
|
|
176
|
+
* The path to the file where this hunk originated, as of the commit
|
|
177
|
+
* specified by `orig_commit_id`.
|
|
178
|
+
*/
|
|
142
179
|
const char *orig_path;
|
|
180
|
+
|
|
181
|
+
/**
|
|
182
|
+
* The 1-based line number where this hunk begins in the file named by
|
|
183
|
+
* `orig_path` in the commit specified by `orig_commit_id`.
|
|
184
|
+
*/
|
|
143
185
|
size_t orig_start_line_number;
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* The author of `orig_commit_id`. If `GIT_BLAME_USE_MAILMAP` has been
|
|
189
|
+
* specified, it will contain the canonical real name and email address.
|
|
190
|
+
*/
|
|
144
191
|
git_signature *orig_signature;
|
|
145
192
|
|
|
193
|
+
/**
|
|
194
|
+
* The 1 iff the hunk has been tracked to a boundary commit (the root,
|
|
195
|
+
* or the commit specified in git_blame_options.oldest_commit)
|
|
196
|
+
*/
|
|
146
197
|
char boundary;
|
|
147
198
|
} git_blame_hunk;
|
|
148
199
|
|
|
@@ -84,7 +84,7 @@ GIT_EXTERN(git_repository *) git_blob_owner(const git_blob *blob);
|
|
|
84
84
|
* time.
|
|
85
85
|
*
|
|
86
86
|
* @param blob pointer to the blob
|
|
87
|
-
* @return the pointer
|
|
87
|
+
* @return the pointer, or NULL on error
|
|
88
88
|
*/
|
|
89
89
|
GIT_EXTERN(const void *) git_blob_rawcontent(const git_blob *blob);
|
|
90
90
|
|
|
@@ -113,7 +113,13 @@ typedef enum {
|
|
|
113
113
|
* When set, filters will be loaded from a `.gitattributes` file
|
|
114
114
|
* in the HEAD commit.
|
|
115
115
|
*/
|
|
116
|
-
|
|
116
|
+
GIT_BLOB_FILTER_ATTRIBUTES_FROM_HEAD = (1 << 2),
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* When set, filters will be loaded from a `.gitattributes` file
|
|
120
|
+
* in the specified commit.
|
|
121
|
+
*/
|
|
122
|
+
GIT_BLOB_FILTER_ATTRIBUTES_FROM_COMMIT = (1 << 3),
|
|
117
123
|
} git_blob_filter_flag_t;
|
|
118
124
|
|
|
119
125
|
/**
|
|
@@ -128,6 +134,12 @@ typedef struct {
|
|
|
128
134
|
|
|
129
135
|
/** Flags to control the filtering process, see `git_blob_filter_flag_t` above */
|
|
130
136
|
uint32_t flags;
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* The commit to load attributes from, when
|
|
140
|
+
* `GIT_BLOB_FILTER_ATTRIBUTES_FROM_COMMIT` is specified.
|
|
141
|
+
*/
|
|
142
|
+
git_oid *commit_id;
|
|
131
143
|
} git_blob_filter_options;
|
|
132
144
|
|
|
133
145
|
#define GIT_BLOB_FILTER_OPTIONS_VERSION 1
|
|
@@ -304,6 +304,31 @@ GIT_EXTERN(int) git_branch_remote_name(
|
|
|
304
304
|
*/
|
|
305
305
|
GIT_EXTERN(int) git_branch_upstream_remote(git_buf *buf, git_repository *repo, const char *refname);
|
|
306
306
|
|
|
307
|
+
/**
|
|
308
|
+
* Retrieve the upstream merge of a local branch
|
|
309
|
+
*
|
|
310
|
+
* This will return the currently configured "branch.*.merge" for a given
|
|
311
|
+
* branch. This branch must be local.
|
|
312
|
+
*
|
|
313
|
+
* @param buf the buffer into which to write the name
|
|
314
|
+
* @param repo the repository in which to look
|
|
315
|
+
* @param refname the full name of the branch
|
|
316
|
+
* @return 0 or an error code
|
|
317
|
+
*/
|
|
318
|
+
GIT_EXTERN(int) git_branch_upstream_merge(git_buf *buf, git_repository *repo, const char *refname);
|
|
319
|
+
|
|
320
|
+
/**
|
|
321
|
+
* Determine whether a branch name is valid, meaning that (when prefixed
|
|
322
|
+
* with `refs/heads/`) that it is a valid reference name, and that any
|
|
323
|
+
* additional branch name restrictions are imposed (eg, it cannot start
|
|
324
|
+
* with a `-`).
|
|
325
|
+
*
|
|
326
|
+
* @param valid output pointer to set with validity of given branch name
|
|
327
|
+
* @param name a branch name to test
|
|
328
|
+
* @return 0 on success or an error code
|
|
329
|
+
*/
|
|
330
|
+
GIT_EXTERN(int) git_branch_name_is_valid(int *valid, const char *name);
|
|
331
|
+
|
|
307
332
|
/** @} */
|
|
308
333
|
GIT_END_DECL
|
|
309
334
|
#endif
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
#define INCLUDE_git_cert_h__
|
|
9
9
|
|
|
10
10
|
#include "common.h"
|
|
11
|
+
#include "types.h"
|
|
11
12
|
|
|
12
13
|
/**
|
|
13
14
|
* @file git2/cert.h
|
|
@@ -80,8 +81,27 @@ typedef enum {
|
|
|
80
81
|
GIT_CERT_SSH_SHA1 = (1 << 1),
|
|
81
82
|
/** SHA-256 is available */
|
|
82
83
|
GIT_CERT_SSH_SHA256 = (1 << 2),
|
|
84
|
+
/** Raw hostkey is available */
|
|
85
|
+
GIT_CERT_SSH_RAW = (1 << 3),
|
|
83
86
|
} git_cert_ssh_t;
|
|
84
87
|
|
|
88
|
+
typedef enum {
|
|
89
|
+
/** The raw key is of an unknown type. */
|
|
90
|
+
GIT_CERT_SSH_RAW_TYPE_UNKNOWN = 0,
|
|
91
|
+
/** The raw key is an RSA key. */
|
|
92
|
+
GIT_CERT_SSH_RAW_TYPE_RSA = 1,
|
|
93
|
+
/** The raw key is a DSS key. */
|
|
94
|
+
GIT_CERT_SSH_RAW_TYPE_DSS = 2,
|
|
95
|
+
/** The raw key is a ECDSA 256 key. */
|
|
96
|
+
GIT_CERT_SSH_RAW_TYPE_KEY_ECDSA_256 = 3,
|
|
97
|
+
/** The raw key is a ECDSA 384 key. */
|
|
98
|
+
GIT_CERT_SSH_RAW_TYPE_KEY_ECDSA_384 = 4,
|
|
99
|
+
/** The raw key is a ECDSA 521 key. */
|
|
100
|
+
GIT_CERT_SSH_RAW_TYPE_KEY_ECDSA_521 = 5,
|
|
101
|
+
/** The raw key is a ED25519 key. */
|
|
102
|
+
GIT_CERT_SSH_RAW_TYPE_KEY_ED25519 = 6
|
|
103
|
+
} git_cert_ssh_raw_type_t;
|
|
104
|
+
|
|
85
105
|
/**
|
|
86
106
|
* Hostkey information taken from libssh2
|
|
87
107
|
*/
|
|
@@ -89,28 +109,45 @@ typedef struct {
|
|
|
89
109
|
git_cert parent; /**< The parent cert */
|
|
90
110
|
|
|
91
111
|
/**
|
|
92
|
-
* A
|
|
93
|
-
* `GIT_CERT_SSH_MD5` or `GIT_CERT_SSH_SHA1`
|
|
112
|
+
* A bitmask containing the available fields.
|
|
94
113
|
*/
|
|
95
114
|
git_cert_ssh_t type;
|
|
96
115
|
|
|
97
116
|
/**
|
|
98
|
-
* Hostkey hash. If type has `GIT_CERT_SSH_MD5` set, this will
|
|
117
|
+
* Hostkey hash. If `type` has `GIT_CERT_SSH_MD5` set, this will
|
|
99
118
|
* have the MD5 hash of the hostkey.
|
|
100
119
|
*/
|
|
101
120
|
unsigned char hash_md5[16];
|
|
102
121
|
|
|
103
122
|
/**
|
|
104
|
-
* Hostkey hash. If type has `GIT_CERT_SSH_SHA1` set, this will
|
|
123
|
+
* Hostkey hash. If `type` has `GIT_CERT_SSH_SHA1` set, this will
|
|
105
124
|
* have the SHA-1 hash of the hostkey.
|
|
106
125
|
*/
|
|
107
126
|
unsigned char hash_sha1[20];
|
|
108
127
|
|
|
109
128
|
/**
|
|
110
|
-
* Hostkey hash. If type has `GIT_CERT_SSH_SHA256` set, this will
|
|
129
|
+
* Hostkey hash. If `type` has `GIT_CERT_SSH_SHA256` set, this will
|
|
111
130
|
* have the SHA-256 hash of the hostkey.
|
|
112
131
|
*/
|
|
113
132
|
unsigned char hash_sha256[32];
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* Raw hostkey type. If `type` has `GIT_CERT_SSH_RAW` set, this will
|
|
136
|
+
* have the type of the raw hostkey.
|
|
137
|
+
*/
|
|
138
|
+
git_cert_ssh_raw_type_t raw_type;
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* Pointer to the raw hostkey. If `type` has `GIT_CERT_SSH_RAW` set,
|
|
142
|
+
* this will have the raw contents of the hostkey.
|
|
143
|
+
*/
|
|
144
|
+
const char *hostkey;
|
|
145
|
+
|
|
146
|
+
/**
|
|
147
|
+
* Raw hostkey length. If `type` has `GIT_CERT_SSH_RAW` set, this will
|
|
148
|
+
* have the length of the raw contents of the hostkey.
|
|
149
|
+
*/
|
|
150
|
+
size_t hostkey_len;
|
|
114
151
|
} git_cert_hostkey;
|
|
115
152
|
|
|
116
153
|
/**
|