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
@@ -27,7 +27,8 @@ typedef enum {
27
27
  GIT_EAMBIGUOUS = -5, /**< More than one object matches */
28
28
  GIT_EBUFS = -6, /**< Output buffer too short to hold data */
29
29
 
30
- /* GIT_EUSER is a special error that is never generated by libgit2
30
+ /**
31
+ * GIT_EUSER is a special error that is never generated by libgit2
31
32
  * code. You can return it from a callback (e.g to stop an iteration)
32
33
  * to know that it was generated by the callback and not by libgit2.
33
34
  */
@@ -51,11 +52,12 @@ typedef enum {
51
52
  GIT_EDIRECTORY = -23, /**< The operation is not valid for a directory */
52
53
  GIT_EMERGECONFLICT = -24, /**< A merge conflict exists and cannot continue */
53
54
 
54
- GIT_PASSTHROUGH = -30, /**< Internal only */
55
+ GIT_PASSTHROUGH = -30, /**< A user-configured callback refused to act */
55
56
  GIT_ITEROVER = -31, /**< Signals end of iteration with iterator */
56
57
  GIT_RETRY = -32, /**< Internal only */
57
58
  GIT_EMISMATCH = -33, /**< Hashsum mismatch in object */
58
59
  GIT_EINDEXDIRTY = -34, /**< Unsaved changes in the index would be overwritten */
60
+ GIT_EAPPLYFAIL = -35, /**< Patch application failed */
59
61
  } git_error_code;
60
62
 
61
63
  /**
@@ -71,54 +73,59 @@ typedef struct {
71
73
 
72
74
  /** Error classes */
73
75
  typedef enum {
74
- GITERR_NONE = 0,
75
- GITERR_NOMEMORY,
76
- GITERR_OS,
77
- GITERR_INVALID,
78
- GITERR_REFERENCE,
79
- GITERR_ZLIB,
80
- GITERR_REPOSITORY,
81
- GITERR_CONFIG,
82
- GITERR_REGEX,
83
- GITERR_ODB,
84
- GITERR_INDEX,
85
- GITERR_OBJECT,
86
- GITERR_NET,
87
- GITERR_TAG,
88
- GITERR_TREE,
89
- GITERR_INDEXER,
90
- GITERR_SSL,
91
- GITERR_SUBMODULE,
92
- GITERR_THREAD,
93
- GITERR_STASH,
94
- GITERR_CHECKOUT,
95
- GITERR_FETCHHEAD,
96
- GITERR_MERGE,
97
- GITERR_SSH,
98
- GITERR_FILTER,
99
- GITERR_REVERT,
100
- GITERR_CALLBACK,
101
- GITERR_CHERRYPICK,
102
- GITERR_DESCRIBE,
103
- GITERR_REBASE,
104
- GITERR_FILESYSTEM,
105
- GITERR_PATCH,
106
- GITERR_WORKTREE,
107
- GITERR_SHA1
76
+ GIT_ERROR_NONE = 0,
77
+ GIT_ERROR_NOMEMORY,
78
+ GIT_ERROR_OS,
79
+ GIT_ERROR_INVALID,
80
+ GIT_ERROR_REFERENCE,
81
+ GIT_ERROR_ZLIB,
82
+ GIT_ERROR_REPOSITORY,
83
+ GIT_ERROR_CONFIG,
84
+ GIT_ERROR_REGEX,
85
+ GIT_ERROR_ODB,
86
+ GIT_ERROR_INDEX,
87
+ GIT_ERROR_OBJECT,
88
+ GIT_ERROR_NET,
89
+ GIT_ERROR_TAG,
90
+ GIT_ERROR_TREE,
91
+ GIT_ERROR_INDEXER,
92
+ GIT_ERROR_SSL,
93
+ GIT_ERROR_SUBMODULE,
94
+ GIT_ERROR_THREAD,
95
+ GIT_ERROR_STASH,
96
+ GIT_ERROR_CHECKOUT,
97
+ GIT_ERROR_FETCHHEAD,
98
+ GIT_ERROR_MERGE,
99
+ GIT_ERROR_SSH,
100
+ GIT_ERROR_FILTER,
101
+ GIT_ERROR_REVERT,
102
+ GIT_ERROR_CALLBACK,
103
+ GIT_ERROR_CHERRYPICK,
104
+ GIT_ERROR_DESCRIBE,
105
+ GIT_ERROR_REBASE,
106
+ GIT_ERROR_FILESYSTEM,
107
+ GIT_ERROR_PATCH,
108
+ GIT_ERROR_WORKTREE,
109
+ GIT_ERROR_SHA1
108
110
  } git_error_t;
109
111
 
110
112
  /**
111
113
  * Return the last `git_error` object that was generated for the
112
- * current thread or NULL if no error has occurred.
114
+ * current thread.
115
+ *
116
+ * The default behaviour of this function is to return NULL if no previous error has occurred.
117
+ * However, libgit2's error strings are not cleared aggressively, so a prior
118
+ * (unrelated) error may be returned. This can be avoided by only calling
119
+ * this function if the prior call to a libgit2 API returned an error.
113
120
  *
114
121
  * @return A git_error object.
115
122
  */
116
- GIT_EXTERN(const git_error *) giterr_last(void);
123
+ GIT_EXTERN(const git_error *) git_error_last(void);
117
124
 
118
125
  /**
119
126
  * Clear the last library error that occurred for this thread.
120
127
  */
121
- GIT_EXTERN(void) giterr_clear(void);
128
+ GIT_EXTERN(void) git_error_clear(void);
122
129
 
123
130
  /**
124
131
  * Set the error message string for this thread.
@@ -136,18 +143,18 @@ GIT_EXTERN(void) giterr_clear(void);
136
143
  * general subsystem that is responsible for the error.
137
144
  * @param string The formatted error message to keep
138
145
  */
139
- GIT_EXTERN(void) giterr_set_str(int error_class, const char *string);
146
+ GIT_EXTERN(void) git_error_set_str(int error_class, const char *string);
140
147
 
141
148
  /**
142
149
  * Set the error message to a special value for memory allocation failure.
143
150
  *
144
- * The normal `giterr_set_str()` function attempts to `strdup()` the string
145
- * that is passed in. This is not a good idea when the error in question
146
- * is a memory allocation failure. That circumstance has a special setter
147
- * function that sets the error string to a known and statically allocated
148
- * internal value.
151
+ * The normal `git_error_set_str()` function attempts to `strdup()` the
152
+ * string that is passed in. This is not a good idea when the error in
153
+ * question is a memory allocation failure. That circumstance has a
154
+ * special setter function that sets the error string to a known and
155
+ * statically allocated internal value.
149
156
  */
150
- GIT_EXTERN(void) giterr_set_oom(void);
157
+ GIT_EXTERN(void) git_error_set_oom(void);
151
158
 
152
159
  /** @} */
153
160
  GIT_END_DECL
@@ -40,7 +40,15 @@ typedef enum {
40
40
  */
41
41
  typedef enum {
42
42
  GIT_FILTER_DEFAULT = 0u,
43
+
44
+ /** Don't error for `safecrlf` violations, allow them to continue. */
43
45
  GIT_FILTER_ALLOW_UNSAFE = (1u << 0),
46
+
47
+ /** Don't load `/etc/gitattributes` (or the system equivalent) */
48
+ GIT_FILTER_NO_SYSTEM_ATTRIBUTES = (1u << 1),
49
+
50
+ /** Load attributes from `.gitattributes` in the root of HEAD */
51
+ GIT_FILTER_ATTRIBUTES_FROM_HEAD = (1u << 2),
44
52
  } git_filter_flag_t;
45
53
 
46
54
  /**
@@ -37,11 +37,11 @@ typedef struct {
37
37
  * "Documentation/technical/index-format.txt").
38
38
  *
39
39
  * The `flags` field consists of a number of bit fields which can be
40
- * accessed via the first set of `GIT_IDXENTRY_...` bitmasks below. These
41
- * flags are all read from and persisted to disk.
40
+ * accessed via the first set of `GIT_INDEX_ENTRY_...` bitmasks below.
41
+ * These flags are all read from and persisted to disk.
42
42
  *
43
43
  * The `flags_extended` field also has a number of bit fields which can be
44
- * accessed via the later `GIT_IDXENTRY_...` bitmasks below. Some of
44
+ * accessed via the later `GIT_INDEX_ENTRY_...` bitmasks below. Some of
45
45
  * these flags are read from and written to disk, but some are set aside
46
46
  * for in-memory only reference.
47
47
  *
@@ -76,24 +76,25 @@ typedef struct git_index_entry {
76
76
  * value both in memory and on disk. You can use them to interpret the
77
77
  * data in the `flags`.
78
78
  */
79
- #define GIT_IDXENTRY_NAMEMASK (0x0fff)
80
- #define GIT_IDXENTRY_STAGEMASK (0x3000)
81
- #define GIT_IDXENTRY_STAGESHIFT 12
79
+
80
+ #define GIT_INDEX_ENTRY_NAMEMASK (0x0fff)
81
+ #define GIT_INDEX_ENTRY_STAGEMASK (0x3000)
82
+ #define GIT_INDEX_ENTRY_STAGESHIFT 12
82
83
 
83
84
  /**
84
85
  * Flags for index entries
85
86
  */
86
87
  typedef enum {
87
- GIT_IDXENTRY_EXTENDED = (0x4000),
88
- GIT_IDXENTRY_VALID = (0x8000),
89
- } git_indxentry_flag_t;
88
+ GIT_INDEX_ENTRY_EXTENDED = (0x4000),
89
+ GIT_INDEX_ENTRY_VALID = (0x8000),
90
+ } git_index_entry_flag_t;
90
91
 
91
- #define GIT_IDXENTRY_STAGE(E) \
92
- (((E)->flags & GIT_IDXENTRY_STAGEMASK) >> GIT_IDXENTRY_STAGESHIFT)
92
+ #define GIT_INDEX_ENTRY_STAGE(E) \
93
+ (((E)->flags & GIT_INDEX_ENTRY_STAGEMASK) >> GIT_INDEX_ENTRY_STAGESHIFT)
93
94
 
94
- #define GIT_IDXENTRY_STAGE_SET(E,S) do { \
95
- (E)->flags = ((E)->flags & ~GIT_IDXENTRY_STAGEMASK) | \
96
- (((S) & 0x03) << GIT_IDXENTRY_STAGESHIFT); } while (0)
95
+ #define GIT_INDEX_ENTRY_STAGE_SET(E,S) do { \
96
+ (E)->flags = ((E)->flags & ~GIT_INDEX_ENTRY_STAGEMASK) | \
97
+ (((S) & 0x03) << GIT_INDEX_ENTRY_STAGESHIFT); } while (0)
97
98
 
