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.
Files changed (277) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +1 -0
  3. data/README.md +1 -1
  4. data/ext/rugged/rugged.c +7 -4
  5. data/ext/rugged/rugged_object.c +1 -1
  6. data/ext/rugged/rugged_repo.c +3 -3
  7. data/lib/rugged/repository.rb +2 -2
  8. data/lib/rugged/version.rb +1 -1
  9. data/vendor/libgit2/CMakeLists.txt +11 -6
  10. data/vendor/libgit2/COPYING +109 -1
  11. data/vendor/libgit2/cmake/Findfutimens.cmake +14 -0
  12. data/vendor/libgit2/cmake/SelectHTTPSBackend.cmake +4 -0
  13. data/vendor/libgit2/cmake/SelectHashes.cmake +1 -0
  14. data/vendor/libgit2/deps/chromium-zlib/CMakeLists.txt +101 -0
  15. data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +17 -5
  16. data/vendor/libgit2/deps/ntlmclient/crypt.h +14 -9
  17. data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.c +20 -20
  18. data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.h +3 -3
  19. data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.c +37 -36
  20. data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.h +4 -3
  21. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +178 -51
  22. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.h +74 -5
  23. data/vendor/libgit2/deps/ntlmclient/ntlm.c +150 -118
  24. data/vendor/libgit2/deps/ntlmclient/ntlm.h +13 -9
  25. data/vendor/libgit2/deps/ntlmclient/ntlmclient.h +16 -3
  26. data/vendor/libgit2/deps/ntlmclient/unicode.h +10 -4
  27. data/vendor/libgit2/deps/ntlmclient/unicode_builtin.c +16 -27
  28. data/vendor/libgit2/deps/ntlmclient/unicode_builtin.h +20 -0
  29. data/vendor/libgit2/deps/ntlmclient/unicode_iconv.c +28 -52
  30. data/vendor/libgit2/deps/ntlmclient/unicode_iconv.h +22 -0
  31. data/vendor/libgit2/include/git2/attr.h +89 -0
  32. data/vendor/libgit2/include/git2/blame.h +93 -42
  33. data/vendor/libgit2/include/git2/blob.h +14 -2
  34. data/vendor/libgit2/include/git2/branch.h +25 -0
  35. data/vendor/libgit2/include/git2/cert.h +42 -5
  36. data/vendor/libgit2/include/git2/checkout.h +28 -12
  37. data/vendor/libgit2/include/git2/commit.h +35 -19
  38. data/vendor/libgit2/include/git2/common.h +14 -4
  39. data/vendor/libgit2/include/git2/deprecated.h +206 -6
  40. data/vendor/libgit2/include/git2/diff.h +34 -19
  41. data/vendor/libgit2/include/git2/errors.h +6 -6
  42. data/vendor/libgit2/include/git2/filter.h +57 -17
  43. data/vendor/libgit2/include/git2/graph.h +20 -2
  44. data/vendor/libgit2/include/git2/index.h +2 -2
  45. data/vendor/libgit2/include/git2/odb.h +29 -0
  46. data/vendor/libgit2/include/git2/patch.h +8 -0
  47. data/vendor/libgit2/include/git2/rebase.h +25 -1
  48. data/vendor/libgit2/include/git2/refs.h +6 -2
  49. data/vendor/libgit2/include/git2/remote.h +59 -6
  50. data/vendor/libgit2/include/git2/revparse.h +5 -5
  51. data/vendor/libgit2/include/git2/status.h +115 -59
  52. data/vendor/libgit2/include/git2/submodule.h +9 -0
  53. data/vendor/libgit2/include/git2/sys/commit_graph.h +174 -0
  54. data/vendor/libgit2/include/git2/sys/filter.h +49 -28
  55. data/vendor/libgit2/include/git2/sys/midx.h +74 -0
  56. data/vendor/libgit2/include/git2/sys/odb_backend.h +7 -0
  57. data/vendor/libgit2/include/git2/sys/transport.h +1 -0
  58. data/vendor/libgit2/include/git2/tag.h +12 -0
  59. data/vendor/libgit2/include/git2/tree.h +0 -14
  60. data/vendor/libgit2/include/git2/types.h +9 -0
  61. data/vendor/libgit2/include/git2/version.h +4 -4
  62. data/vendor/libgit2/include/git2/worktree.h +1 -0
  63. data/vendor/libgit2/src/CMakeLists.txt +25 -4
  64. data/vendor/libgit2/src/alloc.c +21 -8
  65. data/vendor/libgit2/src/allocators/failalloc.c +92 -0
  66. data/vendor/libgit2/src/allocators/failalloc.h +23 -0
  67. data/vendor/libgit2/src/allocators/stdalloc.c +41 -10
  68. data/vendor/libgit2/src/allocators/win32_leakcheck.c +118 -0
  69. data/vendor/libgit2/src/allocators/{win32_crtdbg.h → win32_leakcheck.h} +3 -3
  70. data/vendor/libgit2/src/annotated_commit.c +21 -9
  71. data/vendor/libgit2/src/apply.c +16 -7
  72. data/vendor/libgit2/src/array.h +11 -11
  73. data/vendor/libgit2/src/attr.c +181 -74
  74. data/vendor/libgit2/src/attr_file.c +84 -39
  75. data/vendor/libgit2/src/attr_file.h +32 -11
  76. data/vendor/libgit2/src/attrcache.c +42 -37
  77. data/vendor/libgit2/src/attrcache.h +4 -5
  78. data/vendor/libgit2/src/blame.c +11 -5
  79. data/vendor/libgit2/src/blob.c +35 -24
  80. data/vendor/libgit2/src/branch.c +69 -17
  81. data/vendor/libgit2/src/buffer.c +334 -25
  82. data/vendor/libgit2/src/buffer.h +153 -2
  83. data/vendor/libgit2/src/cache.c +2 -2
  84. data/vendor/libgit2/src/cache.h +7 -7
  85. data/vendor/libgit2/src/cc-compat.h +10 -2
  86. data/vendor/libgit2/src/checkout.c +48 -26
  87. data/vendor/libgit2/src/cherrypick.c +6 -2
  88. data/vendor/libgit2/src/clone.c +41 -47
  89. data/vendor/libgit2/src/commit.c +41 -28
  90. data/vendor/libgit2/src/commit_graph.c +1209 -0
  91. data/vendor/libgit2/src/commit_graph.h +162 -0
  92. data/vendor/libgit2/src/commit_list.c +46 -0
  93. data/vendor/libgit2/src/commit_list.h +2 -0
  94. data/vendor/libgit2/src/common.h +25 -2
  95. data/vendor/libgit2/src/config.c +37 -15
  96. data/vendor/libgit2/src/config_cache.c +5 -3
  97. data/vendor/libgit2/src/config_file.c +16 -8
  98. data/vendor/libgit2/src/config_parse.c +4 -6
  99. data/vendor/libgit2/src/crlf.c +16 -6
  100. data/vendor/libgit2/src/date.c +4 -3
  101. data/vendor/libgit2/src/delta.c +1 -1
  102. data/vendor/libgit2/src/describe.c +6 -3
  103. data/vendor/libgit2/src/diff.c +11 -8
  104. data/vendor/libgit2/src/diff_driver.c +21 -17
  105. data/vendor/libgit2/src/diff_file.c +2 -6
  106. data/vendor/libgit2/src/diff_generate.c +46 -17
  107. data/vendor/libgit2/src/diff_print.c +19 -6
  108. data/vendor/libgit2/src/diff_stats.c +7 -5
  109. data/vendor/libgit2/src/diff_tform.c +9 -8
  110. data/vendor/libgit2/src/diff_xdiff.c +4 -2
  111. data/vendor/libgit2/src/diff_xdiff.h +1 -1
  112. data/vendor/libgit2/src/errors.c +24 -19
  113. data/vendor/libgit2/src/features.h.in +5 -1
  114. data/vendor/libgit2/src/fetch.c +5 -2
  115. data/vendor/libgit2/src/fetchhead.c +8 -4
  116. data/vendor/libgit2/src/filebuf.c +9 -7
  117. data/vendor/libgit2/src/filter.c +206 -110
  118. data/vendor/libgit2/src/filter.h +24 -5
  119. data/vendor/libgit2/src/futils.c +5 -5
  120. data/vendor/libgit2/src/futils.h +1 -1
  121. data/vendor/libgit2/src/graph.c +64 -9
  122. data/vendor/libgit2/src/hash/sha1/collisiondetect.c +3 -3
  123. data/vendor/libgit2/src/hash/sha1/common_crypto.c +3 -3
  124. data/vendor/libgit2/src/hash/sha1/generic.h +1 -1
  125. data/vendor/libgit2/src/hash/sha1/mbedtls.c +12 -12
  126. data/vendor/libgit2/src/hash/sha1/openssl.c +3 -3
  127. data/vendor/libgit2/src/hash/sha1/sha1dc/sha1.c +0 -2
  128. data/vendor/libgit2/src/hash/sha1/win32.c +15 -11
  129. data/vendor/libgit2/src/hash.c +16 -13
  130. data/vendor/libgit2/src/hash.h +1 -1
  131. data/vendor/libgit2/src/hashsig.c +23 -10
  132. data/vendor/libgit2/src/ident.c +13 -3
  133. data/vendor/libgit2/src/ignore.c +35 -19
  134. data/vendor/libgit2/src/index.c +106 -70
  135. data/vendor/libgit2/src/index.h +1 -1
  136. data/vendor/libgit2/src/indexer.c +31 -29
  137. data/vendor/libgit2/src/integer.h +64 -2
  138. data/vendor/libgit2/src/iterator.c +36 -24
  139. data/vendor/libgit2/src/iterator.h +1 -1
  140. data/vendor/libgit2/src/khash.h +2 -11
  141. data/vendor/libgit2/src/{settings.c → libgit2.c} +117 -50
  142. data/vendor/libgit2/src/libgit2.h +15 -0
  143. data/vendor/libgit2/src/mailmap.c +23 -10
  144. data/vendor/libgit2/src/map.h +3 -3
  145. data/vendor/libgit2/src/merge.c +70 -30
  146. data/vendor/libgit2/src/merge.h +2 -1
  147. data/vendor/libgit2/src/merge_driver.c +19 -13
  148. data/vendor/libgit2/src/merge_file.c +11 -3
  149. data/vendor/libgit2/src/message.c +3 -1
  150. data/vendor/libgit2/src/midx.c +471 -10
  151. data/vendor/libgit2/src/midx.h +28 -1
  152. data/vendor/libgit2/src/mwindow.c +103 -59
  153. data/vendor/libgit2/src/mwindow.h +3 -3
  154. data/vendor/libgit2/src/net.c +127 -3
  155. data/vendor/libgit2/src/net.h +16 -2
  156. data/vendor/libgit2/src/netops.c +6 -4
  157. data/vendor/libgit2/src/netops.h +2 -2
  158. data/vendor/libgit2/src/notes.c +10 -10
  159. data/vendor/libgit2/src/object.c +22 -14
  160. data/vendor/libgit2/src/odb.c +285 -48
  161. data/vendor/libgit2/src/odb.h +16 -2
  162. data/vendor/libgit2/src/odb_loose.c +28 -18
  163. data/vendor/libgit2/src/odb_mempack.c +1 -1
  164. data/vendor/libgit2/src/odb_pack.c +391 -114
  165. data/vendor/libgit2/src/oid.c +5 -4
  166. data/vendor/libgit2/src/pack-objects.c +54 -48
  167. data/vendor/libgit2/src/pack.c +329 -119
  168. data/vendor/libgit2/src/pack.h +25 -7
  169. data/vendor/libgit2/src/patch.c +14 -7
  170. data/vendor/libgit2/src/patch_generate.c +2 -2
  171. data/vendor/libgit2/src/patch_parse.c +2 -1
  172. data/vendor/libgit2/src/path.c +98 -53
  173. data/vendor/libgit2/src/path.h +79 -6
  174. data/vendor/libgit2/src/pathspec.c +8 -8
  175. data/vendor/libgit2/src/pool.c +13 -7
  176. data/vendor/libgit2/src/posix.c +11 -3
  177. data/vendor/libgit2/src/reader.c +10 -6
  178. data/vendor/libgit2/src/rebase.c +93 -49
  179. data/vendor/libgit2/src/refdb.c +30 -13
  180. data/vendor/libgit2/src/refdb_fs.c +121 -69
  181. data/vendor/libgit2/src/reflog.c +19 -14
  182. data/vendor/libgit2/src/refs.c +76 -41
  183. data/vendor/libgit2/src/refspec.c +32 -12
  184. data/vendor/libgit2/src/remote.c +272 -102
  185. data/vendor/libgit2/src/remote.h +2 -1
  186. data/vendor/libgit2/src/repository.c +176 -103
  187. data/vendor/libgit2/src/repository.h +12 -1
  188. data/vendor/libgit2/src/reset.c +7 -6
  189. data/vendor/libgit2/src/revert.c +6 -2
  190. data/vendor/libgit2/src/revparse.c +14 -9
  191. data/vendor/libgit2/src/revwalk.c +32 -15
  192. data/vendor/libgit2/src/runtime.c +162 -0
  193. data/vendor/libgit2/src/runtime.h +62 -0
  194. data/vendor/libgit2/src/settings.h +11 -0
  195. data/vendor/libgit2/src/signature.c +6 -5
  196. data/vendor/libgit2/src/sortedcache.h +10 -8
  197. data/vendor/libgit2/src/stash.c +3 -1
  198. data/vendor/libgit2/src/status.c +7 -4
  199. data/vendor/libgit2/src/strarray.c +2 -1
  200. data/vendor/libgit2/src/streams/mbedtls.c +14 -17
  201. data/vendor/libgit2/src/streams/mbedtls.h +1 -1
  202. data/vendor/libgit2/src/streams/openssl.c +101 -201
  203. data/vendor/libgit2/src/streams/openssl.h +9 -1
  204. data/vendor/libgit2/src/streams/openssl_dynamic.c +309 -0
  205. data/vendor/libgit2/src/streams/openssl_dynamic.h +348 -0
  206. data/vendor/libgit2/src/streams/openssl_legacy.c +203 -0
  207. data/vendor/libgit2/src/streams/openssl_legacy.h +63 -0
  208. data/vendor/libgit2/src/streams/registry.c +5 -6
  209. data/vendor/libgit2/src/streams/socket.c +6 -2
  210. data/vendor/libgit2/src/streams/stransport.c +6 -3
  211. data/vendor/libgit2/src/streams/tls.c +5 -3
  212. data/vendor/libgit2/src/submodule.c +128 -62
  213. data/vendor/libgit2/src/submodule.h +9 -9
  214. data/vendor/libgit2/src/sysdir.c +4 -6
  215. data/vendor/libgit2/src/tag.c +47 -11
  216. data/vendor/libgit2/src/thread.c +140 -0
  217. data/vendor/libgit2/src/thread.h +479 -0
  218. data/vendor/libgit2/src/threadstate.c +83 -0
  219. data/vendor/libgit2/src/threadstate.h +24 -0
  220. data/vendor/libgit2/src/trace.c +2 -2
  221. data/vendor/libgit2/src/trace.h +17 -13
  222. data/vendor/libgit2/src/transaction.c +19 -8
  223. data/vendor/libgit2/src/transport.c +3 -3
  224. data/vendor/libgit2/src/transports/auth.c +1 -1
  225. data/vendor/libgit2/src/transports/auth_negotiate.c +11 -4
  226. data/vendor/libgit2/src/transports/auth_ntlm.c +10 -6
  227. data/vendor/libgit2/src/transports/credential.c +15 -7
  228. data/vendor/libgit2/src/transports/git.c +1 -3
  229. data/vendor/libgit2/src/transports/http.c +19 -17
  230. data/vendor/libgit2/src/transports/http.h +1 -0
  231. data/vendor/libgit2/src/transports/httpclient.c +53 -26
  232. data/vendor/libgit2/src/transports/httpclient.h +1 -1
  233. data/vendor/libgit2/src/transports/local.c +3 -3
  234. data/vendor/libgit2/src/transports/smart.c +12 -7
  235. data/vendor/libgit2/src/transports/smart.h +1 -1
  236. data/vendor/libgit2/src/transports/smart_protocol.c +11 -5
  237. data/vendor/libgit2/src/transports/ssh.c +51 -17
  238. data/vendor/libgit2/src/transports/winhttp.c +41 -31
  239. data/vendor/libgit2/src/tree.c +100 -77
  240. data/vendor/libgit2/src/tree.h +1 -0
  241. data/vendor/libgit2/src/tsort.c +0 -2
  242. data/vendor/libgit2/src/unix/map.c +3 -1
  243. data/vendor/libgit2/src/unix/pthread.h +2 -1
  244. data/vendor/libgit2/src/utf8.c +150 -0
  245. data/vendor/libgit2/src/utf8.h +52 -0
  246. data/vendor/libgit2/src/util.c +53 -129
  247. data/vendor/libgit2/src/util.h +33 -39
  248. data/vendor/libgit2/src/vector.c +23 -19
  249. data/vendor/libgit2/src/vector.h +4 -2
  250. data/vendor/libgit2/src/win32/findfile.c +4 -2
  251. data/vendor/libgit2/src/win32/map.c +1 -1
  252. data/vendor/libgit2/src/win32/msvc-compat.h +9 -1
  253. data/vendor/libgit2/src/win32/path_w32.c +22 -24
  254. data/vendor/libgit2/src/win32/path_w32.h +0 -1
  255. data/vendor/libgit2/src/win32/posix_w32.c +7 -1
  256. data/vendor/libgit2/src/win32/precompiled.h +0 -1
  257. data/vendor/libgit2/src/win32/reparse.h +4 -4
  258. data/vendor/libgit2/src/win32/thread.c +24 -15
  259. data/vendor/libgit2/src/win32/thread.h +1 -1
  260. data/vendor/libgit2/src/win32/w32_buffer.c +3 -3
  261. data/vendor/libgit2/src/win32/w32_common.h +18 -9
  262. data/vendor/libgit2/src/win32/{w32_crtdbg_stacktrace.c → w32_leakcheck.c} +269 -33
  263. data/vendor/libgit2/src/win32/w32_leakcheck.h +222 -0
  264. data/vendor/libgit2/src/win32/w32_util.h +6 -6
  265. data/vendor/libgit2/src/worktree.c +27 -16
  266. data/vendor/libgit2/src/zstream.c +1 -1
  267. metadata +32 -16
  268. data/vendor/libgit2/src/allocators/win32_crtdbg.c +0 -118
  269. data/vendor/libgit2/src/buf_text.c +0 -316
  270. data/vendor/libgit2/src/buf_text.h +0 -122
  271. data/vendor/libgit2/src/global.c +0 -363
  272. data/vendor/libgit2/src/global.h +0 -41
  273. data/vendor/libgit2/src/thread-utils.c +0 -58
  274. data/vendor/libgit2/src/thread-utils.h +0 -369
  275. data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.h +0 -127
  276. data/vendor/libgit2/src/win32/w32_stack.c +0 -188
  277. data/vendor/libgit2/src/win32/w32_stack.h +0 -140
