rugged 0.27.7 → 0.27.10

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 (409) hide show
  1. checksums.yaml +4 -4
  2. data/lib/rugged/version.rb +1 -1
  3. data/vendor/libgit2/AUTHORS +1 -0
  4. data/vendor/libgit2/CMakeLists.txt +99 -51
  5. data/vendor/libgit2/COPYING +28 -0
  6. data/vendor/libgit2/cmake/Modules/AddCFlagIfSupported.cmake +15 -1
  7. data/vendor/libgit2/cmake/Modules/CheckPrototypeDefinition.c.in +29 -0
  8. data/vendor/libgit2/cmake/Modules/CheckPrototypeDefinition.cmake +96 -0
  9. data/vendor/libgit2/cmake/Modules/EnableWarnings.cmake +9 -8
  10. data/vendor/libgit2/cmake/Modules/FindCoreFoundation.cmake +2 -2
  11. data/vendor/libgit2/cmake/Modules/FindGSSAPI.cmake +1 -1
  12. data/vendor/libgit2/cmake/Modules/FindGSSFramework.cmake +28 -0
  13. data/vendor/libgit2/cmake/Modules/FindIconv.cmake +11 -6
  14. data/vendor/libgit2/cmake/Modules/FindPCRE.cmake +38 -0
  15. data/vendor/libgit2/cmake/Modules/FindPCRE2.cmake +37 -0
  16. data/vendor/libgit2/cmake/Modules/FindSecurity.cmake +2 -2
  17. data/vendor/libgit2/cmake/Modules/FindStatNsec.cmake +6 -0
  18. data/vendor/libgit2/cmake/Modules/PkgBuildConfig.cmake +110 -0
  19. data/vendor/libgit2/cmake/Modules/SelectGSSAPI.cmake +53 -0
  20. data/vendor/libgit2/cmake/Modules/SelectHTTPSBackend.cmake +124 -0
  21. data/vendor/libgit2/cmake/Modules/SelectHashes.cmake +66 -0
  22. data/vendor/libgit2/deps/http-parser/http_parser.c +11 -6
  23. data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +21 -0
  24. data/vendor/libgit2/deps/ntlmclient/compat.h +33 -0
  25. data/vendor/libgit2/deps/ntlmclient/crypt.h +64 -0
  26. data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.c +120 -0
  27. data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.h +18 -0
  28. data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.c +145 -0
  29. data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.h +18 -0
  30. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +130 -0
  31. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.h +21 -0
  32. data/vendor/libgit2/deps/ntlmclient/ntlm.c +1420 -0
  33. data/vendor/libgit2/deps/ntlmclient/ntlm.h +174 -0
  34. data/vendor/libgit2/deps/ntlmclient/ntlmclient.h +320 -0
  35. data/vendor/libgit2/deps/ntlmclient/unicode.h +36 -0
  36. data/vendor/libgit2/deps/ntlmclient/unicode_builtin.c +445 -0
  37. data/vendor/libgit2/deps/ntlmclient/unicode_iconv.c +201 -0
  38. data/vendor/libgit2/deps/ntlmclient/utf8.h +1257 -0
  39. data/vendor/libgit2/deps/ntlmclient/util.c +21 -0
  40. data/vendor/libgit2/deps/ntlmclient/util.h +14 -0
  41. data/vendor/libgit2/deps/pcre/CMakeLists.txt +140 -0
  42. data/vendor/libgit2/deps/pcre/COPYING +5 -0
  43. data/vendor/libgit2/deps/pcre/cmake/COPYING-CMAKE-SCRIPTS +22 -0
  44. data/vendor/libgit2/deps/pcre/cmake/FindEditline.cmake +17 -0
  45. data/vendor/libgit2/deps/pcre/cmake/FindPackageHandleStandardArgs.cmake +58 -0
  46. data/vendor/libgit2/deps/pcre/cmake/FindReadline.cmake +29 -0
  47. data/vendor/libgit2/deps/pcre/config.h.in +57 -0
  48. data/vendor/libgit2/deps/pcre/pcre.h +641 -0
  49. data/vendor/libgit2/deps/pcre/pcre_byte_order.c +319 -0
  50. data/vendor/libgit2/deps/pcre/pcre_chartables.c +198 -0
  51. data/vendor/libgit2/deps/pcre/pcre_compile.c +9800 -0
  52. data/vendor/libgit2/deps/pcre/pcre_config.c +190 -0
  53. data/vendor/libgit2/deps/pcre/pcre_dfa_exec.c +3676 -0
  54. data/vendor/libgit2/deps/pcre/pcre_exec.c +7173 -0
  55. data/vendor/libgit2/deps/pcre/pcre_fullinfo.c +245 -0
  56. data/vendor/libgit2/deps/pcre/pcre_get.c +669 -0
  57. data/vendor/libgit2/deps/pcre/pcre_globals.c +86 -0
  58. data/vendor/libgit2/deps/pcre/pcre_internal.h +2787 -0
  59. data/vendor/libgit2/deps/pcre/pcre_jit_compile.c +11913 -0
  60. data/vendor/libgit2/deps/pcre/pcre_maketables.c +156 -0
  61. data/vendor/libgit2/deps/pcre/pcre_newline.c +210 -0
  62. data/vendor/libgit2/deps/pcre/pcre_ord2utf8.c +94 -0
  63. data/vendor/libgit2/deps/pcre/pcre_printint.c +834 -0
  64. data/vendor/libgit2/deps/pcre/pcre_refcount.c +92 -0
  65. data/vendor/libgit2/deps/pcre/pcre_string_utils.c +211 -0
  66. data/vendor/libgit2/deps/pcre/pcre_study.c +1686 -0
  67. data/vendor/libgit2/deps/pcre/pcre_tables.c +727 -0
  68. data/vendor/libgit2/deps/pcre/pcre_ucd.c +3644 -0
  69. data/vendor/libgit2/deps/pcre/pcre_valid_utf8.c +301 -0
  70. data/vendor/libgit2/deps/pcre/pcre_version.c +98 -0
  71. data/vendor/libgit2/deps/pcre/pcre_xclass.c +268 -0
  72. data/vendor/libgit2/deps/pcre/pcreposix.c +421 -0
  73. data/vendor/libgit2/deps/pcre/pcreposix.h +117 -0
  74. data/vendor/libgit2/deps/pcre/ucp.h +224 -0
  75. data/vendor/libgit2/deps/winhttp/COPYING.GPL +993 -0
  76. data/vendor/libgit2/deps/winhttp/COPYING.LGPL +502 -0
  77. data/vendor/libgit2/deps/zlib/CMakeLists.txt +1 -0
  78. data/vendor/libgit2/deps/zlib/COPYING +27 -0
  79. data/vendor/libgit2/deps/zlib/adler32.c +0 -7
  80. data/vendor/libgit2/deps/zlib/crc32.c +0 -7
  81. data/vendor/libgit2/include/git2/annotated_commit.h +9 -0
  82. data/vendor/libgit2/include/git2/apply.h +149 -0
  83. data/vendor/libgit2/include/git2/attr.h +20 -13
  84. data/vendor/libgit2/include/git2/blame.h +4 -4
  85. data/vendor/libgit2/include/git2/blob.h +44 -12
  86. data/vendor/libgit2/include/git2/buffer.h +20 -26
  87. data/vendor/libgit2/include/git2/cert.h +135 -0
  88. data/vendor/libgit2/include/git2/checkout.h +53 -21
  89. data/vendor/libgit2/include/git2/cherrypick.h +3 -3
  90. data/vendor/libgit2/include/git2/clone.h +5 -5
  91. data/vendor/libgit2/include/git2/commit.h +25 -3
  92. data/vendor/libgit2/include/git2/common.h +35 -10
  93. data/vendor/libgit2/include/git2/config.h +29 -19
  94. data/vendor/libgit2/include/git2/cred.h +308 -0
  95. data/vendor/libgit2/include/git2/deprecated.h +493 -0
  96. data/vendor/libgit2/include/git2/describe.h +4 -4
  97. data/vendor/libgit2/include/git2/diff.h +177 -135
  98. data/vendor/libgit2/include/git2/errors.h +53 -46
  99. data/vendor/libgit2/include/git2/filter.h +8 -0
  100. data/vendor/libgit2/include/git2/index.h +74 -52
  101. data/vendor/libgit2/include/git2/indexer.h +76 -6
  102. data/vendor/libgit2/include/git2/merge.h +25 -10
  103. data/vendor/libgit2/include/git2/net.h +0 -5
  104. data/vendor/libgit2/include/git2/notes.h +1 -1
  105. data/vendor/libgit2/include/git2/object.h +17 -29
  106. data/vendor/libgit2/include/git2/odb.h +12 -11
  107. data/vendor/libgit2/include/git2/odb_backend.h +10 -9
  108. data/vendor/libgit2/include/git2/oid.h +2 -2
  109. data/vendor/libgit2/include/git2/pack.h +14 -3
  110. data/vendor/libgit2/include/git2/proxy.h +5 -3
  111. data/vendor/libgit2/include/git2/rebase.h +46 -2
  112. data/vendor/libgit2/include/git2/refs.h +34 -16
  113. data/vendor/libgit2/include/git2/remote.h +111 -14
  114. data/vendor/libgit2/include/git2/repository.h +69 -34
  115. data/vendor/libgit2/include/git2/revert.h +1 -1
  116. data/vendor/libgit2/include/git2/revwalk.h +7 -7
  117. data/vendor/libgit2/include/git2/signature.h +2 -2
  118. data/vendor/libgit2/include/git2/stash.h +5 -5
  119. data/vendor/libgit2/include/git2/status.h +26 -17
  120. data/vendor/libgit2/include/git2/submodule.h +23 -6
  121. data/vendor/libgit2/include/git2/sys/alloc.h +18 -18
  122. data/vendor/libgit2/include/git2/sys/commit.h +1 -1
  123. data/vendor/libgit2/include/git2/sys/config.h +13 -13
  124. data/vendor/libgit2/include/git2/sys/cred.h +90 -0
  125. data/vendor/libgit2/include/git2/sys/filter.h +6 -6
  126. data/vendor/libgit2/include/git2/sys/merge.h +3 -3
  127. data/vendor/libgit2/include/git2/sys/odb_backend.h +66 -22
  128. data/vendor/libgit2/include/git2/sys/path.h +14 -5
  129. data/vendor/libgit2/include/git2/sys/refdb_backend.h +76 -40
  130. data/vendor/libgit2/include/git2/sys/repository.h +5 -1
  131. data/vendor/libgit2/include/git2/sys/stream.h +92 -12
  132. data/vendor/libgit2/include/git2/sys/transport.h +129 -83
  133. data/vendor/libgit2/include/git2/tag.h +13 -4
  134. data/vendor/libgit2/include/git2/trace.h +2 -2
  135. data/vendor/libgit2/include/git2/transport.h +11 -311
  136. data/vendor/libgit2/include/git2/tree.h +4 -4
  137. data/vendor/libgit2/include/git2/types.h +25 -106
  138. data/vendor/libgit2/include/git2/version.h +3 -3
  139. data/vendor/libgit2/include/git2/worktree.h +5 -5
  140. data/vendor/libgit2/include/git2.h +4 -0
  141. data/vendor/libgit2/src/CMakeLists.txt +104 -235
  142. data/vendor/libgit2/src/alloc.c +14 -18
  143. data/vendor/libgit2/src/{stdalloc.c → allocators/stdalloc.c} +7 -8
  144. data/vendor/libgit2/src/{stdalloc.h → allocators/stdalloc.h} +4 -4
  145. data/vendor/libgit2/src/allocators/win32_crtdbg.c +118 -0
  146. data/vendor/libgit2/src/{transports/cred.h → allocators/win32_crtdbg.h} +5 -4
  147. data/vendor/libgit2/src/annotated_commit.c +18 -11
  148. data/vendor/libgit2/src/apply.c +535 -28
  149. data/vendor/libgit2/src/apply.h +3 -1
  150. data/vendor/libgit2/src/array.h +2 -2
  151. data/vendor/libgit2/src/attr.c +77 -71
  152. data/vendor/libgit2/src/attr_file.c +203 -117
  153. data/vendor/libgit2/src/attr_file.h +9 -9
  154. data/vendor/libgit2/src/attrcache.c +49 -51
  155. data/vendor/libgit2/src/attrcache.h +2 -1
  156. data/vendor/libgit2/src/blame.c +38 -18
  157. data/vendor/libgit2/src/blame.h +1 -1
  158. data/vendor/libgit2/src/blame_git.c +29 -15
  159. data/vendor/libgit2/src/blob.c +123 -37
  160. data/vendor/libgit2/src/blob.h +19 -2
  161. data/vendor/libgit2/src/branch.c +47 -23
  162. data/vendor/libgit2/src/buf_text.c +7 -6
  163. data/vendor/libgit2/src/buffer.c +60 -53
  164. data/vendor/libgit2/src/cache.c +38 -45
  165. data/vendor/libgit2/src/cache.h +3 -3
  166. data/vendor/libgit2/src/cc-compat.h +20 -3
  167. data/vendor/libgit2/src/checkout.c +77 -67
  168. data/vendor/libgit2/src/cherrypick.c +12 -6
  169. data/vendor/libgit2/src/clone.c +36 -14
  170. data/vendor/libgit2/src/clone.h +4 -0
  171. data/vendor/libgit2/src/commit.c +103 -48
  172. data/vendor/libgit2/src/commit.h +7 -0
  173. data/vendor/libgit2/src/commit_list.c +36 -78
  174. data/vendor/libgit2/src/commit_list.h +2 -2
  175. data/vendor/libgit2/src/common.h +24 -90
  176. data/vendor/libgit2/src/config.c +203 -176
  177. data/vendor/libgit2/src/config.h +8 -20
  178. data/vendor/libgit2/src/config_backend.h +96 -0
  179. data/vendor/libgit2/src/config_cache.c +41 -35
  180. data/vendor/libgit2/src/config_entries.c +229 -0
  181. data/vendor/libgit2/src/config_entries.h +24 -0
  182. data/vendor/libgit2/src/config_file.c +422 -680
  183. data/vendor/libgit2/src/config_mem.c +220 -0
  184. data/vendor/libgit2/src/config_parse.c +96 -68
  185. data/vendor/libgit2/src/config_parse.h +15 -14
  186. data/vendor/libgit2/src/config_snapshot.c +206 -0
  187. data/vendor/libgit2/src/crlf.c +219 -196
  188. data/vendor/libgit2/src/delta.c +25 -18
  189. data/vendor/libgit2/src/describe.c +42 -41
  190. data/vendor/libgit2/src/diff.c +52 -67
  191. data/vendor/libgit2/src/diff.h +2 -1
  192. data/vendor/libgit2/src/diff_driver.c +44 -46
  193. data/vendor/libgit2/src/diff_file.c +16 -14
  194. data/vendor/libgit2/src/diff_file.h +1 -1
  195. data/vendor/libgit2/src/diff_generate.c +158 -103
  196. data/vendor/libgit2/src/diff_generate.h +3 -3
  197. data/vendor/libgit2/src/diff_parse.c +4 -4
  198. data/vendor/libgit2/src/diff_print.c +34 -22
  199. data/vendor/libgit2/src/diff_stats.c +22 -7
  200. data/vendor/libgit2/src/diff_tform.c +18 -16
  201. data/vendor/libgit2/src/diff_xdiff.c +3 -3
  202. data/vendor/libgit2/src/errors.c +51 -39
  203. data/vendor/libgit2/src/errors.h +81 -0
  204. data/vendor/libgit2/src/features.h.in +9 -3
  205. data/vendor/libgit2/src/fetch.c +8 -3
  206. data/vendor/libgit2/src/fetchhead.c +12 -12
  207. data/vendor/libgit2/src/filebuf.c +28 -32
  208. data/vendor/libgit2/src/filebuf.h +2 -2
  209. data/vendor/libgit2/src/filter.c +47 -33
  210. data/vendor/libgit2/src/filter.h +0 -10
  211. data/vendor/libgit2/src/{fileops.c → futils.c} +70 -63
  212. data/vendor/libgit2/src/{fileops.h → futils.h} +6 -6
  213. data/vendor/libgit2/src/global.c +35 -55
  214. data/vendor/libgit2/src/global.h +0 -2
  215. data/vendor/libgit2/src/hash/sha1/collisiondetect.c +48 -0
  216. data/vendor/libgit2/src/hash/sha1/collisiondetect.h +19 -0
  217. data/vendor/libgit2/src/hash/{hash_common_crypto.h → sha1/common_crypto.c} +17 -17
  218. data/vendor/libgit2/src/hash/sha1/common_crypto.h +19 -0
  219. data/vendor/libgit2/src/hash/{hash_generic.c → sha1/generic.c} +22 -10
  220. data/vendor/libgit2/src/hash/{hash_generic.h → sha1/generic.h} +4 -10
  221. data/vendor/libgit2/src/hash/{hash_mbedtls.c → sha1/mbedtls.c} +15 -7
  222. data/vendor/libgit2/src/hash/{hash_mbedtls.h → sha1/mbedtls.h} +6 -7
  223. data/vendor/libgit2/src/hash/sha1/openssl.c +59 -0
  224. data/vendor/libgit2/src/hash/sha1/openssl.h +19 -0
  225. data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/sha1.c +14 -3
  226. data/vendor/libgit2/src/hash/{hash_win32.c → sha1/win32.c} +47 -37
  227. data/vendor/libgit2/src/hash/{hash_win32.h → sha1/win32.h} +6 -19
  228. data/vendor/libgit2/src/hash/sha1.h +38 -0
  229. data/vendor/libgit2/src/hash.c +61 -0
  230. data/vendor/libgit2/src/hash.h +20 -21
  231. data/vendor/libgit2/src/hashsig.c +5 -5
  232. data/vendor/libgit2/src/idxmap.c +107 -61
  233. data/vendor/libgit2/src/idxmap.h +153 -31
  234. data/vendor/libgit2/src/ignore.c +38 -42
  235. data/vendor/libgit2/src/index.c +264 -199
  236. data/vendor/libgit2/src/index.h +7 -1
  237. data/vendor/libgit2/src/indexer.c +338 -167
  238. data/vendor/libgit2/src/integer.h +71 -26
  239. data/vendor/libgit2/src/iterator.c +134 -62
  240. data/vendor/libgit2/src/iterator.h +15 -0
  241. data/vendor/libgit2/src/mailmap.c +8 -8
  242. data/vendor/libgit2/src/map.h +1 -1
  243. data/vendor/libgit2/src/merge.c +137 -93
  244. data/vendor/libgit2/src/merge_driver.c +11 -11
  245. data/vendor/libgit2/src/merge_file.c +2 -2
  246. data/vendor/libgit2/src/mwindow.c +24 -29
  247. data/vendor/libgit2/src/mwindow.h +4 -4
  248. data/vendor/libgit2/src/net.c +184 -0
  249. data/vendor/libgit2/src/net.h +36 -0
  250. data/vendor/libgit2/src/netops.c +55 -156
  251. data/vendor/libgit2/src/netops.h +3 -23
  252. data/vendor/libgit2/src/notes.c +14 -9
  253. data/vendor/libgit2/src/object.c +120 -69
  254. data/vendor/libgit2/src/object.h +22 -9
  255. data/vendor/libgit2/src/object_api.c +8 -8
  256. data/vendor/libgit2/src/odb.c +111 -88
  257. data/vendor/libgit2/src/odb.h +8 -7
  258. data/vendor/libgit2/src/odb_loose.c +58 -47
  259. data/vendor/libgit2/src/odb_mempack.c +21 -34
  260. data/vendor/libgit2/src/odb_pack.c +17 -13
  261. data/vendor/libgit2/src/offmap.c +53 -35
  262. data/vendor/libgit2/src/offmap.h +108 -21
  263. data/vendor/libgit2/src/oid.c +12 -7
  264. data/vendor/libgit2/src/oidmap.c +49 -47
  265. data/vendor/libgit2/src/oidmap.h +101 -24
  266. data/vendor/libgit2/src/pack-objects.c +87 -86
  267. data/vendor/libgit2/src/pack-objects.h +2 -8
  268. data/vendor/libgit2/src/pack.c +94 -96
  269. data/vendor/libgit2/src/pack.h +16 -18
  270. data/vendor/libgit2/src/parse.c +17 -4
  271. data/vendor/libgit2/src/parse.h +3 -3
  272. data/vendor/libgit2/src/patch.c +3 -3
  273. data/vendor/libgit2/src/patch_generate.c +18 -18
  274. data/vendor/libgit2/src/patch_parse.c +147 -79
  275. data/vendor/libgit2/src/path.c +207 -62
  276. data/vendor/libgit2/src/path.h +14 -0
  277. data/vendor/libgit2/src/pathspec.c +18 -18
  278. data/vendor/libgit2/src/pool.c +26 -22
  279. data/vendor/libgit2/src/pool.h +7 -7
  280. data/vendor/libgit2/src/posix.c +10 -10
  281. data/vendor/libgit2/src/posix.h +12 -1
  282. data/vendor/libgit2/src/proxy.c +8 -3
  283. data/vendor/libgit2/src/push.c +35 -29
  284. data/vendor/libgit2/src/push.h +2 -1
  285. data/vendor/libgit2/src/reader.c +265 -0
  286. data/vendor/libgit2/src/reader.h +107 -0
  287. data/vendor/libgit2/src/rebase.c +97 -38
  288. data/vendor/libgit2/src/refdb.c +15 -3
  289. data/vendor/libgit2/src/refdb_fs.c +318 -222
  290. data/vendor/libgit2/src/reflog.c +13 -15
  291. data/vendor/libgit2/src/refs.c +122 -89
  292. data/vendor/libgit2/src/refs.h +5 -3
  293. data/vendor/libgit2/src/refspec.c +27 -33
  294. data/vendor/libgit2/src/regexp.c +221 -0
  295. data/vendor/libgit2/src/regexp.h +97 -0
  296. data/vendor/libgit2/src/remote.c +229 -178
  297. data/vendor/libgit2/src/remote.h +11 -2
  298. data/vendor/libgit2/src/repository.c +227 -172
  299. data/vendor/libgit2/src/repository.h +52 -40
  300. data/vendor/libgit2/src/reset.c +7 -7
  301. data/vendor/libgit2/src/revert.c +11 -6
  302. data/vendor/libgit2/src/revparse.c +46 -46
  303. data/vendor/libgit2/src/revwalk.c +89 -54
  304. data/vendor/libgit2/src/revwalk.h +20 -0
  305. data/vendor/libgit2/src/settings.c +22 -9
  306. data/vendor/libgit2/src/signature.c +15 -13
  307. data/vendor/libgit2/src/sortedcache.c +22 -36
  308. data/vendor/libgit2/src/sortedcache.h +1 -1
  309. data/vendor/libgit2/src/stash.c +56 -76
  310. data/vendor/libgit2/src/status.c +27 -21
  311. data/vendor/libgit2/src/stream.h +17 -2
  312. data/vendor/libgit2/src/streams/mbedtls.c +100 -80
  313. data/vendor/libgit2/src/streams/mbedtls.h +5 -2
  314. data/vendor/libgit2/src/streams/openssl.c +93 -81
  315. data/vendor/libgit2/src/streams/openssl.h +5 -2
  316. data/vendor/libgit2/src/streams/registry.c +118 -0
  317. data/vendor/libgit2/src/streams/registry.h +19 -0
  318. data/vendor/libgit2/src/streams/socket.c +55 -30
  319. data/vendor/libgit2/src/streams/stransport.c +57 -32
  320. data/vendor/libgit2/src/streams/stransport.h +5 -0
  321. data/vendor/libgit2/src/streams/tls.c +48 -20
  322. data/vendor/libgit2/src/streams/tls.h +12 -4
  323. data/vendor/libgit2/src/strmap.c +47 -74
  324. data/vendor/libgit2/src/strmap.h +108 -33
  325. data/vendor/libgit2/src/submodule.c +190 -169
  326. data/vendor/libgit2/src/submodule.h +1 -1
  327. data/vendor/libgit2/src/sysdir.c +25 -15
  328. data/vendor/libgit2/src/tag.c +39 -26
  329. data/vendor/libgit2/src/tag.h +2 -1
  330. data/vendor/libgit2/src/trace.c +2 -2
  331. data/vendor/libgit2/src/trace.h +2 -2
  332. data/vendor/libgit2/src/trailer.c +46 -32
  333. data/vendor/libgit2/src/transaction.c +30 -29
  334. data/vendor/libgit2/src/transport.c +3 -3
  335. data/vendor/libgit2/src/transports/auth.c +14 -10
  336. data/vendor/libgit2/src/transports/auth.h +10 -3
  337. data/vendor/libgit2/src/transports/auth_negotiate.c +31 -16
  338. data/vendor/libgit2/src/transports/auth_negotiate.h +2 -2
  339. data/vendor/libgit2/src/transports/auth_ntlm.c +223 -0
  340. data/vendor/libgit2/src/transports/auth_ntlm.h +35 -0
  341. data/vendor/libgit2/src/transports/cred.c +24 -24
  342. data/vendor/libgit2/src/transports/git.c +25 -30
  343. data/vendor/libgit2/src/transports/http.c +871 -335
  344. data/vendor/libgit2/src/transports/http.h +2 -0
  345. data/vendor/libgit2/src/transports/local.c +28 -28
  346. data/vendor/libgit2/src/transports/smart.c +64 -46
  347. data/vendor/libgit2/src/transports/smart.h +5 -6
  348. data/vendor/libgit2/src/transports/smart_pkt.c +162 -151
  349. data/vendor/libgit2/src/transports/smart_protocol.c +64 -94
  350. data/vendor/libgit2/src/transports/ssh.c +76 -65
  351. data/vendor/libgit2/src/transports/winhttp.c +328 -319
  352. data/vendor/libgit2/src/tree-cache.c +21 -14
  353. data/vendor/libgit2/src/tree.c +119 -112
  354. data/vendor/libgit2/src/tree.h +1 -0
  355. data/vendor/libgit2/src/unix/map.c +3 -3
  356. data/vendor/libgit2/src/unix/posix.h +1 -11
  357. data/vendor/libgit2/src/userdiff.h +3 -1
  358. data/vendor/libgit2/src/util.c +154 -93
  359. data/vendor/libgit2/src/util.h +19 -23
  360. data/vendor/libgit2/src/vector.c +15 -10
  361. data/vendor/libgit2/src/wildmatch.c +320 -0
  362. data/vendor/libgit2/src/wildmatch.h +23 -0
  363. data/vendor/libgit2/src/win32/dir.c +3 -3
  364. data/vendor/libgit2/src/win32/findfile.c +1 -1
  365. data/vendor/libgit2/src/win32/map.c +9 -11
  366. data/vendor/libgit2/src/win32/msvc-compat.h +6 -0
  367. data/vendor/libgit2/src/win32/path_w32.c +113 -9
  368. data/vendor/libgit2/src/win32/path_w32.h +18 -29
  369. data/vendor/libgit2/src/win32/posix.h +1 -4
  370. data/vendor/libgit2/src/win32/posix_w32.c +69 -44
  371. data/vendor/libgit2/src/win32/precompiled.h +0 -2
  372. data/vendor/libgit2/src/win32/thread.c +5 -10
  373. data/vendor/libgit2/src/win32/w32_buffer.c +9 -5
  374. data/vendor/libgit2/src/win32/w32_common.h +39 -0
  375. data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.c +2 -95
  376. data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.h +0 -2
  377. data/vendor/libgit2/src/win32/w32_stack.c +6 -11
  378. data/vendor/libgit2/src/win32/w32_stack.h +3 -3
  379. data/vendor/libgit2/src/win32/w32_util.c +27 -64
  380. data/vendor/libgit2/src/win32/w32_util.h +5 -49
  381. data/vendor/libgit2/src/worktree.c +44 -30
  382. data/vendor/libgit2/src/xdiff/xdiffi.c +5 -5
  383. data/vendor/libgit2/src/xdiff/xhistogram.c +1 -1
  384. data/vendor/libgit2/src/xdiff/xmerge.c +27 -15
  385. data/vendor/libgit2/src/xdiff/xpatience.c +3 -0
  386. data/vendor/libgit2/src/zstream.c +4 -4
  387. metadata +115 -38
  388. data/vendor/libgit2/deps/regex/CMakeLists.txt +0 -2
  389. data/vendor/libgit2/deps/regex/config.h +0 -7
  390. data/vendor/libgit2/deps/regex/regcomp.c +0 -3857
  391. data/vendor/libgit2/deps/regex/regex.c +0 -92
  392. data/vendor/libgit2/deps/regex/regex.h +0 -582
  393. data/vendor/libgit2/deps/regex/regex_internal.c +0 -1744
  394. data/vendor/libgit2/deps/regex/regex_internal.h +0 -819
  395. data/vendor/libgit2/deps/regex/regexec.c +0 -4369
  396. data/vendor/libgit2/include/git2/inttypes.h +0 -309
  397. data/vendor/libgit2/include/git2/sys/time.h +0 -31
  398. data/vendor/libgit2/libgit2.pc.in +0 -13
  399. data/vendor/libgit2/src/config_file.h +0 -73
  400. data/vendor/libgit2/src/fnmatch.c +0 -248
  401. data/vendor/libgit2/src/fnmatch.h +0 -48
  402. data/vendor/libgit2/src/hash/hash_collisiondetect.h +0 -47
  403. data/vendor/libgit2/src/hash/hash_openssl.h +0 -59
  404. data/vendor/libgit2/src/streams/curl.c +0 -385
  405. data/vendor/libgit2/src/streams/curl.h +0 -17
  406. /data/vendor/libgit2/deps/http-parser/{LICENSE-MIT → COPYING} +0 -0
  407. /data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/sha1.h +0 -0
  408. /data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/ubc_check.c +0 -0
  409. /data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/ubc_check.h +0 -0
