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
@@ -21,55 +21,55 @@ GIT_BEGIN_DECL
21
21
  * that all fields need to be set to a proper function.
22
22
  */
23
23
  typedef struct {
24
- /* Allocate `n` bytes of memory */
25
- void *(*gmalloc)(size_t n, const char *file, int line);
24
+ /** Allocate `n` bytes of memory */
25
+ void * GIT_CALLBACK(gmalloc)(size_t n, const char *file, int line);
26
26
 
27
- /*
27
+ /**
28
28
  * Allocate memory for an array of `nelem` elements, where each element
29
29
  * has a size of `elsize`. Returned memory shall be initialized to
30
30
  * all-zeroes
31
31
  */
32
- void *(*gcalloc)(size_t nelem, size_t elsize, const char *file, int line);
32
+ void * GIT_CALLBACK(gcalloc)(size_t nelem, size_t elsize, const char *file, int line);
33
33
 
34
- /* Allocate memory for the string `str` and duplicate its contents. */
35
- char *(*gstrdup)(const char *str, const char *file, int line);
34
+ /** Allocate memory for the string `str` and duplicate its contents. */
35
+ char * GIT_CALLBACK(gstrdup)(const char *str, const char *file, int line);
36
36
 
37
- /*
37
+ /**
38
38
  * Equivalent to the `gstrdup` function, but only duplicating at most
39
39
  * `n + 1` bytes
40
40
  */
41
- char *(*gstrndup)(const char *str, size_t n, const char *file, int line);
41
+ char * GIT_CALLBACK(gstrndup)(const char *str, size_t n, const char *file, int line);
42
42
 
43
- /*
43
+ /**
44
44
  * Equivalent to `gstrndup`, but will always duplicate exactly `n` bytes
45
45
  * of `str`. Thus, out of bounds reads at `str` may happen.
46
46
  */
47
- char *(*gsubstrdup)(const char *str, size_t n, const char *file, int line);
47
+ char * GIT_CALLBACK(gsubstrdup)(const char *str, size_t n, const char *file, int line);
48
48
 
49
- /*
49
+ /**
50
50
  * This function shall deallocate the old object `ptr` and return a
51
51
  * pointer to a new object that has the size specified by `size`. In
52
52
  * case `ptr` is `NULL`, a new array shall be allocated.
53
53
  */
54
- void *(*grealloc)(void *ptr, size_t size, const char *file, int line);
54
+ void * GIT_CALLBACK(grealloc)(void *ptr, size_t size, const char *file, int line);
55
55
 
56
- /*
56
+ /**
57
57
  * This function shall be equivalent to `grealloc`, but allocating
58
58
  * `neleme * elsize` bytes.
59
59
  */
60
- void *(*greallocarray)(void *ptr, size_t nelem, size_t elsize, const char *file, int line);
60
+ void * GIT_CALLBACK(greallocarray)(void *ptr, size_t nelem, size_t elsize, const char *file, int line);
61
61
 
62
- /*
62
+ /**
63
63
  * This function shall allocate a new array of `nelem` elements, where
64
64
  * each element has a size of `elsize` bytes.
65
65
  */
66
- void *(*gmallocarray)(size_t nelem, size_t elsize, const char *file, int line);
66
+ void * GIT_CALLBACK(gmallocarray)(size_t nelem, size_t elsize, const char *file, int line);
67
67
 
68
- /*
68
+ /**
69
69
  * This function shall free the memory pointed to by `ptr`. In case
70
70
  * `ptr` is `NULL`, this shall be a no-op.
71
71
  */
72
- void (*gfree)(void *ptr);
72
+ void GIT_CALLBACK(gfree)(void *ptr);
73
73
  } git_allocator;
74
74
 
75
75
  /**
@@ -50,7 +50,7 @@ GIT_EXTERN(int) git_commit_create_from_ids(
50
50
  * along with the user supplied payload. This should return a git_oid of
51
51
  * the next parent or NULL if all parents have been provided.
52
52
  */