98
99
  /**
99
100
  * Bitmasks for on-disk fields of `git_index_entry`'s `flags_extended`
@@ -101,7 +102,7 @@ typedef enum {
101
102
  * In memory, the `flags_extended` fields are divided into two parts: the
102
103
  * fields that are read from and written to disk, and other fields that
103
104
  * in-memory only and used by libgit2. Only the flags in
104
- * `GIT_IDXENTRY_EXTENDED_FLAGS` will get saved on-disk.
105
+ * `GIT_INDEX_ENTRY_EXTENDED_FLAGS` will get saved on-disk.
105
106
  *
106
107
  * Thee first three bitmasks match the three fields in the
107
108
  * `git_index_entry` `flags_extended` value that belong on disk. You
@@ -113,37 +114,25 @@ typedef enum {
113
114
  *
114
115
  */
115
116
  typedef enum {
117
+ GIT_INDEX_ENTRY_INTENT_TO_ADD = (1 << 13),
118
+ GIT_INDEX_ENTRY_SKIP_WORKTREE = (1 << 14),
116
119
 
117
- GIT_IDXENTRY_INTENT_TO_ADD = (1 << 13),
118
- GIT_IDXENTRY_SKIP_WORKTREE = (1 << 14),
119
- /** Reserved for future extension */
120
- GIT_IDXENTRY_EXTENDED2 = (1 << 15),
121
-
122
- GIT_IDXENTRY_EXTENDED_FLAGS = (GIT_IDXENTRY_INTENT_TO_ADD | GIT_IDXENTRY_SKIP_WORKTREE),
123
- GIT_IDXENTRY_UPDATE = (1 << 0),
124
- GIT_IDXENTRY_REMOVE = (1 << 1),
125
- GIT_IDXENTRY_UPTODATE = (1 << 2),
126
- GIT_IDXENTRY_ADDED = (1 << 3),
120
+ GIT_INDEX_ENTRY_EXTENDED_FLAGS = (GIT_INDEX_ENTRY_INTENT_TO_ADD | GIT_INDEX_ENTRY_SKIP_WORKTREE),
127
121
 
128
- GIT_IDXENTRY_HASHED = (1 << 4),
129
- GIT_IDXENTRY_UNHASHED = (1 << 5),
130
- GIT_IDXENTRY_WT_REMOVE = (1 << 6), /**< remove in work directory */
131
- GIT_IDXENTRY_CONFLICTED = (1 << 7),
132
-
133
- GIT_IDXENTRY_UNPACKED = (1 << 8),
134
- GIT_IDXENTRY_NEW_SKIP_WORKTREE = (1 << 9),
135
- } git_idxentry_extended_flag_t;
122
+ GIT_INDEX_ENTRY_UPTODATE = (1 << 2),
123
+ } git_index_entry_extended_flag_t;
136
124
 