@@ -0,0 +1,149 @@
1
+ /*
2
+ * Copyright (C) the libgit2 contributors. All rights reserved.
3
+ *
4
+ * This file is part of libgit2, distributed under the GNU GPL v2 with
5
+ * a Linking Exception. For full terms see the included COPYING file.
6
+ */
7
+ #ifndef INCLUDE_git_apply_h__
8
+ #define INCLUDE_git_apply_h__
9
+
10
+ #include "common.h"
11
+ #include "types.h"
12
+ #include "oid.h"
13
+ #include "diff.h"
14
+
15
+ /**
16
+ * @file git2/apply.h
17
+ * @brief Git patch application routines
18
+ * @defgroup git_apply Git patch application routines
19
+ * @ingroup Git
20
+ * @{
21
+ */
22
+ GIT_BEGIN_DECL
23
+
24
+ /**
25
+ * When applying a patch, callback that will be made per delta (file).
26
+ *
27
+ * When the callback:
28
+ * - returns < 0, the apply process will be aborted.
29
+ * - returns > 0, the delta will not be applied, but the apply process
30
+ * continues
31
+ * - returns 0, the delta is applied, and the apply process continues.
32
+ *
33
+ * @param delta The delta to be applied
34
+ * @param payload User-specified payload
35
+ */
36
+ typedef int GIT_CALLBACK(git_apply_delta_cb)(
37
+ const git_diff_delta *delta,
38
+ void *payload);
39
+
40
+ /**
41
+ * When applying a patch, callback that will be made per hunk.
42
+ *
43
+ * When the callback:
44
+ * - returns < 0, the apply process will be aborted.
45
+ * - returns > 0, the hunk will not be applied, but the apply process
46
+ * continues
47
+ * - returns 0, the hunk is applied, and the apply process continues.
48
+ *
49
+ * @param hunk The hunk to be applied
50
+ * @param payload User-specified payload
51
+ */
52
+ typedef int GIT_CALLBACK(git_apply_hunk_cb)(
53
+ const git_diff_hunk *hunk,
54
+ void *payload);
55
+
56
+ /** Flags controlling the behavior of git_apply */
57
+ typedef enum {
58
+ /**
59
+ * Don't actually make changes, just test that the patch applies.
60
+ * This is the equivalent of `git apply --check`.
61
+ */
62
+ GIT_APPLY_CHECK = (1 << 0),
63
+ } git_apply_flags_t;
64
+
65
+ /**
66
+ * Apply options structure
67
+ *
68
+ * Initialize with `GIT_APPLY_OPTIONS_INIT`. Alternatively, you can
69
+ * use `git_apply_options_init`.
70
+ *
71
+ * @see git_apply_to_tree, git_apply
72
+ */
73
+ typedef struct {
74
+ unsigned int version; /**< The version */
75
+
76
+ /** When applying a patch, callback that will be made per delta (file). */
77
+ git_apply_delta_cb delta_cb;
78
+
79
+ /** When applying a patch, callback that will be made per hunk. */
80
+ git_apply_hunk_cb hunk_cb;
81
+
82
+ /** Payload passed to both delta_cb & hunk_cb. */
83
+ void *payload;
84
+
85
+ /** Bitmask of git_apply_flags_t */
86
+ unsigned int flags;
87
+ } git_apply_options;
88
+
89
+ #define GIT_APPLY_OPTIONS_VERSION 1
90
+ #define GIT_APPLY_OPTIONS_INIT {GIT_APPLY_OPTIONS_VERSION}
91
+
92
+ GIT_EXTERN(int) git_apply_options_init(git_apply_options *opts, unsigned int version);
93
+
94
+ /**
95
+ * Apply a `git_diff` to a `git_tree`, and return the resulting image
96
+ * as an index.
97
+ *
98
+ * @param out the postimage of the application
99
+ * @param repo the repository to apply
100
+ * @param preimage the tree to apply the diff to
101
+ * @param diff the diff to apply
102
+ * @param options the options for the apply (or null for defaults)
103
+ */
104
+ GIT_EXTERN(int) git_apply_to_tree(
105
+ git_index **out,
106
+ git_repository *repo,
107
+ git_tree *preimage,
108
+ git_diff *diff,
109
+ const git_apply_options *options);
110
+
111
+ /** Possible application locations for git_apply */
112
+ typedef enum {
113
+ /**
114
+ * Apply the patch to the workdir, leaving the index untouched.
115
+ * This is the equivalent of `git apply` with no location argument.
116
+ */
117
+ GIT_APPLY_LOCATION_WORKDIR = 0,
118
+
119
+ /**
120
+ * Apply the patch to the index, leaving the working directory
121
+ * untouched. This is the equivalent of `git apply --cached`.
122
+ */
123
+ GIT_APPLY_LOCATION_INDEX = 1,
124
+
125
+ /**
126
+ * Apply the patch to both the working directory and the index.
127
+ * This is the equivalent of `git apply --index`.
128
+ */
129
+ GIT_APPLY_LOCATION_BOTH = 2,
130
+ } git_apply_location_t;
131
+
132
+ /**
133
+ * Apply a `git_diff` to the given repository, making changes directly
134
+ * in the working directory, the index, or both.
135
+ *
136
+ * @param repo the repository to apply to
137
+ * @param diff the diff to apply
138
+ * @param location the location to apply (workdir, index or both)
139
+ * @param options the options for the apply (or null for defaults)
140
+ */
141
+ GIT_EXTERN(int) git_apply(
142
+ git_repository *repo,
143
+ git_diff *diff,
144
+ git_apply_location_t location,
145
+ const git_apply_options *options);
146
+
147
+ /** @} */
148
+ GIT_END_DECL
149
+ #endif
@@ -30,7 +30,7 @@ GIT_BEGIN_DECL
30
30
  * Then for file `xyz.c` looking up attribute "foo" gives a value for
