rugged 1.3.1 → 1.9.0

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 (656) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +34 -2
  3. data/ext/rugged/extconf.rb +6 -3
  4. data/ext/rugged/rugged.c +16 -0
  5. data/ext/rugged/rugged.h +4 -0
  6. data/ext/rugged/rugged_allocator.c +0 -54
  7. data/ext/rugged/rugged_blame.c +2 -0
  8. data/ext/rugged/rugged_blob.c +3 -0
  9. data/ext/rugged/rugged_commit.c +1 -0
  10. data/ext/rugged/rugged_config.c +9 -2
  11. data/ext/rugged/rugged_diff.c +1 -0
  12. data/ext/rugged/rugged_index.c +2 -0
  13. data/ext/rugged/rugged_patch.c +1 -0
  14. data/ext/rugged/rugged_rebase.c +1 -0
  15. data/ext/rugged/rugged_reference.c +1 -0
  16. data/ext/rugged/rugged_remote.c +28 -10
  17. data/ext/rugged/rugged_repo.c +7 -9
  18. data/ext/rugged/rugged_revwalk.c +5 -1
  19. data/ext/rugged/rugged_settings.c +5 -0
  20. data/ext/rugged/rugged_submodule.c +1 -0
  21. data/ext/rugged/rugged_tag.c +1 -0
  22. data/ext/rugged/rugged_tree.c +4 -0
  23. data/lib/rugged/index.rb +1 -1
  24. data/lib/rugged/tree.rb +5 -1
  25. data/lib/rugged/version.rb +1 -1
  26. data/vendor/libgit2/AUTHORS +1 -0
  27. data/vendor/libgit2/CMakeLists.txt +141 -289
  28. data/vendor/libgit2/COPYING +301 -20
  29. data/vendor/libgit2/cmake/AddCFlagIfSupported.cmake +21 -21
  30. data/vendor/libgit2/cmake/AddClarTest.cmake +7 -0
  31. data/vendor/libgit2/cmake/CheckPrototypeDefinitionSafe.cmake +16 -0
  32. data/vendor/libgit2/cmake/DefaultCFlags.cmake +154 -0
  33. data/vendor/libgit2/cmake/EnableWarnings.cmake +13 -13
  34. data/vendor/libgit2/cmake/ExperimentalFeatures.cmake +23 -0
  35. data/vendor/libgit2/cmake/FindCoreFoundation.cmake +13 -13
  36. data/vendor/libgit2/cmake/FindGSSAPI.cmake +171 -287
  37. data/vendor/libgit2/cmake/FindGSSFramework.cmake +13 -13
  38. data/vendor/libgit2/cmake/FindHTTP_Parser.cmake +17 -17
  39. data/vendor/libgit2/cmake/FindIntlIconv.cmake +51 -0
  40. data/vendor/libgit2/cmake/FindLLHTTP.cmake +39 -0
  41. data/vendor/libgit2/cmake/FindLibSSH2.cmake +5 -5
  42. data/vendor/libgit2/cmake/FindPCRE.cmake +12 -13
  43. data/vendor/libgit2/cmake/FindPCRE2.cmake +12 -12
  44. data/vendor/libgit2/cmake/FindPkgLibraries.cmake +19 -19
  45. data/vendor/libgit2/cmake/FindSecurity.cmake +14 -14
  46. data/vendor/libgit2/cmake/FindStatNsec.cmake +12 -18
  47. data/vendor/libgit2/cmake/Findfutimens.cmake +8 -8
  48. data/vendor/libgit2/cmake/FindmbedTLS.cmake +63 -70
  49. data/vendor/libgit2/cmake/IdeSplitSources.cmake +18 -18
  50. data/vendor/libgit2/cmake/PkgBuildConfig.cmake +60 -60
  51. data/vendor/libgit2/cmake/SanitizeBool.cmake +20 -20
  52. data/vendor/libgit2/cmake/SelectGSSAPI.cmake +37 -37
  53. data/vendor/libgit2/cmake/SelectHTTPParser.cmake +34 -0
  54. data/vendor/libgit2/cmake/SelectHTTPSBackend.cmake +129 -101
  55. data/vendor/libgit2/cmake/SelectHashes.cmake +113 -54
  56. data/vendor/libgit2/cmake/SelectRegex.cmake +56 -0
  57. data/vendor/libgit2/cmake/SelectSSH.cmake +46 -0
  58. data/vendor/libgit2/cmake/SelectXdiff.cmake +9 -0
  59. data/vendor/libgit2/cmake/SelectZlib.cmake +38 -0
  60. data/vendor/libgit2/deps/chromium-zlib/CMakeLists.txt +6 -6
  61. data/vendor/libgit2/deps/llhttp/CMakeLists.txt +8 -0
  62. data/vendor/libgit2/deps/llhttp/LICENSE-MIT +22 -0
  63. data/vendor/libgit2/deps/llhttp/api.c +510 -0
  64. data/vendor/libgit2/deps/llhttp/http.c +170 -0
  65. data/vendor/libgit2/deps/llhttp/llhttp.c +10168 -0
  66. data/vendor/libgit2/deps/llhttp/llhttp.h +897 -0
  67. data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +33 -31
  68. data/vendor/libgit2/deps/ntlmclient/crypt_builtin_md4.c +311 -0
  69. data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.c +2 -1
  70. data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.c +0 -20
  71. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +7 -5
  72. data/vendor/libgit2/deps/ntlmclient/ntlm.c +25 -25
  73. data/vendor/libgit2/deps/ntlmclient/ntlm.h +4 -4
  74. data/vendor/libgit2/deps/ntlmclient/ntlmclient.h +2 -2
  75. data/vendor/libgit2/deps/ntlmclient/unicode_builtin.c +5 -4
  76. data/vendor/libgit2/deps/ntlmclient/unicode_iconv.c +2 -1
  77. data/vendor/libgit2/deps/ntlmclient/utf8.h +1176 -721
  78. data/vendor/libgit2/deps/ntlmclient/util.h +11 -0
  79. data/vendor/libgit2/deps/pcre/CMakeLists.txt +89 -88
  80. data/vendor/libgit2/deps/pcre/LICENCE +5 -5
  81. data/vendor/libgit2/deps/pcre/pcre.h +2 -2
  82. data/vendor/libgit2/deps/pcre/pcre_compile.c +6 -3
  83. data/vendor/libgit2/deps/pcre/pcre_exec.c +2 -2
  84. data/vendor/libgit2/deps/winhttp/CMakeLists.txt +14 -16
  85. data/vendor/libgit2/deps/xdiff/CMakeLists.txt +28 -0
  86. data/vendor/libgit2/deps/xdiff/git-xdiff.h +56 -0
  87. data/vendor/libgit2/{src → deps}/xdiff/xdiff.h +15 -15
  88. data/vendor/libgit2/{src → deps}/xdiff/xdiffi.c +152 -125
  89. data/vendor/libgit2/{src → deps}/xdiff/xdiffi.h +2 -4
  90. data/vendor/libgit2/{src → deps}/xdiff/xemit.c +26 -10
  91. data/vendor/libgit2/{src → deps}/xdiff/xhistogram.c +92 -94
  92. data/vendor/libgit2/{src → deps}/xdiff/xinclude.h +1 -12
  93. data/vendor/libgit2/{src → deps}/xdiff/xmacros.h +18 -1
  94. data/vendor/libgit2/{src → deps}/xdiff/xmerge.c +126 -137
  95. data/vendor/libgit2/{src → deps}/xdiff/xpatience.c +26 -46
  96. data/vendor/libgit2/{src → deps}/xdiff/xprepare.c +24 -46
  97. data/vendor/libgit2/{src → deps}/xdiff/xutils.c +36 -8
  98. data/vendor/libgit2/{src → deps}/xdiff/xutils.h +2 -1
  99. data/vendor/libgit2/deps/zlib/CMakeLists.txt +6 -1
  100. data/vendor/libgit2/deps/zlib/LICENSE +22 -0
  101. data/vendor/libgit2/deps/zlib/adler32.c +7 -22
  102. data/vendor/libgit2/deps/zlib/crc32.c +931 -317
  103. data/vendor/libgit2/deps/zlib/crc32.h +9441 -436
  104. data/vendor/libgit2/deps/zlib/deflate.c +428 -453
  105. data/vendor/libgit2/deps/zlib/deflate.h +51 -23
  106. data/vendor/libgit2/deps/zlib/gzguts.h +15 -19
  107. data/vendor/libgit2/deps/zlib/infback.c +19 -31
  108. data/vendor/libgit2/deps/zlib/inffast.c +15 -18
  109. data/vendor/libgit2/deps/zlib/inffast.h +1 -1
  110. data/vendor/libgit2/deps/zlib/inflate.c +75 -110
  111. data/vendor/libgit2/deps/zlib/inflate.h +3 -2
  112. data/vendor/libgit2/deps/zlib/inftrees.c +6 -11
  113. data/vendor/libgit2/deps/zlib/inftrees.h +6 -6
  114. data/vendor/libgit2/deps/zlib/trees.c +294 -380
  115. data/vendor/libgit2/deps/zlib/zconf.h +23 -14
  116. data/vendor/libgit2/deps/zlib/zlib.h +310 -284
  117. data/vendor/libgit2/deps/zlib/zutil.c +20 -46
  118. data/vendor/libgit2/deps/zlib/zutil.h +24 -41
  119. data/vendor/libgit2/include/git2/annotated_commit.h +12 -5
  120. data/vendor/libgit2/include/git2/apply.h +43 -8
  121. data/vendor/libgit2/include/git2/attr.h +28 -6
  122. data/vendor/libgit2/include/git2/blame.h +137 -29
  123. data/vendor/libgit2/include/git2/blob.h +85 -29
  124. data/vendor/libgit2/include/git2/branch.h +25 -16
  125. data/vendor/libgit2/include/git2/buffer.h +24 -82
  126. data/vendor/libgit2/include/git2/cert.h +4 -3
  127. data/vendor/libgit2/include/git2/checkout.h +88 -34
  128. data/vendor/libgit2/include/git2/cherrypick.h +10 -3
  129. data/vendor/libgit2/include/git2/clone.h +28 -12
  130. data/vendor/libgit2/include/git2/commit.h +134 -3
  131. data/vendor/libgit2/include/git2/common.h +172 -59
  132. data/vendor/libgit2/include/git2/config.h +118 -32
  133. data/vendor/libgit2/include/git2/credential.h +32 -3
  134. data/vendor/libgit2/include/git2/credential_helpers.h +2 -0
  135. data/vendor/libgit2/include/git2/deprecated.h +141 -3
  136. data/vendor/libgit2/include/git2/describe.h +20 -3
  137. data/vendor/libgit2/include/git2/diff.h +95 -19
  138. data/vendor/libgit2/include/git2/email.h +10 -30
  139. data/vendor/libgit2/include/git2/errors.h +51 -61
  140. data/vendor/libgit2/include/git2/experimental.h +20 -0
  141. data/vendor/libgit2/include/git2/filter.h +21 -9
  142. data/vendor/libgit2/include/git2/global.h +8 -1
  143. data/vendor/libgit2/include/git2/graph.h +4 -2
  144. data/vendor/libgit2/include/git2/ignore.h +11 -1
  145. data/vendor/libgit2/include/git2/index.h +111 -11
  146. data/vendor/libgit2/include/git2/indexer.h +67 -2
  147. data/vendor/libgit2/include/git2/mailmap.h +7 -1
  148. data/vendor/libgit2/include/git2/merge.h +70 -5
  149. data/vendor/libgit2/include/git2/message.h +4 -2
  150. data/vendor/libgit2/include/git2/net.h +3 -1
  151. data/vendor/libgit2/include/git2/notes.h +9 -6
  152. data/vendor/libgit2/include/git2/object.h +57 -7
  153. data/vendor/libgit2/include/git2/odb.h +156 -33
  154. data/vendor/libgit2/include/git2/odb_backend.h +132 -16
  155. data/vendor/libgit2/include/git2/oid.h +116 -17
  156. data/vendor/libgit2/include/git2/oidarray.h +7 -1
  157. data/vendor/libgit2/include/git2/pack.h +37 -9
  158. data/vendor/libgit2/include/git2/patch.h +10 -3
  159. data/vendor/libgit2/include/git2/pathspec.h +10 -1
  160. data/vendor/libgit2/include/git2/proxy.h +11 -1
  161. data/vendor/libgit2/include/git2/rebase.h +18 -7
  162. data/vendor/libgit2/include/git2/refdb.h +5 -2
  163. data/vendor/libgit2/include/git2/reflog.h +4 -3
  164. data/vendor/libgit2/include/git2/refs.h +11 -8
  165. data/vendor/libgit2/include/git2/refspec.h +14 -4
  166. data/vendor/libgit2/include/git2/remote.h +295 -54
  167. data/vendor/libgit2/include/git2/repository.h +95 -25
  168. data/vendor/libgit2/include/git2/reset.h +18 -5
  169. data/vendor/libgit2/include/git2/revert.h +9 -4
  170. data/vendor/libgit2/include/git2/revparse.h +4 -4
  171. data/vendor/libgit2/include/git2/revwalk.h +7 -3
  172. data/vendor/libgit2/include/git2/signature.h +47 -2
  173. data/vendor/libgit2/include/git2/stash.h +78 -10
  174. data/vendor/libgit2/include/git2/status.h +24 -11
  175. data/vendor/libgit2/include/git2/stdint.h +87 -85
  176. data/vendor/libgit2/include/git2/strarray.h +2 -16
  177. data/vendor/libgit2/include/git2/submodule.h +27 -11
  178. data/vendor/libgit2/include/git2/sys/alloc.h +12 -34
  179. data/vendor/libgit2/include/git2/sys/commit.h +77 -3
  180. data/vendor/libgit2/include/git2/sys/commit_graph.h +110 -59
  181. data/vendor/libgit2/include/git2/sys/config.h +80 -4
  182. data/vendor/libgit2/include/git2/sys/credential.h +4 -3
  183. data/vendor/libgit2/include/git2/sys/diff.h +21 -1
  184. data/vendor/libgit2/include/git2/sys/email.h +7 -0
  185. data/vendor/libgit2/include/git2/sys/errors.h +76 -0
  186. data/vendor/libgit2/include/git2/sys/filter.h +66 -3
  187. data/vendor/libgit2/include/git2/sys/hashsig.h +11 -0
  188. data/vendor/libgit2/include/git2/sys/index.h +3 -2
  189. data/vendor/libgit2/include/git2/sys/mempack.h +32 -2
  190. data/vendor/libgit2/include/git2/sys/merge.h +55 -7
  191. data/vendor/libgit2/include/git2/sys/midx.h +47 -4
  192. data/vendor/libgit2/include/git2/sys/odb_backend.h +10 -9
  193. data/vendor/libgit2/include/git2/sys/openssl.h +8 -1
  194. data/vendor/libgit2/include/git2/sys/path.h +12 -1
  195. data/vendor/libgit2/include/git2/sys/refdb_backend.h +40 -36
  196. data/vendor/libgit2/include/git2/sys/refs.h +3 -2
  197. data/vendor/libgit2/include/git2/sys/remote.h +53 -0
  198. data/vendor/libgit2/include/git2/sys/repository.h +63 -3
  199. data/vendor/libgit2/include/git2/sys/stream.h +26 -3
  200. data/vendor/libgit2/include/git2/sys/transport.h +87 -41
  201. data/vendor/libgit2/include/git2/tag.h +4 -1
  202. data/vendor/libgit2/include/git2/trace.h +9 -3
  203. data/vendor/libgit2/include/git2/transaction.h +3 -2
  204. data/vendor/libgit2/include/git2/transport.h +11 -3
  205. data/vendor/libgit2/include/git2/tree.h +20 -8
  206. data/vendor/libgit2/include/git2/types.h +26 -10
  207. data/vendor/libgit2/include/git2/version.h +63 -6
  208. data/vendor/libgit2/include/git2/worktree.h +30 -8
  209. data/vendor/libgit2/include/git2.h +1 -0
  210. data/vendor/libgit2/src/CMakeLists.txt +203 -420
  211. data/vendor/libgit2/src/README.md +12 -0
  212. data/vendor/libgit2/src/cli/CMakeLists.txt +56 -0
  213. data/vendor/libgit2/src/cli/README.md +26 -0
  214. data/vendor/libgit2/src/{branch.h → cli/cmd.c} +10 -8
  215. data/vendor/libgit2/src/cli/cmd.h +37 -0
  216. data/vendor/libgit2/src/cli/cmd_blame.c +287 -0
  217. data/vendor/libgit2/src/cli/cmd_cat_file.c +202 -0
  218. data/vendor/libgit2/src/cli/cmd_clone.c +190 -0
  219. data/vendor/libgit2/src/cli/cmd_config.c +241 -0
  220. data/vendor/libgit2/src/cli/cmd_hash_object.c +152 -0
  221. data/vendor/libgit2/src/cli/cmd_help.c +85 -0
  222. data/vendor/libgit2/src/cli/cmd_index_pack.c +114 -0
  223. data/vendor/libgit2/src/cli/cmd_init.c +102 -0
  224. data/vendor/libgit2/src/cli/common.c +168 -0
  225. data/vendor/libgit2/src/cli/common.h +63 -0
  226. data/vendor/libgit2/src/cli/error.h +51 -0
  227. data/vendor/libgit2/src/cli/main.c +134 -0
  228. data/vendor/libgit2/src/cli/opt.c +695 -0
  229. data/vendor/libgit2/src/cli/opt.h +367 -0
  230. data/vendor/libgit2/src/cli/opt_usage.c +263 -0
  231. data/vendor/libgit2/src/cli/opt_usage.h +40 -0
  232. data/vendor/libgit2/src/cli/progress.c +395 -0
  233. data/vendor/libgit2/src/cli/progress.h +129 -0
  234. data/vendor/libgit2/src/cli/sighandler.h +20 -0
  235. data/vendor/libgit2/src/cli/unix/sighandler.c +37 -0
  236. data/vendor/libgit2/src/cli/win32/precompiled.h +3 -0
  237. data/vendor/libgit2/src/cli/win32/sighandler.c +37 -0
  238. data/vendor/libgit2/src/libgit2/CMakeLists.txt +140 -0
  239. data/vendor/libgit2/src/{annotated_commit.c → libgit2/annotated_commit.c} +2 -2
  240. data/vendor/libgit2/src/{annotated_commit.h → libgit2/annotated_commit.h} +2 -2
  241. data/vendor/libgit2/src/{apply.c → libgit2/apply.c} +32 -34
  242. data/vendor/libgit2/src/{apply.h → libgit2/apply.h} +2 -2
  243. data/vendor/libgit2/src/{attr.c → libgit2/attr.c} +48 -31
  244. data/vendor/libgit2/src/{attr_file.c → libgit2/attr_file.c} +25 -20
  245. data/vendor/libgit2/src/{attr_file.h → libgit2/attr_file.h} +6 -4
  246. data/vendor/libgit2/src/{attrcache.c → libgit2/attrcache.c} +87 -46
  247. data/vendor/libgit2/src/{attrcache.h → libgit2/attrcache.h} +5 -9
  248. data/vendor/libgit2/src/{blame.c → libgit2/blame.c} +152 -57
  249. data/vendor/libgit2/src/{blame.h → libgit2/blame.h} +1 -0
  250. data/vendor/libgit2/src/{blame_git.c → libgit2/blame_git.c} +1 -2
  251. data/vendor/libgit2/src/{blob.c → libgit2/blob.c} +38 -29
  252. data/vendor/libgit2/src/{blob.h → libgit2/blob.h} +3 -3
  253. data/vendor/libgit2/src/{branch.c → libgit2/branch.c} +164 -118
  254. data/vendor/libgit2/src/libgit2/branch.h +31 -0
  255. data/vendor/libgit2/src/libgit2/buf.c +126 -0
  256. data/vendor/libgit2/src/libgit2/buf.h +50 -0
  257. data/vendor/libgit2/src/{cache.c → libgit2/cache.c} +22 -17
  258. data/vendor/libgit2/src/{cache.h → libgit2/cache.h} +7 -9
  259. data/vendor/libgit2/src/{checkout.c → libgit2/checkout.c} +107 -91
  260. data/vendor/libgit2/src/{checkout.h → libgit2/checkout.h} +0 -2
  261. data/vendor/libgit2/src/{cherrypick.c → libgit2/cherrypick.c} +14 -15
  262. data/vendor/libgit2/src/{clone.c → libgit2/clone.c} +254 -203
  263. data/vendor/libgit2/src/{clone.h → libgit2/clone.h} +4 -1
  264. data/vendor/libgit2/src/{commit.c → libgit2/commit.c} +296 -77
  265. data/vendor/libgit2/src/libgit2/commit.h +87 -0
  266. data/vendor/libgit2/src/{commit_graph.c → libgit2/commit_graph.c} +246 -135
  267. data/vendor/libgit2/src/{commit_graph.h → libgit2/commit_graph.h} +33 -8
  268. data/vendor/libgit2/src/{commit_list.c → libgit2/commit_list.c} +17 -7
  269. data/vendor/libgit2/src/{commit_list.h → libgit2/commit_list.h} +1 -0
  270. data/vendor/libgit2/src/libgit2/common.h +55 -0
  271. data/vendor/libgit2/src/{config.c → libgit2/config.c} +490 -360
  272. data/vendor/libgit2/src/libgit2/config.cmake.in +3 -0
  273. data/vendor/libgit2/src/{config.h → libgit2/config.h} +24 -6
  274. data/vendor/libgit2/src/{config_backend.h → libgit2/config_backend.h} +8 -10
  275. data/vendor/libgit2/src/{config_cache.c → libgit2/config_cache.c} +4 -5
  276. data/vendor/libgit2/src/{config_file.c → libgit2/config_file.c} +212 -183
  277. data/vendor/libgit2/src/libgit2/config_list.c +285 -0
  278. data/vendor/libgit2/src/libgit2/config_list.h +32 -0
  279. data/vendor/libgit2/src/libgit2/config_mem.c +374 -0
  280. data/vendor/libgit2/src/{config_parse.c → libgit2/config_parse.c} +37 -32
  281. data/vendor/libgit2/src/{config_snapshot.c → libgit2/config_snapshot.c} +24 -31
  282. data/vendor/libgit2/src/{crlf.c → libgit2/crlf.c} +24 -21
  283. data/vendor/libgit2/src/{describe.c → libgit2/describe.c} +62 -51
  284. data/vendor/libgit2/src/{diff.c → libgit2/diff.c} +44 -14
  285. data/vendor/libgit2/src/{diff.h → libgit2/diff.h} +8 -10
  286. data/vendor/libgit2/src/{diff_driver.c → libgit2/diff_driver.c} +46 -55
  287. data/vendor/libgit2/src/{diff_driver.h → libgit2/diff_driver.h} +5 -5
  288. data/vendor/libgit2/src/{diff_file.c → libgit2/diff_file.c} +45 -27
  289. data/vendor/libgit2/src/{diff_generate.c → libgit2/diff_generate.c} +70 -20
  290. data/vendor/libgit2/src/{diff_generate.h → libgit2/diff_generate.h} +5 -3
  291. data/vendor/libgit2/src/{diff_parse.c → libgit2/diff_parse.c} +22 -6
  292. data/vendor/libgit2/src/{diff_print.c → libgit2/diff_print.c} +192 -105
  293. data/vendor/libgit2/src/{diff_stats.c → libgit2/diff_stats.c} +40 -29
  294. data/vendor/libgit2/src/libgit2/diff_stats.h +18 -0
  295. data/vendor/libgit2/src/{diff_tform.c → libgit2/diff_tform.c} +49 -16
  296. data/vendor/libgit2/src/{diff_xdiff.c → libgit2/diff_xdiff.c} +4 -8
  297. data/vendor/libgit2/src/{diff_xdiff.h → libgit2/diff_xdiff.h} +1 -1
  298. data/vendor/libgit2/src/{email.c → libgit2/email.c} +58 -40
  299. data/vendor/libgit2/src/{email.h → libgit2/email.h} +1 -1
  300. data/vendor/libgit2/src/{transports/ssh.h → libgit2/experimental.h.in} +3 -4
  301. data/vendor/libgit2/src/{fetch.c → libgit2/fetch.c} +105 -30
  302. data/vendor/libgit2/src/{fetch.h → libgit2/fetch.h} +1 -3
  303. data/vendor/libgit2/src/{fetchhead.c → libgit2/fetchhead.c} +30 -28
  304. data/vendor/libgit2/src/{filter.c → libgit2/filter.c} +132 -58
  305. data/vendor/libgit2/src/{filter.h → libgit2/filter.h} +26 -5
  306. data/vendor/libgit2/src/{win32 → libgit2}/git2.rc +3 -3
  307. data/vendor/libgit2/src/libgit2/grafts.c +270 -0
  308. data/vendor/libgit2/src/libgit2/grafts.h +35 -0
  309. data/vendor/libgit2/src/{graph.c → libgit2/graph.c} +1 -1
  310. data/vendor/libgit2/src/libgit2/hashmap_oid.h +30 -0
  311. data/vendor/libgit2/src/{ident.c → libgit2/ident.c} +20 -20
  312. data/vendor/libgit2/src/{ignore.c → libgit2/ignore.c} +44 -39
  313. data/vendor/libgit2/src/{ignore.h → libgit2/ignore.h} +2 -2
  314. data/vendor/libgit2/src/{index.c → libgit2/index.c} +460 -276
  315. data/vendor/libgit2/src/{index.h → libgit2/index.h} +21 -5
  316. data/vendor/libgit2/src/libgit2/index_map.c +95 -0
  317. data/vendor/libgit2/src/libgit2/index_map.h +28 -0
  318. data/vendor/libgit2/src/{indexer.c → libgit2/indexer.c} +208 -124
  319. data/vendor/libgit2/src/{iterator.c → libgit2/iterator.c} +102 -71
  320. data/vendor/libgit2/src/{iterator.h → libgit2/iterator.h} +8 -5
  321. data/vendor/libgit2/src/libgit2/libgit2.c +268 -0
  322. data/vendor/libgit2/src/{mailmap.c → libgit2/mailmap.c} +39 -37
  323. data/vendor/libgit2/src/{merge.c → libgit2/merge.c} +83 -73
  324. data/vendor/libgit2/src/{merge.h → libgit2/merge.h} +1 -14
  325. data/vendor/libgit2/src/{merge_driver.c → libgit2/merge_driver.c} +4 -4
  326. data/vendor/libgit2/src/{merge_file.c → libgit2/merge_file.c} +13 -5
  327. data/vendor/libgit2/src/{message.c → libgit2/message.c} +21 -10
  328. data/vendor/libgit2/src/{midx.c → libgit2/midx.c} +174 -112
  329. data/vendor/libgit2/src/{midx.h → libgit2/midx.h} +17 -6
  330. data/vendor/libgit2/src/{mwindow.c → libgit2/mwindow.c} +53 -57
  331. data/vendor/libgit2/src/{mwindow.h → libgit2/mwindow.h} +9 -2
  332. data/vendor/libgit2/src/{notes.c → libgit2/notes.c} +29 -37
  333. data/vendor/libgit2/src/{object.c → libgit2/object.c} +166 -35
  334. data/vendor/libgit2/src/{object.h → libgit2/object.h} +17 -2
  335. data/vendor/libgit2/src/{odb.c → libgit2/odb.c} +261 -88
  336. data/vendor/libgit2/src/{odb.h → libgit2/odb.h} +44 -5
  337. data/vendor/libgit2/src/{odb_loose.c → libgit2/odb_loose.c} +192 -134
  338. data/vendor/libgit2/src/{odb_mempack.c → libgit2/odb_mempack.c} +67 -22
  339. data/vendor/libgit2/src/{odb_pack.c → libgit2/odb_pack.c} +162 -89
  340. data/vendor/libgit2/src/{oid.c → libgit2/oid.c} +171 -92
  341. data/vendor/libgit2/src/libgit2/oid.h +284 -0
  342. data/vendor/libgit2/src/libgit2/oidarray.c +89 -0
  343. data/vendor/libgit2/src/{oidarray.h → libgit2/oidarray.h} +5 -1
  344. data/vendor/libgit2/src/{pack-objects.c → libgit2/pack-objects.c} +126 -66
  345. data/vendor/libgit2/src/{pack-objects.h → libgit2/pack-objects.h} +28 -12
  346. data/vendor/libgit2/src/{pack.c → libgit2/pack.c} +146 -111
  347. data/vendor/libgit2/src/{pack.h → libgit2/pack.h} +45 -25
  348. data/vendor/libgit2/src/{parse.c → libgit2/parse.c} +8 -4
  349. data/vendor/libgit2/src/{parse.h → libgit2/parse.h} +1 -1
  350. data/vendor/libgit2/src/{patch.c → libgit2/patch.c} +3 -3
  351. data/vendor/libgit2/src/{patch.h → libgit2/patch.h} +8 -1
  352. data/vendor/libgit2/src/{patch_generate.c → libgit2/patch_generate.c} +51 -16
  353. data/vendor/libgit2/src/{patch_generate.h → libgit2/patch_generate.h} +5 -5
  354. data/vendor/libgit2/src/{patch_parse.c → libgit2/patch_parse.c} +42 -34
  355. data/vendor/libgit2/src/libgit2/path.c +375 -0
  356. data/vendor/libgit2/src/libgit2/path.h +68 -0
  357. data/vendor/libgit2/src/{pathspec.c → libgit2/pathspec.c} +7 -7
  358. data/vendor/libgit2/src/{pathspec.h → libgit2/pathspec.h} +2 -2
  359. data/vendor/libgit2/src/{proxy.c → libgit2/proxy.c} +4 -1
  360. data/vendor/libgit2/src/{proxy.h → libgit2/proxy.h} +1 -1
  361. data/vendor/libgit2/src/{push.c → libgit2/push.c} +116 -60
  362. data/vendor/libgit2/src/{push.h → libgit2/push.h} +5 -16
  363. data/vendor/libgit2/src/{reader.c → libgit2/reader.c} +9 -9
  364. data/vendor/libgit2/src/{reader.h → libgit2/reader.h} +2 -2
  365. data/vendor/libgit2/src/{rebase.c → libgit2/rebase.c} +147 -147
  366. data/vendor/libgit2/src/{refdb_fs.c → libgit2/refdb_fs.c} +639 -254
  367. data/vendor/libgit2/src/{reflog.c → libgit2/reflog.c} +8 -7
  368. data/vendor/libgit2/src/{reflog.h → libgit2/reflog.h} +3 -2
  369. data/vendor/libgit2/src/{refs.c → libgit2/refs.c} +67 -39
  370. data/vendor/libgit2/src/{refs.h → libgit2/refs.h} +8 -3
  371. data/vendor/libgit2/src/{refspec.c → libgit2/refspec.c} +60 -38
  372. data/vendor/libgit2/src/{refspec.h → libgit2/refspec.h} +13 -2
  373. data/vendor/libgit2/src/{remote.c → libgit2/remote.c} +821 -454
  374. data/vendor/libgit2/src/libgit2/remote.h +101 -0
  375. data/vendor/libgit2/src/{repository.c → libgit2/repository.c} +1377 -594
  376. data/vendor/libgit2/src/{repository.h → libgit2/repository.h} +43 -12
  377. data/vendor/libgit2/src/{reset.c → libgit2/reset.c} +8 -5
  378. data/vendor/libgit2/src/{revert.c → libgit2/revert.c} +18 -22
  379. data/vendor/libgit2/src/{revparse.c → libgit2/revparse.c} +76 -44
  380. data/vendor/libgit2/src/{revwalk.c → libgit2/revwalk.c} +48 -19
  381. data/vendor/libgit2/src/{revwalk.h → libgit2/revwalk.h} +3 -3
  382. data/vendor/libgit2/src/{libgit2.c → libgit2/settings.c} +162 -95
  383. data/vendor/libgit2/src/{settings.h → libgit2/settings.h} +6 -2
  384. data/vendor/libgit2/src/{signature.c → libgit2/signature.c} +144 -21
  385. data/vendor/libgit2/src/{signature.h → libgit2/signature.h} +1 -2
  386. data/vendor/libgit2/src/{stash.c → libgit2/stash.c} +243 -68
  387. data/vendor/libgit2/src/{status.c → libgit2/status.c} +5 -2
  388. data/vendor/libgit2/src/{strarray.c → libgit2/strarray.c} +1 -0
  389. data/vendor/libgit2/src/libgit2/strarray.h +25 -0
  390. data/vendor/libgit2/src/{streams → libgit2/streams}/mbedtls.c +62 -67
  391. data/vendor/libgit2/src/{streams → libgit2/streams}/openssl.c +41 -24
  392. data/vendor/libgit2/src/{streams → libgit2/streams}/openssl.h +2 -0
  393. data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_dynamic.c +11 -3
  394. data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_dynamic.h +6 -3
  395. data/vendor/libgit2/src/libgit2/streams/schannel.c +715 -0
  396. data/vendor/libgit2/src/libgit2/streams/schannel.h +28 -0
  397. data/vendor/libgit2/src/libgit2/streams/socket.c +428 -0
  398. data/vendor/libgit2/src/{streams → libgit2/streams}/socket.h +3 -1
  399. data/vendor/libgit2/src/{streams → libgit2/streams}/stransport.c +79 -19
  400. data/vendor/libgit2/src/{streams → libgit2/streams}/tls.c +5 -0
  401. data/vendor/libgit2/src/{submodule.c → libgit2/submodule.c} +279 -220
  402. data/vendor/libgit2/src/{submodule.h → libgit2/submodule.h} +10 -11
  403. data/vendor/libgit2/src/libgit2/sysdir.c +650 -0
  404. data/vendor/libgit2/src/{sysdir.h → libgit2/sysdir.h} +55 -18
  405. data/vendor/libgit2/src/{tag.c → libgit2/tag.c} +74 -43
  406. data/vendor/libgit2/src/{tag.h → libgit2/tag.h} +2 -2
  407. data/vendor/libgit2/src/{trace.c → libgit2/trace.c} +1 -14
  408. data/vendor/libgit2/src/{trace.h → libgit2/trace.h} +5 -22
  409. data/vendor/libgit2/src/{trailer.c → libgit2/trailer.c} +7 -7
  410. data/vendor/libgit2/src/{transaction.c → libgit2/transaction.c} +27 -21
  411. data/vendor/libgit2/src/{transaction.h → libgit2/transaction.h} +4 -1
  412. data/vendor/libgit2/src/{transport.c → libgit2/transport.c} +14 -11
  413. data/vendor/libgit2/src/{transports → libgit2/transports}/auth.c +7 -9
  414. data/vendor/libgit2/src/{transports → libgit2/transports}/auth.h +3 -5
  415. data/vendor/libgit2/src/{transports/auth_negotiate.c → libgit2/transports/auth_gssapi.c} +44 -45
  416. data/vendor/libgit2/src/{transports → libgit2/transports}/auth_negotiate.h +1 -1
  417. data/vendor/libgit2/src/{transports → libgit2/transports}/auth_ntlm.h +1 -2
  418. data/vendor/libgit2/src/{transports/auth_ntlm.c → libgit2/transports/auth_ntlmclient.c} +22 -22
  419. data/vendor/libgit2/src/libgit2/transports/auth_sspi.c +341 -0
  420. data/vendor/libgit2/src/{transports → libgit2/transports}/credential.c +1 -1
  421. data/vendor/libgit2/src/{transports → libgit2/transports}/git.c +16 -19
  422. data/vendor/libgit2/src/{transports → libgit2/transports}/http.c +49 -24
  423. data/vendor/libgit2/src/{transports → libgit2/transports}/http.h +0 -11
  424. data/vendor/libgit2/src/{transports → libgit2/transports}/httpclient.c +188 -134
  425. data/vendor/libgit2/src/{transports → libgit2/transports}/httpclient.h +10 -0
  426. data/vendor/libgit2/src/libgit2/transports/httpparser.c +128 -0
  427. data/vendor/libgit2/src/libgit2/transports/httpparser.h +99 -0
  428. data/vendor/libgit2/src/{transports → libgit2/transports}/local.c +159 -127
  429. data/vendor/libgit2/src/{transports → libgit2/transports}/smart.c +142 -165
  430. data/vendor/libgit2/src/{transports → libgit2/transports}/smart.h +56 -36
  431. data/vendor/libgit2/src/{transports → libgit2/transports}/smart_pkt.c +307 -74
  432. data/vendor/libgit2/src/{transports → libgit2/transports}/smart_protocol.c +297 -97
  433. data/vendor/libgit2/src/libgit2/transports/ssh.c +85 -0
  434. data/vendor/libgit2/src/libgit2/transports/ssh_exec.c +347 -0
  435. data/vendor/libgit2/src/libgit2/transports/ssh_exec.h +26 -0
  436. data/vendor/libgit2/src/{transports/ssh.c → libgit2/transports/ssh_libssh2.c} +414 -268
  437. data/vendor/libgit2/src/libgit2/transports/ssh_libssh2.h +28 -0
  438. data/vendor/libgit2/src/{transports → libgit2/transports}/winhttp.c +101 -75
  439. data/vendor/libgit2/src/{tree-cache.c → libgit2/tree-cache.c} +30 -20
  440. data/vendor/libgit2/src/{tree-cache.h → libgit2/tree-cache.h} +7 -5
  441. data/vendor/libgit2/src/{tree.c → libgit2/tree.c} +128 -110
  442. data/vendor/libgit2/src/{tree.h → libgit2/tree.h} +7 -6
  443. data/vendor/libgit2/src/{worktree.c → libgit2/worktree.c} +160 -121
  444. data/vendor/libgit2/src/{worktree.h → libgit2/worktree.h} +1 -1
  445. data/vendor/libgit2/src/util/CMakeLists.txt +77 -0
  446. data/vendor/libgit2/src/{alloc.c → util/alloc.c} +69 -7
  447. data/vendor/libgit2/src/util/alloc.h +65 -0
  448. data/vendor/libgit2/src/util/allocators/debugalloc.c +73 -0
  449. data/vendor/libgit2/src/util/allocators/debugalloc.h +17 -0
  450. data/vendor/libgit2/src/util/allocators/failalloc.c +32 -0
  451. data/vendor/libgit2/src/util/allocators/failalloc.h +17 -0
  452. data/vendor/libgit2/src/util/allocators/stdalloc.c +37 -0
  453. data/vendor/libgit2/src/{allocators → util/allocators}/stdalloc.h +1 -1
  454. data/vendor/libgit2/src/util/allocators/win32_leakcheck.c +50 -0
  455. data/vendor/libgit2/src/{allocators → util/allocators}/win32_leakcheck.h +1 -1
  456. data/vendor/libgit2/src/{array.h → util/array.h} +25 -19
  457. data/vendor/libgit2/src/{assert_safe.h → util/assert_safe.h} +16 -0
  458. data/vendor/libgit2/src/{cc-compat.h → util/cc-compat.h} +5 -1
  459. data/vendor/libgit2/src/util/ctype_compat.h +70 -0
  460. data/vendor/libgit2/src/{date.c → util/date.c} +35 -33
  461. data/vendor/libgit2/src/util/date.h +45 -0
  462. data/vendor/libgit2/src/util/errors.c +401 -0
  463. data/vendor/libgit2/src/{errors.h → util/errors.h} +22 -19
  464. data/vendor/libgit2/src/{filebuf.c → util/filebuf.c} +35 -30
  465. data/vendor/libgit2/src/{filebuf.h → util/filebuf.h} +21 -8
  466. data/vendor/libgit2/src/{path.c → util/fs_path.c} +591 -615
  467. data/vendor/libgit2/src/{path.h → util/fs_path.h} +257 -181
  468. data/vendor/libgit2/src/{futils.c → util/futils.c} +144 -95
  469. data/vendor/libgit2/src/{futils.h → util/futils.h} +40 -18
  470. data/vendor/libgit2/src/{features.h.in → util/git2_features.h.in} +33 -2
  471. data/vendor/libgit2/src/{common.h → util/git2_util.h} +26 -59
  472. data/vendor/libgit2/src/util/hash/builtin.c +53 -0
  473. data/vendor/libgit2/src/{hash/sha1/openssl.h → util/hash/builtin.h} +6 -6
  474. data/vendor/libgit2/src/{hash/sha1 → util/hash}/collisiondetect.c +3 -3
  475. data/vendor/libgit2/src/{hash/sha1 → util/hash}/collisiondetect.h +3 -3
  476. data/vendor/libgit2/src/util/hash/common_crypto.c +112 -0
  477. data/vendor/libgit2/src/{hash/sha1 → util/hash}/common_crypto.h +11 -3
  478. data/vendor/libgit2/src/util/hash/mbedtls.c +92 -0
  479. data/vendor/libgit2/src/{hash/sha1 → util/hash}/mbedtls.h +14 -4
  480. data/vendor/libgit2/src/util/hash/openssl.c +347 -0
  481. data/vendor/libgit2/src/util/hash/openssl.h +61 -0
  482. data/vendor/libgit2/src/util/hash/rfc6234/sha.h +243 -0
  483. data/vendor/libgit2/src/util/hash/rfc6234/sha224-256.c +601 -0
  484. data/vendor/libgit2/src/util/hash/sha.h +73 -0
  485. data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/sha1.c +1 -1
  486. data/vendor/libgit2/src/util/hash/win32.c +549 -0
  487. data/vendor/libgit2/src/util/hash/win32.h +60 -0
  488. data/vendor/libgit2/src/util/hash.c +158 -0
  489. data/vendor/libgit2/src/util/hash.h +61 -0
  490. data/vendor/libgit2/src/util/hashmap.h +424 -0
  491. data/vendor/libgit2/src/util/hashmap_str.h +43 -0
  492. data/vendor/libgit2/src/{integer.h → util/integer.h} +3 -1
  493. data/vendor/libgit2/src/{map.h → util/map.h} +1 -1
  494. data/vendor/libgit2/src/util/net.c +1160 -0
  495. data/vendor/libgit2/src/{net.h → util/net.h} +45 -4
  496. data/vendor/libgit2/src/{pool.c → util/pool.c} +1 -1
  497. data/vendor/libgit2/src/{pool.h → util/pool.h} +6 -1
  498. data/vendor/libgit2/src/{posix.c → util/posix.c} +57 -3
  499. data/vendor/libgit2/src/{posix.h → util/posix.h} +26 -1
  500. data/vendor/libgit2/src/{pqueue.h → util/pqueue.h} +3 -3
  501. data/vendor/libgit2/src/util/process.h +222 -0
  502. data/vendor/libgit2/src/util/rand.c +230 -0
  503. data/vendor/libgit2/src/util/rand.h +37 -0
  504. data/vendor/libgit2/src/{regexp.c → util/regexp.c} +5 -5
  505. data/vendor/libgit2/src/{regexp.h → util/regexp.h} +1 -1
  506. data/vendor/libgit2/src/{runtime.c → util/runtime.c} +1 -1
  507. data/vendor/libgit2/src/{runtime.h → util/runtime.h} +1 -1
  508. data/vendor/libgit2/src/{sortedcache.c → util/sortedcache.c} +15 -14
  509. data/vendor/libgit2/src/{sortedcache.h → util/sortedcache.h} +5 -5
  510. data/vendor/libgit2/src/util/staticstr.h +66 -0
  511. data/vendor/libgit2/src/{buffer.c → util/str.c} +159 -153
  512. data/vendor/libgit2/src/util/str.h +357 -0
  513. data/vendor/libgit2/src/util/strlist.c +108 -0
  514. data/vendor/libgit2/src/util/strlist.h +36 -0
  515. data/vendor/libgit2/src/{thread.c → util/thread.c} +1 -1
  516. data/vendor/libgit2/src/{thread.h → util/thread.h} +23 -22
  517. data/vendor/libgit2/src/{tsort.c → util/tsort.c} +1 -1
  518. data/vendor/libgit2/src/{unix → util/unix}/map.c +1 -3
  519. data/vendor/libgit2/src/{unix → util/unix}/posix.h +1 -6
  520. data/vendor/libgit2/src/util/unix/process.c +629 -0
  521. data/vendor/libgit2/src/{unix → util/unix}/realpath.c +24 -8
  522. data/vendor/libgit2/src/{utf8.c → util/utf8.c} +1 -1
  523. data/vendor/libgit2/src/{utf8.h → util/utf8.h} +1 -1
  524. data/vendor/libgit2/src/{util.c → util/util.c} +24 -19
  525. data/vendor/libgit2/src/{util.h → util/util.h} +30 -81
  526. data/vendor/libgit2/src/{varint.h → util/varint.h} +1 -1
  527. data/vendor/libgit2/src/{vector.c → util/vector.c} +3 -3
  528. data/vendor/libgit2/src/{vector.h → util/vector.h} +4 -4
  529. data/vendor/libgit2/src/{wildmatch.h → util/wildmatch.h} +1 -1
  530. data/vendor/libgit2/src/{win32 → util/win32}/dir.h +1 -1
  531. data/vendor/libgit2/src/{win32 → util/win32}/error.c +1 -1
  532. data/vendor/libgit2/src/{win32 → util/win32}/error.h +1 -1
  533. data/vendor/libgit2/src/{win32 → util/win32}/map.c +1 -1
  534. data/vendor/libgit2/src/{win32 → util/win32}/path_w32.c +148 -17
  535. data/vendor/libgit2/src/{win32 → util/win32}/path_w32.h +3 -1
  536. data/vendor/libgit2/src/{win32 → util/win32}/posix.h +1 -2
  537. data/vendor/libgit2/src/{win32 → util/win32}/posix_w32.c +42 -35
  538. data/vendor/libgit2/src/util/win32/precompiled.c +1 -0
  539. data/vendor/libgit2/src/{win32 → util/win32}/precompiled.h +1 -1
  540. data/vendor/libgit2/src/util/win32/process.c +506 -0
  541. data/vendor/libgit2/src/{win32 → util/win32}/thread.h +1 -1
  542. data/vendor/libgit2/src/util/win32/utf-conv.c +144 -0
  543. data/vendor/libgit2/src/util/win32/utf-conv.h +127 -0
  544. data/vendor/libgit2/src/{win32 → util/win32}/w32_buffer.c +2 -3
  545. data/vendor/libgit2/src/{win32 → util/win32}/w32_buffer.h +3 -4
  546. data/vendor/libgit2/src/{win32 → util/win32}/w32_leakcheck.c +1 -1
  547. data/vendor/libgit2/src/{win32 → util/win32}/w32_leakcheck.h +1 -1
  548. data/vendor/libgit2/src/{win32 → util/win32}/w32_util.c +1 -1
  549. data/vendor/libgit2/src/{win32 → util/win32}/w32_util.h +1 -1
  550. data/vendor/libgit2/src/{zstream.c → util/zstream.c} +5 -5
  551. data/vendor/libgit2/src/{zstream.h → util/zstream.h} +5 -5
  552. metadata +431 -362
  553. data/vendor/libgit2/cmake/FindIconv.cmake +0 -45
  554. data/vendor/libgit2/deps/http-parser/CMakeLists.txt +0 -6
  555. data/vendor/libgit2/deps/http-parser/COPYING +0 -23
  556. data/vendor/libgit2/deps/http-parser/http_parser.c +0 -2182
  557. data/vendor/libgit2/deps/http-parser/http_parser.h +0 -305
  558. data/vendor/libgit2/deps/zlib/COPYING +0 -27
  559. data/vendor/libgit2/include/git2/sys/reflog.h +0 -21
  560. data/vendor/libgit2/src/alloc.h +0 -40
  561. data/vendor/libgit2/src/allocators/failalloc.c +0 -92
  562. data/vendor/libgit2/src/allocators/failalloc.h +0 -23
  563. data/vendor/libgit2/src/allocators/stdalloc.c +0 -150
  564. data/vendor/libgit2/src/allocators/win32_leakcheck.c +0 -118
  565. data/vendor/libgit2/src/buffer.h +0 -374
  566. data/vendor/libgit2/src/commit.h +0 -46
  567. data/vendor/libgit2/src/config_entries.c +0 -237
  568. data/vendor/libgit2/src/config_entries.h +0 -24
  569. data/vendor/libgit2/src/config_mem.c +0 -220
  570. data/vendor/libgit2/src/errors.c +0 -238
  571. data/vendor/libgit2/src/hash/sha1/common_crypto.c +0 -57
  572. data/vendor/libgit2/src/hash/sha1/generic.c +0 -300
  573. data/vendor/libgit2/src/hash/sha1/generic.h +0 -19
  574. data/vendor/libgit2/src/hash/sha1/mbedtls.c +0 -46
  575. data/vendor/libgit2/src/hash/sha1/openssl.c +0 -59
  576. data/vendor/libgit2/src/hash/sha1/win32.c +0 -333
  577. data/vendor/libgit2/src/hash/sha1/win32.h +0 -128
  578. data/vendor/libgit2/src/hash/sha1.h +0 -38
  579. data/vendor/libgit2/src/hash.c +0 -110
  580. data/vendor/libgit2/src/hash.h +0 -46
  581. data/vendor/libgit2/src/idxmap.c +0 -157
  582. data/vendor/libgit2/src/idxmap.h +0 -177
  583. data/vendor/libgit2/src/khash.h +0 -615
  584. data/vendor/libgit2/src/libgit2.h +0 -15
  585. data/vendor/libgit2/src/message.h +0 -17
  586. data/vendor/libgit2/src/net.c +0 -540
  587. data/vendor/libgit2/src/netops.c +0 -125
  588. data/vendor/libgit2/src/netops.h +0 -68
  589. data/vendor/libgit2/src/offmap.c +0 -101
  590. data/vendor/libgit2/src/offmap.h +0 -133
  591. data/vendor/libgit2/src/oid.h +0 -51
  592. data/vendor/libgit2/src/oidarray.c +0 -43
  593. data/vendor/libgit2/src/oidmap.c +0 -107
  594. data/vendor/libgit2/src/oidmap.h +0 -128
  595. data/vendor/libgit2/src/remote.h +0 -55
  596. data/vendor/libgit2/src/streams/socket.c +0 -239
  597. data/vendor/libgit2/src/strmap.c +0 -100
  598. data/vendor/libgit2/src/strmap.h +0 -131
  599. data/vendor/libgit2/src/sysdir.c +0 -347
  600. data/vendor/libgit2/src/threadstate.c +0 -84
  601. data/vendor/libgit2/src/threadstate.h +0 -24
  602. data/vendor/libgit2/src/win32/findfile.c +0 -230
  603. data/vendor/libgit2/src/win32/findfile.h +0 -19
  604. data/vendor/libgit2/src/win32/utf-conv.c +0 -146
  605. data/vendor/libgit2/src/win32/utf-conv.h +0 -60
  606. /data/vendor/libgit2/{src → deps}/xdiff/xemit.h +0 -0
  607. /data/vendor/libgit2/{src → deps}/xdiff/xprepare.h +0 -0
  608. /data/vendor/libgit2/{src → deps}/xdiff/xtypes.h +0 -0
  609. /data/vendor/libgit2/src/{win32 → cli/win32}/precompiled.c +0 -0
  610. /data/vendor/libgit2/src/{attr.h → libgit2/attr.h} +0 -0
  611. /data/vendor/libgit2/src/{blame_git.h → libgit2/blame_git.h} +0 -0
  612. /data/vendor/libgit2/src/{config_parse.h → libgit2/config_parse.h} +0 -0
  613. /data/vendor/libgit2/src/{delta.c → libgit2/delta.c} +0 -0
  614. /data/vendor/libgit2/src/{delta.h → libgit2/delta.h} +0 -0
  615. /data/vendor/libgit2/src/{diff_file.h → libgit2/diff_file.h} +0 -0
  616. /data/vendor/libgit2/src/{diff_parse.h → libgit2/diff_parse.h} +0 -0
  617. /data/vendor/libgit2/src/{diff_tform.h → libgit2/diff_tform.h} +0 -0
  618. /data/vendor/libgit2/src/{fetchhead.h → libgit2/fetchhead.h} +0 -0
  619. /data/vendor/libgit2/src/{hashsig.c → libgit2/hashsig.c} +0 -0
  620. /data/vendor/libgit2/src/{indexer.h → libgit2/indexer.h} +0 -0
  621. /data/vendor/libgit2/src/{mailmap.h → libgit2/mailmap.h} +0 -0
  622. /data/vendor/libgit2/src/{merge_driver.h → libgit2/merge_driver.h} +0 -0
  623. /data/vendor/libgit2/src/{notes.h → libgit2/notes.h} +0 -0
  624. /data/vendor/libgit2/src/{object_api.c → libgit2/object_api.c} +0 -0
  625. /data/vendor/libgit2/src/{patch_parse.h → libgit2/patch_parse.h} +0 -0
  626. /data/vendor/libgit2/src/{refdb.c → libgit2/refdb.c} +0 -0
  627. /data/vendor/libgit2/src/{refdb.h → libgit2/refdb.h} +0 -0
  628. /data/vendor/libgit2/src/{repo_template.h → libgit2/repo_template.h} +0 -0
  629. /data/vendor/libgit2/src/{status.h → libgit2/status.h} +0 -0
  630. /data/vendor/libgit2/src/{stream.h → libgit2/stream.h} +0 -0
  631. /data/vendor/libgit2/src/{streams → libgit2/streams}/mbedtls.h +0 -0
  632. /data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_legacy.c +0 -0
  633. /data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_legacy.h +0 -0
  634. /data/vendor/libgit2/src/{streams → libgit2/streams}/registry.c +0 -0
  635. /data/vendor/libgit2/src/{streams → libgit2/streams}/registry.h +0 -0
  636. /data/vendor/libgit2/src/{streams → libgit2/streams}/stransport.h +0 -0
  637. /data/vendor/libgit2/src/{streams → libgit2/streams}/tls.h +0 -0
  638. /data/vendor/libgit2/src/{transports → libgit2/transports}/credential_helpers.c +0 -0
  639. /data/vendor/libgit2/src/{userdiff.h → libgit2/userdiff.h} +0 -0
  640. /data/vendor/libgit2/src/{bitvec.h → util/bitvec.h} +0 -0
  641. /data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/sha1.h +0 -0
  642. /data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/ubc_check.c +0 -0
  643. /data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/ubc_check.h +0 -0
  644. /data/vendor/libgit2/src/{pqueue.c → util/pqueue.c} +0 -0
  645. /data/vendor/libgit2/src/{strnlen.h → util/strnlen.h} +0 -0
  646. /data/vendor/libgit2/src/{unix → util/unix}/pthread.h +0 -0
  647. /data/vendor/libgit2/src/{varint.c → util/varint.c} +0 -0
  648. /data/vendor/libgit2/src/{wildmatch.c → util/wildmatch.c} +0 -0
  649. /data/vendor/libgit2/src/{win32 → util/win32}/dir.c +0 -0
  650. /data/vendor/libgit2/src/{win32 → util/win32}/mingw-compat.h +0 -0
  651. /data/vendor/libgit2/src/{win32 → util/win32}/msvc-compat.h +0 -0
  652. /data/vendor/libgit2/src/{win32 → util/win32}/reparse.h +0 -0
  653. /data/vendor/libgit2/src/{win32 → util/win32}/thread.c +0 -0
  654. /data/vendor/libgit2/src/{win32 → util/win32}/version.h +0 -0
  655. /data/vendor/libgit2/src/{win32 → util/win32}/w32_common.h +0 -0
  656. /data/vendor/libgit2/src/{win32 → util/win32}/win32-compat.h +0 -0