137
125
  /** Capabilities of system that affect index actions. */
138
126
  typedef enum {
139
- GIT_INDEXCAP_IGNORE_CASE = 1,
140
- GIT_INDEXCAP_NO_FILEMODE = 2,
141
- GIT_INDEXCAP_NO_SYMLINKS = 4,
142
- GIT_INDEXCAP_FROM_OWNER = -1,
143
- } git_indexcap_t;
127
+ GIT_INDEX_CAPABILITY_IGNORE_CASE = 1,
128
+ GIT_INDEX_CAPABILITY_NO_FILEMODE = 2,
129
+ GIT_INDEX_CAPABILITY_NO_SYMLINKS = 4,
130
+ GIT_INDEX_CAPABILITY_FROM_OWNER = -1,
131
+ } git_index_capability_t;
132
+
144
133
 
145
134
  /** Callback for APIs that add/remove/update files matching pathspec */
146
- typedef int (*git_index_matched_path_cb)(
135
+ typedef int GIT_CALLBACK(git_index_matched_path_cb)(
147
136
  const char *path, const char *matched_pathspec, void *payload);
148
137
 
149
138
  /** Flags for APIs that add files matching pathspec */
@@ -154,6 +143,7 @@ typedef enum {
154
143
  GIT_INDEX_ADD_CHECK_PATHSPEC = (1u << 2),
155
144
  } git_index_add_option_t;
156
145
 
146
+ /** Git index stage states */
157
147
  typedef enum {
158
148
  /**
159
149
  * Match any index stage.
@@ -176,12 +166,6 @@ typedef enum {
176
166
  GIT_INDEX_STAGE_THEIRS = 3,
177
167
  } git_index_stage_t;
178
168
 
179
- /** @name Index File Functions
180
- *
181
- * These functions work on the index file itself.
182
- */
183
- /**@{*/
184
-
185
169
  /**
186
170
  * Create a new bare Git index object as a memory representation
187
171
  * of the Git index file in 'index_path', without a repository
@@ -234,19 +218,19 @@ GIT_EXTERN(git_repository *) git_index_owner(const git_index *index);
234
218
  * Read index capabilities flags.
235
219
  *
236
220
  * @param index An existing index object
237
- * @return A combination of GIT_INDEXCAP values
221
+ * @return A combination of GIT_INDEX_CAPABILITY values
238
222
  */
239
223
  GIT_EXTERN(int) git_index_caps(const git_index *index);
240
224
 
241
225
  /**
242
226
  * Set index capabilities flags.
243
227
  *
244
- * If you pass `GIT_INDEXCAP_FROM_OWNER` for the caps, then the
228
+ * If you pass `GIT_INDEX_CAPABILITY_FROM_OWNER` for the caps, then
245
229
  * capabilities will be read from the config of the owner object,
246
230
  * looking at `core.ignorecase`, `core.filemode`, `core.symlinks`.
247
231
  *
248
232
  * @param index An existing index object
249
- * @param caps A combination of GIT_INDEXCAP values
233
+ * @param caps A combination of GIT_INDEX_CAPABILITY values
250
234
  * @return 0 on success, -1 on failure
251
235
  */
252
236
  GIT_EXTERN(int) git_index_set_caps(git_index *index, int caps);
@@ -474,7 +458,7 @@ GIT_EXTERN(int) git_index_add(git_index *index, const git_index_entry *source_en
474
458
  *
475
459
  * This entry is calculated from the entry's flag attribute like this:
476
460
  *
477
- * (entry->flags & GIT_IDXENTRY_STAGEMASK) >> GIT_IDXENTRY_STAGESHIFT
461
+ * (entry->flags & GIT_INDEX_ENTRY_STAGEMASK) >> GIT_INDEX_ENTRY_STAGESHIFT
478
462
  *
479
463
  * @param entry The entry
480
464
  * @return the stage number
@@ -492,6 +476,46 @@ GIT_EXTERN(int) git_index_entry_is_conflict(const git_index_entry *entry);
492
476
 
493
477
  /**@}*/
494
478
 
479
+ /** @name Index Entry Iteration Functions
480
+ *
481
+ * These functions provide an iterator for index entries.
482
+ */
483
+ /**@{*/
484
+
485
+ /**
486
+ * Create an iterator that will return every entry contained in the
487
+ * index at the time of creation. Entries are returned in order,
488
+ * sorted by path. This iterator is backed by a snapshot that allows
489
+ * callers to modify the index while iterating without affecting the
490
+ * iterator.
491
+ *
492
+ * @param iterator_out The newly created iterator
493
+ * @param index The index to iterate
494
+ */
495
+ GIT_EXTERN(int) git_index_iterator_new(
496
+ git_index_iterator **iterator_out,
497
+ git_index *index);
498
+
499
+ /**
500
+ * Return the next index entry in-order from the iterator.
501
+ *
502
+ * @param out Pointer to store the index entry in
503
+ * @param iterator The iterator
504
+ * @return 0, GIT_ITEROVER on iteration completion or an error code
505
+ */
506
+ GIT_EXTERN(int) git_index_iterator_next(
507
+ const git_index_entry **out,
508
+ git_index_iterator *iterator);
509
+
510
+ /**
511
+ * Free the index iterator
512
+ *
513
+ * @param iterator The iterator to free
514
+ */
515
+ GIT_EXTERN(void) git_index_iterator_free(git_index_iterator *iterator);
516
+
517
+ /**@}*/
518
+
495
519
  /** @name Workdir Index Entry Functions
496
520
  *
497
521
  * These functions work on index entries specifically in the working
@@ -548,7 +572,7 @@ GIT_EXTERN(int) git_index_add_bypath(git_index *index, const char *path);
548
572
  * @param len length of the data
549
573
  * @return 0 or an error code
550
574
  */
551
- GIT_EXTERN(int) git_index_add_frombuffer(
575
+ GIT_EXTERN(int) git_index_add_from_buffer(
552
576
  git_index *index,
553
577
  const git_index_entry *entry,
554
578
  const void *buffer, size_t len);
@@ -805,8 +829,6 @@ GIT_EXTERN(int) git_index_conflict_next(
805
829
  GIT_EXTERN(void) git_index_conflict_iterator_free(
806
830
  git_index_conflict_iterator *iterator);
807
831
 
808
- /**@}*/
809
-
810
832
  /** @} */
811
833
  GIT_END_DECL
812
834
  #endif
@@ -13,8 +13,79 @@
13
13
 
14
14
  GIT_BEGIN_DECL
15
15
 
16
+ /** A git indexer object */
16
17
  typedef struct git_indexer git_indexer;
17
18
 
19
+ /**
20
+ * This structure is used to provide callers information about the
21
+ * progress of indexing a packfile, either directly or part of a
22
+ * fetch or clone that downloads a packfile.
23
+ */
24
+ typedef struct git_indexer_progress {
25
+ /** number of objects in the packfile being indexed */
26
+ unsigned int total_objects;
27
+
28
+ /** received objects that have been hashed */
29
+ unsigned int indexed_objects;
30
+
31
+ /** received_objects: objects which have been downloaded */
32
+ unsigned int received_objects;
33
+
34
+ /**
35
+ * locally-available objects that have been injected in order
36
+ * to fix a thin pack
37
+ */
38
+ unsigned int local_objects;
39
+
40
+ /** number of deltas in the packfile being indexed */
41
+ unsigned int total_deltas;
42
+
43
+ /** received deltas that have been indexed */
44
+ unsigned int indexed_deltas;
45
+
46
+ /** size of the packfile received up to now */
47
+ size_t received_bytes;
48
+ } git_indexer_progress;
49
+
50
+ /**
51
+ * Type for progress callbacks during indexing. Return a value less
52
+ * than zero to cancel the indexing or download.
53
+ *
54
+ * @param stats Structure containing information about the state of the tran sfer
55
+ * @param payload Payload provided by caller
56
+ */
57
+ typedef int GIT_CALLBACK(git_indexer_progress_cb)(const git_indexer_progress *stats, void *payload);
58
+
59
+ /**
60
+ * Options for indexer configuration
61
+ */
62
+ typedef struct git_indexer_options {
63
+ unsigned int version;
64
+
65
+ /** progress_cb function to call with progress information */
66
+ git_indexer_progress_cb progress_cb;
67
+ /** progress_cb_payload payload for the progress callback */
68
+ void *progress_cb_payload;
69
+
70
+ /** Do connectivity checks for the received pack */
71
+ unsigned char verify;
72
+ } git_indexer_options;
73
+
74
+ #define GIT_INDEXER_OPTIONS_VERSION 1
75
+ #define GIT_INDEXER_OPTIONS_INIT { GIT_INDEXER_OPTIONS_VERSION }
76
+
77
+ /**
78
+ * Initializes a `git_indexer_options` with default values. Equivalent to
79
+ * creating an instance with GIT_INDEXER_OPTIONS_INIT.
80
+ *
81
+ * @param opts the `git_indexer_options` struct to initialize.
82
+ * @param version Version of struct; pass `GIT_INDEXER_OPTIONS_VERSION`
83
+ * @return Zero on success; -1 on failure.
84
+ */
85
+ GIT_EXTERN(int) git_indexer_options_init(
86
+ git_indexer_options *opts,
87
+ unsigned int version);
88
+
18
89
  /**
19
90
  * Create a new indexer instance
20
91
  *
@@ -24,16 +95,15 @@ typedef struct git_indexer git_indexer;
24
95
  * @param odb object database from which to read base objects when
25
96
  * fixing thin packs. Pass NULL if no thin pack is expected (an error
26
97
  * will be returned if there are bases missing)
27
- * @param progress_cb function to call with progress information
28
- * @param progress_cb_payload payload for the progress callback
98
+ * @param opts Optional structure containing additional options. See
99
+ * `git_indexer_options` above.
29
100
  */
30
101
  GIT_EXTERN(int) git_indexer_new(
31
102
  git_indexer **out,
32
103
  const char *path,
33
104
  unsigned int mode,
34
105
  git_odb *odb,
35
- git_transfer_progress_cb progress_cb,
36
- void *progress_cb_payload);
106
+ git_indexer_options *opts);
37
107
 
38
108
  /**
39
109
  * Add data to the indexer
@@ -43,7 +113,7 @@ GIT_EXTERN(int) git_indexer_new(
43
113
  * @param size the size of the data in bytes
44
114
  * @param stats stat storage
45
115
  */
46
- GIT_EXTERN(int) git_indexer_append(git_indexer *idx, const void *data, size_t size, git_transfer_progress *stats);
116
+ GIT_EXTERN(int) git_indexer_append(git_indexer *idx, const void *data, size_t size, git_indexer_progress *stats);
47
117
 
48
118
  /**
49
119
  * Finalize the pack and index
@@ -52,7 +122,7 @@ GIT_EXTERN(int) git_indexer_append(git_indexer *idx, const void *data, size_t si
52
122
  *
53
123
  * @param idx the indexer
54
124
  */
55
- GIT_EXTERN(int) git_indexer_commit(git_indexer *idx, git_transfer_progress *stats);
125
+ GIT_EXTERN(int) git_indexer_commit(git_indexer *idx, git_indexer_progress *stats);
56
126
 
57
127
  /**
58
128
  * Get the packfile's hash
@@ -57,7 +57,7 @@ typedef struct {
57
57
  * `GIT_MERGE_FILE_INPUT_VERSION` here.
58
58
  * @return Zero on success; -1 on failure.
59
59
  */
60
- GIT_EXTERN(int) git_merge_file_init_input(
60
+ GIT_EXTERN(int) git_merge_file_input_init(
61
61
  git_merge_file_input *opts,
62
62
  unsigned int version);
63
63
 
@@ -192,7 +192,7 @@ typedef struct {
192
192
  git_merge_file_favor_t favor;
193
193
 
194
194
  /** see `git_merge_file_flag_t` above */
195
- git_merge_file_flag_t flags;
195
+ uint32_t flags;
196
196
 
197
197
  /** The size of conflict markers (eg, "<<<<<<<"). Default is
198
198
  * GIT_MERGE_CONFLICT_MARKER_SIZE. */
@@ -212,9 +212,7 @@ typedef struct {
212
212
  * @param version The struct version; pass `GIT_MERGE_FILE_OPTIONS_VERSION`.
213
213
  * @return Zero on success; -1 on failure.
214
214
  */
215
- GIT_EXTERN(int) git_merge_file_init_options(
216
- git_merge_file_options *opts,
217
- unsigned int version);
215
+ GIT_EXTERN(int) git_merge_file_options_init(git_merge_file_options *opts, unsigned int version);
218
216
 
219
217
  /**
220
218
  * Information about file-level merging
@@ -249,7 +247,7 @@ typedef struct {
249
247
  unsigned int version;
250
248
 
251
249
  /** See `git_merge_flag_t` above */
252
- git_merge_flag_t flags;
250
+ uint32_t flags;
253
251
 
254
252
  /**
255
253
  * Similarity to consider a file renamed (default 50). If
@@ -293,7 +291,7 @@ typedef struct {
293
291
  git_merge_file_favor_t file_favor;
294
292
 
295
293
  /** see `git_merge_file_flag_t` above */
296
- git_merge_file_flag_t file_flags;
294
+ uint32_t file_flags;
297
295
  } git_merge_options;
298
296
 
299
297
  #define GIT_MERGE_OPTIONS_VERSION 1
@@ -310,9 +308,7 @@ typedef struct {
310
308
  * @param version The struct version; pass `GIT_MERGE_OPTIONS_VERSION`.
311
309
  * @return Zero on success; -1 on failure.
312
310
  */
313
- GIT_EXTERN(int) git_merge_init_options(
314
- git_merge_options *opts,
315
- unsigned int version);
311
+ GIT_EXTERN(int) git_merge_options_init(git_merge_options *opts, unsigned int version);
316
312
 
317
313
  /**
318
314
  * The results of `git_merge_analysis` indicate the merge opportunities.
@@ -388,6 +384,25 @@ GIT_EXTERN(int) git_merge_analysis(
388
384
  const git_annotated_commit **their_heads,
389
385
  size_t their_heads_len);
390
386
 
387
+ /**
388
+ * Analyzes the given branch(es) and determines the opportunities for
389
+ * merging them into a reference.
390
+ *
391
+ * @param analysis_out analysis enumeration that the result is written into
392
+ * @param repo the repository to merge
393
+ * @param our_ref the reference to perform the analysis from
394
+ * @param their_heads the heads to merge into
395
+ * @param their_heads_len the number of heads to merge
396
+ * @return 0 on success or error code
397
+ */
398
+ GIT_EXTERN(int) git_merge_analysis_for_ref(
399
+ git_merge_analysis_t *analysis_out,
400
+ git_merge_preference_t *preference_out,
401
+ git_repository *repo,
402
+ git_reference *our_ref,
403
+ const git_annotated_commit **their_heads,
404
+ size_t their_heads_len);
405
+
391
406
  /**
392
407
  * Find a merge base between two commits
393
408
  *
@@ -49,11 +49,6 @@ struct git_remote_head {
49
49
  char *symref_target;
50
50
  };
51
51
 
52
- /**
53
- * Callback for listing the remote heads
54
- */
55
- typedef int (*git_headlist_cb)(git_remote_head *rhead, void *payload);
56
-
57
52
  /** @} */
58
53
  GIT_END_DECL
59
54
  #endif
@@ -26,7 +26,7 @@ GIT_BEGIN_DECL
26
26
  * - annotated_object_id: Oid of the git object being annotated
27
27
  * - payload: Payload data passed to `git_note_foreach`
28
28
  */
29
- typedef int (*git_note_foreach_cb)(
29
+ typedef int GIT_CALLBACK(git_note_foreach_cb)(
30
30
  const git_oid *blob_id, const git_oid *annotated_object_id, void *payload);
31
31
 
32
32
  /**