31
31
  * which `GIT_ATTR_TRUE(value)` is true.
32
32
  */
33
- #define GIT_ATTR_TRUE(attr) (git_attr_value(attr) == GIT_ATTR_TRUE_T)
33
+ #define GIT_ATTR_IS_TRUE(attr) (git_attr_value(attr) == GIT_ATTR_VALUE_TRUE)
34
34
 
35
35
  /**
36
36
  * GIT_ATTR_FALSE checks if an attribute is set off. In core git
@@ -44,7 +44,7 @@ GIT_BEGIN_DECL
44
44
  * Then for file `zyx.h` looking up attribute "foo" gives a value for
45
45
  * which `GIT_ATTR_FALSE(value)` is true.
46
46
  */
47
- #define GIT_ATTR_FALSE(attr) (git_attr_value(attr) == GIT_ATTR_FALSE_T)
47
+ #define GIT_ATTR_IS_FALSE(attr) (git_attr_value(attr) == GIT_ATTR_VALUE_FALSE)
48
48
 
49
49
  /**
50
50
  * GIT_ATTR_UNSPECIFIED checks if an attribute is unspecified. This
@@ -62,7 +62,7 @@ GIT_BEGIN_DECL
62
62
  * file `onefile.rb` or looking up "bar" on any file will all give
63
63
  * `GIT_ATTR_UNSPECIFIED(value)` of true.
64
64
  */
