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
@@ -41,6 +41,80 @@ GIT_EXTERN(int) git_remote_create(
41
41
  const char *name,
42
42
  const char *url);
43
43
 
44
+ /**
45
+ * Remote creation options flags
46
+ */
47
+ typedef enum {
48
+ /** Ignore the repository apply.insteadOf configuration */
49
+ GIT_REMOTE_CREATE_SKIP_INSTEADOF = (1 << 0),
50
+
51
+ /** Don't build a fetchspec from the name if none is set */
52
+ GIT_REMOTE_CREATE_SKIP_DEFAULT_FETCHSPEC = (1 << 1),
53
+ } git_remote_create_flags;
54
+
55
+ /**
56
+ * Remote creation options structure
57
+ *
58
+ * Initialize with `GIT_REMOTE_CREATE_OPTIONS_INIT`. Alternatively, you can
59
+ * use `git_remote_create_options_init`.
60
+ *
61
+ */
62
+ typedef struct git_remote_create_options {
63
+ unsigned int version;
64
+
65
+ /**
66
+ * The repository that should own the remote.
67
+ * Setting this to NULL results in a detached remote.
68
+ */
69
+ git_repository *repository;
70
+
71
+ /**
72
+ * The remote's name.
73
+ * Setting this to NULL results in an in-memory/anonymous remote.
74
+ */
75
+ const char *name;
76
+
77
+ /** The fetchspec the remote should use. */
78
+ const char *fetchspec;
79
+
80
+ /** Additional flags for the remote. See git_remote_create_flags. */
81
+ unsigned int flags;
82
+ } git_remote_create_options;
83
+
84
+ #define GIT_REMOTE_CREATE_OPTIONS_VERSION 1
85
+ #define GIT_REMOTE_CREATE_OPTIONS_INIT {GIT_REMOTE_CREATE_OPTIONS_VERSION}
86
+
87
+ /**
88
+ * Initialize git_remote_create_options structure
89
+ *
90
+ * Initializes a `git_remote_create_options` with default values. Equivalent to
91
+ * creating an instance with `GIT_REMOTE_CREATE_OPTIONS_INIT`.
92
+ *
93
+ * @param opts The `git_remote_create_options` struct to initialize.
94
+ * @param version The struct version; pass `GIT_REMOTE_CREATE_OPTIONS_VERSION`.
95
+ * @return Zero on success; -1 on failure.
96
+ */
97
+ GIT_EXTERN(int) git_remote_create_options_init(
98
+ git_remote_create_options *opts,
99
+ unsigned int version);
100
+
101
+ /**
102
+ * Create a remote, with options.
103
+ *
104
+ * This function allows more fine-grained control over the remote creation.
105
+ *
106
+ * Passing NULL as the opts argument will result in a detached remote.
107
+ *
108
+ * @param out the resulting remote
109
+ * @param url the remote's url
110
+ * @param opts the remote creation options
111
+ * @return 0, GIT_EINVALIDSPEC, GIT_EEXISTS or an error code
112
+ */
113
+ GIT_EXTERN(int) git_remote_create_with_opts(
114
+ git_remote **out,
115
+ const char *url,
116
+ const git_remote_create_options *opts);
117
+
44
118
  /**
45
119
  * Add a remote with the provided fetch refspec (or default if NULL) to the repository's
46
120
  * configuration.
@@ -341,18 +415,19 @@ GIT_EXTERN(int) git_remote_list(git_strarray *out, git_repository *repo);
341
415
  * Argument to the completion callback which tells it which operation
342
416
  * finished.
343
417
  */
344
- typedef enum git_remote_completion_type {
418
+ typedef enum git_remote_completion_t {
345
419
  GIT_REMOTE_COMPLETION_DOWNLOAD,
346
420
  GIT_REMOTE_COMPLETION_INDEXING,
347
421
  GIT_REMOTE_COMPLETION_ERROR,
348
- } git_remote_completion_type;
422
+ } git_remote_completion_t;
349
423
 