53
- typedef const git_oid *(*git_commit_parent_callback)(size_t idx, void *payload);
53
+ typedef const git_oid * GIT_CALLBACK(git_commit_parent_callback)(size_t idx, void *payload);
54
54
 
55
55
  /**
56
56
  * Create a new commit in the repository with an callback to supply parents.
@@ -39,12 +39,12 @@ struct git_config_iterator {
39
39
  * Return the current entry and advance the iterator. The
40
40
  * memory belongs to the library.
41
41
  */
42
- int (*next)(git_config_entry **entry, git_config_iterator *iter);
42
+ int GIT_CALLBACK(next)(git_config_entry **entry, git_config_iterator *iter);
43
43
 
44
44
  /**
45
45
  * Free the iterator
46
46
  */
47
- void (*free)(git_config_iterator *iter);
47
+ void GIT_CALLBACK(free)(git_config_iterator *iter);
48
48
  };
49
49
 
50
50
  /**
@@ -58,15 +58,15 @@ struct git_config_backend {
58
58
  struct git_config *cfg;
59
59
 
60
60
  /* Open means open the file/database and parse if necessary */
61
- int (*open)(struct git_config_backend *, git_config_level_t level, const git_repository *repo);
62
- int (*get)(struct git_config_backend *, const char *key, git_config_entry **entry);
63
- int (*set)(struct git_config_backend *, const char *key, const char *value);
64
- int (*set_multivar)(git_config_backend *cfg, const char *name, const char *regexp, const char *value);
65
- int (*del)(struct git_config_backend *, const char *key);
66
- int (*del_multivar)(struct git_config_backend *, const char *key, const char *regexp);
67
- int (*iterator)(git_config_iterator **, struct git_config_backend *);
61
+ int GIT_CALLBACK(open)(struct git_config_backend *, git_config_level_t level, const git_repository *repo);
62
+ int GIT_CALLBACK(get)(struct git_config_backend *, const char *key, git_config_entry **entry);
63
+ int GIT_CALLBACK(set)(struct git_config_backend *, const char *key, const char *value);
64
+ int GIT_CALLBACK(set_multivar)(git_config_backend *cfg, const char *name, const char *regexp, const char *value);
65
+ int GIT_CALLBACK(del)(struct git_config_backend *, const char *key);
66
+ int GIT_CALLBACK(del_multivar)(struct git_config_backend *, const char *key, const char *regexp);
67
+ int GIT_CALLBACK(iterator)(git_config_iterator **, struct git_config_backend *);
68
68
  /** Produce a read-only version of this backend */
69
- int (*snapshot)(struct git_config_backend **, struct git_config_backend *);
69
+ int GIT_CALLBACK(snapshot)(struct git_config_backend **, struct git_config_backend *);
70
70
  /**
71
71
  * Lock this backend.
72
72
  *
@@ -74,14 +74,14 @@ struct git_config_backend {
74
74
  * backend. Any updates must not be visible to any other
75
75
  * readers.
76
76
  */
77
- int (*lock)(struct git_config_backend *);
77
+ int GIT_CALLBACK(lock)(struct git_config_backend *);
78
78
  /**
79
79
  * Unlock the data store backing this backend. If success is
80
80
  * true, the changes should be committed, otherwise rolled
81
81
  * back.
82
82
  */
83
- int (*unlock)(struct git_config_backend *, int success);
84
- void (*free)(struct git_config_backend *);
83
+ int GIT_CALLBACK(unlock)(struct git_config_backend *, int success);
84
+ void GIT_CALLBACK(free)(struct git_config_backend *);
85
85
  };
86
86
  #define GIT_CONFIG_BACKEND_VERSION 1
87
87
  #define GIT_CONFIG_BACKEND_INIT {GIT_CONFIG_BACKEND_VERSION}