65
- #define GIT_ATTR_UNSPECIFIED(attr) (git_attr_value(attr) == GIT_ATTR_UNSPECIFIED_T)
65
+ #define GIT_ATTR_IS_UNSPECIFIED(attr) (git_attr_value(attr) == GIT_ATTR_VALUE_UNSPECIFIED)
66
66
 
67
67
  /**
68
68
  * GIT_ATTR_HAS_VALUE checks if an attribute is set to a value (as
@@ -74,17 +74,17 @@ GIT_BEGIN_DECL
74
74
  * Given this, looking up "eol" for `onefile.txt` will give back the
75
75
  * string "lf" and `GIT_ATTR_SET_TO_VALUE(attr)` will return true.
76
76
  */
77
- #define GIT_ATTR_HAS_VALUE(attr) (git_attr_value(attr) == GIT_ATTR_VALUE_T)
77
+ #define GIT_ATTR_HAS_VALUE(attr) (git_attr_value(attr) == GIT_ATTR_VALUE_STRING)
78
78
 
79
79
  /**
80
80
  * Possible states for an attribute
81
81
  */
82
82
  typedef enum {
83
- GIT_ATTR_UNSPECIFIED_T = 0, /**< The attribute has been left unspecified */
84
- GIT_ATTR_TRUE_T, /**< The attribute has been set */
85
- GIT_ATTR_FALSE_T, /**< The attribute has been unset */
86
- GIT_ATTR_VALUE_T, /**< This attribute has a value */
87
- } git_attr_t;
83
+ GIT_ATTR_VALUE_UNSPECIFIED = 0, /**< The attribute has been left unspecified */
84
+ GIT_ATTR_VALUE_TRUE, /**< The attribute has been set */
85
+ GIT_ATTR_VALUE_FALSE, /**< The attribute has been unset */
86
+ GIT_ATTR_VALUE_STRING, /**< This attribute has a value */
87
+ } git_attr_value_t;
88
88
 