350
424
  /** Push network progress notification function */
351
- typedef int (*git_push_transfer_progress)(
425
+ typedef int GIT_CALLBACK(git_push_transfer_progress_cb)(
352
426
  unsigned int current,
353
427
  unsigned int total,
354
428
  size_t bytes,
355
429
  void* payload);
430
+
356
431
  /**
357
432
  * Represents an update which will be performed on the remote during push
358
433
  */
@@ -383,7 +458,7 @@ typedef struct {
383
458
  * @param len number of elements in `updates`
384
459
  * @param payload Payload provided by the caller
385
460
  */
386
- typedef int (*git_push_negotiation)(const git_push_update **updates, size_t len, void *payload);
461
+ typedef int GIT_CALLBACK(git_push_negotiation)(const git_push_update **updates, size_t len, void *payload);
387
462
 
388
463
  /**
389
464
  * Callback used to inform of the update status from the remote.
@@ -397,7 +472,21 @@ typedef int (*git_push_negotiation)(const git_push_update **updates, size_t len,
397
472
  * @param data data provided by the caller
398
473
  * @return 0 on success, otherwise an error
399
474
  */
400
- typedef int (*git_push_update_reference_cb)(const char *refname, const char *status, void *data);
475
+ typedef int GIT_CALLBACK(git_push_update_reference_cb)(const char *refname, const char *status, void *data);
476
+
477
+ /**
478
+ * Callback to resolve URLs before connecting to remote
479
+ *
480
+ * If you return GIT_PASSTHROUGH, you don't need to write anything to
481
+ * url_resolved.
482
+ *
483
+ * @param url_resolved The buffer to write the resolved URL to
484
+ * @param url The URL to resolve
485
+ * @param direction GIT_DIRECTION_FETCH or GIT_DIRECTION_PUSH
486
+ * @param payload Payload provided by the caller
487
+ * @return 0 on success, GIT_PASSTHROUGH or an error
488
+ */
489
+ typedef int GIT_CALLBACK(git_url_resolve_cb)(git_buf *url_resolved, const char *url, int direction, void *payload);
401
490
 
402
491
  /**
403
492
  * The callback settings structure
@@ -406,7 +495,8 @@ typedef int (*git_push_update_reference_cb)(const char *refname, const char *sta
406
495
  * about the progress of the network operations.
407
496
  */
408
497
  struct git_remote_callbacks {
409
- unsigned int version;
498
+ unsigned int version; /**< The version */
499
+
410
500
  /**
411
501
  * Textual progress from the remote. Text send over the
412
502
  * progress side-band will be passed to this function (this is
@@ -418,7 +508,7 @@ struct git_remote_callbacks {
418
508
  * Completion is called when different parts of the download
419
509
  * process are done (currently unused).
420
510
  */
421
- int (*completion)(git_remote_completion_type type, void *data);
511
+ int GIT_CALLBACK(completion)(git_remote_completion_t type, void *data);
422
512
 
423
513
  /**
424
514
  * This will be called if the remote host requires
@@ -442,13 +532,13 @@ struct git_remote_callbacks {
442
532
  * called with the current count of progress done by the
443
533
  * indexer.
444
534
  */
445
- git_transfer_progress_cb transfer_progress;
535
+ git_indexer_progress_cb transfer_progress;
446
536
 
447
537
  /**
448
538
  * Each time a reference is updated locally, this function
449
539
  * will be called with information about it.
450
540
  */
451
- int (*update_tips)(const char *refname, const git_oid *a, const git_oid *b, void *data);
541
+ int GIT_CALLBACK(update_tips)(const char *refname, const git_oid *a, const git_oid *b, void *data);
452
542
 
453
543
  /**
454
544
  * Function to call with progress information during pack
@@ -463,7 +553,7 @@ struct git_remote_callbacks {
463
553
  * inline with pack building operations, so performance may be
464
554
  * affected.
465
555
  */
466
- git_push_transfer_progress push_transfer_progress;
556
+ git_push_transfer_progress_cb push_transfer_progress;
467
557
 
468
558
  /**
469
559
  * See documentation of git_push_update_reference_cb
@@ -487,6 +577,12 @@ struct git_remote_callbacks {
487
577
  * as the last parameter.
488
578
  */
489
579
  void *payload;
580
+
581
+ /**
582
+ * Resolve URL before connecting to remote.
583
+ * The returned URL will be used to connect to the remote instead.
584
+ */
585
+ git_url_resolve_cb resolve_url;
490
586
  };
491
587
 
492
588
  #define GIT_REMOTE_CALLBACKS_VERSION 1
@@ -504,6 +600,7 @@ GIT_EXTERN(int) git_remote_init_callbacks(
504
600
  git_remote_callbacks *opts,
505
601
  unsigned int version);
506
602
 
603
+ /** Acceptable prune settings when fetching */
507
604
  typedef enum {
508
605
  /**
509
606
  * Use the setting from the configuration
@@ -605,7 +702,7 @@ typedef struct {
605
702
  * @param version The struct version; pass `GIT_FETCH_OPTIONS_VERSION`.
606
703
  * @return Zero on success; -1 on failure.
607
704
  */
608
- GIT_EXTERN(int) git_fetch_init_options(
705
+ GIT_EXTERN(int) git_fetch_options_init(
609
706
  git_fetch_options *opts,
610
707
  unsigned int version);
611
708
 
@@ -643,7 +740,7 @@ typedef struct {
643
740
  } git_push_options;
644
741
 
645
742
  #define GIT_PUSH_OPTIONS_VERSION 1
646
- #define GIT_PUSH_OPTIONS_INIT { GIT_PUSH_OPTIONS_VERSION, 0, GIT_REMOTE_CALLBACKS_INIT, GIT_PROXY_OPTIONS_INIT }
743
+ #define GIT_PUSH_OPTIONS_INIT { GIT_PUSH_OPTIONS_VERSION, 1, GIT_REMOTE_CALLBACKS_INIT, GIT_PROXY_OPTIONS_INIT }
647
744
 
648
745
  /**
649
746
  * Initialize git_push_options structure
@@ -655,7 +752,7 @@ typedef struct {
655
752
  * @param version The struct version; pass `GIT_PUSH_OPTIONS_VERSION`.
656
753
  * @return Zero on success; -1 on failure.
657
754
  */
658
- GIT_EXTERN(int) git_push_init_options(
755
+ GIT_EXTERN(int) git_push_options_init(
659
756
  git_push_options *opts,
660
757
  unsigned int version);
661
758
 
@@ -758,7 +855,7 @@ GIT_EXTERN(int) git_remote_push(git_remote *remote,
758
855
  /**
759
856
  * Get the statistics structure that is filled in by the fetch operation.
760
857
  */
761
- GIT_EXTERN(const git_transfer_progress *) git_remote_stats(git_remote *remote);
858
+ GIT_EXTERN(const git_indexer_progress *) git_remote_stats(git_remote *remote);
762
859
 
763
860
  /**
764
861
  * Retrieve the tag auto-follow setting
@@ -94,40 +94,53 @@ GIT_EXTERN(int) git_repository_discover(
94
94
 
95
95
  /**
96
96
  * Option flags for `git_repository_open_ext`.
97
- *
98
- * * GIT_REPOSITORY_OPEN_NO_SEARCH - Only open the repository if it can be
99
- * immediately found in the start_path. Do not walk up from the
100
- * start_path looking at parent directories.
101
- * * GIT_REPOSITORY_OPEN_CROSS_FS - Unless this flag is set, open will not
102
- * continue searching across filesystem boundaries (i.e. when `st_dev`
103
- * changes from the `stat` system call). (E.g. Searching in a user's home
104
- * directory "/home/user/source/" will not return "/.git/" as the found
105
- * repo if "/" is a different filesystem than "/home".)
106
- * * GIT_REPOSITORY_OPEN_BARE - Open repository as a bare repo regardless
107
- * of core.bare config, and defer loading config file for faster setup.
108
- * Unlike `git_repository_open_bare`, this can follow gitlinks.
109
- * * GIT_REPOSITORY_OPEN_NO_DOTGIT - Do not check for a repository by
110
- * appending /.git to the start_path; only open the repository if
111
- * start_path itself points to the git directory.
112
- * * GIT_REPOSITORY_OPEN_FROM_ENV - Find and open a git repository,
113
- * respecting the environment variables used by the git command-line
114
- * tools. If set, `git_repository_open_ext` will ignore the other
115
- * flags and the `ceiling_dirs` argument, and will allow a NULL `path`
116
- * to use `GIT_DIR` or search from the current directory. The search
117
- * for a repository will respect $GIT_CEILING_DIRECTORIES and
118
- * $GIT_DISCOVERY_ACROSS_FILESYSTEM. The opened repository will
119
- * respect $GIT_INDEX_FILE, $GIT_NAMESPACE, $GIT_OBJECT_DIRECTORY, and
120
- * $GIT_ALTERNATE_OBJECT_DIRECTORIES. In the future, this flag will
121
- * also cause `git_repository_open_ext` to respect $GIT_WORK_TREE and
122
- * $GIT_COMMON_DIR; currently, `git_repository_open_ext` with this
123
- * flag will error out if either $GIT_WORK_TREE or $GIT_COMMON_DIR is
124
- * set.
125
97
  */
126
98
  typedef enum {
99
+ /**
100
+ * Only open the repository if it can be immediately found in the
101
+ * start_path. Do not walk up from the start_path looking at parent
102
+ * directories.
103
+ */
127
104
  GIT_REPOSITORY_OPEN_NO_SEARCH = (1 << 0),
105
+
106
+ /**
107
+ * Unless this flag is set, open will not continue searching across
108
+ * filesystem boundaries (i.e. when `st_dev` changes from the `stat`
109
+ * system call). For example, searching in a user's home directory at
110
+ * "/home/user/source/" will not return "/.git/" as the found repo if
111
+ * "/" is a different filesystem than "/home".
112
+ */
128
113
  GIT_REPOSITORY_OPEN_CROSS_FS = (1 << 1),
114
+
115
+ /**
116
+ * Open repository as a bare repo regardless of core.bare config, and
117
+ * defer loading config file for faster setup.
118
+ * Unlike `git_repository_open_bare`, this can follow gitlinks.
119
+ */
129
120
  GIT_REPOSITORY_OPEN_BARE = (1 << 2),
121
+
122
+ /**
123
+ * Do not check for a repository by appending /.git to the start_path;
124
+ * only open the repository if start_path itself points to the git
125
+ * directory.
126
+ */
130
127
  GIT_REPOSITORY_OPEN_NO_DOTGIT = (1 << 3),
128
+
129
+ /**
130
+ * Find and open a git repository, respecting the environment variables
131
+ * used by the git command-line tools.
132
+ * If set, `git_repository_open_ext` will ignore the other flags and
133
+ * the `ceiling_dirs` argument, and will allow a NULL `path` to use
134
+ * `GIT_DIR` or search from the current directory.
135
+ * The search for a repository will respect $GIT_CEILING_DIRECTORIES and
136
+ * $GIT_DISCOVERY_ACROSS_FILESYSTEM. The opened repository will
137
+ * respect $GIT_INDEX_FILE, $GIT_NAMESPACE, $GIT_OBJECT_DIRECTORY, and
138
+ * $GIT_ALTERNATE_OBJECT_DIRECTORIES.
139
+ * In the future, this flag will also cause `git_repository_open_ext`
140
+ * to respect $GIT_WORK_TREE and $GIT_COMMON_DIR; currently,
141
+ * `git_repository_open_ext` with this flag will error out if either
142
+ * $GIT_WORK_TREE or $GIT_COMMON_DIR is set.
143
+ */
131
144
  GIT_REPOSITORY_OPEN_FROM_ENV = (1 << 4),
132
145
  } git_repository_open_flag_t;
133
146
 
@@ -310,7 +323,7 @@ typedef struct {
310
323
  * @param version The struct version; pass `GIT_REPOSITORY_INIT_OPTIONS_VERSION`.
311
324
  * @return Zero on success; -1 on failure.
312
325
  */
313
- GIT_EXTERN(int) git_repository_init_init_options(
326
+ GIT_EXTERN(int) git_repository_init_options_init(
314
327
  git_repository_init_options *opts,
315
328
  unsigned int version);
316
329
 
@@ -425,7 +438,8 @@ typedef enum {
425
438
  GIT_REPOSITORY_ITEM_HOOKS,
426
439
  GIT_REPOSITORY_ITEM_LOGS,
427
440
  GIT_REPOSITORY_ITEM_MODULES,
428
- GIT_REPOSITORY_ITEM_WORKTREES
441
+ GIT_REPOSITORY_ITEM_WORKTREES,
442
+ GIT_REPOSITORY_ITEM__LAST
429
443
  } git_repository_item_t;
430
444
 
431
445
  /**
@@ -627,7 +641,19 @@ GIT_EXTERN(int) git_repository_message_remove(git_repository *repo);
627
641
  */
628
642
  GIT_EXTERN(int) git_repository_state_cleanup(git_repository *repo);
629
643
 
630
- typedef int (*git_repository_fetchhead_foreach_cb)(const char *ref_name,
644
+ /**
645
+ * Callback used to iterate over each FETCH_HEAD entry
646
+ *
647
+ * @see git_repository_fetchhead_foreach
648
+ *
649
+ * @param ref_name The reference name
650
+ * @param remote_url The remote URL
651
+ * @param oid The reference target OID
652
+ * @param is_merge Was the reference the result of a merge
653
+ * @param payload Payload passed to git_repository_fetchhead_foreach
654
+ * @return non-zero to terminate the iteration
655
+ */
656
+ typedef int GIT_CALLBACK(git_repository_fetchhead_foreach_cb)(const char *ref_name,
631
657
  const char *remote_url,
632
658
  const git_oid *oid,
633
659
  unsigned int is_merge,
@@ -649,7 +675,16 @@ GIT_EXTERN(int) git_repository_fetchhead_foreach(
649
675
  git_repository_fetchhead_foreach_cb callback,
650
676
  void *payload);
651
677
 
652
- typedef int (*git_repository_mergehead_foreach_cb)(const git_oid *oid,
678
+ /**
679
+ * Callback used to iterate over each MERGE_HEAD entry
680
+ *
681
+ * @see git_repository_mergehead_foreach
682
+ *
683
+ * @param oid The merge OID
684
+ * @param payload Payload passed to git_repository_mergehead_foreach
685
+ * @return non-zero to terminate the iteration
686
+ */
687
+ typedef int GIT_CALLBACK(git_repository_mergehead_foreach_cb)(const git_oid *oid,
653
688
  void *payload);
654
689
 
655
690
  /**
@@ -685,7 +720,7 @@ GIT_EXTERN(int) git_repository_mergehead_foreach(
685
720
  * @param repo Repository pointer
686
721
  * @param path Path to file on disk whose contents should be hashed. If the
687
722
  * repository is not NULL, this can be a relative path.
688
- * @param type The object type to hash as (e.g. GIT_OBJ_BLOB)
723
+ * @param type The object type to hash as (e.g. GIT_OBJECT_BLOB)
689
724
  * @param as_path The path to use to look up filtering rules. If this is
690
725
  * NULL, then the `path` parameter will be used instead. If
691
726
  * this is passed as the empty string, then no filters will be
@@ -696,7 +731,7 @@ GIT_EXTERN(int) git_repository_hashfile(
696
731
  git_oid *out,
697
732
  git_repository *repo,
698
733
  const char *path,
699
- git_otype type,
734
+ git_object_t type,
700
735
  const char *as_path);
701
736
 
702
737
  /**
@@ -46,7 +46,7 @@ typedef struct {
46
46
  * @param version The struct version; pass `GIT_REVERT_OPTIONS_VERSION`.
47
47
  * @return Zero on success; -1 on failure.
48
48
  */
49
- GIT_EXTERN(int) git_revert_init_options(
49
+ GIT_EXTERN(int) git_revert_options_init(
50
50
  git_revert_options *opts,
51
51
  unsigned int version);
52
52
 
@@ -25,15 +25,15 @@ GIT_BEGIN_DECL
25
25
  */
26
26
  typedef enum {
27
27
  /**
28
- * Sort the output with the same default time-order method from git.
29
- * This is the default sorting for new walkers.
28
+ * Sort the output with the same default method from `git`: reverse
29
+ * chronological order. This is the default sorting for new walkers.
30
30
  */
31
31
  GIT_SORT_NONE = 0,
32
32
 
33
33
  /**
34
- * Sort the repository contents in topological order (parents before
35
- * children); this sorting mode can be combined with time sorting to
36
- * produce git's "time-order".
34
+ * Sort the repository contents in topological order (no parents before
35
+ * all of its children are shown); this sorting mode can be combined
36
+ * with time sorting to produce `git`'s `--date-order``.
37
37
  */
38
38
  GIT_SORT_TOPOLOGICAL = 1 << 0,
39
39
 
@@ -274,12 +274,12 @@ GIT_EXTERN(git_repository *) git_revwalk_repository(git_revwalk *walk);
274
274
  * @param commit_id oid of Commit
275
275
  * @param payload User-specified pointer to data to be passed as data payload
276
276
  */
277
- typedef int(*git_revwalk_hide_cb)(
277
+ typedef int GIT_CALLBACK(git_revwalk_hide_cb)(
278
278
  const git_oid *commit_id,
279
279
  void *payload);
280
280
 
281
281
  /**
282
- * Adds a callback function to hide a commit and its parents
282
+ * Adds, changes or removes a callback function to hide a commit and its parents
283
283
  *
284
284
  * @param walk the revision walker
285
285
  * @param hide_cb callback function to hide a commit and its parents
@@ -30,8 +30,8 @@ GIT_BEGIN_DECL
30
30
  * @param out new signature, in case of error NULL
31
31
  * @param name name of the person
32
32
  * @param email email of the person
33
- * @param time time when the action happened
34
- * @param offset timezone offset in minutes for the time
33
+ * @param time time (in seconds from epoch) when the action happened
34
+ * @param offset timezone offset (in minutes) for the time
35
35
  * @return 0 or an error code
36
36
  */
37
37
  GIT_EXTERN(int) git_signature_new(git_signature **out, const char *name, const char *email, git_time_t time, int offset);
@@ -112,7 +112,7 @@ typedef enum {
112
112
  * Return 0 to continue processing, or a negative value to
113
113
  * abort the stash application.
114
114
  */
115
- typedef int (*git_stash_apply_progress_cb)(
115
+ typedef int GIT_CALLBACK(git_stash_apply_progress_cb)(
116
116
  git_stash_apply_progress_t progress,
117
117
  void *payload);
118
118
 
@@ -120,14 +120,14 @@ typedef int (*git_stash_apply_progress_cb)(
120
120
  * Stash application options structure
121
121
  *
122
122
  * Initialize with `GIT_STASH_APPLY_OPTIONS_INIT`. Alternatively, you can
123
- * use `git_stash_apply_init_options`.
123
+ * use `git_stash_apply_options_init`.
124
124
  *
125
125
  */
126
126
  typedef struct git_stash_apply_options {
127
127
  unsigned int version;
128
128
 
129
129
  /** See `git_stash_apply_flags_t`, above. */
130
- git_stash_apply_flags flags;
130
+ uint32_t flags;
131
131
 
132
132
  /** Options to use when writing files to the working directory. */
133
133
  git_checkout_options checkout_options;
@@ -153,7 +153,7 @@ typedef struct git_stash_apply_options {
153
153
  * @param version The struct version; pass `GIT_STASH_APPLY_OPTIONS_VERSION`.
154
154
  * @return Zero on success; -1 on failure.
155
155
  */
156
- GIT_EXTERN(int) git_stash_apply_init_options(
156
+ GIT_EXTERN(int) git_stash_apply_options_init(
157
157
  git_stash_apply_options *opts, unsigned int version);
158
158
 
159
159
  /**
@@ -198,7 +198,7 @@ GIT_EXTERN(int) git_stash_apply(
198
198
  * @param payload Extra parameter to callback function.
199
199
  * @return 0 to continue iterating or non-zero to stop.
200
200
  */
201
- typedef int (*git_stash_cb)(
201
+ typedef int GIT_CALLBACK(git_stash_cb)(
202
202
  size_t index,
203
203
  const char* message,
204
204
  const git_oid *stash_id,
@@ -60,7 +60,7 @@ typedef enum {
60
60
  *
61
61
  * `payload` is the value you passed to the foreach function as payload.
62
62
  */
63
- typedef int (*git_status_cb)(
63
+ typedef int GIT_CALLBACK(git_status_cb)(
64
64
  const char *path, unsigned int status_flags, void *payload);
65
65
 
66
66
  /**
@@ -163,27 +163,36 @@ typedef enum {
163
163
  /**
164
164
  * Options to control how `git_status_foreach_ext()` will issue callbacks.
165
165
  *
166
- * This structure is set so that zeroing it out will give you relatively
167
- * sane defaults.
166
+ * Initialize with `GIT_STATUS_OPTIONS_INIT`. Alternatively, you can
167
+ * use `git_status_options_init`.
168
168
  *
169
- * The `show` value is one of the `git_status_show_t` constants that
170
- * control which files to scan and in what order.
171
- *
172
- * The `flags` value is an OR'ed combination of the `git_status_opt_t`
173
- * values above.
174
- *
175
- * The `pathspec` is an array of path patterns to match (using
176
- * fnmatch-style matching), or just an array of paths to match exactly if
177
- * `GIT_STATUS_OPT_DISABLE_PATHSPEC_MATCH` is specified in the flags.
178
- *
179
- * The `baseline` is the tree to be used for comparison to the working directory
180
- * and index; defaults to HEAD.
181
169
  */
182
170
  typedef struct {
183
- unsigned int version;
171
+ unsigned int version; /**< The version */
172
+
173
+ /**
174
+ * The `show` value is one of the `git_status_show_t` constants that
175
+ * control which files to scan and in what order.
176
+ */
184
177
  git_status_show_t show;
178
+
179
+ /**
180
+ * The `flags` value is an OR'ed combination of the `git_status_opt_t`
181
+ * values above.
182
+ */
185
183
  unsigned int flags;
184
+
185
+ /**
186
+ * The `pathspec` is an array of path patterns to match (using
187
+ * fnmatch-style matching), or just an array of paths to match exactly if
188
+ * `GIT_STATUS_OPT_DISABLE_PATHSPEC_MATCH` is specified in the flags.
189
+ */
186
190
  git_strarray pathspec;
191
+
192
+ /**
193
+ * The `baseline` is the tree to be used for comparison to the working directory
194
+ * and index; defaults to HEAD.
195
+ */
187
196
  git_tree *baseline;
188
197
  } git_status_options;
189
198
 
@@ -200,7 +209,7 @@ typedef struct {
200
209
  * @param version The struct version; pass `GIT_STATUS_OPTIONS_VERSION`.
201
210
  * @return Zero on success; -1 on failure.
202
211
  */
203
- GIT_EXTERN(int) git_status_init_options(
212
+ GIT_EXTERN(int) git_status_options_init(
204
213
  git_status_options *opts,
205
214
  unsigned int version);
206
215
 
@@ -115,14 +115,14 @@ typedef enum {
115
115
  * @param payload value you passed to the foreach function as payload
116
116
  * @return 0 on success or error code
117
117
  */
118
- typedef int (*git_submodule_cb)(
118
+ typedef int GIT_CALLBACK(git_submodule_cb)(
119
119
  git_submodule *sm, const char *name, void *payload);
120
120
 
121
121
  /**
122
122
  * Submodule update options structure
123
123
  *
124
124
  * Initialize with `GIT_SUBMODULE_UPDATE_OPTIONS_INIT`. Alternatively, you can
125
- * use `git_submodule_update_init_options`.
125
+ * use `git_submodule_update_options_init`.
126
126
  *
127
127
  */
128
128
  typedef struct git_submodule_update_options {
@@ -133,7 +133,7 @@ typedef struct git_submodule_update_options {
133
133
  * checkout, set the `checkout_strategy` to
134
134
  * `GIT_CHECKOUT_NONE`. Generally you will want the use
135
135
  * GIT_CHECKOUT_SAFE to update files in the working
136
- * directory.
136
+ * directory.
137
137
  */
138
138
  git_checkout_options checkout_opts;
139
139
 
@@ -168,7 +168,7 @@ typedef struct git_submodule_update_options {
168
168
  * @param version The struct version; pass `GIT_SUBMODULE_UPDATE_OPTIONS_VERSION`.
169
169
  * @return Zero on success; -1 on failure.
170
170
  */
171
- GIT_EXTERN(int) git_submodule_update_init_options(
171
+ GIT_EXTERN(int) git_submodule_update_options_init(
172
172
  git_submodule_update_options *opts, unsigned int version);
173
173
 
174
174
  /**
@@ -187,7 +187,7 @@ GIT_EXTERN(int) git_submodule_update_init_options(
187
187
  * function works as though GIT_SUBMODULE_UPDATE_OPTIONS_INIT was passed.
188
188
  * @return 0 on success, any non-zero return value from a callback
189
189
  * function, or a negative value to indicate an error (use
190
- * `giterr_last` for a detailed error message).
190
+ * `git_error_last` for a detailed error message).
191
191
  */
192
192
  GIT_EXTERN(int) git_submodule_update(git_submodule *submodule, int init, git_submodule_update_options *options);
193
193
 
@@ -263,7 +263,8 @@ GIT_EXTERN(int) git_submodule_foreach(
263
263
  * from the working directory to the new repo.
264
264
  *
265
265
  * To fully emulate "git submodule add" call this function, then open the
266
- * submodule repo and perform the clone step as needed. Lastly, call
266
+ * submodule repo and perform the clone step as needed (if you don't need
267
+ * anything custom see `git_submodule_add_clone()`). Lastly, call
267
268
  * `git_submodule_add_finalize()` to wrap up adding the new submodule and
268
269
  * .gitmodules to the index to be ready to commit.
269
270
  *
@@ -285,6 +286,22 @@ GIT_EXTERN(int) git_submodule_add_setup(
285
286
  const char *path,
286
287
  int use_gitlink);
287
288
 
289
+ /**
290
+ * Perform the clone step for a newly created submodule.
291
+ *
292
+ * This performs the necessary `git_clone` to setup a newly-created submodule.
293
+ *
294
+ * @param out The newly created repository object. Optional.
295
+ * @param submodule The submodule currently waiting for its clone.
296
+ * @param opts The options to use.
297
+ *
298
+ * @return 0 on success, -1 on other errors (see git_clone).
299
+ */
300
+ GIT_EXTERN(int) git_submodule_clone(
301
+ git_repository **out,
302
+ git_submodule *submodule,
303
+ const git_submodule_update_options *opts);
304
+
288
305
  /**
289
306
  * Resolve the setup of a new git submodule.
290
307
  *