@@ -16,9 +16,9 @@
16
16
  #include "map.h"
17
17
  #include "mwindow.h"
18
18
  #include "odb.h"
19
- #include "offmap.h"
20
- #include "oidmap.h"
21
19
  #include "zstream.h"
20
+ #include "oid.h"
21
+ #include "hashmap_oid.h"
22
22
 
23
23
  /**
24
24
  * Function type for callbacks from git_pack_foreach_entry_offset.
@@ -32,7 +32,7 @@ typedef int git_pack_foreach_entry_offset_cb(
32
32
 
33
33
  #define PACK_SIGNATURE 0x5041434b /* "PACK" */
34
34
  #define PACK_VERSION 2
35
- #define pack_version_ok(v) ((v) == htonl(2) || (v) == htonl(3))
35
+ #define pack_version_ok(v) ((v) == htonl(2))
36
36
  struct git_pack_header {
37
37
  uint32_t hdr_signature;
38
38
  uint32_t hdr_version;
@@ -82,12 +82,23 @@ typedef git_array_t(struct pack_chain_elem) git_dependency_chain;
82
82
  #define GIT_PACK_CACHE_MEMORY_LIMIT 16 * 1024 * 1024
83
83
  #define GIT_PACK_CACHE_SIZE_LIMIT 1024 * 1024 /* don't bother caching anything over 1MB */
84
84
 
85
+ struct git_pack_entry {
86
+ off64_t offset;
87
+ git_oid id;
88
+ struct git_pack_file *p;
89
+ };
90
+
91
+ GIT_HASHMAP_STRUCT(git_pack_offsetmap, off64_t, git_pack_cache_entry *);
92
+
93
+ GIT_HASHMAP_OID_STRUCT(git_pack_oidmap, struct git_pack_entry *);
94
+ GIT_HASHMAP_OID_PROTOTYPES(git_pack_oidmap, struct git_pack_entry *);
95
+
85
96
  typedef struct {
86
97
  size_t memory_used;
87
98
  size_t memory_limit;
88
99
  size_t use_ctr;
89
100
  git_mutex lock;
90
- git_offmap *entries;
101
+ git_pack_offsetmap entries;
91
102
  } git_pack_cache;
92
103
 
93
104
  struct git_pack_file {
@@ -98,13 +109,20 @@ struct git_pack_file {
98
109
 
99
110
  uint32_t num_objects;
100
111
  uint32_t num_bad_objects;
101
- git_oid *bad_object_sha1; /* array of git_oid */
112
+ git_oid *bad_object_ids; /* array of git_oid */
113
+
114
+ git_oid_t oid_type;
115
+ unsigned oid_hexsize:7,
116
+ oid_size:6,
117
+ pack_local:1,
118
+ pack_keep:1,
119
+ has_cache:1;
102
120
 
103
121
  int index_version;
104
122
  git_time_t mtime;
105
- unsigned pack_local:1, pack_keep:1, has_cache:1;
106
- git_oidmap *idx_cache;
107
- git_oid **oids;
123
+
124
+ git_pack_oidmap idx_cache;
125
+ unsigned char **ids;
108
126
 
109
127
  git_pack_cache bases; /* delta base cache */
110
128
 
@@ -115,23 +133,22 @@ struct git_pack_file {
115
133
  };
116
134
 
117
135
  /**
118
- * Return the position where an OID (or a prefix) would be inserted within the
119
- * OID Lookup Table of an .idx file. This performs binary search between the lo
120
- * and hi indices.
136
+ * Return the position where an OID (or a prefix) would be inserted within
137
+ * the OID Lookup Table of an .idx file. This performs binary search
138
+ * between the lo and hi indices.
121
139
  *
122
- * The stride parameter is provided because .idx files version 1 store the OIDs
123
- * interleaved with the 4-byte file offsets of the objects within the .pack
124
- * file (stride = 24), whereas files with version 2 store them in a contiguous
125
- * flat array (stride = 20).
140
+ * The stride parameter is provided because .idx files version 1 store the
141
+ * OIDs interleaved with the 4-byte file offsets of the objects within the
142
+ * .pack file (stride = oid_size + 4), whereas files with version 2 store
143
+ * them in a contiguous flat array (stride = oid_size).
126
144
  */
127
- int git_pack__lookup_sha1(const void *oid_lookup_table, size_t stride, unsigned lo,
128
- unsigned hi, const unsigned char *oid_prefix);
129
-
130
- struct git_pack_entry {
131
- off64_t offset;
132
- git_oid sha1;
133
- struct git_pack_file *p;
134
- };
145
+ int git_pack__lookup_id(
146
+ const void *id_lookup_table,
147
+ size_t stride,
148
+ unsigned lo,
149
+ unsigned hi,
150
+ const unsigned char *id_prefix,
151
+ const git_oid_t oid_type);
135
152
 
136
153
  typedef struct git_packfile_stream {
137
154
  off64_t curpos;
@@ -173,12 +190,15 @@ int get_delta_base(
173
190
  off64_t delta_obj_offset);
174
191
 
175
192
  void git_packfile_free(struct git_pack_file *p, bool unlink_packfile);
176
- int git_packfile_alloc(struct git_pack_file **pack_out, const char *path);
193
+ int git_packfile_alloc(
194
+ struct git_pack_file **pack_out,
195
+ const char *path,
196
+ git_oid_t oid_type);
177
197
 
178
198
  int git_pack_entry_find(
179
199
  struct git_pack_entry *e,
180
200
  struct git_pack_file *p,
181
- const git_oid *short_oid,
201
+ const git_oid *short_id,
182
202
  size_t len);
183
203
  int git_pack_foreach_entry(
184
204
  struct git_pack_file *p,
@@ -5,6 +5,7 @@
5
5
  * a Linking Exception. For full terms see the included COPYING file.
6
6
  */
7
7
  #include "parse.h"
8
+ #include "oid.h"
8
9
 
9
10
  int git_parse_ctx_init(git_parse_ctx *ctx, const char *content, size_t content_len)
10
11
  {
@@ -101,13 +102,16 @@ int git_parse_advance_digit(int64_t *out, git_parse_ctx *ctx, int base)
101
102
  return 0;
102
103
  }
103
104
 
104
- int git_parse_advance_oid(git_oid *out, git_parse_ctx *ctx)
105
+ int git_parse_advance_oid(git_oid *out, git_parse_ctx *ctx, git_oid_t oid_type)
105
106
  {
106
- if (ctx->line_len < GIT_OID_HEXSZ)
107
+ size_t oid_hexsize = git_oid_hexsize(oid_type);
108
+ GIT_ASSERT(oid_hexsize);
109
+
110
+ if (ctx->line_len < oid_hexsize)
107
111
  return -1;
108
- if ((git_oid_fromstrn(out, ctx->line, GIT_OID_HEXSZ)) < 0)
112
+ if ((git_oid__fromstrn(out, ctx->line, oid_hexsize, oid_type)) < 0)
109
113
  return -1;
110
- git_parse_advance_chars(ctx, GIT_OID_HEXSZ);
114
+ git_parse_advance_chars(ctx, oid_hexsize);
111
115
  return 0;
112
116
  }
113
117
 
@@ -50,7 +50,7 @@ int git_parse_advance_expected(
50
50
  int git_parse_advance_ws(git_parse_ctx *ctx);
51
51
  int git_parse_advance_nl(git_parse_ctx *ctx);
52
52
  int git_parse_advance_digit(int64_t *out, git_parse_ctx *ctx, int base);
53
- int git_parse_advance_oid(git_oid *out, git_parse_ctx *ctx);
53
+ int git_parse_advance_oid(git_oid *out, git_parse_ctx *ctx, git_oid_t oid_type);
54
54
 
55
55
  enum GIT_PARSE_PEEK_FLAGS {
56
56
  GIT_PARSE_PEEK_SKIP_WHITESPACE = (1 << 0)
@@ -76,15 +76,15 @@ size_t git_patch_size(
76
76
  out += patch->header_size;
77
77
 
78
78
  if (include_file_headers) {
79
- git_buf file_header = GIT_BUF_INIT;
79
+ git_str file_header = GIT_STR_INIT;
80
80
 
81
81
  if (git_diff_delta__format_file_header(
82
82
  &file_header, patch->delta, NULL, NULL, 0, true) < 0)
83
83
  git_error_clear();
84
84
  else
85
- out += git_buf_len(&file_header);
85
+ out += git_str_len(&file_header);
86
86
 
87
- git_buf_dispose(&file_header);
87
+ git_str_dispose(&file_header);
88
88
  }
89
89
 
90
90
  return out;
@@ -59,10 +59,17 @@ typedef struct {
59
59
  * This prefix will be removed when looking for files. The default is 1.
60
60
  */
61
61
  uint32_t prefix_len;
62
+
63
+ /**
64
+ * The type of object IDs in the patch file. The default is
65
+ * `GIT_OID_DEFAULT`.
66
+ */
67
+ git_oid_t oid_type;
62
68
  } git_patch_options;
63
69
 
64
- #define GIT_PATCH_OPTIONS_INIT { 1 }
70
+ #define GIT_PATCH_OPTIONS_INIT { 1, GIT_OID_DEFAULT }
65
71
 
72
+ extern int git_patch__to_buf(git_str *out, git_patch *patch);
66
73
  extern void git_patch_free(git_patch *patch);
67
74
 
68
75
  #endif
@@ -81,7 +81,8 @@ static void patch_generated_init_common(git_patch_generated *patch)
81
81
 
82
82
  static int patch_generated_normalize_options(
83
83
  git_diff_options *out,
84
- const git_diff_options *opts)
84
+ const git_diff_options *opts,
85
+ git_repository *repo)
85
86
  {
86
87
  if (opts) {
87
88
  GIT_ERROR_CHECK_VERSION(opts, GIT_DIFF_OPTIONS_VERSION, "git_diff_options");
@@ -91,6 +92,23 @@ static int patch_generated_normalize_options(
91
92
  memcpy(out, &default_opts, sizeof(git_diff_options));
92
93
  }
93
94
 
95
+ if (repo && opts && opts->oid_type && repo->oid_type != opts->oid_type) {
96
+ /*
97
+ * This limitation feels unnecessary - we should consider
98
+ * allowing users to generate diffs with a different object
99
+ * ID format than the repository.
100
+ */
101
+ git_error_set(GIT_ERROR_INVALID,
102
+ "specified object ID type does not match repository object ID type");
103
+ return -1;
104
+ } else if (repo) {
105
+ out->oid_type = repo->oid_type;
106
+ } else if (opts && opts->oid_type) {
107
+ out->oid_type = opts->oid_type;
108
+ } else {
109
+ out->oid_type = GIT_OID_DEFAULT;
110
+ }
111
+
94
112
  out->old_prefix = opts && opts->old_prefix ?
95
113
  git__strdup(opts->old_prefix) :
96
114
  git__strdup(DIFF_OLD_PREFIX_DEFAULT);
@@ -118,7 +136,7 @@ static int patch_generated_init(
118
136
  patch->delta_index = delta_index;
119
137
 
120
138
  if ((error = patch_generated_normalize_options(
121
- &patch->base.diff_opts, &diff->opts)) < 0 ||
139
+ &patch->base.diff_opts, &diff->opts, diff->repo)) < 0 ||
122
140
  (error = git_diff_file_content__init_from_diff(
123
141
  &patch->ofile, diff, patch->base.delta, true)) < 0 ||
124
142
  (error = git_diff_file_content__init_from_diff(
@@ -261,7 +279,7 @@ static int create_binary(
261
279
  const char *b_data,
262
280
  size_t b_datalen)
263
281
  {
264
- git_buf deflate = GIT_BUF_INIT, delta = GIT_BUF_INIT;
282
+ git_str deflate = GIT_STR_INIT, delta = GIT_STR_INIT;
265
283
  size_t delta_data_len = 0;
266
284
  int error;
267
285
 
@@ -302,18 +320,18 @@ static int create_binary(
302
320
  if (delta.size && delta.size < deflate.size) {
303
321
  *out_type = GIT_DIFF_BINARY_DELTA;
304
322
  *out_datalen = delta.size;
305
- *out_data = git_buf_detach(&delta);
323
+ *out_data = git_str_detach(&delta);
306
324
  *out_inflatedlen = delta_data_len;
307
325
  } else {
308
326
  *out_type = GIT_DIFF_BINARY_LITERAL;
309
327
  *out_datalen = deflate.size;
310
- *out_data = git_buf_detach(&deflate);
328
+ *out_data = git_str_detach(&deflate);
311
329
  *out_inflatedlen = b_datalen;
312
330
  }
313
331
 
314
332
  done:
315
- git_buf_dispose(&deflate);
316
- git_buf_dispose(&delta);
333
+ git_str_dispose(&deflate);
334
+ git_str_dispose(&delta);
317
335
 
318
336
  return error;
319
337
  }
@@ -449,7 +467,7 @@ static int patch_generated_from_sources(
449
467
  git_xdiff_output *xo,
450
468
  git_diff_file_content_src *oldsrc,
451
469
  git_diff_file_content_src *newsrc,
452
- const git_diff_options *opts)
470
+ const git_diff_options *given_opts)
453
471
  {
454
472
  int error = 0;
455
473
  git_repository *repo =
@@ -457,11 +475,12 @@ static int patch_generated_from_sources(
457
475
  newsrc->blob ? git_blob_owner(newsrc->blob) : NULL;
458
476
  git_diff_file *lfile = &pd->delta.old_file, *rfile = &pd->delta.new_file;
459
477
  git_diff_file_content *ldata = &pd->patch.ofile, *rdata = &pd->patch.nfile;
478
+ git_diff_options *opts = &pd->patch.base.diff_opts;
460
479
 
461
- if ((error = patch_generated_normalize_options(&pd->patch.base.diff_opts, opts)) < 0)
480
+ if ((error = patch_generated_normalize_options(opts, given_opts, repo)) < 0)
462
481
  return error;
463
482
 
464
- if (opts && (opts->flags & GIT_DIFF_REVERSE) != 0) {
483
+ if ((opts->flags & GIT_DIFF_REVERSE) != 0) {
465
484
  void *tmp = lfile; lfile = rfile; rfile = tmp;
466
485
  tmp = ldata; ldata = rdata; rdata = tmp;
467
486
  }
@@ -750,18 +769,34 @@ git_diff_driver *git_patch_generated_driver(git_patch_generated *patch)
750
769
  return patch->ofile.driver;
751
770
  }
752
771
 
753
- void git_patch_generated_old_data(
754
- char **ptr, size_t *len, git_patch_generated *patch)
772
+ int git_patch_generated_old_data(
773
+ char **ptr, long *len, git_patch_generated *patch)
755
774
  {
775
+ if (patch->ofile.map.len > LONG_MAX ||
776
+ patch->ofile.map.len > GIT_XDIFF_MAX_SIZE) {
777
+ git_error_set(GIT_ERROR_INVALID, "files too large for diff");
778
+ return -1;
779
+ }
780
+
756
781
  *ptr = patch->ofile.map.data;
757
- *len = patch->ofile.map.len;
782
+ *len = (long)patch->ofile.map.len;
783
+
784
+ return 0;
758
785
  }
759
786
 
760
- void git_patch_generated_new_data(
761
- char **ptr, size_t *len, git_patch_generated *patch)
787
+ int git_patch_generated_new_data(
788
+ char **ptr, long *len, git_patch_generated *patch)
762
789
  {
790
+ if (patch->ofile.map.len > LONG_MAX ||
791
+ patch->ofile.map.len > GIT_XDIFF_MAX_SIZE) {
792
+ git_error_set(GIT_ERROR_INVALID, "files too large for diff");
793
+ return -1;
794
+ }
795
+
763
796
  *ptr = patch->nfile.map.data;
764
- *len = patch->nfile.map.len;
797
+ *len = (long)patch->nfile.map.len;
798
+
799
+ return 0;
765
800
  }
766
801
 
767
802
  static int patch_generated_file_cb(
@@ -21,7 +21,7 @@ enum {
21
21
  GIT_PATCH_GENERATED_DIFFABLE = (1 << 3),
22
22
  /* the difference between the two sides has been computed */
23
23
  GIT_PATCH_GENERATED_DIFFED = (1 << 4),
24
- GIT_PATCH_GENERATED_FLATTENED = (1 << 5),
24
+ GIT_PATCH_GENERATED_FLATTENED = (1 << 5)
25
25
  };
26
26
 
27
27
  struct git_patch_generated {
@@ -39,10 +39,10 @@ typedef struct git_patch_generated git_patch_generated;
39
39
 
40
40
  extern git_diff_driver *git_patch_generated_driver(git_patch_generated *);
41
41
 
42
- extern void git_patch_generated_old_data(
43
- char **, size_t *, git_patch_generated *);
44
- extern void git_patch_generated_new_data(
45
- char **, size_t *, git_patch_generated *);
42
+ extern int git_patch_generated_old_data(
43
+ char **, long *, git_patch_generated *);
44
+ extern int git_patch_generated_new_data(
45
+ char **, long *, git_patch_generated *);
46
46
  extern int git_patch_generated_from_diff(
47
47
  git_patch **, git_diff *, size_t);
48
48
 
@@ -10,7 +10,7 @@
10
10
  #include "git2/patch.h"
11
11
  #include "patch.h"
12
12
  #include "diff_parse.h"
13
- #include "path.h"
13
+ #include "fs_path.h"
14
14
 
15
15
  typedef struct {
16
16
  git_patch base;
@@ -65,22 +65,22 @@ static size_t header_path_len(git_patch_parse_ctx *ctx)
65
65
  return len;
66
66
  }
67
67
 
68
- static int parse_header_path_buf(git_buf *path, git_patch_parse_ctx *ctx, size_t path_len)
68
+ static int parse_header_path_buf(git_str *path, git_patch_parse_ctx *ctx, size_t path_len)
69
69
  {
70
70
  int error;
71
71
 
72
- if ((error = git_buf_put(path, ctx->parse_ctx.line, path_len)) < 0)
72
+ if ((error = git_str_put(path, ctx->parse_ctx.line, path_len)) < 0)
73
73
  return error;
74
74
 
75
75
  git_parse_advance_chars(&ctx->parse_ctx, path_len);
76
76
 
77
- git_buf_rtrim(path);
77
+ git_str_rtrim(path);
78
78
 
79
79
  if (path->size > 0 && path->ptr[0] == '"' &&
80
- (error = git_buf_unquote(path)) < 0)
80
+ (error = git_str_unquote(path)) < 0)
81
81
  return error;
82
82
 
83
- git_path_squash_slashes(path);
83
+ git_fs_path_squash_slashes(path);
84
84
 
85
85
  if (!path->size)
86
86
  return git_parse_err("patch contains empty path at line %"PRIuZ,
@@ -91,22 +91,22 @@ static int parse_header_path_buf(git_buf *path, git_patch_parse_ctx *ctx, size_t
91
91
 
92
92
  static int parse_header_path(char **out, git_patch_parse_ctx *ctx)
93
93
  {
94
- git_buf path = GIT_BUF_INIT;
94
+ git_str path = GIT_STR_INIT;
95
95
  int error;
96
96
 
97
97
  if ((error = parse_header_path_buf(&path, ctx, header_path_len(ctx))) < 0)
98
98
  goto out;
99
- *out = git_buf_detach(&path);
99
+ *out = git_str_detach(&path);
100
100
 
101
101
  out:
102
- git_buf_dispose(&path);
102
+ git_str_dispose(&path);
103
103
  return error;
104
104
  }
105
105
 
106
106
  static int parse_header_git_oldpath(
107
107
  git_patch_parsed *patch, git_patch_parse_ctx *ctx)
108
108
  {
109
- git_buf old_path = GIT_BUF_INIT;
109
+ git_str old_path = GIT_STR_INIT;
110
110
  int error;
111
111
 
112
112
  if (patch->old_path) {
@@ -118,17 +118,17 @@ static int parse_header_git_oldpath(
118
118
  if ((error = parse_header_path_buf(&old_path, ctx, ctx->parse_ctx.line_len - 1)) < 0)
119
119
  goto out;
120
120
 
121
- patch->old_path = git_buf_detach(&old_path);
121
+ patch->old_path = git_str_detach(&old_path);
122
122
 
123
123
  out:
124
- git_buf_dispose(&old_path);
124
+ git_str_dispose(&old_path);
125
125
  return error;
126
126
  }
127
127
 
128
128
  static int parse_header_git_newpath(
129
129
  git_patch_parsed *patch, git_patch_parse_ctx *ctx)
130
130
  {
131
- git_buf new_path = GIT_BUF_INIT;
131
+ git_str new_path = GIT_STR_INIT;
132
132
  int error;
133
133
 
134
134
  if (patch->new_path) {
@@ -139,10 +139,10 @@ static int parse_header_git_newpath(
139
139
 
140
140
  if ((error = parse_header_path_buf(&new_path, ctx, ctx->parse_ctx.line_len - 1)) < 0)
141
141
  goto out;
142
- patch->new_path = git_buf_detach(&new_path);
142
+ patch->new_path = git_str_detach(&new_path);
143
143
 
144
144
  out:
145
- git_buf_dispose(&new_path);
145
+ git_str_dispose(&new_path);
146
146
  return error;
147
147
  }
148
148
 
@@ -166,15 +166,19 @@ static int parse_header_oid(
166
166
  uint16_t *oid_len,
167
167
  git_patch_parse_ctx *ctx)
168
168
  {
169
- size_t len;
169
+ size_t hexsize, len;
170
+
171
+ hexsize = git_oid_hexsize(ctx->opts.oid_type);
170
172
 
171
- for (len = 0; len < ctx->parse_ctx.line_len && len < GIT_OID_HEXSZ; len++) {
173
+ for (len = 0;
174
+ len < ctx->parse_ctx.line_len && len < hexsize;
175
+ len++) {
172
176
  if (!git__isxdigit(ctx->parse_ctx.line[len]))
173
177
  break;
174
178
  }
175
179
 
176
- if (len < GIT_OID_MINPREFIXLEN || len > GIT_OID_HEXSZ ||
177
- git_oid_fromstrn(oid, ctx->parse_ctx.line, len) < 0)
180
+ if (len < GIT_OID_MINPREFIXLEN || len > hexsize ||
181
+ git_oid__fromstrn(oid, ctx->parse_ctx.line, len, ctx->opts.oid_type) < 0)
178
182
  return git_parse_err("invalid hex formatted object id at line %"PRIuZ,
179
183
  ctx->parse_ctx.line_num);
180
184
 
@@ -257,7 +261,7 @@ static int parse_header_rename(
257
261
  char **out,
258
262
  git_patch_parse_ctx *ctx)
259
263
  {
260
- git_buf path = GIT_BUF_INIT;
264
+ git_str path = GIT_STR_INIT;
261
265
 
262
266
  if (parse_header_path_buf(&path, ctx, header_path_len(ctx)) < 0)
263
267
  return -1;
@@ -265,7 +269,7 @@ static int parse_header_rename(
265
269
  /* Note: the `rename from` and `rename to` lines include the literal
266
270
  * filename. They do *not* include the prefix. (Who needs consistency?)
267
271
  */
268
- *out = git_buf_detach(&path);
272
+ *out = git_str_detach(&path);
269
273
  return 0;
270
274
  }
271
275
 
@@ -353,7 +357,7 @@ static int parse_header_start(git_patch_parsed *patch, git_patch_parse_ctx *ctx)
353
357
  * We cannot expect to be able to always parse paths correctly at this
354
358
  * point. Due to the possibility of unquoted names, whitespaces in
355
359
  * filenames and custom prefixes we have to allow that, though, and just
356
- * proceeed here. We then hope for the "---" and "+++" lines to fix that
360
+ * proceed here. We then hope for the "---" and "+++" lines to fix that
357
361
  * for us.
358
362
  */
359
363
  if (!git_parse_ctx_contains(&ctx->parse_ctx, "\n", 1) &&
@@ -382,7 +386,7 @@ typedef enum {
382
386
  STATE_RENAME,
383
387
  STATE_COPY,
384
388
 
385
- STATE_END,
389
+ STATE_END
386
390
  } parse_header_state;
387
391
 
388
392
  typedef struct {
@@ -558,9 +562,9 @@ fail:
558
562
 
559
563
  static int eof_for_origin(int origin) {
560
564
  if (origin == GIT_DIFF_LINE_ADDITION)
561
- return GIT_DIFF_LINE_ADD_EOFNL;
562
- if (origin == GIT_DIFF_LINE_DELETION)
563
565
  return GIT_DIFF_LINE_DEL_EOFNL;
566
+ if (origin == GIT_DIFF_LINE_DELETION)
567
+ return GIT_DIFF_LINE_ADD_EOFNL;
564
568
  return GIT_DIFF_LINE_CONTEXT_EOFNL;
565
569
  }
566
570
 
@@ -766,7 +770,7 @@ static int parse_patch_binary_side(
766
770
  git_patch_parse_ctx *ctx)
767
771
  {
768
772
  git_diff_binary_t type = GIT_DIFF_BINARY_NONE;
769
- git_buf base85 = GIT_BUF_INIT, decoded = GIT_BUF_INIT;
773
+ git_str base85 = GIT_STR_INIT, decoded = GIT_STR_INIT;
770
774
  int64_t len;
771
775
  int error = 0;
772
776
 
@@ -815,7 +819,7 @@ static int parse_patch_binary_side(
815
819
  goto done;
816
820
  }
817
821
 
818
- if ((error = git_buf_decode_base85(
822
+ if ((error = git_str_decode_base85(
819
823
  &decoded, ctx->parse_ctx.line, encoded_len, decoded_len)) < 0)
820
824
  goto done;
821
825
 
@@ -835,11 +839,11 @@ static int parse_patch_binary_side(
835
839
  binary->type = type;
836
840
  binary->inflatedlen = (size_t)len;
837
841
  binary->datalen = decoded.size;
838
- binary->data = git_buf_detach(&decoded);
842
+ binary->data = git_str_detach(&decoded);
839
843
 
840
844
  done:
841
- git_buf_dispose(&base85);
842
- git_buf_dispose(&decoded);
845
+ git_str_dispose(&base85);
846
+ git_str_dispose(&decoded);
843
847
  return error;
844
848
  }
845
849
 
@@ -1065,12 +1069,14 @@ static int check_patch(git_patch_parsed *patch)
1065
1069
  return git_parse_err("patch with no hunks");
1066
1070
 
1067
1071
  if (delta->status == GIT_DELTA_ADDED) {
1068
- memset(&delta->old_file.id, 0x0, sizeof(git_oid));
1072
+ git_oid_clear(&delta->old_file.id,
1073
+ patch->base.diff_opts.oid_type);
1069
1074
  delta->old_file.id_abbrev = 0;
1070
1075
  }
1071
1076
 
1072
1077
  if (delta->status == GIT_DELTA_DELETED) {
1073
- memset(&delta->new_file.id, 0x0, sizeof(git_oid));
1078
+ git_oid_clear(&delta->new_file.id,
1079
+ patch->base.diff_opts.oid_type);
1074
1080
  delta->new_file.id_abbrev = 0;
1075
1081
  }
1076
1082
 
@@ -1187,11 +1193,13 @@ int git_patch_parse(
1187
1193
  patch->base.delta->status = GIT_DELTA_MODIFIED;
1188
1194
  patch->base.delta->nfiles = 2;
1189
1195
 
1196
+ patch->base.diff_opts.oid_type = ctx->opts.oid_type;
1197
+
1190
1198
  start = ctx->parse_ctx.remain_len;
1191
1199
 
1192
1200
  if ((error = parse_patch_header(patch, ctx)) < 0 ||
1193
- (error = parse_patch_body(patch, ctx)) < 0 ||
1194
- (error = check_patch(patch)) < 0)
1201
+ (error = parse_patch_body(patch, ctx)) < 0 ||
1202
+ (error = check_patch(patch)) < 0)
1195
1203
  goto done;
1196
1204
 
1197
1205
  used = start - ctx->parse_ctx.remain_len;