89
89
  /**
90
90
  * Return the value type for a given attribute.
@@ -99,7 +99,7 @@ typedef enum {
99
99
  * @param attr The attribute
100
100
  * @return the value type for the attribute
101
101
  */
102
- GIT_EXTERN(git_attr_t) git_attr_value(const char *attr);
102
+ GIT_EXTERN(git_attr_value_t) git_attr_value(const char *attr);
103
103
 
104
104
  /**
105
105
  * Check attribute flags: Reading values from index and working directory.
@@ -119,13 +119,20 @@ GIT_EXTERN(git_attr_t) git_attr_value(const char *attr);
119
119
  #define GIT_ATTR_CHECK_INDEX_ONLY 2
120
120
 
121
121
  /**
122
- * Check attribute flags: Using the system attributes file.
122
+ * Check attribute flags: controlling extended attribute behavior.
123
123
  *
124
124
  * Normally, attribute checks include looking in the /etc (or system
125
125
  * equivalent) directory for a `gitattributes` file. Passing this
126
126
  * flag will cause attribute checks to ignore that file.
127
+ * equivalent) directory for a `gitattributes` file. Passing the
128
+ * `GIT_ATTR_CHECK_NO_SYSTEM` flag will cause attribute checks to
129
+ * ignore that file.
130
+ *
131
+ * Passing the `GIT_ATTR_CHECK_INCLUDE_HEAD` flag will use attributes
132
+ * from a `.gitattributes` file in the repository at the HEAD revision.
127
133
  */
