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
@@ -152,8 +152,8 @@ GIT_INLINE(int) rebase_readint(
152
152
  if ((error = rebase_readfile(asc_out, state_path, filename)) < 0)
153
153
  return error;
154
154
 
155
- if (git__strtol32(&num, asc_out->ptr, &eol, 10) < 0 || num < 0 || *eol) {
156
- giterr_set(GITERR_REBASE, "the file '%s' contains an invalid numeric value", filename);
155
+ if (git__strntol32(&num, asc_out->ptr, asc_out->size, &eol, 10) < 0 || num < 0 || *eol) {
156
+ git_error_set(GIT_ERROR_REBASE, "the file '%s' contains an invalid numeric value", filename);
157
157
  return -1;
158
158
  }
159
159
 
@@ -171,7 +171,7 @@ GIT_INLINE(int) rebase_readoid(
171
171
  return error;
172
172
 
173
173
  if (str_out->size != GIT_OID_HEXSZ || git_oid_fromstr(out, str_out->ptr) < 0) {
174
- giterr_set(GITERR_REBASE, "the file '%s' contains an invalid object ID", filename);
174
+ git_error_set(GIT_ERROR_REBASE, "the file '%s' contains an invalid object ID", filename);
175
175
  return -1;
176
176
  }
177
177
 
@@ -231,7 +231,7 @@ static int rebase_open_merge(git_rebase *rebase)
231
231
 
232
232
  /* Read cmt.* */
233
233
  git_array_init_to_size(rebase->operations, end);
234
- GITERR_CHECK_ARRAY(rebase->operations);
234
+ GIT_ERROR_CHECK_ARRAY(rebase->operations);
235
235
 
236
236
  for (i = 0; i < end; i++) {
237
237
  git_buf_clear(&cmt);
@@ -241,7 +241,7 @@ static int rebase_open_merge(git_rebase *rebase)
241
241
  goto done;
242
242
 
243
243
  operation = rebase_operation_alloc(rebase, GIT_REBASE_OPERATION_PICK, &id, NULL);
244
- GITERR_CHECK_ALLOC(operation);
244
+ GIT_ERROR_CHECK_ALLOC(operation);
245
245
  }
246
246
 
247
247
  /* Read 'onto_name' */
@@ -261,18 +261,18 @@ done:
261
261
  static int rebase_alloc(git_rebase **out, const git_rebase_options *rebase_opts)
262
262
  {
263
263
  git_rebase *rebase = git__calloc(1, sizeof(git_rebase));
264
- GITERR_CHECK_ALLOC(rebase);
264
+ GIT_ERROR_CHECK_ALLOC(rebase);
265
265
 
266
266
  *out = NULL;
267
267
 
268
268
  if (rebase_opts)
269
269
  memcpy(&rebase->options, rebase_opts, sizeof(git_rebase_options));
270
270
  else
271
- git_rebase_init_options(&rebase->options, GIT_REBASE_OPTIONS_VERSION);
271
+ git_rebase_options_init(&rebase->options, GIT_REBASE_OPTIONS_VERSION);
272
272
 
273
273
  if (rebase_opts && rebase_opts->rewrite_notes_ref) {
274
274
  rebase->options.rewrite_notes_ref = git__strdup(rebase_opts->rewrite_notes_ref);
275
- GITERR_CHECK_ALLOC(rebase->options.rewrite_notes_ref);
275
+ GIT_ERROR_CHECK_ALLOC(rebase->options.rewrite_notes_ref);
276
276
  }
277
277
 
278
278
  *out = rebase;
@@ -282,10 +282,10 @@ static int rebase_alloc(git_rebase **out, const git_rebase_options *rebase_opts)
282
282
 
283
283
  static int rebase_check_versions(const git_rebase_options *given_opts)
284
284
  {
285
- GITERR_CHECK_VERSION(given_opts, GIT_REBASE_OPTIONS_VERSION, "git_rebase_options");
285
+ GIT_ERROR_CHECK_VERSION(given_opts, GIT_REBASE_OPTIONS_VERSION, "git_rebase_options");
286
286
 
287
287
  if (given_opts)
288
- GITERR_CHECK_VERSION(&given_opts->checkout_options, GIT_CHECKOUT_OPTIONS_VERSION, "git_checkout_options");
288
+ GIT_ERROR_CHECK_VERSION(&given_opts->checkout_options, GIT_CHECKOUT_OPTIONS_VERSION, "git_checkout_options");
289
289
 
290
290
  return 0;
291
291
  }
@@ -298,7 +298,8 @@ int git_rebase_open(
298
298
  git_rebase *rebase;
299
299
  git_buf path = GIT_BUF_INIT, orig_head_name = GIT_BUF_INIT,
300
300
  orig_head_id = GIT_BUF_INIT, onto_id = GIT_BUF_INIT;
301
- int state_path_len, error;
301
+ size_t state_path_len;
302
+ int error;
302
303
 
303
304
  assert(repo);
304
305
 
@@ -314,7 +315,7 @@ int git_rebase_open(
314
315
  goto done;
315
316
 
316
317
  if (rebase->type == GIT_REBASE_TYPE_NONE) {
317
- giterr_set(GITERR_REBASE, "there is no rebase in progress");
318
+ git_error_set(GIT_ERROR_REBASE, "there is no rebase in progress");
318
319
  error = GIT_ENOTFOUND;
319
320
  goto done;
320
321
  }
@@ -370,14 +371,14 @@ int git_rebase_open(
370
371
 
371
372
  switch (rebase->type) {
372
373
  case GIT_REBASE_TYPE_INTERACTIVE:
373
- giterr_set(GITERR_REBASE, "interactive rebase is not supported");
374
+ git_error_set(GIT_ERROR_REBASE, "interactive rebase is not supported");
374
375
  error = -1;
375
376
  break;
376
377
  case GIT_REBASE_TYPE_MERGE:
377
378
  error = rebase_open_merge(rebase);
378
379
  break;
379
380
  case GIT_REBASE_TYPE_APPLY:
380
- giterr_set(GITERR_REBASE, "patch application rebase is not supported");
381
+ git_error_set(GIT_ERROR_REBASE, "patch application rebase is not supported");
381
382
  error = -1;
382
383
  break;
383
384
  default:
@@ -476,7 +477,7 @@ static int rebase_setupfiles(git_rebase *rebase)
476
477
  git_oid_fmt(orig_head, &rebase->orig_head_id);
477
478
 
478
479
  if (p_mkdir(rebase->state_path, REBASE_DIR_MODE) < 0) {
479
- giterr_set(GITERR_OS, "failed to create rebase directory '%s'", rebase->state_path);
480
+ git_error_set(GIT_ERROR_OS, "failed to create rebase directory '%s'", rebase->state_path);
480
481
  return -1;
481
482
  }
482
483
 
@@ -493,13 +494,18 @@ static int rebase_setupfiles(git_rebase *rebase)
493
494
  return rebase_setupfiles_merge(rebase);
494
495
  }
495
496
 
496
- int git_rebase_init_options(git_rebase_options *opts, unsigned int version)
497
+ int git_rebase_options_init(git_rebase_options *opts, unsigned int version)
497
498
  {
498
499
  GIT_INIT_STRUCTURE_FROM_TEMPLATE(
499
500
  opts, version, git_rebase_options, GIT_REBASE_OPTIONS_INIT);
500
501
  return 0;
501
502
  }
502
503
 
504
+ int git_rebase_init_options(git_rebase_options *opts, unsigned int version)
505
+ {
506
+ return git_rebase_options_init(opts, version);
507
+ }
508
+
503
509
  static int rebase_ensure_not_in_progress(git_repository *repo)
504
510
  {
505
511
  int error;
@@ -509,7 +515,7 @@ static int rebase_ensure_not_in_progress(git_repository *repo)
509
515
  return error;
510
516
 
511
517
  if (type != GIT_REBASE_TYPE_NONE) {
512
- giterr_set(GITERR_REBASE, "there is an existing rebase in progress");
518
+ git_error_set(GIT_ERROR_REBASE, "there is an existing rebase in progress");
513
519
  return -1;
514
520
  }
515
521
 
@@ -534,7 +540,7 @@ static int rebase_ensure_not_dirty(
534
540
  goto done;
535
541
 
536
542
  if (git_diff_num_deltas(diff) > 0) {
537
- giterr_set(GITERR_REBASE, "uncommitted changes exist in index");
543
+ git_error_set(GIT_ERROR_REBASE, "uncommitted changes exist in index");
538
544
  error = fail_with;
539
545
  goto done;
540
546
  }
@@ -550,7 +556,7 @@ static int rebase_ensure_not_dirty(
550
556
  goto done;
551
557
 
552
558
  if (git_diff_num_deltas(diff) > 0) {
553
- giterr_set(GITERR_REBASE, "unstaged changes exist in workdir");
559
+ git_error_set(GIT_ERROR_REBASE, "unstaged changes exist in workdir");
554
560
  error = fail_with;
555
561
  goto done;
556
562
  }
@@ -599,7 +605,7 @@ static int rebase_init_operations(
599
605
  continue;
600
606
 
601
607
  operation = rebase_operation_alloc(rebase, GIT_REBASE_OPERATION_PICK, &id, NULL);
602
- GITERR_CHECK_ALLOC(operation);
608
+ GIT_ERROR_CHECK_ALLOC(operation);
603
609
  }
604
610
 
605
611
  error = 0;
@@ -628,17 +634,17 @@ static int rebase_init_merge(
628
634
  goto done;
629
635
 
630
636
  rebase->state_path = git_buf_detach(&state_path);
631
- GITERR_CHECK_ALLOC(rebase->state_path);
637
+ GIT_ERROR_CHECK_ALLOC(rebase->state_path);
632
638
 
633
639
  if (branch->ref_name && strcmp(branch->ref_name, "HEAD")) {
634
640
  rebase->orig_head_name = git__strdup(branch->ref_name);
635
- GITERR_CHECK_ALLOC(rebase->orig_head_name);
641
+ GIT_ERROR_CHECK_ALLOC(rebase->orig_head_name);
636
642
  } else {
637
643
  rebase->head_detached = 1;
638
644
  }
639
645
 
640
646
  rebase->onto_name = git__strdup(rebase_onto_name(onto));
641
- GITERR_CHECK_ALLOC(rebase->onto_name);
647
+ GIT_ERROR_CHECK_ALLOC(rebase->onto_name);
642
648
 
643
649
  rebase->quiet = rebase->options.quiet;
644
650
 
@@ -807,7 +813,7 @@ static int rebase_next_merge(
807
813
  goto done;
808
814
 
809
815
  if ((parent_count = git_commit_parentcount(current_commit)) > 1) {
810
- giterr_set(GITERR_REBASE, "cannot rebase a merge commit");
816
+ git_error_set(GIT_ERROR_REBASE, "cannot rebase a merge commit");
811
817
  error = -1;
812
818
  goto done;
813
819
  } else if (parent_count) {
@@ -864,7 +870,7 @@ static int rebase_next_inmemory(
864
870
  goto done;
865
871
 
866
872
  if ((parent_count = git_commit_parentcount(current_commit)) > 1) {
867
- giterr_set(GITERR_REBASE, "cannot rebase a merge commit");
873
+ git_error_set(GIT_ERROR_REBASE, "cannot rebase a merge commit");
868
874
  error = -1;
869
875
  goto done;
870
876
  } else if (parent_count) {
@@ -945,12 +951,16 @@ static int rebase_commit__create(
945
951
  git_commit *current_commit = NULL, *commit = NULL;
946
952
  git_tree *parent_tree = NULL, *tree = NULL;
947
953
  git_oid tree_id, commit_id;
954
+ git_buf commit_content = GIT_BUF_INIT, commit_signature = GIT_BUF_INIT,
955
+ signature_field = GIT_BUF_INIT;
956
+ const char *signature_field_string = NULL,
957
+ *commit_signature_string = NULL;
948
958
  int error;
949
959
 
950
960
  operation = git_array_get(rebase->operations, rebase->current);
951
961
 
952
962
  if (git_index_has_conflicts(index)) {
953
- giterr_set(GITERR_REBASE, "conflicts have not been resolved");
963
+ git_error_set(GIT_ERROR_REBASE, "conflicts have not been resolved");
954
964
  error = GIT_EUNMERGED;
955
965
  goto done;
956
966
  }
@@ -962,7 +972,7 @@ static int rebase_commit__create(
962
972
  goto done;
963
973
 
964
974
  if (git_oid_equal(&tree_id, git_tree_id(parent_tree))) {
965
- giterr_set(GITERR_REBASE, "this patch has already been applied");
975
+ git_error_set(GIT_ERROR_REBASE, "this patch has already been applied");
966
976
  error = GIT_EAPPLIED;
967
977
  goto done;
968
978
  }
@@ -975,10 +985,40 @@ static int rebase_commit__create(
975
985
  message = git_commit_message(current_commit);
976
986
  }
977
987
 
978
- if ((error = git_commit_create(&commit_id, rebase->repo, NULL, author,
979
- committer, message_encoding, message, tree, 1,
980
- (const git_commit **)&parent_commit)) < 0 ||
981
- (error = git_commit_lookup(&commit, rebase->repo, &commit_id)) < 0)
988
+ if ((error = git_commit_create_buffer(&commit_content, rebase->repo, author, committer,
989
+ message_encoding, message, tree, 1, (const git_commit **)&parent_commit)) < 0)
990
+ goto done;
991
+
992
+ if (rebase->options.signing_cb) {
993
+ git_error_clear();
994
+ error = git_error_set_after_callback_function(rebase->options.signing_cb(
995
+ &commit_signature, &signature_field, git_buf_cstr(&commit_content),
996
+ rebase->options.payload), "commit signing_cb failed");
997
+ if (error == GIT_PASSTHROUGH) {
998
+ git_buf_dispose(&commit_signature);
999
+ git_buf_dispose(&signature_field);
1000
+ git_error_clear();
1001
+ error = GIT_OK;
1002
+ } else if (error < 0)
1003
+ goto done;
1004
+ }
1005
+
1006
+ if (git_buf_is_allocated(&commit_signature)) {
1007
+ assert(git_buf_contains_nul(&commit_signature));
1008
+ commit_signature_string = git_buf_cstr(&commit_signature);
1009
+ }
1010
+
1011
+ if (git_buf_is_allocated(&signature_field)) {
1012
+ assert(git_buf_contains_nul(&signature_field));
1013
+ signature_field_string = git_buf_cstr(&signature_field);
1014
+ }
1015
+
1016
+ if ((error = git_commit_create_with_signature(&commit_id, rebase->repo,
1017
+ git_buf_cstr(&commit_content), commit_signature_string,
1018
+ signature_field_string)))
1019
+ goto done;
1020
+
1021
+ if ((error = git_commit_lookup(&commit, rebase->repo, &commit_id)) < 0)
982
1022
  goto done;
983
1023
 
984
1024
  *out = commit;
@@ -987,6 +1027,9 @@ done:
987
1027
  if (error < 0)
988
1028
  git_commit_free(commit);
989
1029
 
1030
+ git_buf_dispose(&commit_signature);
1031
+ git_buf_dispose(&signature_field);
1032
+ git_buf_dispose(&commit_content);
990
1033
  git_commit_free(current_commit);
991
1034
  git_tree_free(parent_tree);
992
1035
  git_tree_free(tree);
@@ -1014,7 +1057,7 @@ static int rebase_commit_merge(
1014
1057
 
1015
1058
  if ((error = rebase_ensure_not_dirty(rebase->repo, false, true, GIT_EUNMERGED)) < 0 ||
1016
1059
  (error = git_repository_head(&head, rebase->repo)) < 0 ||
1017
- (error = git_reference_peel((git_object **)&head_commit, head, GIT_OBJ_COMMIT)) < 0 ||
1060
+ (error = git_reference_peel((git_object **)&head_commit, head, GIT_OBJECT_COMMIT)) < 0 ||
1018
1061
  (error = git_repository_index(&index, rebase->repo)) < 0 ||
1019
1062
  (error = rebase_commit__create(&commit, rebase, index, head_commit,
1020
1063
  author, committer, message_encoding, message)) < 0 ||
@@ -1148,7 +1191,7 @@ static int notes_ref_lookup(git_buf *out, git_rebase *rebase)
1148
1191
  if (error != GIT_ENOTFOUND)
1149
1192
  goto done;
1150
1193
 
1151
- giterr_clear();
1194
+ git_error_clear();
1152
1195
  do_rewrite = 1;
1153
1196
  }
1154
1197
 
@@ -1175,7 +1218,7 @@ static int rebase_copy_note(
1175
1218
 
1176
1219
  if ((error = git_note_read(&note, rebase->repo, notes_ref, from)) < 0) {
1177
1220
  if (error == GIT_ENOTFOUND) {
1178
- giterr_clear();
1221
+ git_error_clear();
1179
1222
  error = 0;
1180
1223
  }
1181
1224
 
@@ -1188,7 +1231,7 @@ static int rebase_copy_note(
1188
1231
  (error = git_signature_now(&who, "unknown", "unknown")) < 0)
1189
1232
  goto done;
1190
1233
 
1191
- giterr_clear();
1234
+ git_error_clear();
1192
1235
  }
1193
1236
 
1194
1237
  committer = who;
@@ -1216,7 +1259,7 @@ static int rebase_copy_notes(
1216
1259
 
1217
1260
  if ((error = notes_ref_lookup(&notes_ref, rebase)) < 0) {
1218
1261
  if (error == GIT_ENOTFOUND) {
1219
- giterr_clear();
1262
+ git_error_clear();
1220
1263
  error = 0;
1221
1264
  }
1222
1265
 
@@ -1259,7 +1302,7 @@ static int rebase_copy_notes(
1259
1302
  goto done;
1260
1303
 
1261
1304
  on_error:
1262
- giterr_set(GITERR_REBASE, "invalid rewritten file at line %d", linenum);
1305
+ git_error_set(GIT_ERROR_REBASE, "invalid rewritten file at line %d", linenum);
1263
1306
  error = -1;
1264
1307
 
1265
1308
  done:
@@ -1288,7 +1331,7 @@ static int return_to_orig_head(git_rebase *rebase)
1288
1331
  rebase->orig_head_name)) == 0 &&
1289
1332
  (error = git_repository_head(&terminal_ref, rebase->repo)) == 0 &&
1290
1333
  (error = git_reference_peel((git_object **)&terminal_commit,
1291
- terminal_ref, GIT_OBJ_COMMIT)) == 0 &&
1334
+ terminal_ref, GIT_OBJECT_COMMIT)) == 0 &&
1292
1335
  (error = git_reference_create_matching(&branch_ref,
1293
1336
  rebase->repo, rebase->orig_head_name,
1294
1337
  git_commit_id(terminal_commit), 1,
@@ -1327,6 +1370,22 @@ int git_rebase_finish(
1327
1370
  return error;
1328
1371
  }
1329
1372
 
1373
+ const char *git_rebase_orig_head_name(git_rebase *rebase) {
1374
+ return rebase->orig_head_name;
1375
+ }
1376
+
1377
+ const git_oid *git_rebase_orig_head_id(git_rebase *rebase) {
1378
+ return &rebase->orig_head_id;
1379
+ }
1380
+
1381
+ const char *git_rebase_onto_name(git_rebase *rebase) {
1382
+ return rebase->onto_name;
1383
+ }
1384
+
1385
+ const git_oid *git_rebase_onto_id(git_rebase *rebase) {
1386
+ return &rebase->onto_id;
1387
+ }
1388
+
1330
1389
  size_t git_rebase_operation_entrycount(git_rebase *rebase)
1331
1390
  {
1332
1391
  assert(rebase);
@@ -24,7 +24,7 @@ int git_refdb_new(git_refdb **out, git_repository *repo)
24
24
  assert(out && repo);
25
25
 
26
26
  db = git__calloc(1, sizeof(*db));
27
- GITERR_CHECK_ALLOC(db);
27
+ GIT_ERROR_CHECK_ALLOC(db);
28
28
 
29
29
  db->repo = repo;
30
30
 
@@ -66,6 +66,18 @@ static void refdb_free_backend(git_refdb *db)
66
66
 
67
67
  int git_refdb_set_backend(git_refdb *db, git_refdb_backend *backend)
68
68
  {
69
+ GIT_ERROR_CHECK_VERSION(backend, GIT_REFDB_BACKEND_VERSION, "git_refdb_backend");
70
+
71
+ if (!backend->exists || !backend->lookup || !backend->iterator ||
72
+ !backend->write || !backend->rename || !backend->del ||
73
+ !backend->has_log || !backend->ensure_log || !backend->free ||
74
+ !backend->reflog_read || !backend->reflog_write ||
75
+ !backend->reflog_rename || !backend->reflog_delete ||
76
+ (backend->lock && !backend->unlock)) {
77
+ git_error_set(GIT_ERROR_REFERENCE, "incomplete refdb backend implementation");
78
+ return GIT_EINVALID;
79
+ }
80
+
69
81
  refdb_free_backend(db);
70
82
  db->backend = backend;
71
83
 
@@ -127,7 +139,7 @@ int git_refdb_iterator(git_reference_iterator **out, git_refdb *db, const char *
127
139
  int error;
128
140
 
129
141
  if (!db->backend || !db->backend->iterator) {
130
- giterr_set(GITERR_REFERENCE, "this backend doesn't support iterators");
142
+ git_error_set(GIT_ERROR_REFERENCE, "this backend doesn't support iterators");
131
143
  return -1;
132
144
  }
133
145
 
@@ -245,7 +257,7 @@ int git_refdb_lock(void **payload, git_refdb *db, const char *refname)
245
257
  assert(payload && db && refname);
246
258
 
247
259
  if (!db->backend->lock) {
248
- giterr_set(GITERR_REFERENCE, "backend does not support locking");
260
+ git_error_set(GIT_ERROR_REFERENCE, "backend does not support locking");
249
261
  return -1;
250
262
  }
251
263