@@ -177,6 +177,12 @@ typedef enum {
177
177
  /** Normally checkout writes the index upon completion; this prevents that. */
178
178
  GIT_CHECKOUT_DONT_WRITE_INDEX = (1u << 23),
179
179
 
180
+ /**
181
+ * Show what would be done by a checkout. Stop after sending
182
+ * notifications; don't update the working directory or index.
183
+ */
184
+ GIT_CHECKOUT_DRY_RUN = (1u << 24),
185
+
180
186
  /**
181
187
  * THE FOLLOWING OPTIONS ARE NOT YET IMPLEMENTED
182
188
  */
@@ -194,18 +200,6 @@ typedef enum {
194
200
  * Checkout will invoke an options notification callback (`notify_cb`) for
195
201
  * certain cases - you pick which ones via `notify_flags`:
196
202
  *
197
- * - GIT_CHECKOUT_NOTIFY_CONFLICT invokes checkout on conflicting paths.
198
- *
199
- * - GIT_CHECKOUT_NOTIFY_DIRTY notifies about "dirty" files, i.e. those that
200
- * do not need an update but no longer match the baseline. Core git
201
- * displays these files when checkout runs, but won't stop the checkout.
202
- *
203
- * - GIT_CHECKOUT_NOTIFY_UPDATED sends notification for any file changed.
204
- *
205
- * - GIT_CHECKOUT_NOTIFY_UNTRACKED notifies about untracked files.
206
- *
207
- * - GIT_CHECKOUT_NOTIFY_IGNORED notifies about ignored files.
208
- *
209
203
  * Returning a non-zero value from this callback will cancel the checkout.
210
204
  * The non-zero return value will be propagated back and returned by the
211
205
  * git_checkout_... call.
@@ -216,10 +210,32 @@ typedef enum {
216
210
  */
217
211
  typedef enum {
218
212
  GIT_CHECKOUT_NOTIFY_NONE = 0,
213
+
214
+ /**
215
+ * Invokes checkout on conflicting paths.
216
+ */
219
217
  GIT_CHECKOUT_NOTIFY_CONFLICT = (1u << 0),
218
+
219
+ /**
220
+ * Notifies about "dirty" files, i.e. those that do not need an update
221
+ * but no longer match the baseline. Core git displays these files when
222
+ * checkout runs, but won't stop the checkout.
223
+ */
220
224
  GIT_CHECKOUT_NOTIFY_DIRTY = (1u << 1),
225
+
226
+ /**
227
+ * Sends notification for any file changed.
228
+ */
221
229
  GIT_CHECKOUT_NOTIFY_UPDATED = (1u << 2),
230
+
231
+ /**
232
+ * Notifies about untracked files.
233
+ */
222
234
  GIT_CHECKOUT_NOTIFY_UNTRACKED = (1u << 3),
235
+
236
+ /**
237
+ * Notifies about ignored files.
238
+ */
223
239
  GIT_CHECKOUT_NOTIFY_IGNORED = (1u << 4),
224
240
 
225
241
  GIT_CHECKOUT_NOTIFY_ALL = 0x0FFFFu
@@ -503,25 +503,41 @@ GIT_EXTERN(int) git_commit_create_with_signature(
503
503
  GIT_EXTERN(int) git_commit_dup(git_commit **out, git_commit *source);
504
504
 
505
505
  /**
506
- * Commit signing callback.
507
- *
508
- * The callback will be called with the commit content, giving a user an
509
- * opportunity to sign the commit content. The signature_field
510
- * buf may be left empty to specify the default field "gpgsig".
511
- *
512
- * Signatures can take the form of any string, and can be created on an arbitrary
513
- * header field. Signatures are most commonly used for verifying authorship of a
514
- * commit using GPG or a similar cryptographically secure signing algorithm.
515
- * See https://git-scm.com/book/en/v2/Git-Tools-Signing-Your-Work for more
516
- * details.
517
- *
518
- * When the callback:
519
- * - returns GIT_PASSTHROUGH, no signature will be added to the commit.
520
- * - returns < 0, commit creation will be aborted.
521
- * - returns GIT_OK, the signature parameter is expected to be filled.
522
- */
523
- typedef int (*git_commit_signing_cb)(
524
- git_buf *signature, git_buf *signature_field, const char *commit_content, void *payload);
506
+ * Commit creation callback: used when a function is going to create
507
+ * commits (for example, in `git_rebase_commit`) to allow callers to
508
+ * override the commit creation behavior. For example, users may
509
+ * wish to sign commits by providing this information to
510
+ * `git_commit_create_buffer`, signing that buffer, then calling
511
+ * `git_commit_create_with_signature`. The resultant commit id
512
+ * should be set in the `out` object id parameter.
513
+ *
514
+ * @param out pointer that this callback will populate with the object
515
+ * id of the commit that is created
516
+ * @param author the author name and time of the commit
517
+ * @param committer the committer name and time of the commit
518
+ * @param message_encoding the encoding of the given message, or NULL
519
+ * to assume UTF8
520
+ * @param message the commit message
521
+ * @param tree the tree to be committed
522
+ * @param parent_count the number of parents for this commit
523
+ * @param parents the commit parents
524
+ * @param payload the payload pointer in the rebase options
525
+ * @return 0 if this callback has created the commit and populated the out
526
+ * parameter, GIT_PASSTHROUGH if the callback has not created a
527
+ * commit and wants the calling function to create the commit as
528
+ * if no callback had been specified, any other value to stop
529
+ * and return a failure
530
+ */
531
+ typedef int (*git_commit_create_cb)(
532
+ git_oid *out,
533
+ const git_signature *author,
534
+ const git_signature *committer,
535
+ const char *message_encoding,
536
+ const char *message,
537
+ const git_tree *tree,
538
+ size_t parent_count,
539
+ const git_commit *parents[],
540
+ void *payload);
525
541
 
526
542
  /** @} */
527
543
  GIT_END_DECL
@@ -91,10 +91,10 @@ GIT_BEGIN_DECL
91
91
 
92
92
  /**
93
93
  * The separator used in path list strings (ie like in the PATH
94
- * environment variable). A semi-colon ";" is used on Windows, and
95
- * a colon ":" for all other systems.
94
+ * environment variable). A semi-colon ";" is used on Windows and
95
+ * AmigaOS, and a colon ":" for all other systems.
96
96
  */
97
- #ifdef GIT_WIN32
97
+ #if defined(GIT_WIN32) || defined(AMIGA)
98
98
  #define GIT_PATH_LIST_SEPARATOR ';'
99
99
  #else
100
100
  #define GIT_PATH_LIST_SEPARATOR ':'
@@ -207,7 +207,9 @@ typedef enum {
207
207
  GIT_OPT_DISABLE_PACK_KEEP_FILE_CHECKS,
208
208
  GIT_OPT_ENABLE_HTTP_EXPECT_CONTINUE,
209
209
  GIT_OPT_GET_MWINDOW_FILE_LIMIT,
210
- GIT_OPT_SET_MWINDOW_FILE_LIMIT
210
+ GIT_OPT_SET_MWINDOW_FILE_LIMIT,
211
+ GIT_OPT_SET_ODB_PACKED_PRIORITY,
212
+ GIT_OPT_SET_ODB_LOOSE_PRIORITY
211
213
  } git_libgit2_opt_t;
212
214
 
213
215
  /**
@@ -421,6 +423,14 @@ typedef enum {
421
423
  * > authentication, use expect/continue when POSTing data.
422
424
  * > This option is not available on Windows.
423
425
  *
426
+ * opts(GIT_OPT_SET_ODB_PACKED_PRIORITY, int priority)
427
+ * > Override the default priority of the packed ODB backend which
428
+ * > is added when default backends are assigned to a repository
429
+ *
430
+ * opts(GIT_OPT_SET_ODB_LOOSE_PRIORITY, int priority)
431
+ * > Override the default priority of the loose ODB backend which
432
+ * > is added when default backends are assigned to a repository
433
+ *
424
434
  * @param option Option key
425
435
  * @param ... value to set the option
426
436
  * @return 0 on success, <0 on failure
@@ -18,6 +18,7 @@
18
18
  #include "describe.h"
19
19
  #include "diff.h"
20
20
  #include "errors.h"
21
+ #include "filter.h"
21
22
  #include "index.h"
22
23
  #include "indexer.h"
23
24
  #include "merge.h"
@@ -29,6 +30,7 @@
29
30
  #include "trace.h"
30
31
  #include "repository.h"
31
32
  #include "revert.h"
33
+ #include "revparse.h"
32
34
  #include "stash.h"
33
35
  #include "status.h"
34
36
  #include "submodule.h"
@@ -80,16 +82,19 @@ typedef git_attr_value_t git_attr_t;
80
82
 
81
83
  /**@}*/
82
84
 
83
- /** @name Deprecated Blob Functions
85
+ /** @name Deprecated Blob Functions and Constants
84
86
  *
85
- * These functions are retained for backward compatibility. The newer
86
- * versions of these functions should be preferred in all new code.
87
+ * These functions and enumeration values are retained for backward
88
+ * compatibility. The newer versions of these functions and values
89
+ * should be preferred in all new code.
87
90
  *
88
91
  * There is no plan to remove these backward compatibility values at
89
92
  * this time.
90
93
  */
91
94
  /**@{*/
92
95
 
96
+ #define GIT_BLOB_FILTER_ATTTRIBUTES_FROM_HEAD GIT_BLOB_FILTER_ATTRIBUTES_FROM_HEAD
97
+
93
98
  GIT_EXTERN(int) git_blob_create_fromworkdir(git_oid *id, git_repository *repo, const char *relative_path);
94
99
  GIT_EXTERN(int) git_blob_create_fromdisk(git_oid *id, git_repository *repo, const char *path);
95
100
  GIT_EXTERN(int) git_blob_create_fromstream(
@@ -115,6 +120,66 @@ GIT_EXTERN(int) git_blob_filtered_content(
115
120
 
116
121
  /**@}*/
117
122
 
123
+ /** @name Deprecated Filter Functions
124
+ *
125
+ * These functions are retained for backward compatibility. The
126
+ * newer versions of these functions should be preferred in all
127
+ * new code.
128
+ *
129
+ * There is no plan to remove these backward compatibility values at
130
+ * this time.
131
+ */
132
+ /**@{*/
133
+
134
+ /** Deprecated in favor of `git_filter_list_stream_buffer`.
135
+ *
136
+ * @deprecated Use git_filter_list_stream_buffer
137
+ * @see Use git_filter_list_stream_buffer
138
+ */
139
+ GIT_EXTERN(int) git_filter_list_stream_data(
140
+ git_filter_list *filters,
141
+ git_buf *data,
142
+ git_writestream *target);
143
+
144
+ /** Deprecated in favor of `git_filter_list_apply_to_buffer`.
145
+ *
146
+ * @deprecated Use git_filter_list_apply_to_buffer
147
+ * @see Use git_filter_list_apply_to_buffer
148
+ */
149
+ GIT_EXTERN(int) git_filter_list_apply_to_data(
150
+ git_buf *out,
151
+ git_filter_list *filters,
152
+ git_buf *in);
153
+
154
+ /**@}*/
155
+
156
+ /** @name Deprecated Tree Functions
157
+ *
158
+ * These functions are retained for backward compatibility. The
159
+ * newer versions of these functions and values should be preferred
160
+ * in all new code.
161
+ *
162
+ * There is no plan to remove these backward compatibility values at
163
+ * this time.
164
+ */
165
+ /**@{*/
166
+
167
+ /**
168
+ * Write the contents of the tree builder as a tree object.
169
+ * This is an alias of `git_treebuilder_write` and is preserved
170
+ * for backward compatibility.
171
+ *
172
+ * This function is deprecated, but there is no plan to remove this
173
+ * function at this time.
174
+ *
175
+ * @deprecated Use git_treebuilder_write
176
+ * @see git_treebuilder_write
177
+ */
178
+ GIT_EXTERN(int) git_treebuilder_write_with_buffer(
179
+ git_oid *oid, git_treebuilder *bld, git_buf *tree);
180
+
181
+ /**@}*/
182
+
118
183
  /** @name Deprecated Buffer Functions
119
184
  *
120
185
  * These functions and enumeration values are retained for backward
@@ -126,6 +191,61 @@ GIT_EXTERN(int) git_blob_filtered_content(
126
191
  */
127
192
  /**@{*/
128
193
 
194
+ /**
195
+ * Static initializer for git_buf from static buffer
196
+ */
197
+ #define GIT_BUF_INIT_CONST(STR,LEN) { (char *)(STR), 0, (size_t)(LEN) }
198
+
199
+ /**
200
+ * Resize the buffer allocation to make more space.
201
+ *
202
+ * This will attempt to grow the buffer to accommodate the target size.
203
+ *
204
+ * If the buffer refers to memory that was not allocated by libgit2 (i.e.
205
+ * the `asize` field is zero), then `ptr` will be replaced with a newly
206
+ * allocated block of data. Be careful so that memory allocated by the
207
+ * caller is not lost. As a special variant, if you pass `target_size` as
208
+ * 0 and the memory is not allocated by libgit2, this will allocate a new
209
+ * buffer of size `size` and copy the external data into it.
210
+ *
211
+ * Currently, this will never shrink a buffer, only expand it.
212
+ *
213
+ * If the allocation fails, this will return an error and the buffer will be
214
+ * marked as invalid for future operations, invaliding the contents.
215
+ *
216
+ * @param buffer The buffer to be resized; may or may not be allocated yet
217
+ * @param target_size The desired available size
218
+ * @return 0 on success, -1 on allocation failure
219
+ */
220
+ GIT_EXTERN(int) git_buf_grow(git_buf *buffer, size_t target_size);
221
+
222
+ /**
223
+ * Set buffer to a copy of some raw data.
224
+ *
225
+ * @param buffer The buffer to set
226
+ * @param data The data to copy into the buffer
227
+ * @param datalen The length of the data to copy into the buffer
228
+ * @return 0 on success, -1 on allocation failure
229
+ */
230
+ GIT_EXTERN(int) git_buf_set(
231
+ git_buf *buffer, const void *data, size_t datalen);
232
+
233
+ /**
234
+ * Check quickly if buffer looks like it contains binary data
235
+ *
236
+ * @param buf Buffer to check
237
+ * @return 1 if buffer looks like non-text data
238
+ */
239
+ GIT_EXTERN(int) git_buf_is_binary(const git_buf *buf);
240
+
241
+ /**
242
+ * Check quickly if buffer contains a NUL byte
243
+ *
244
+ * @param buf Buffer to check
245
+ * @return 1 if buffer contains a NUL byte
246
+ */
247
+ GIT_EXTERN(int) git_buf_contains_nul(const git_buf *buf);
248
+
129
249
  /**
130
250
  * Free the memory referred to by the git_buf. This is an alias of
131
251
  * `git_buf_dispose` and is preserved for backward compatibility.
@@ -140,6 +260,27 @@ GIT_EXTERN(void) git_buf_free(git_buf *buffer);
140
260
 
141
261
  /**@}*/
142
262
 
263
+ /** @name Deprecated Commit Definitions
264
+ */
265
+ /**@{*/
266
+
267
+ /**
268
+ * Provide a commit signature during commit creation.
269
+ *
270
+ * Callers should instead define a `git_commit_create_cb` that
271
+ * generates a commit buffer using `git_commit_create_buffer`, sign
272
+ * that buffer and call `git_commit_create_with_signature`.
273
+ *
274
+ * @deprecated use a `git_commit_create_cb` instead
275
+ */
276
+ typedef int (*git_commit_signing_cb)(
277
+ git_buf *signature,
278
+ git_buf *signature_field,
279
+ const char *commit_content,
280
+ void *payload);
281
+
282
+ /**@}*/
283
+
143
284
  /** @name Deprecated Config Functions and Constants
144
285
  */
145
286
  /**@{*/
@@ -340,10 +481,32 @@ GIT_EXTERN(size_t) git_object__size(git_object_t type);
340
481
 
341
482
  /**@}*/
342
483
 
343
- /** @name Deprecated Reference Constants
484
+ /** @name Deprecated Remote Functions
344
485
  *
345
- * These enumeration values are retained for backward compatibility. The
346
- * newer versions of these values should be preferred in all new code.
486
+ * These functions are retained for backward compatibility. The newer
487
+ * versions of these functions should be preferred in all new code.
488
+ *
489
+ * There is no plan to remove these backward compatibility functions at
490
+ * this time.
491
+ */
492
+ /**@{*/
493
+
494
+ /**
495
+ * Ensure the remote name is well-formed.
496
+ *
497
+ * @deprecated Use git_remote_name_is_valid
498
+ * @param remote_name name to be checked.
499
+ * @return 1 if the reference name is acceptable; 0 if it isn't
500
+ */
501
+ GIT_EXTERN(int) git_remote_is_valid_name(const char *remote_name);
502
+
503
+ /**@}*/
504
+
505
+ /** @name Deprecated Reference Functions and Constants
506
+ *
507
+ * These functions and enumeration values are retained for backward
508
+ * compatibility. The newer versions of these values should be
509
+ * preferred in all new code.
347
510
  *
348
511
  * There is no plan to remove these backward compatibility values at
349
512
  * this time.
@@ -364,6 +527,23 @@ GIT_EXTERN(size_t) git_object__size(git_object_t type);
364
527
  #define GIT_REF_FORMAT_REFSPEC_PATTERN GIT_REFERENCE_FORMAT_REFSPEC_PATTERN
365
528
  #define GIT_REF_FORMAT_REFSPEC_SHORTHAND GIT_REFERENCE_FORMAT_REFSPEC_SHORTHAND
366
529
 
530
+ /**
531
+ * Ensure the reference name is well-formed.
532
+ *
533
+ * Valid reference names must follow one of two patterns:
534
+ *
535
+ * 1. Top-level names must contain only capital letters and underscores,
536
+ * and must begin and end with a letter. (e.g. "HEAD", "ORIG_HEAD").
537
+ * 2. Names prefixed with "refs/" can be almost anything. You must avoid
538
+ * the characters '~', '^', ':', '\\', '?', '[', and '*', and the
539
+ * sequences ".." and "@{" which have special meaning to revparse.
540
+ *
541
+ * @deprecated Use git_reference_name_is_valid
542
+ * @param refname name to be checked.
543
+ * @return 1 if the reference name is acceptable; 0 if it isn't
544
+ */
545
+ GIT_EXTERN(int) git_reference_is_valid_name(const char *refname);
546
+
367
547
  GIT_EXTERN(int) git_tag_create_frombuffer(
368
548
  git_oid *oid,
369
549
  git_repository *repo,
@@ -372,6 +552,25 @@ GIT_EXTERN(int) git_tag_create_frombuffer(
372
552
 
373
553
  /**@}*/
374
554
 
555
+ /** @name Deprecated Revspec Constants
556
+ *
557
+ * These enumeration values are retained for backward compatibility.
558
+ * The newer versions of these values should be preferred in all new
559
+ * code.
560
+ *
561
+ * There is no plan to remove these backward compatibility values at
562
+ * this time.
563
+ */
564
+ /**@{*/
565
+
566
+ typedef git_revspec_t git_revparse_mode_t;
567
+
568
+ #define GIT_REVPARSE_SINGLE GIT_REVSPEC_SINGLE
569
+ #define GIT_REVPARSE_RANGE GIT_REVSPEC_RANGE
570
+ #define GIT_REVPARSE_MERGE_BASE GIT_REVSPEC_MERGE_BASE
571
+
572
+ /**@}*/
573
+
375
574
  /** @name Deprecated Credential Types
376
575
  *
377
576
  * These types are retained for backward compatibility. The newer
@@ -380,6 +579,7 @@ GIT_EXTERN(int) git_tag_create_frombuffer(
380
579
  * There is no plan to remove these backward compatibility values at
381
580
  * this time.
382
581
  */
582
+ /**@{*/
383
583
 
384
584
  typedef git_credential git_cred;
385
585
  typedef git_credential_userpass_plaintext git_cred_userpass_plaintext;