128
- #define GIT_ATTR_CHECK_NO_SYSTEM (1 << 2)
134
+ #define GIT_ATTR_CHECK_NO_SYSTEM (1 << 2)
135
+ #define GIT_ATTR_CHECK_INCLUDE_HEAD (1 << 3)
129
136
 
130
137
  /**
131
138
  * Look up the value of one git attribute for path.
@@ -202,7 +209,7 @@ GIT_EXTERN(int) git_attr_get_many(
202
209
  * @return 0 to continue looping, non-zero to stop. This value will be returned
203
210
  * from git_attr_foreach.
204
211
  */
205
- typedef int (*git_attr_foreach_cb)(const char *name, const char *value, void *payload);
212
+ typedef int GIT_CALLBACK(git_attr_foreach_cb)(const char *name, const char *value, void *payload);
206
213
 
207
214
  /**
208
215
  * Loop over all the git attributes for a path.
@@ -53,7 +53,7 @@ typedef enum {
53
53
  * Blame options structure
54
54
  *
55
55
  * Initialize with `GIT_BLAME_OPTIONS_INIT`. Alternatively, you can
56
- * use `git_blame_init_options`.
56
+ * use `git_blame_options_init`.
57
57
  *
58
58
  */
59
59
  typedef struct git_blame_options {
@@ -100,7 +100,7 @@ typedef struct git_blame_options {
100
100
  * @param version The struct version; pass `GIT_BLAME_OPTIONS_VERSION`.
101
101
  * @return Zero on success; -1 on failure.
102
102
  */
103
- GIT_EXTERN(int) git_blame_init_options(
103
+ GIT_EXTERN(int) git_blame_options_init(
104
104
  git_blame_options *opts,
105
105
  unsigned int version);
106
106
 
@@ -183,7 +183,7 @@ GIT_EXTERN(const git_blame_hunk*) git_blame_get_hunk_byline(
183
183
  * @param path path to file to consider
184
184
  * @param options options for the blame operation. If NULL, this is treated as
185
185
  * though GIT_BLAME_OPTIONS_INIT were passed.
186
- * @return 0 on success, or an error code. (use giterr_last for information
186
+ * @return 0 on success, or an error code. (use git_error_last for information
187
187
  * about the error.)
188
188
  */
189
189
  GIT_EXTERN(int) git_blame_file(
@@ -207,7 +207,7 @@ GIT_EXTERN(int) git_blame_file(
207
207
  * from git_blame_file)
208
208
  * @param buffer the (possibly) modified contents of the file
209
209
  * @param buffer_len number of valid bytes in the buffer
210
- * @return 0 on success, or an error code. (use giterr_last for information
210
+ * @return 0 on success, or an error code. (use git_error_last for information
211
211
  * about the error)
212
212
  */
213
213
  GIT_EXTERN(int) git_blame_buffer(
@@ -94,7 +94,40 @@ GIT_EXTERN(const void *) git_blob_rawcontent(const git_blob *blob);
94
94
  * @param blob pointer to the blob
95
95
  * @return size on bytes
96
96
  */
97
- GIT_EXTERN(git_off_t) git_blob_rawsize(const git_blob *blob);
97
+ GIT_EXTERN(git_object_size_t) git_blob_rawsize(const git_blob *blob);
98
+
99
+ /**
100
+ * Flags to control the functionality of `git_blob_filter`.
101
+ */
102
+ typedef enum {
103
+ /** When set, filters will not be applied to binary files. */
104
+ GIT_BLOB_FILTER_CHECK_FOR_BINARY = (1 << 0),
105
+
106
+ /**
107
+ * When set, filters will not load configuration from the
108
+ * system-wide `gitattributes` in `/etc` (or system equivalent).
109
+ */
110
+ GIT_BLOB_FILTER_NO_SYSTEM_ATTRIBUTES = (1 << 1),
111
+
112
+ /**
113
+ * When set, filters will be loaded from a `.gitattributes` file
114
+ * in the HEAD commit.
115
+ */
116
+ GIT_BLOB_FILTER_ATTTRIBUTES_FROM_HEAD = (1 << 2),
117
+ } git_blob_filter_flag_t;
118
+
119
+ /**
120
+ * The options used when applying filter options to a file.
121
+ */
122
+ typedef struct {
123
+ int version;
124
+
125
+ /** Flags to control the filtering process, see `git_blob_filter_flag_t` above */
126
+ uint32_t flags;
127
+ } git_blob_filter_options;
128
+
129
+ #define GIT_BLOB_FILTER_OPTIONS_VERSION 1
130
+ #define GIT_BLOB_FILTER_OPTIONS_INIT {GIT_BLOB_FILTER_OPTIONS_VERSION, GIT_BLOB_FILTER_CHECK_FOR_BINARY}
98
131
 
99
132
  /**
100
133
  * Get a buffer with the filtered content of a blob.
@@ -115,15 +148,14 @@ GIT_EXTERN(git_off_t) git_blob_rawsize(const git_blob *blob);
115
148
  * @param out The git_buf to be filled in
116
149
  * @param blob Pointer to the blob
117
150
  * @param as_path Path used for file attribute lookups, etc.
118
- * @param check_for_binary_data Should this test if blob content contains
119
- * NUL bytes / looks like binary data before applying filters?
151
+ * @param opts Options to use for filtering the blob
120
152
  * @return 0 on success or an error code
121
153
  */
122
- GIT_EXTERN(int) git_blob_filtered_content(
154
+ GIT_EXTERN(int) git_blob_filter(
123
155
  git_buf *out,
124
156
  git_blob *blob,
125
157
  const char *as_path,
126
- int check_for_binary_data);
158
+ git_blob_filter_options *opts);
127
159
 
128
160
  /**
129
161
  * Read a file from the working folder of a repository
@@ -136,7 +168,7 @@ GIT_EXTERN(int) git_blob_filtered_content(
136
168
  * relative to the repository's working dir
137
169
  * @return 0 or an error code
138
170
  */
139
- GIT_EXTERN(int) git_blob_create_fromworkdir(git_oid *id, git_repository *repo, const char *relative_path);
171
+ GIT_EXTERN(int) git_blob_create_from_workdir(git_oid *id, git_repository *repo, const char *relative_path);
140
172
 
141
173
  /**
142
174
  * Read a file from the filesystem and write its content
@@ -148,7 +180,7 @@ GIT_EXTERN(int) git_blob_create_fromworkdir(git_oid *id, git_repository *repo, c
148
180
  * @param path file from which the blob will be created
149
181
  * @return 0 or an error code
150
182
  */
151
- GIT_EXTERN(int) git_blob_create_fromdisk(git_oid *id, git_repository *repo, const char *path);
183
+ GIT_EXTERN(int) git_blob_create_from_disk(git_oid *id, git_repository *repo, const char *path);
152
184
 
153
185
  /**
154
186
  * Create a stream to write a new blob into the object db
@@ -156,12 +188,12 @@ GIT_EXTERN(int) git_blob_create_fromdisk(git_oid *id, git_repository *repo, cons
156
188
  * This function may need to buffer the data on disk and will in
157
189
  * general not be the right choice if you know the size of the data
158
190
  * to write. If you have data in memory, use
159
- * `git_blob_create_frombuffer()`. If you do not, but know the size of
191
+ * `git_blob_create_from_buffer()`. If you do not, but know the size of
160
192
  * the contents (and don't want/need to perform filtering), use
161
193
  * `git_odb_open_wstream()`.
162
194
  *
163
195
  * Don't close this stream yourself but pass it to
164
- * `git_blob_create_fromstream_commit()` to commit the write to the
196
+ * `git_blob_create_from_stream_commit()` to commit the write to the
165
197
  * object db and get the object id.
166
198
  *
167
199
  * If the `hintpath` parameter is filled, it will be used to determine
@@ -175,7 +207,7 @@ GIT_EXTERN(int) git_blob_create_fromdisk(git_oid *id, git_repository *repo, cons
175
207
  * to apply onto the content of the blob to be created.
176
208
  * @return 0 or error code
177
209
  */
178
- GIT_EXTERN(int) git_blob_create_fromstream(
210
+ GIT_EXTERN(int) git_blob_create_from_stream(
179
211
  git_writestream **out,
180
212
  git_repository *repo,
181
213
  const char *hintpath);
@@ -189,7 +221,7 @@ GIT_EXTERN(int) git_blob_create_fromstream(
189
221
  * @param stream the stream to close
190
222
  * @return 0 or an error code
191
223
  */
192
- GIT_EXTERN(int) git_blob_create_fromstream_commit(
224
+ GIT_EXTERN(int) git_blob_create_from_stream_commit(
193
225
  git_oid *out,
194
226
  git_writestream *stream);
195
227
 
@@ -202,7 +234,7 @@ GIT_EXTERN(int) git_blob_create_fromstream_commit(
202
234
  * @param len length of the data
203
235
  * @return 0 or an error code
204
236
  */
205
- GIT_EXTERN(int) git_blob_create_frombuffer(
237
+ GIT_EXTERN(int) git_blob_create_from_buffer(
206
238
  git_oid *id, git_repository *repo, const void *buffer, size_t len);
207
239
 
208
240
  /**
@@ -32,26 +32,32 @@ GIT_BEGIN_DECL
32
32
  * a block of memory they hold. In this case, libgit2 will not resize or
33
33
  * free the memory, but will read from it as needed.
34
34
  *
35
- * A `git_buf` is a public structure with three fields:
36
- *
37
- * - `ptr` points to the start of the allocated memory. If it is NULL,
38
- * then the `git_buf` is considered empty and libgit2 will feel free
39
- * to overwrite it with new data.
40
- *
41
- * - `size` holds the size (in bytes) of the data that is actually used.
42
- *
43
- * - `asize` holds the known total amount of allocated memory if the `ptr`
44
- * was allocated by libgit2. It may be larger than `size`. If `ptr`
45
- * was not allocated by libgit2 and should not be resized and/or freed,
46
- * then `asize` will be set to zero.
47
- *
48
35
  * Some APIs may occasionally do something slightly unusual with a buffer,
49
36
  * such as setting `ptr` to a value that was passed in by the user. In
50
37
  * those cases, the behavior will be clearly documented by the API.
51
38
  */
52
39
  typedef struct {
40
+ /**
41
+ * The buffer contents.
42
+ *
43
+ * `ptr` points to the start of the allocated memory. If it is NULL,
44
+ * then the `git_buf` is considered empty and libgit2 will feel free
45
+ * to overwrite it with new data.
46
+ */
53
47
  char *ptr;
54
- size_t asize, size;
48
+
49
+ /**
50
+ * `asize` holds the known total amount of allocated memory if the `ptr`
51
+ * was allocated by libgit2. It may be larger than `size`. If `ptr`
52
+ * was not allocated by libgit2 and should not be resized and/or freed,
53
+ * then `asize` will be set to zero.
54
+ */
55
+ size_t asize;
56
+
57
+ /**
58
+ * `size` holds the size (in bytes) of the data that is actually used.
59
+ */
60
+ size_t size;
55
61
  } git_buf;
56
62
 
57
63
  /**
@@ -71,18 +77,6 @@ typedef struct {
71
77
  */
72
78
  GIT_EXTERN(void) git_buf_dispose(git_buf *buffer);
73
79
 
74
- /**
75
- * Alias of `git_buf_dispose`.
76
- *
77
- * This function is directly calls `git_buf_dispose` now and is deprecated.
78
- * Going forward, we refer to functions freeing the internal state of a
79
- * structure a `dispose` function, while functions freeing the structure
80
- * themselves will be called a `free` function.
81
- *
82
- * This function is going to be removed in v0.30.0.
83
- */
84
- GIT_EXTERN(void) GIT_DEPRECATED(git_buf_free)(git_buf *buffer);
85
-
86
80
  /**
87
81
  * Resize the buffer allocation to make more space.
88
82
  *
@@ -0,0 +1,135 @@
1
+ /*
2
+ * Copyright (C) the libgit2 contributors. All rights reserved.
3
+ *
4
+ * This file is part of libgit2, distributed under the GNU GPL v2 with
5
+ * a Linking Exception. For full terms see the included COPYING file.
6
+ */
7
+ #ifndef INCLUDE_git_cert_h__
8
+ #define INCLUDE_git_cert_h__
9
+
10
+ #include "common.h"
11
+
12
+ /**
13
+ * @file git2/cert.h
14
+ * @brief Git certificate objects
15
+ * @defgroup git_cert Certificate objects
16
+ * @ingroup Git
17
+ * @{
18
+ */
19
+ GIT_BEGIN_DECL
20
+
21
+ /**
22
+ * Type of host certificate structure that is passed to the check callback
23
+ */
24
+ typedef enum git_cert_t {
25
+ /**
26
+ * No information about the certificate is available. This may
27
+ * happen when using curl.
28
+ */
29
+ GIT_CERT_NONE,
30
+ /**
31
+ * The `data` argument to the callback will be a pointer to
32
+ * the DER-encoded data.
33
+ */
34
+ GIT_CERT_X509,
35
+ /**
36
+ * The `data` argument to the callback will be a pointer to a
37
+ * `git_cert_hostkey` structure.
38
+ */
39
+ GIT_CERT_HOSTKEY_LIBSSH2,
40
+ /**
41
+ * The `data` argument to the callback will be a pointer to a
42
+ * `git_strarray` with `name:content` strings containing
43
+ * information about the certificate. This is used when using
44
+ * curl.
45
+ */
46
+ GIT_CERT_STRARRAY,
47
+ } git_cert_t;
48
+
49
+ /**
50
+ * Parent type for `git_cert_hostkey` and `git_cert_x509`.
51
+ */
52
+ struct git_cert {
53
+ /**
54
+ * Type of certificate. A `GIT_CERT_` value.
55
+ */
56
+ git_cert_t cert_type;
57
+ };
58
+
59
+ /**
60
+ * Callback for the user's custom certificate checks.
61
+ *
62
+ * @param cert The host certificate
63
+ * @param valid Whether the libgit2 checks (OpenSSL or WinHTTP) think
64
+ * this certificate is valid
65
+ * @param host Hostname of the host libgit2 connected to
66
+ * @param payload Payload provided by the caller
67
+ * @return 0 to proceed with the connection, < 0 to fail the connection
68
+ * or > 0 to indicate that the callback refused to act and that
69
+ * the existing validity determination should be honored
70
+ */
71
+ typedef int GIT_CALLBACK(git_transport_certificate_check_cb)(git_cert *cert, int valid, const char *host, void *payload);
72
+
73
+ /**
74
+ * Type of SSH host fingerprint
75
+ */
76
+ typedef enum {
77
+ /** MD5 is available */
78
+ GIT_CERT_SSH_MD5 = (1 << 0),
79
+ /** SHA-1 is available */
80
+ GIT_CERT_SSH_SHA1 = (1 << 1),
81
+ /** SHA-256 is available */
82
+ GIT_CERT_SSH_SHA256 = (1 << 2),
83
+ } git_cert_ssh_t;
84
+
85
+ /**
86
+ * Hostkey information taken from libssh2
87
+ */
88
+ typedef struct {
89
+ git_cert parent; /**< The parent cert */
90
+
91
+ /**
92
+ * A hostkey type from libssh2, either
93
+ * `GIT_CERT_SSH_MD5` or `GIT_CERT_SSH_SHA1`
94
+ */
95
+ git_cert_ssh_t type;
96
+
97
+ /**
98
+ * Hostkey hash. If type has `GIT_CERT_SSH_MD5` set, this will
99
+ * have the MD5 hash of the hostkey.
100
+ */
101
+ unsigned char hash_md5[16];
102
+
103
+ /**
104
+ * Hostkey hash. If type has `GIT_CERT_SSH_SHA1` set, this will
105
+ * have the SHA-1 hash of the hostkey.
106
+ */
107
+ unsigned char hash_sha1[20];
108
+
109
+ /**
110
+ * Hostkey hash. If type has `GIT_CERT_SSH_SHA256` set, this will
111
+ * have the SHA-256 hash of the hostkey.
112
+ */
113
+ unsigned char hash_sha256[32];
114
+ } git_cert_hostkey;
115
+
116
+ /**
117
+ * X.509 certificate information
118
+ */
119
+ typedef struct {
120
+ git_cert parent; /**< The parent cert */
121
+
122
+ /**
123
+ * Pointer to the X.509 certificate data
124
+ */
125
+ void *data;
126
+
127
+ /**
128
+ * Length of the memory block pointed to by `data`.
129
+ */
130
+ size_t len;
131
+ } git_cert_x509;
132
+
133
+ /** @} */
134
+ GIT_END_DECL
135
+ #endif