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
@@ -80,7 +80,7 @@ int merge_bases_many(git_commit_list **out, git_revwalk **walk_out, git_reposito
80
80
  unsigned int i;
81
81
 
82
82
  if (length < 2) {
83
- giterr_set(GITERR_INVALID, "at least two commits are required to find an ancestor");
83
+ git_error_set(GIT_ERROR_INVALID, "at least two commits are required to find an ancestor");
84
84
  return -1;
85
85
  }
86
86
 
@@ -106,7 +106,7 @@ int merge_bases_many(git_commit_list **out, git_revwalk **walk_out, git_reposito
106
106
  goto on_error;
107
107
 
108
108
  if (!result) {
109
- giterr_set(GITERR_MERGE, "no merge base found");
109
+ git_error_set(GIT_ERROR_MERGE, "no merge base found");
110
110
  error = GIT_ENOTFOUND;
111
111
  goto on_error;
112
112
  }
@@ -186,7 +186,7 @@ int git_merge_base_octopus(git_oid *out, git_repository *repo, size_t length, co
186
186
  assert(out && repo && input_array);
187
187
 
188
188
  if (length < 2) {
189
- giterr_set(GITERR_INVALID, "at least two commits are required to find an ancestor");
189
+ git_error_set(GIT_ERROR_INVALID, "at least two commits are required to find an ancestor");
190
190
  return -1;
191
191
  }
192
192
 
@@ -232,7 +232,7 @@ static int merge_bases(git_commit_list **out, git_revwalk **walk_out, git_reposi
232
232
 
233
233
  if (!result) {
234
234
  git_revwalk_free(walk);
235
- giterr_set(GITERR_MERGE, "no merge base found");
235
+ git_error_set(GIT_ERROR_MERGE, "no merge base found");
236
236
  return GIT_ENOTFOUND;
237
237
  }
238
238
 
@@ -310,46 +310,55 @@ static int interesting(git_pqueue *list)
310
310
  return 0;
311
311
  }
312
312
 
313
- static void clear_commit_marks_1(git_commit_list **plist,
313
+ static int clear_commit_marks_1(git_commit_list **plist,
314
314
  git_commit_list_node *commit, unsigned int mark)
315
315
  {
316
316
  while (commit) {
317
317
  unsigned int i;
318
318
 
319
319
  if (!(mark & commit->flags))
320
- return;
320
+ return 0;
321
321
 
322
322
  commit->flags &= ~mark;
323
323
 
324
324
  for (i = 1; i < commit->out_degree; i++) {
325
325
  git_commit_list_node *p = commit->parents[i];
326
- git_commit_list_insert(p, plist);
326
+ if (git_commit_list_insert(p, plist) == NULL)
327
+ return -1;
327
328
  }
328
329
 
329
330
  commit = commit->out_degree ? commit->parents[0] : NULL;
330
331
  }
332
+
333
+ return 0;
331
334
  }
332
335
 
333
- static void clear_commit_marks_many(git_vector *commits, unsigned int mark)
336
+ static int clear_commit_marks_many(git_vector *commits, unsigned int mark)
334
337
  {
335
338
  git_commit_list *list = NULL;
336
339
  git_commit_list_node *c;
337
340
  unsigned int i;
338
341
 
339
342
  git_vector_foreach(commits, i, c) {
340
- git_commit_list_insert(c, &list);
343
+ if (git_commit_list_insert(c, &list) == NULL)
344
+ return -1;
341
345
  }
342
346
 
343
347
  while (list)
344
- clear_commit_marks_1(&list, git_commit_list_pop(&list), mark);
348
+ if (clear_commit_marks_1(&list, git_commit_list_pop(&list), mark) < 0)
349
+ return -1;
350
+ return 0;
345
351
  }
346
352
 
347
- static void clear_commit_marks(git_commit_list_node *commit, unsigned int mark)
353
+ static int clear_commit_marks(git_commit_list_node *commit, unsigned int mark)
348
354
  {
349
355
  git_commit_list *list = NULL;
350
- git_commit_list_insert(commit, &list);
356
+ if (git_commit_list_insert(commit, &list) == NULL)
357
+ return -1;
351
358
  while (list)
352
- clear_commit_marks_1(&list, git_commit_list_pop(&list), mark);
359
+ if (clear_commit_marks_1(&list, git_commit_list_pop(&list), mark) < 0)
360
+ return -1;
361
+ return 0;
353
362
  }
354
363
 
355
364
  static int paint_down_to_common(
@@ -426,9 +435,9 @@ static int remove_redundant(git_revwalk *walk, git_vector *commits)
426
435
  int error = 0;
427
436
 
428
437
  redundant = git__calloc(commits->length, 1);
429
- GITERR_CHECK_ALLOC(redundant);
438
+ GIT_ERROR_CHECK_ALLOC(redundant);
430
439
  filled_index = git__calloc((commits->length - 1), sizeof(unsigned int));
431
- GITERR_CHECK_ALLOC(filled_index);
440
+ GIT_ERROR_CHECK_ALLOC(filled_index);
432
441
 
433
442
  for (i = 0; i < commits->length; ++i) {
434
443
  if ((error = git_commit_list_parse(walk, commits->contents[i])) < 0)
@@ -466,10 +475,11 @@ static int remove_redundant(git_revwalk *walk, git_vector *commits)
466
475
  redundant[filled_index[j]] = 1;
467
476
  }
468
477
 
469
- clear_commit_marks(commit, ALL_FLAGS);
470
- clear_commit_marks_many(&work, ALL_FLAGS);
471
-
472
478
  git_commit_list_free(&common);
479
+
480
+ if ((error = clear_commit_marks(commit, ALL_FLAGS)) < 0 ||
481
+ (error = clear_commit_marks_many(&work, ALL_FLAGS)) < 0)
482
+ goto done;
473
483
  }
474
484
 
475
485
  for (i = 0; i < commits->length; ++i) {
@@ -531,10 +541,9 @@ int git_merge__bases_many(git_commit_list **out, git_revwalk *walk, git_commit_l
531
541
  while (result)
532
542
  git_vector_insert(&redundant, git_commit_list_pop(&result));
533
543
 
534
- clear_commit_marks(one, ALL_FLAGS);
535
- clear_commit_marks_many(twos, ALL_FLAGS);
536
-
537
- if ((error = remove_redundant(walk, &redundant)) < 0) {
544
+ if ((error = clear_commit_marks(one, ALL_FLAGS)) < 0 ||
545
+ (error = clear_commit_marks_many(twos, ALL_FLAGS)) < 0 ||
546
+ (error = remove_redundant(walk, &redundant)) < 0) {
538
547
  git_vector_free(&redundant);
539
548
  return error;
540
549
  }
@@ -576,7 +585,7 @@ int git_repository_mergehead_foreach(
576
585
 
577
586
  while ((line = git__strsep(&buffer, "\n")) != NULL) {
578
587
  if (strlen(line) != GIT_OID_HEXSZ) {
579
- giterr_set(GITERR_INVALID, "unable to parse OID - invalid length");
588
+ git_error_set(GIT_ERROR_INVALID, "unable to parse OID - invalid length");
580
589
  error = -1;
581
590
  goto cleanup;
582
591
  }
@@ -585,7 +594,7 @@ int git_repository_mergehead_foreach(
585
594
  goto cleanup;
586
595
 
587
596
  if ((error = cb(&oid, payload)) != 0) {
588
- giterr_set_after_callback(error);
597
+ git_error_set_after_callback(error);
589
598
  goto cleanup;
590
599
  }
591
600
 
@@ -593,7 +602,7 @@ int git_repository_mergehead_foreach(
593
602
  }
594
603
 
595
604
  if (*buffer) {
596
- giterr_set(GITERR_MERGE, "no EOL at line %"PRIuZ, line_num);
605
+ git_error_set(GIT_ERROR_MERGE, "no EOL at line %"PRIuZ, line_num);
597
606
  error = -1;
598
607
  goto cleanup;
599
608
  }
@@ -859,18 +868,18 @@ static int merge_conflict_invoke_driver(
859
868
 
860
869
  if ((error = driver->apply(driver, &path, &mode, &buf, name, src)) < 0 ||
861
870
  (error = git_repository_odb(&odb, src->repo)) < 0 ||
862
- (error = git_odb_write(&oid, odb, buf.ptr, buf.size, GIT_OBJ_BLOB)) < 0)
871
+ (error = git_odb_write(&oid, odb, buf.ptr, buf.size, GIT_OBJECT_BLOB)) < 0)
863
872
  goto done;
864
873
 
865
874
  result = git_pool_mallocz(&diff_list->pool, sizeof(git_index_entry));
866
- GITERR_CHECK_ALLOC(result);
875
+ GIT_ERROR_CHECK_ALLOC(result);
867
876
 
868
877
  git_oid_cpy(&result->id, &oid);
869
878
  result->mode = mode;
870
- result->file_size = buf.size;
879
+ result->file_size = (uint32_t)buf.size;
871
880
 
872
881
  result->path = git_pool_strdup(&diff_list->pool, path);
873
- GITERR_CHECK_ALLOC(result->path);
882
+ GIT_ERROR_CHECK_ALLOC(result->path);
874
883
 
875
884
  *out = result;
876
885
 
@@ -1015,7 +1024,7 @@ static int index_entry_similarity_calc(
1015
1024
  {
1016
1025
  git_blob *blob;
1017
1026
  git_diff_file diff_file = {{{0}}};
1018
- git_off_t blobsize;
1027
+ git_object_size_t blobsize;
1019
1028
  int error;
1020
1029
 
1021
1030
  *out = NULL;
@@ -1084,7 +1093,7 @@ static int index_entry_similarity_inexact(
1084
1093
  }
1085
1094
 
1086
1095
  /* Tracks deletes by oid for merge_diff_mark_similarity_exact(). This is a
1087
- * non-shrinking queue where next_pos is the next position to dequeue.
1096
+ * non-shrinking queue where next_pos is the next position to dequeue.
1088
1097
  */
1089
1098
  typedef struct {
1090
1099
  git_array_t(size_t) arr;
@@ -1104,46 +1113,38 @@ static void deletes_by_oid_free(git_oidmap *map) {
1104
1113
  git_oidmap_free(map);
1105
1114
  }
1106
1115
 
1107
- static int deletes_by_oid_enqueue(git_oidmap *map, git_pool* pool, const git_oid *id, size_t idx) {
1108
- khint_t pos;
1116
+ static int deletes_by_oid_enqueue(git_oidmap *map, git_pool* pool, const git_oid *id, size_t idx)
1117
+ {
1109
1118
  deletes_by_oid_queue *queue;
1110
1119
  size_t *array_entry;
1111
- int error;
1112
1120
 
1113
- pos = git_oidmap_lookup_index(map, id);
1114
- if (!git_oidmap_valid_index(map, pos)) {
1121
+ if ((queue = git_oidmap_get(map, id)) == NULL) {
1115
1122
  queue = git_pool_malloc(pool, sizeof(deletes_by_oid_queue));
1116
- GITERR_CHECK_ALLOC(queue);
1123
+ GIT_ERROR_CHECK_ALLOC(queue);
1117
1124
 
1118
1125
  git_array_init(queue->arr);
1119
1126
  queue->next_pos = 0;
1120
1127
  queue->first_entry = idx;
1121
1128
 
1122
- git_oidmap_insert(map, id, queue, &error);
1123
- if (error < 0)
1129
+ if (git_oidmap_set(map, id, queue) < 0)
1124
1130
  return -1;
1125
1131
  } else {
1126
- queue = git_oidmap_value_at(map, pos);
1127
1132
  array_entry = git_array_alloc(queue->arr);
1128
- GITERR_CHECK_ALLOC(array_entry);
1133
+ GIT_ERROR_CHECK_ALLOC(array_entry);
1129
1134
  *array_entry = idx;
1130
1135
  }
1131
1136
 
1132
1137
  return 0;
1133
1138
  }
1134
1139
 
1135
- static int deletes_by_oid_dequeue(size_t *idx, git_oidmap *map, const git_oid *id) {
1136
- khint_t pos;
1140
+ static int deletes_by_oid_dequeue(size_t *idx, git_oidmap *map, const git_oid *id)
1141
+ {
1137
1142
  deletes_by_oid_queue *queue;
1138
1143
  size_t *array_entry;
1139
1144
 
1140
- pos = git_oidmap_lookup_index(map, id);
1141
-
1142
- if (!git_oidmap_valid_index(map, pos))
1145
+ if ((queue = git_oidmap_get(map, id)) == NULL)
1143
1146
  return GIT_ENOTFOUND;
1144
1147
 
1145
- queue = git_oidmap_value_at(map, pos);
1146
-
1147
1148
  if (queue->next_pos == 0) {
1148
1149
  *idx = queue->first_entry;
1149
1150
  } else {
@@ -1168,8 +1169,8 @@ static int merge_diff_mark_similarity_exact(
1168
1169
  git_oidmap *ours_deletes_by_oid = NULL, *theirs_deletes_by_oid = NULL;
1169
1170
  int error = 0;
1170
1171
 
1171
- if (!(ours_deletes_by_oid = git_oidmap_alloc()) ||
1172
- !(theirs_deletes_by_oid = git_oidmap_alloc())) {
1172
+ if (git_oidmap_new(&ours_deletes_by_oid) < 0 ||
1173
+ git_oidmap_new(&theirs_deletes_by_oid) < 0) {
1173
1174
  error = -1;
1174
1175
  goto done;
1175
1176
  }
@@ -1510,11 +1511,11 @@ int git_merge_diff_list__find_renames(
1510
1511
 
1511
1512
  similarity_ours = git__calloc(diff_list->conflicts.length,
1512
1513
  sizeof(struct merge_diff_similarity));
1513
- GITERR_CHECK_ALLOC(similarity_ours);
1514
+ GIT_ERROR_CHECK_ALLOC(similarity_ours);
1514
1515
 
1515
1516
  similarity_theirs = git__calloc(diff_list->conflicts.length,
1516
1517
  sizeof(struct merge_diff_similarity));
1517
- GITERR_CHECK_ALLOC(similarity_theirs);
1518
+ GIT_ERROR_CHECK_ALLOC(similarity_theirs);
1518
1519
 
1519
1520
  /* Calculate similarity between items that were deleted from the ancestor
1520
1521
  * and added in the other branch.
@@ -1523,9 +1524,9 @@ int git_merge_diff_list__find_renames(
1523
1524
  goto done;
1524
1525
 
1525
1526
  if (opts->rename_threshold < 100 && diff_list->conflicts.length <= opts->target_limit) {
1526
- GITERR_CHECK_ALLOC_MULTIPLY(&cache_size, diff_list->conflicts.length, 3);
1527
+ GIT_ERROR_CHECK_ALLOC_MULTIPLY(&cache_size, diff_list->conflicts.length, 3);
1527
1528
  cache = git__calloc(cache_size, sizeof(void *));
1528
- GITERR_CHECK_ALLOC(cache);
1529
+ GIT_ERROR_CHECK_ALLOC(cache);
1529
1530
 
1530
1531
  merge_diff_list_count_candidates(diff_list, &src_count, &tgt_count);
1531
1532
 
@@ -1739,7 +1740,7 @@ static int merge_diff_list_insert_unmodified(
1739
1740
  git_index_entry *entry;
1740
1741
 
1741
1742
  entry = git_pool_malloc(&diff_list->pool, sizeof(git_index_entry));
1742
- GITERR_CHECK_ALLOC(entry);
1743
+ GIT_ERROR_CHECK_ALLOC(entry);
1743
1744
 
1744
1745
  if ((error = index_entry_dup_pool(entry, &diff_list->pool, tree_items[0])) >= 0)
1745
1746
  error = git_vector_insert(&diff_list->staged, entry);
@@ -1846,13 +1847,13 @@ static int merge_normalize_opts(
1846
1847
 
1847
1848
  if (given && given->default_driver) {
1848
1849
  opts->default_driver = git__strdup(given->default_driver);
1849
- GITERR_CHECK_ALLOC(opts->default_driver);
1850
+ GIT_ERROR_CHECK_ALLOC(opts->default_driver);
1850
1851
  } else {
1851
1852
  error = git_config_get_entry(&entry, cfg, "merge.default");
1852
1853
 
1853
1854
  if (error == 0) {
1854
1855
  opts->default_driver = git__strdup(entry->value);
1855
- GITERR_CHECK_ALLOC(opts->default_driver);
1856
+ GIT_ERROR_CHECK_ALLOC(opts->default_driver);
1856
1857
  } else if (error == GIT_ENOTFOUND) {
1857
1858
  error = 0;
1858
1859
  } else {
@@ -1873,7 +1874,7 @@ static int merge_normalize_opts(
1873
1874
  /* assign the internal metric with whitespace flag as payload */
1874
1875
  if (!opts->metric) {
1875
1876
  opts->metric = git__malloc(sizeof(git_diff_similarity_metric));
1876
- GITERR_CHECK_ALLOC(opts->metric);
1877
+ GIT_ERROR_CHECK_ALLOC(opts->metric);
1877
1878
 
1878
1879
  opts->metric->file_signature = git_diff_find_similar__hashsig_for_file;
1879
1880
  opts->metric->buffer_signature = git_diff_find_similar__hashsig_for_buf;
@@ -2060,7 +2061,7 @@ int git_merge__iterators(
2060
2061
 
2061
2062
  *out = NULL;
2062
2063
 
2063
- GITERR_CHECK_VERSION(
2064
+ GIT_ERROR_CHECK_VERSION(
2064
2065
  given_opts, GIT_MERGE_OPTIONS_VERSION, "git_merge_options");
2065
2066
 
2066
2067
  if ((error = merge_normalize_opts(repo, &opts, given_opts)) < 0)
@@ -2079,7 +2080,7 @@ int git_merge__iterators(
2079
2080
  }
2080
2081
 
2081
2082
  diff_list = git_merge_diff_list__alloc(repo);
2082
- GITERR_CHECK_ALLOC(diff_list);
2083
+ GIT_ERROR_CHECK_ALLOC(diff_list);
2083
2084
 
2084
2085
  ancestor_iter = iterator_given_or_empty(&empty_ancestor, ancestor_iter);
2085
2086
  our_iter = iterator_given_or_empty(&empty_ours, our_iter);
@@ -2102,7 +2103,7 @@ int git_merge__iterators(
2102
2103
 
2103
2104
  if (!resolved) {
2104
2105
  if ((opts.flags & GIT_MERGE_FAIL_ON_CONFLICT)) {
2105
- giterr_set(GITERR_MERGE, "merge conflicts exist");
2106
+ git_error_set(GIT_ERROR_MERGE, "merge conflicts exist");
2106
2107
  error = GIT_EMERGECONFLICT;
2107
2108
  goto done;
2108
2109
  }
@@ -2199,13 +2200,13 @@ GIT_INLINE(int) insert_head_ids(
2199
2200
 
2200
2201
  if (annotated_commit->type == GIT_ANNOTATED_COMMIT_REAL) {
2201
2202
  id = git_array_alloc(*ids);
2202
- GITERR_CHECK_ALLOC(id);
2203
+ GIT_ERROR_CHECK_ALLOC(id);
2203
2204
 
2204
2205
  git_oid_cpy(id, git_commit_id(annotated_commit->commit));
2205
2206
  } else {
2206
2207
  for (i = 0; i < annotated_commit->parents.size; i++) {
2207
2208
  id = git_array_alloc(*ids);
2208
- GITERR_CHECK_ALLOC(id);
2209
+ GIT_ERROR_CHECK_ALLOC(id);
2209
2210
 
2210
2211
  git_oid_cpy(id, &annotated_commit->parents.ptr[i]);
2211
2212
  }
@@ -2240,7 +2241,7 @@ static int create_virtual_base(
2240
2241
  return -1;
2241
2242
 
2242
2243
  result = git__calloc(1, sizeof(git_annotated_commit));
2243
- GITERR_CHECK_ALLOC(result);
2244
+ GIT_ERROR_CHECK_ALLOC(result);
2244
2245
  result->type = GIT_ANNOTATED_COMMIT_VIRTUAL;
2245
2246
  result->index = index;
2246
2247
 
@@ -2368,7 +2369,7 @@ static int merge_annotated_commits(
2368
2369
  if (error != GIT_ENOTFOUND)
2369
2370
  goto done;
2370
2371
 
2371
- giterr_clear();
2372
+ git_error_clear();
2372
2373
  }
2373
2374
 
2374
2375
  if ((error = iterator_for_annotated_commit(&base_iter, base)) < 0 ||
@@ -2430,7 +2431,7 @@ static int write_merge_head(
2430
2431
  assert(repo && heads);
2431
2432
 
2432
2433
  if ((error = git_buf_joinpath(&file_path, repo->gitdir, GIT_MERGE_HEAD_FILE)) < 0 ||
2433
- (error = git_filebuf_open(&file, file_path.ptr, GIT_FILEBUF_FORCE, GIT_MERGE_FILE_MODE)) < 0)
2434
+ (error = git_filebuf_open(&file, file_path.ptr, GIT_FILEBUF_CREATE_LEADING_DIRS, GIT_MERGE_FILE_MODE)) < 0)
2434
2435
  goto cleanup;
2435
2436
 
2436
2437
  for (i = 0; i < heads_len; i++) {
@@ -2458,7 +2459,7 @@ static int write_merge_mode(git_repository *repo)
2458
2459
  assert(repo);
2459
2460
 
2460
2461
  if ((error = git_buf_joinpath(&file_path, repo->gitdir, GIT_MERGE_MODE_FILE)) < 0 ||
2461
- (error = git_filebuf_open(&file, file_path.ptr, GIT_FILEBUF_FORCE, GIT_MERGE_FILE_MODE)) < 0)
2462
+ (error = git_filebuf_open(&file, file_path.ptr, GIT_FILEBUF_CREATE_LEADING_DIRS, GIT_MERGE_FILE_MODE)) < 0)
2462
2463
  goto cleanup;
2463
2464
 
2464
2465
  if ((error = git_filebuf_write(&file, "no-ff", 5)) < 0)
@@ -2678,7 +2679,7 @@ static int write_merge_msg(
2678
2679
  assert(repo && heads);
2679
2680
 
2680
2681
  entries = git__calloc(heads_len, sizeof(struct merge_msg_entry));
2681
- GITERR_CHECK_ALLOC(entries);
2682
+ GIT_ERROR_CHECK_ALLOC(entries);
2682
2683
 
2683
2684
  if (git_vector_init(&matching, heads_len, NULL) < 0) {
2684
2685
  git__free(entries);
@@ -2689,7 +2690,7 @@ static int write_merge_msg(
2689
2690
  entries[i].merge_head = heads[i];
2690
2691
 
2691
2692
  if ((error = git_buf_joinpath(&file_path, repo->gitdir, GIT_MERGE_MSG_FILE)) < 0 ||
2692
- (error = git_filebuf_open(&file, file_path.ptr, GIT_FILEBUF_FORCE, GIT_MERGE_FILE_MODE)) < 0 ||
2693
+ (error = git_filebuf_open(&file, file_path.ptr, GIT_FILEBUF_CREATE_LEADING_DIRS, GIT_MERGE_FILE_MODE)) < 0 ||
2693
2694
  (error = git_filebuf_write(&file, "Merge ", 6)) < 0)
2694
2695
  goto cleanup;
2695
2696
 
@@ -2812,9 +2813,9 @@ static int merge_ancestor_head(
2812
2813
 
2813
2814
  assert(repo && our_head && their_heads);
2814
2815
 
2815
- GITERR_CHECK_ALLOC_ADD(&alloc_len, their_heads_len, 1);
2816
+ GIT_ERROR_CHECK_ALLOC_ADD(&alloc_len, their_heads_len, 1);
2816
2817
  oids = git__calloc(alloc_len, sizeof(git_oid));
2817
- GITERR_CHECK_ALLOC(oids);
2818
+ GIT_ERROR_CHECK_ALLOC(oids);
2818
2819
 
2819
2820
  git_oid_cpy(&oids[0], git_commit_id(our_head->commit));
2820
2821
 
@@ -3038,7 +3039,7 @@ int git_merge__check_result(git_repository *repo, git_index *index_new)
3038
3039
  goto done;
3039
3040
 
3040
3041
  if ((conflicts = index_conflicts + wd_conflicts) > 0) {
3041
- giterr_set(GITERR_MERGE, "%" PRIuZ " uncommitted change%s would be overwritten by merge",
3042
+ git_error_set(GIT_ERROR_MERGE, "%" PRIuZ " uncommitted change%s would be overwritten by merge",
3042
3043
  conflicts, (conflicts != 1) ? "s" : "");
3043
3044
  error = GIT_ECONFLICT;
3044
3045
  }
@@ -3110,28 +3111,24 @@ static int merge_heads(
3110
3111
  git_annotated_commit **ancestor_head_out,
3111
3112
  git_annotated_commit **our_head_out,
3112
3113
  git_repository *repo,
3114
+ git_reference *our_ref,
3113
3115
  const git_annotated_commit **their_heads,
3114
3116
  size_t their_heads_len)
3115
3117
  {
3116
3118
  git_annotated_commit *ancestor_head = NULL, *our_head = NULL;
3117
- git_reference *our_ref = NULL;
3118
3119
  int error = 0;
3119
3120
 
3120
3121
  *ancestor_head_out = NULL;
3121
3122
  *our_head_out = NULL;
3122
3123
 
3123
- if ((error = git_repository__ensure_not_bare(repo, "merge")) < 0)
3124
- goto done;
3125
-
3126
- if ((error = git_reference_lookup(&our_ref, repo, GIT_HEAD_FILE)) < 0 ||
3127
- (error = git_annotated_commit_from_ref(&our_head, repo, our_ref)) < 0)
3124
+ if ((error = git_annotated_commit_from_ref(&our_head, repo, our_ref)) < 0)
3128
3125
  goto done;
3129
3126
 
3130
3127
  if ((error = merge_ancestor_head(&ancestor_head, repo, our_head, their_heads, their_heads_len)) < 0) {
3131
3128
  if (error != GIT_ENOTFOUND)
3132
3129
  goto done;
3133
3130
 
3134
- giterr_clear();
3131
+ git_error_clear();
3135
3132
  error = 0;
3136
3133
  }
3137
3134
 
@@ -3144,8 +3141,6 @@ done:
3144
3141
  git_annotated_commit_free(our_head);
3145
3142
  }
3146
3143
 
3147
- git_reference_free(our_ref);
3148
-
3149
3144
  return error;
3150
3145
  }
3151
3146
 
@@ -3162,7 +3157,7 @@ static int merge_preference(git_merge_preference_t *out, git_repository *repo)
3162
3157
 
3163
3158
  if ((error = git_config_get_string(&value, config, "merge.ff")) < 0) {
3164
3159
  if (error == GIT_ENOTFOUND) {
3165
- giterr_clear();
3160
+ git_error_clear();
3166
3161
  error = 0;
3167
3162
  }
3168
3163
 
@@ -3182,20 +3177,22 @@ done:
3182
3177
  return error;
3183
3178
  }
3184
3179
 
3185
- int git_merge_analysis(
3180
+ int git_merge_analysis_for_ref(
3186
3181
  git_merge_analysis_t *analysis_out,
3187
3182
  git_merge_preference_t *preference_out,
3188
3183
  git_repository *repo,
3184
+ git_reference *our_ref,
3189
3185
  const git_annotated_commit **their_heads,
3190
3186
  size_t their_heads_len)
3191
3187
  {
3192
3188
  git_annotated_commit *ancestor_head = NULL, *our_head = NULL;
3193
3189
  int error = 0;
3190
+ bool unborn;
3194
3191
 
3195
- assert(analysis_out && preference_out && repo && their_heads);
3192
+ assert(analysis_out && preference_out && repo && their_heads && their_heads_len > 0);
3196
3193
 
3197
3194
  if (their_heads_len != 1) {
3198
- giterr_set(GITERR_MERGE, "can only merge a single branch");
3195
+ git_error_set(GIT_ERROR_MERGE, "can only merge a single branch");
3199
3196
  error = -1;
3200
3197
  goto done;
3201
3198
  }
@@ -3205,12 +3202,16 @@ int git_merge_analysis(
3205
3202
  if ((error = merge_preference(preference_out, repo)) < 0)
3206
3203
  goto done;
3207
3204
 
3208
- if (git_repository_head_unborn(repo)) {
3205
+ if ((error = git_reference__is_unborn_head(&unborn, our_ref, repo)) < 0)
3206
+ goto done;
3207
+
3208
+ if (unborn) {
3209
3209
  *analysis_out |= GIT_MERGE_ANALYSIS_FASTFORWARD | GIT_MERGE_ANALYSIS_UNBORN;
3210
+ error = 0;
3210
3211
  goto done;
3211
3212
  }
3212
3213
 
3213
- if ((error = merge_heads(&ancestor_head, &our_head, repo, their_heads, their_heads_len)) < 0)
3214
+ if ((error = merge_heads(&ancestor_head, &our_head, repo, our_ref, their_heads, their_heads_len)) < 0)
3214
3215
  goto done;
3215
3216
 
3216
3217
  /* We're up-to-date if we're trying to merge our own common ancestor. */
@@ -3233,6 +3234,28 @@ done:
3233
3234
  return error;
3234
3235
  }
3235
3236
 
3237
+ int git_merge_analysis(
3238
+ git_merge_analysis_t *analysis_out,
3239
+ git_merge_preference_t *preference_out,
3240
+ git_repository *repo,
3241
+ const git_annotated_commit **their_heads,
3242
+ size_t their_heads_len)
3243
+ {
3244
+ git_reference *head_ref = NULL;
3245
+ int error = 0;
3246
+
3247
+ if ((error = git_reference_lookup(&head_ref, repo, GIT_HEAD_FILE)) < 0) {
3248
+ git_error_set(GIT_ERROR_MERGE, "failed to lookup HEAD reference");
3249
+ return error;
3250
+ }
3251
+
3252
+ error = git_merge_analysis_for_ref(analysis_out, preference_out, repo, head_ref, their_heads, their_heads_len);
3253
+
3254
+ git_reference_free(head_ref);
3255
+
3256
+ return error;
3257
+ }
3258
+
3236
3259
  int git_merge(
3237
3260
  git_repository *repo,
3238
3261
  const git_annotated_commit **their_heads,
@@ -3243,15 +3266,15 @@ int git_merge(
3243
3266
  git_reference *our_ref = NULL;
3244
3267
  git_checkout_options checkout_opts;
3245
3268
  git_annotated_commit *our_head = NULL, *base = NULL;
3246
- git_index *index = NULL;
3269
+ git_index *repo_index = NULL, *index = NULL;
3247
3270
  git_indexwriter indexwriter = GIT_INDEXWRITER_INIT;
3248
3271
  unsigned int checkout_strategy;
3249
3272
  int error = 0;
3250
3273
 
3251
- assert(repo && their_heads);
3274
+ assert(repo && their_heads && their_heads_len > 0);
3252
3275
 
3253
3276
  if (their_heads_len != 1) {
3254
- giterr_set(GITERR_MERGE, "can only merge a single branch");
3277
+ git_error_set(GIT_ERROR_MERGE, "can only merge a single branch");
3255
3278
  return -1;
3256
3279
  }
3257
3280
 
@@ -3266,6 +3289,10 @@ int git_merge(
3266
3289
  &checkout_strategy)) < 0)
3267
3290
  goto done;
3268
3291
 
3292
+ if ((error = git_repository_index(&repo_index, repo) < 0) ||
3293
+ (error = git_index_read(repo_index, 0) < 0))
3294
+ goto done;
3295
+
3269
3296
  /* Write the merge setup files to the repository. */
3270
3297
  if ((error = git_annotated_commit_from_head(&our_head, repo)) < 0 ||
3271
3298
  (error = git_merge__setup(repo, our_head, their_heads,
@@ -3299,28 +3326,45 @@ done:
3299
3326
  git_annotated_commit_free(our_head);
3300
3327
  git_annotated_commit_free(base);
3301
3328
  git_reference_free(our_ref);
3329
+ git_index_free(repo_index);
3302
3330
 
3303
3331
  return error;
3304
3332
  }
3305
3333
 
3306
- int git_merge_init_options(git_merge_options *opts, unsigned int version)
3334
+ int git_merge_options_init(git_merge_options *opts, unsigned int version)
3307
3335
  {
3308
3336
  GIT_INIT_STRUCTURE_FROM_TEMPLATE(
3309
3337
  opts, version, git_merge_options, GIT_MERGE_OPTIONS_INIT);
3310
3338
  return 0;
3311
3339
  }
3312
3340
 
3313
- int git_merge_file_init_input(git_merge_file_input *input, unsigned int version)
3341
+ int git_merge_init_options(git_merge_options *opts, unsigned int version)
3342
+ {
3343
+ return git_merge_options_init(opts, version);
3344
+ }
3345
+
3346
+ int git_merge_file_input_init(git_merge_file_input *input, unsigned int version)
3314
3347
  {
3315
3348
  GIT_INIT_STRUCTURE_FROM_TEMPLATE(
3316
3349
  input, version, git_merge_file_input, GIT_MERGE_FILE_INPUT_INIT);
3317
3350
  return 0;
3318
3351
  }
3319
3352
 
3320
- int git_merge_file_init_options(
3353
+ int git_merge_file_init_input(git_merge_file_input *input, unsigned int version)
3354
+ {
3355
+ return git_merge_file_input_init(input, version);
3356
+ }
3357
+
3358
+ int git_merge_file_options_init(
3321
3359
  git_merge_file_options *opts, unsigned int version)
3322
3360
  {
3323
3361
  GIT_INIT_STRUCTURE_FROM_TEMPLATE(
3324
3362
  opts, version, git_merge_file_options, GIT_MERGE_FILE_OPTIONS_INIT);
3325
3363
  return 0;
3326
3364
  }
3365
+
3366
+ int git_merge_file_init_options(
3367
+ git_merge_file_options *opts, unsigned int version)
3368
+ {
3369
+ return git_merge_file_options_init(opts, version);
3370
+ }