@@ -0,0 +1,90 @@
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_sys_git_cred_h__
8
+ #define INCLUDE_sys_git_cred_h__
9
+
10
+ #include "git2/common.h"
11
+ #include "git2/cred.h"
12
+
13
+ /**
14
+ * @file git2/sys/cred.h
15
+ * @brief Git credentials low-level implementation
16
+ * @defgroup git_cred Git credentials low-level implementation
17
+ * @ingroup Git
18
+ * @{
19
+ */
20
+ GIT_BEGIN_DECL
21
+
22
+ /**
23
+ * The base structure for all credential types
24
+ */
25
+ struct git_cred {
26
+ git_credtype_t credtype; /**< A type of credential */
27
+
28
+ /** The deallocator for this type of credentials */
29
+ void GIT_CALLBACK(free)(git_cred *cred);
30
+ };
31
+
32
+ /** A plaintext username and password */
33
+ struct git_cred_userpass_plaintext {
34
+ git_cred parent; /**< The parent cred */
35
+ char *username; /**< The username to authenticate as */
36
+ char *password; /**< The password to use */
37
+ };
38
+
39
+ /** Username-only credential information */
40
+ struct git_cred_username {
41
+ git_cred parent; /**< The parent cred */
42
+ char username[1]; /**< The username to authenticate as */
43
+ };
44
+
45
+ /**
46
+ * A ssh key from disk
47
+ */
48
+ struct git_cred_ssh_key {
49
+ git_cred parent; /**< The parent cred */
50
+ char *username; /**< The username to authenticate as */
51
+ char *publickey; /**< The path to a public key */
52
+ char *privatekey; /**< The path to a private key */
53
+ char *passphrase; /**< Passphrase used to decrypt the private key */
54
+ };
55
+
56
+ /**
57
+ * Keyboard-interactive based ssh authentication
58
+ */
59
+ struct git_cred_ssh_interactive {
60
+ git_cred parent; /**< The parent cred */
61
+ char *username; /**< The username to authenticate as */
62
+
63
+ /**
64
+ * Callback used for authentication.
65
+ */
66
+ git_cred_ssh_interactive_cb prompt_callback;
67
+
68
+ void *payload; /**< Payload passed to prompt_callback */
69
+ };
70
+
71
+ /**
72
+ * A key with a custom signature function
73
+ */
74
+ struct git_cred_ssh_custom {
75
+ git_cred parent; /**< The parent cred */
76
+ char *username; /**< The username to authenticate as */
77
+ char *publickey; /**< The public key data */
78
+ size_t publickey_len; /**< Length of the public key */
79
+
80
+ /**
81
+ * Callback used to sign the data.
82
+ */
83
+ git_cred_sign_cb sign_callback;
84
+
85
+ void *payload; /**< Payload passed to prompt_callback */
86
+ };
87
+
88
+ GIT_END_DECL
89
+
90
+ #endif
@@ -138,7 +138,7 @@ GIT_EXTERN(uint32_t) git_filter_source_flags(const git_filter_source *src);
138
138
  * initialization operations (in case libgit2 is being used in a way that
139
139
  * doesn't need the filter).
140
140
  */
141
- typedef int (*git_filter_init_fn)(git_filter *self);
141
+ typedef int GIT_CALLBACK(git_filter_init_fn)(git_filter *self);
142
142
 
143
143
  /**
144
144
  * Shutdown callback on filter
@@ -150,7 +150,7 @@ typedef int (*git_filter_init_fn)(git_filter *self);
150
150
  *
151
151
  * Typically this function will free the `git_filter` object itself.
152
152
  */
153
- typedef void (*git_filter_shutdown_fn)(git_filter *self);
153
+ typedef void GIT_CALLBACK(git_filter_shutdown_fn)(git_filter *self);
154
154
 
155
155
  /**
156
156
  * Callback to decide if a given source needs this filter
@@ -172,7 +172,7 @@ typedef void (*git_filter_shutdown_fn)(git_filter *self);
172
172
  * callback can use it. If a filter allocates and assigns a value to the
173
173
  * `payload`, it will need a `cleanup` callback to free the payload.
174
174
  */
175
- typedef int (*git_filter_check_fn)(
175
+ typedef int GIT_CALLBACK(git_filter_check_fn)(
176
176
  git_filter *self,
177
177
  void **payload, /* points to NULL ptr on entry, may be set */
178
178
  const git_filter_source *src,
@@ -190,14 +190,14 @@ typedef int (*git_filter_check_fn)(
190
190
  * The `payload` value will refer to any payload that was set by the
191
191
  * `check` callback. It may be read from or written to as needed.
192
192
  */
193
- typedef int (*git_filter_apply_fn)(
193
+ typedef int GIT_CALLBACK(git_filter_apply_fn)(
194
194
  git_filter *self,
195
195
  void **payload, /* may be read and/or set */
196
196
  git_buf *to,
197
197
  const git_buf *from,
198
198
  const git_filter_source *src);
199
199
 
200
- typedef int (*git_filter_stream_fn)(
200
+ typedef int GIT_CALLBACK(git_filter_stream_fn)(
201
201
  git_writestream **out,
202
202
  git_filter *self,
203
203
  void **payload,
@@ -212,7 +212,7 @@ typedef int (*git_filter_stream_fn)(
212
212
  * allocated a `payload` to keep per-source filter state, use this
213
213
  * callback to free that payload and release resources as required.
214
214
  */
215
- typedef void (*git_filter_cleanup_fn)(
215
+ typedef void GIT_CALLBACK(git_filter_cleanup_fn)(
216
216
  git_filter *self,
217
217
  void *payload);
218
218
 
@@ -73,7 +73,7 @@ GIT_EXTERN(const git_merge_file_options *) git_merge_driver_source_file_options(
73
73
  * initialization operations (in case libgit2 is being used in a way that
74
74
  * doesn't need the merge driver).
75
75
  */
76
- typedef int (*git_merge_driver_init_fn)(git_merge_driver *self);
76
+ typedef int GIT_CALLBACK(git_merge_driver_init_fn)(git_merge_driver *self);
77
77
 
78
78
  /**
79
79
  * Shutdown callback on merge driver
@@ -85,7 +85,7 @@ typedef int (*git_merge_driver_init_fn)(git_merge_driver *self);
85
85
  *
86
86
  * Typically this function will free the `git_merge_driver` object itself.
87
87
  */
88
- typedef void (*git_merge_driver_shutdown_fn)(git_merge_driver *self);
88
+ typedef void GIT_CALLBACK(git_merge_driver_shutdown_fn)(git_merge_driver *self);
89
89
 
90
90
  /**
91
91
  * Callback to perform the merge.
@@ -105,7 +105,7 @@ typedef void (*git_merge_driver_shutdown_fn)(git_merge_driver *self);
105
105
  *
106
106
  * The `src` contains the data about the file to be merged.
107
107
  */
108
- typedef int (*git_merge_driver_apply_fn)(
108
+ typedef int GIT_CALLBACK(git_merge_driver_apply_fn)(
109
109
  git_merge_driver *self,
110
110
  const char **path_out,
111
111
  uint32_t *mode_out,
@@ -30,39 +30,39 @@ struct git_odb_backend {
30
30
 
31
31
  /* read and read_prefix each return to libgit2 a buffer which
32
32
  * will be freed later. The buffer should be allocated using
33
- * the function git_odb_backend_malloc to ensure that it can
34
- * be safely freed later. */
35
- int (* read)(
36
- void **, size_t *, git_otype *, git_odb_backend *, const git_oid *);
33
+ * the function git_odb_backend_data_alloc to ensure that libgit2
34
+ * can safely free it later. */
35
+ int GIT_CALLBACK(read)(
36
+ void **, size_t *, git_object_t *, git_odb_backend *, const git_oid *);
37
37
 
38
38
  /* To find a unique object given a prefix of its oid. The oid given
39
39
  * must be so that the remaining (GIT_OID_HEXSZ - len)*4 bits are 0s.
40
40
  */
41
- int (* read_prefix)(
42
- git_oid *, void **, size_t *, git_otype *,
41
+ int GIT_CALLBACK(read_prefix)(
42
+ git_oid *, void **, size_t *, git_object_t *,
43
43
  git_odb_backend *, const git_oid *, size_t);
44
44
 
45
- int (* read_header)(
46
- size_t *, git_otype *, git_odb_backend *, const git_oid *);
45
+ int GIT_CALLBACK(read_header)(
46
+ size_t *, git_object_t *, git_odb_backend *, const git_oid *);
47
47
 
48
48
  /**
49
49
  * Write an object into the backend. The id of the object has
50
50
  * already been calculated and is passed in.
51
51
  */
52
- int (* write)(
53
- git_odb_backend *, const git_oid *, const void *, size_t, git_otype);
52
+ int GIT_CALLBACK(write)(
53
+ git_odb_backend *, const git_oid *, const void *, size_t, git_object_t);
54
54
 
55
- int (* writestream)(
56
- git_odb_stream **, git_odb_backend *, git_off_t, git_otype);
55
+ int GIT_CALLBACK(writestream)(
56
+ git_odb_stream **, git_odb_backend *, git_object_size_t, git_object_t);
57
57
 
58
- int (* readstream)(
59
- git_odb_stream **, size_t *, git_otype *,
58
+ int GIT_CALLBACK(readstream)(
59
+ git_odb_stream **, size_t *, git_object_t *,
60
60
  git_odb_backend *, const git_oid *);
61
61
 
62
- int (* exists)(
62
+ int GIT_CALLBACK(exists)(
63
63
  git_odb_backend *, const git_oid *);
64
64
 
65
- int (* exists_prefix)(
65
+ int GIT_CALLBACK(exists_prefix)(
66
66
  git_oid *, git_odb_backend *, const git_oid *, size_t);
67
67
 
68
68
  /**
@@ -75,14 +75,14 @@ struct git_odb_backend {
75
75
  * implementation to achieve this could be to internally invoke this
76
76
  * endpoint on failed lookups (ie. `exists()`, `read()`, `read_header()`).
77
77
  */
78
- int (* refresh)(git_odb_backend *);
78
+ int GIT_CALLBACK(refresh)(git_odb_backend *);
79
79
 
80
- int (* foreach)(
80
+ int GIT_CALLBACK(foreach)(
81
81
  git_odb_backend *, git_odb_foreach_cb cb, void *payload);
82
82
 
83
- int (* writepack)(
83
+ int GIT_CALLBACK(writepack)(
84
84
  git_odb_writepack **, git_odb_backend *, git_odb *odb,
85
- git_transfer_progress_cb progress_cb, void *progress_payload);
85
+ git_indexer_progress_cb progress_cb, void *progress_payload);
86
86
 
87
87
  /**
88
88
  * "Freshens" an already existing object, updating its last-used
@@ -93,13 +93,13 @@ struct git_odb_backend {
93
93
  * If callers implement this, they should return `0` if the object
94
94
  * exists and was freshened, and non-zero otherwise.
95
95
  */
96
- int (* freshen)(git_odb_backend *, const git_oid *);
96
+ int GIT_CALLBACK(freshen)(git_odb_backend *, const git_oid *);
97
97
 
98
98
  /**
99
99
  * Frees any resources held by the odb (including the `git_odb_backend`
100
100
  * itself). An odb backend implementation must provide this function.
101
101
  */
102
- void (* free)(git_odb_backend *);
102
+ void GIT_CALLBACK(free)(git_odb_backend *);
103
103
  };
104
104
 
105
105
  #define GIT_ODB_BACKEND_VERSION 1
@@ -117,8 +117,52 @@ GIT_EXTERN(int) git_odb_init_backend(
117
117
  git_odb_backend *backend,
118
118
  unsigned int version);
119
119
 
120
+ /**
121
+ * Allocate data for an ODB object. Custom ODB backends may use this
122
+ * to provide data back to the ODB from their read function. This
123
+ * memory should not be freed once it is returned to libgit2. If a
124
+ * custom ODB uses this function but encounters an error and does not
125
+ * return this data to libgit2, then they should use the corresponding
126
+ * git_odb_backend_data_free function.
127
+ *
128
+ * @param backend the ODB backend that is allocating this memory
129
+ * @param len the number of bytes to allocate
130
+ * @return the allocated buffer on success or NULL if out of memory
131
+ */
132
+ GIT_EXTERN(void *) git_odb_backend_data_alloc(git_odb_backend *backend, size_t len);
133
+
134
+ /**
135
+ * Frees custom allocated ODB data. This should only be called when
136
+ * memory allocated using git_odb_backend_data_alloc is not returned
137
+ * to libgit2 because the backend encountered an error in the read
138
+ * function after allocation and did not return this data to libgit2.
139
+ *
140
+ * @param backend the ODB backend that is freeing this memory
141
+ * @param data the buffer to free
142
+ */
143
+ GIT_EXTERN(void) git_odb_backend_data_free(git_odb_backend *backend, void *data);
144
+
145
+
146
+ /*
147
+ * Users can avoid deprecated functions by defining `GIT_DEPRECATE_HARD`.
148
+ */
149
+ #ifndef GIT_DEPRECATE_HARD
150
+
151
+ /**
152
+ * Allocate memory for an ODB object from a custom backend. This is
153
+ * an alias of `git_odb_backend_data_alloc` and is preserved for
154
+ * backward compatibility.
155
+ *
156
+ * This function is deprecated, but there is no plan to remove this
157
+ * function at this time.
158
+ *
159
+ * @deprecated git_odb_backend_data_alloc
160
+ * @see git_odb_backend_data_alloc
161
+ */
120
162
  GIT_EXTERN(void *) git_odb_backend_malloc(git_odb_backend *backend, size_t len);
121
163
 
164
+ #endif
165
+
122
166
  GIT_END_DECL
123
167
 
124
168
  #endif
@@ -12,22 +12,31 @@
12
12
 
13
13
  GIT_BEGIN_DECL
14
14
 
15
- /*
15
+ /**
16
+ * The kinds of git-specific files we know about.
17
+ *
16
18
  * The order needs to stay the same to not break the `gitfiles`
17
19
  * array in path.c
18
20
  */
19
21
  typedef enum {
22
+ /** Check for the .gitignore file */
20
23
  GIT_PATH_GITFILE_GITIGNORE,
24
+ /** Check for the .gitmodules file */
21
25
  GIT_PATH_GITFILE_GITMODULES,
26
+ /** Check for the .gitattributes file */
22
27
  GIT_PATH_GITFILE_GITATTRIBUTES
23
28
  } git_path_gitfile;
24
29
 
30
+ /**
31
+ * The kinds of checks to perform according to which filesystem we are trying to
32
+ * protect.
33
+ */
25
34
  typedef enum {
26
- /* Do both NTFS- and HFS-specific checks */
35
+ /** Do both NTFS- and HFS-specific checks */
27
36
  GIT_PATH_FS_GENERIC,
28
- /* Do NTFS-specific checks only */
37
+ /** Do NTFS-specific checks only */
29
38
  GIT_PATH_FS_NTFS,
30
- /* Do HFS-specific checks only */
39
+ /** Do HFS-specific checks only */
31
40
  GIT_PATH_FS_HFS
32
41
  } git_path_fs;
33
42
 
@@ -48,7 +57,7 @@ typedef enum {
48
57
  * @return 0 in case the file does not match, a positive value if
49
58
  * it does; -1 in case of an error
50
59
  */
51
- extern int git_path_is_gitfile(const char *path, size_t pathlen, git_path_gitfile gitfile, git_path_fs fs);
60
+ GIT_EXTERN(int) git_path_is_gitfile(const char *path, size_t pathlen, git_path_gitfile gitfile, git_path_fs fs);
52
61
 
53
62
  GIT_END_DECL
54
63