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
@@ -26,6 +26,7 @@
26
26
 
27
27
  struct pack_backend {
28
28
  git_odb_backend parent;
29
+ git_odb_backend_pack_options opts;
29
30
  git_midx_file *midx;
30
31
  git_vector midx_packs;
31
32
  git_vector packs;
@@ -95,27 +96,27 @@ struct pack_writepack {
95
96
  * --------------------------------------------------
96
97
  *
97
98
  * # pack_backend__exists / pack_backend__exists_prefix
98
- * | Check if the given SHA1 oid (or a SHA1 oid prefix) exists in any of the
99
+ * | Check if the given oid (or an oid prefix) exists in any of the
99
100
  * | packs that have been loaded for our ODB.
100
101
  * |
101
102
  * |-# pack_entry_find / pack_entry_find_prefix
102
- * | If there is a multi-pack-index present, search the SHA1 oid in that
103
+ * | If there is a multi-pack-index present, search the oid in that
103
104
  * | index first. If it is not found there, iterate through all the unindexed
104
105
  * | packs that have been preloaded (starting by the pack where the latest
105
106
  * | object was found) to try to find the OID in one of them.
106
107
  * |
107
108
  * |-# git_midx_entry_find
108
- * | Search for the SHA1 oid in the multi-pack-index. See
109
+ * | Search for the oid in the multi-pack-index. See
109
110
  * | <https://github.com/git/git/blob/master/Documentation/technical/pack-format.txt>
110
111
  * | for specifics on the multi-pack-index format and how do we find
111
112
  * | entries in it.
112
113
  * |
113
114
  * |-# git_pack_entry_find
114
- * | Check the index of an individual unindexed pack to see if the SHA1
115
- * | OID can be found. If we can find the offset to that SHA1 inside of the
115
+ * | Check the index of an individual unindexed pack to see if the
116
+ * | OID can be found. If we can find the offset to that inside of the
116
117
  * | index, that means the object is contained inside of the packfile and
117
118
  * | we can stop searching. Before returning, we verify that the
118
- * | packfile behing the index we are searching still exists on disk.
119
+ * | packfile behind the index we are searching still exists on disk.
119
120
  * |
120
121
  * |-# pack_entry_find_offset
121
122
  * | Mmap the actual index file to disk if it hasn't been opened
@@ -141,13 +142,13 @@ struct pack_writepack {
141
142
  * --------------------------------------------------
142
143
  *
143
144
  * # pack_backend__read / pack_backend__read_prefix
144
- * | Check if the given SHA1 oid (or a SHA1 oid prefix) exists in any of the
145
+ * | Check if the given oid (or an oid prefix) exists in any of the
145
146
  * | packs that have been loaded for our ODB. If it does, open the packfile and
146
147
  * | read from it.
147
148
  * |
148
149
  * |-# git_packfile_unpack
149
150
  * Armed with a packfile and the offset within it, we can finally unpack
150
- * the object pointed at by the SHA1 oid. This involves mmapping part of
151
+ * the object pointed at by the oid. This involves mmapping part of
151
152
  * the `.pack` file, and uncompressing the object within it (if it is
152
153
  * stored in the undelfitied representation), or finding a base object and
153
154
  * applying some deltas to its uncompressed representation (if it is stored
@@ -166,7 +167,7 @@ struct pack_writepack {
166
167
 
167
168
  static int packfile_sort__cb(const void *a_, const void *b_);
168
169
 
169
- static int packfile_load__cb(void *_data, git_buf *path);
170
+ static int packfile_load__cb(void *_data, git_str *path);
170
171
 
171
172
  static int packfile_byname_search_cmp(const void *path, const void *pack_entry);
172
173
 
@@ -177,7 +178,7 @@ static int pack_entry_find(struct git_pack_entry *e,
177
178
  * a prefix of an identifier.
178
179
  * Sets GIT_EAMBIGUOUS if short oid is ambiguous.
179
180
  * This method assumes that len is between
180
- * GIT_OID_MINPREFIXLEN and GIT_OID_HEXSZ.
181
+ * GIT_OID_MINPREFIXLEN and the hexsize for the hash type.
181
182
  */
182
183
  static int pack_entry_find_prefix(
183
184
  struct git_pack_entry *e,
@@ -195,10 +196,10 @@ static int pack_entry_find_prefix(
195
196
 
196
197
  static int packfile_byname_search_cmp(const void *path_, const void *p_)
197
198
  {
198
- const git_buf *path = (const git_buf *)path_;
199
+ const git_str *path = (const git_str *)path_;
199
200
  const struct git_pack_file *p = (const struct git_pack_file *)p_;
200
201
 
201
- return strncmp(p->pack_name, git_buf_cstr(path), git_buf_len(path));
202
+ return strncmp(p->pack_name, git_str_cstr(path), git_str_len(path));
202
203
  }
203
204
 
204
205
  static int packfile_sort__cb(const void *a_, const void *b_)
@@ -231,27 +232,27 @@ static int packfile_sort__cb(const void *a_, const void *b_)
231
232
  }
232
233
 
233
234
 
234
- static int packfile_load__cb(void *data, git_buf *path)
235
+ static int packfile_load__cb(void *data, git_str *path)
235
236
  {
236
237
  struct pack_backend *backend = data;
237
238
  struct git_pack_file *pack;
238
- const char *path_str = git_buf_cstr(path);
239
- git_buf index_prefix = GIT_BUF_INIT;
240
- size_t cmp_len = git_buf_len(path);
239
+ const char *path_str = git_str_cstr(path);
240
+ git_str index_prefix = GIT_STR_INIT;
241
+ size_t cmp_len = git_str_len(path);
241
242
  int error;
242
243
 
243
244
  if (cmp_len <= strlen(".idx") || git__suffixcmp(path_str, ".idx") != 0)
244
245
  return 0; /* not an index */
245
246
 
246
247
  cmp_len -= strlen(".idx");
247
- git_buf_attach_notowned(&index_prefix, path_str, cmp_len);
248
+ git_str_attach_notowned(&index_prefix, path_str, cmp_len);
248
249
 
249
250
  if (git_vector_search2(NULL, &backend->midx_packs, packfile_byname_search_cmp, &index_prefix) == 0)
250
251
  return 0;
251
252
  if (git_vector_search2(NULL, &backend->packs, packfile_byname_search_cmp, &index_prefix) == 0)
252
253
  return 0;
253
254
 
254
- error = git_mwindow_get_pack(&pack, path->ptr);
255
+ error = git_mwindow_get_pack(&pack, path->ptr, backend->opts.oid_type);
255
256
 
256
257
  /* ignore missing .pack file as git does */
257
258
  if (error == GIT_ENOTFOUND) {
@@ -270,33 +271,34 @@ static int pack_entry_find(struct git_pack_entry *e, struct pack_backend *backen
270
271
  {
271
272
  struct git_pack_file *last_found = backend->last_found, *p;
272
273
  git_midx_entry midx_entry;
274
+ size_t oid_hexsize = git_oid_hexsize(backend->opts.oid_type);
273
275
  size_t i;
274
276
 
275
277
  if (backend->midx &&
276
- git_midx_entry_find(&midx_entry, backend->midx, oid, GIT_OID_HEXSZ) == 0 &&
278
+ git_midx_entry_find(&midx_entry, backend->midx, oid, oid_hexsize) == 0 &&
277
279
  midx_entry.pack_index < git_vector_length(&backend->midx_packs)) {
278
280
  e->offset = midx_entry.offset;
279
- git_oid_cpy(&e->sha1, &midx_entry.sha1);
281
+ git_oid_cpy(&e->id, &midx_entry.sha1);
280
282
  e->p = git_vector_get(&backend->midx_packs, midx_entry.pack_index);
281
283
  return 0;
282
284
  }
283
285
 
284
286
  if (last_found &&
285
- git_pack_entry_find(e, last_found, oid, GIT_OID_HEXSZ) == 0)
287
+ git_pack_entry_find(e, last_found, oid, oid_hexsize) == 0)
286
288
  return 0;
287
289
 
288
290
  git_vector_foreach(&backend->packs, i, p) {
289
291
  if (p == last_found)
290
292
  continue;
291
293
 
292
- if (git_pack_entry_find(e, p, oid, GIT_OID_HEXSZ) == 0) {
294
+ if (git_pack_entry_find(e, p, oid, oid_hexsize) == 0) {
293
295
  backend->last_found = p;
294
296
  return 0;
295
297
  }
296
298
  }
297
299
 
298
300
  return git_odb__error_notfound(
299
- "failed to find pack entry", oid, GIT_OID_HEXSZ);
301
+ "failed to find pack entry", oid, oid_hexsize);
300
302
  }
301
303
 
302
304
  static int pack_entry_find_prefix(
@@ -307,20 +309,26 @@ static int pack_entry_find_prefix(
307
309
  {
308
310
  int error;
309
311
  size_t i;
310
- git_oid found_full_oid = {{0}};
312
+ git_oid found_full_oid;
311
313
  bool found = false;
312
314
  struct git_pack_file *last_found = backend->last_found, *p;
313
315
  git_midx_entry midx_entry;
314
316
 
317
+ #ifdef GIT_EXPERIMENTAL_SHA256
318
+ git_oid_clear(&found_full_oid, short_oid->type);
319
+ #else
320
+ git_oid_clear(&found_full_oid, GIT_OID_SHA1);
321
+ #endif
322
+
315
323
  if (backend->midx) {
316
324
  error = git_midx_entry_find(&midx_entry, backend->midx, short_oid, len);
317
325
  if (error == GIT_EAMBIGUOUS)
318
326
  return error;
319
327
  if (!error && midx_entry.pack_index < git_vector_length(&backend->midx_packs)) {
320
328
  e->offset = midx_entry.offset;
321
- git_oid_cpy(&e->sha1, &midx_entry.sha1);
329
+ git_oid_cpy(&e->id, &midx_entry.sha1);
322
330
  e->p = git_vector_get(&backend->midx_packs, midx_entry.pack_index);
323
- git_oid_cpy(&found_full_oid, &e->sha1);
331
+ git_oid_cpy(&found_full_oid, &e->id);
324
332
  found = true;
325
333
  }
326
334
  }
@@ -330,9 +338,9 @@ static int pack_entry_find_prefix(
330
338
  if (error == GIT_EAMBIGUOUS)
331
339
  return error;
332
340
  if (!error) {
333
- if (found && git_oid_cmp(&e->sha1, &found_full_oid))
341
+ if (found && git_oid_cmp(&e->id, &found_full_oid))
334
342
  return git_odb__error_ambiguous("found multiple pack entries");
335
- git_oid_cpy(&found_full_oid, &e->sha1);
343
+ git_oid_cpy(&found_full_oid, &e->id);
336
344
  found = true;
337
345
  }
338
346
  }
@@ -345,9 +353,9 @@ static int pack_entry_find_prefix(
345
353
  if (error == GIT_EAMBIGUOUS)
346
354
  return error;
347
355
  if (!error) {
348
- if (found && git_oid_cmp(&e->sha1, &found_full_oid))
356
+ if (found && git_oid_cmp(&e->id, &found_full_oid))
349
357
  return git_odb__error_ambiguous("found multiple pack entries");
350
- git_oid_cpy(&found_full_oid, &e->sha1);
358
+ git_oid_cpy(&found_full_oid, &e->id);
351
359
  found = true;
352
360
  backend->last_found = p;
353
361
  }
@@ -404,29 +412,32 @@ static int process_multi_pack_index_pack(
404
412
  int error;
405
413
  struct git_pack_file *pack;
406
414
  size_t found_position;
407
- git_buf pack_path = GIT_BUF_INIT, index_prefix = GIT_BUF_INIT;
415
+ git_str pack_path = GIT_STR_INIT, index_prefix = GIT_STR_INIT;
408
416
 
409
- error = git_buf_joinpath(&pack_path, backend->pack_folder, packfile_name);
417
+ error = git_str_joinpath(&pack_path, backend->pack_folder, packfile_name);
410
418
  if (error < 0)
411
419
  return error;
412
420
 
413
421
  /* This is ensured by midx_parse_packfile_name() */
414
- if (git_buf_len(&pack_path) <= strlen(".idx") || git__suffixcmp(git_buf_cstr(&pack_path), ".idx") != 0)
422
+ if (git_str_len(&pack_path) <= strlen(".idx") || git__suffixcmp(git_str_cstr(&pack_path), ".idx") != 0)
415
423
  return git_odb__error_notfound("midx file contained a non-index", NULL, 0);
416
424
 
417
- git_buf_attach_notowned(&index_prefix, git_buf_cstr(&pack_path), git_buf_len(&pack_path) - strlen(".idx"));
425
+ git_str_attach_notowned(&index_prefix, git_str_cstr(&pack_path), git_str_len(&pack_path) - strlen(".idx"));
418
426
 
419
427
  if (git_vector_search2(&found_position, &backend->packs, packfile_byname_search_cmp, &index_prefix) == 0) {
420
428
  /* Pack was found in the packs list. Moving it to the midx_packs list. */
421
- git_buf_dispose(&pack_path);
429
+ git_str_dispose(&pack_path);
422
430
  git_vector_set(NULL, &backend->midx_packs, i, git_vector_get(&backend->packs, found_position));
423
431
  git_vector_remove(&backend->packs, found_position);
424
432
  return 0;
425
433
  }
426
434
 
427
435
  /* Pack was not found. Allocate a new one. */
428
- error = git_mwindow_get_pack(&pack, git_buf_cstr(&pack_path));
429
- git_buf_dispose(&pack_path);
436
+ error = git_mwindow_get_pack(
437
+ &pack,
438
+ git_str_cstr(&pack_path),
439
+ backend->opts.oid_type);
440
+ git_str_dispose(&pack_path);
430
441
  if (error < 0)
431
442
  return error;
432
443
 
@@ -442,11 +453,11 @@ static int process_multi_pack_index_pack(
442
453
  static int refresh_multi_pack_index(struct pack_backend *backend)
443
454
  {
444
455
  int error;
445
- git_buf midx_path = GIT_BUF_INIT;
456
+ git_str midx_path = GIT_STR_INIT;
446
457
  const char *packfile_name;
447
458
  size_t i;
448
459
 
449
- error = git_buf_joinpath(&midx_path, backend->pack_folder, "multi-pack-index");
460
+ error = git_str_joinpath(&midx_path, backend->pack_folder, "multi-pack-index");
450
461
  if (error < 0)
451
462
  return error;
452
463
 
@@ -457,19 +468,21 @@ static int refresh_multi_pack_index(struct pack_backend *backend)
457
468
  * refreshing the new multi-pack-index fails, or the file is deleted.
458
469
  */
459
470
  if (backend->midx) {
460
- if (!git_midx_needs_refresh(backend->midx, git_buf_cstr(&midx_path))) {
461
- git_buf_dispose(&midx_path);
471
+ if (!git_midx_needs_refresh(backend->midx, git_str_cstr(&midx_path))) {
472
+ git_str_dispose(&midx_path);
462
473
  return 0;
463
474
  }
464
475
  error = remove_multi_pack_index(backend);
465
476
  if (error < 0) {
466
- git_buf_dispose(&midx_path);
477
+ git_str_dispose(&midx_path);
467
478
  return error;
468
479
  }
469
480
  }
470
481
 
471
- error = git_midx_open(&backend->midx, git_buf_cstr(&midx_path));
472
- git_buf_dispose(&midx_path);
482
+ error = git_midx_open(&backend->midx, git_str_cstr(&midx_path),
483
+ backend->opts.oid_type);
484
+
485
+ git_str_dispose(&midx_path);
473
486
  if (error < 0)
474
487
  return error;
475
488
 
@@ -505,7 +518,7 @@ static int pack_backend__refresh(git_odb_backend *backend_)
505
518
  {
506
519
  int error;
507
520
  struct stat st;
508
- git_buf path = GIT_BUF_INIT;
521
+ git_str path = GIT_STR_INIT;
509
522
  struct pack_backend *backend = (struct pack_backend *)backend_;
510
523
 
511
524
  if (backend->pack_folder == NULL)
@@ -523,10 +536,10 @@ static int pack_backend__refresh(git_odb_backend *backend_)
523
536
  }
524
537
 
525
538
  /* reload all packs */
526
- git_buf_sets(&path, backend->pack_folder);
527
- error = git_path_direach(&path, 0, packfile_load__cb, backend);
539
+ git_str_sets(&path, backend->pack_folder);
540
+ error = git_fs_path_direach(&path, 0, packfile_load__cb, backend);
528
541
 
529
- git_buf_dispose(&path);
542
+ git_str_dispose(&path);
530
543
  git_vector_sort(&backend->packs);
531
544
 
532
545
  return error;
@@ -596,32 +609,33 @@ static int pack_backend__read_prefix(
596
609
  void **buffer_p,
597
610
  size_t *len_p,
598
611
  git_object_t *type_p,
599
- git_odb_backend *backend,
612
+ git_odb_backend *_backend,
600
613
  const git_oid *short_oid,
601
614
  size_t len)
602
615
  {
616
+ struct pack_backend *backend = (struct pack_backend *)_backend;
603
617
  int error = 0;
604
618
 
605
619
  if (len < GIT_OID_MINPREFIXLEN)
606
620
  error = git_odb__error_ambiguous("prefix length too short");
607
621
 
608
- else if (len >= GIT_OID_HEXSZ) {
622
+ else if (len >= git_oid_hexsize(backend->opts.oid_type)) {
609
623
  /* We can fall back to regular read method */
610
- error = pack_backend__read(buffer_p, len_p, type_p, backend, short_oid);
624
+ error = pack_backend__read(buffer_p, len_p, type_p, _backend, short_oid);
611
625
  if (!error)
612
626
  git_oid_cpy(out_oid, short_oid);
613
627
  } else {
614
628
  struct git_pack_entry e;
615
629
  git_rawobj raw = {NULL};
616
630
 
617
- if ((error = pack_entry_find_prefix(
618
- &e, (struct pack_backend *)backend, short_oid, len)) == 0 &&
619
- (error = git_packfile_unpack(&raw, e.p, &e.offset)) == 0)
631
+ if ((error = pack_entry_find_prefix(&e,
632
+ backend, short_oid, len)) == 0 &&
633
+ (error = git_packfile_unpack(&raw, e.p, &e.offset)) == 0)
620
634
  {
621
635
  *buffer_p = raw.data;
622
636
  *len_p = raw.len;
623
637
  *type_p = raw.type;
624
- git_oid_cpy(out_oid, &e.sha1);
638
+ git_oid_cpy(out_oid, &e.id);
625
639
  }
626
640
  }
627
641
 
@@ -642,7 +656,7 @@ static int pack_backend__exists_prefix(
642
656
  struct git_pack_entry e = {0};
643
657
 
644
658
  error = pack_entry_find_prefix(&e, pb, short_id, len);
645
- git_oid_cpy(out, &e.sha1);
659
+ git_oid_cpy(out, &e.id);
646
660
  return error;
647
661
  }
648
662
 
@@ -712,6 +726,7 @@ static int pack_backend__writepack(struct git_odb_writepack **out,
712
726
  git_indexer_options opts = GIT_INDEXER_OPTIONS_INIT;
713
727
  struct pack_backend *backend;
714
728
  struct pack_writepack *writepack;
729
+ int error;
715
730
 
716
731
  GIT_ASSERT_ARG(out);
717
732
  GIT_ASSERT_ARG(_backend);
@@ -726,11 +741,20 @@ static int pack_backend__writepack(struct git_odb_writepack **out,
726
741
  writepack = git__calloc(1, sizeof(struct pack_writepack));
727
742
  GIT_ERROR_CHECK_ALLOC(writepack);
728
743
 
729
- if (git_indexer_new(&writepack->indexer,
730
- backend->pack_folder, 0, odb, &opts) < 0) {
731
- git__free(writepack);
744
+ #ifdef GIT_EXPERIMENTAL_SHA256
745
+ opts.odb = odb;
746
+ opts.oid_type = backend->opts.oid_type;
747
+
748
+ error = git_indexer_new(&writepack->indexer,
749
+ backend->pack_folder,
750
+ &opts);
751
+ #else
752
+ error = git_indexer_new(&writepack->indexer,
753
+ backend->pack_folder, 0, odb, &opts);
754
+ #endif
755
+
756
+ if (error < 0)
732
757
  return -1;
733
- }
734
758
 
735
759
  writepack->parent.backend = _backend;
736
760
  writepack->parent.append = pack_backend__writepack_append;
@@ -743,21 +767,21 @@ static int pack_backend__writepack(struct git_odb_writepack **out,
743
767
  }
744
768
 
745
769
  static int get_idx_path(
746
- git_buf *idx_path,
770
+ git_str *idx_path,
747
771
  struct pack_backend *backend,
748
772
  struct git_pack_file *p)
749
773
  {
750
774
  size_t path_len;
751
775
  int error;
752
776
 
753
- error = git_path_prettify(idx_path, p->pack_name, backend->pack_folder);
777
+ error = git_fs_path_prettify(idx_path, p->pack_name, backend->pack_folder);
754
778
  if (error < 0)
755
779
  return error;
756
- path_len = git_buf_len(idx_path);
757
- if (path_len <= strlen(".pack") || git__suffixcmp(git_buf_cstr(idx_path), ".pack") != 0)
780
+ path_len = git_str_len(idx_path);
781
+ if (path_len <= strlen(".pack") || git__suffixcmp(git_str_cstr(idx_path), ".pack") != 0)
758
782
  return git_odb__error_notfound("packfile does not end in .pack", NULL, 0);
759
783
  path_len -= strlen(".pack");
760
- error = git_buf_splice(idx_path, path_len, strlen(".pack"), ".idx", strlen(".idx"));
784
+ error = git_str_splice(idx_path, path_len, strlen(".pack"), ".idx", strlen(".idx"));
761
785
  if (error < 0)
762
786
  return error;
763
787
 
@@ -772,31 +796,44 @@ static int pack_backend__writemidx(git_odb_backend *_backend)
772
796
  size_t i;
773
797
  int error = 0;
774
798
 
799
+ #ifdef GIT_EXPERIMENTAL_SHA256
800
+ git_midx_writer_options midx_opts = GIT_MIDX_WRITER_OPTIONS_INIT;
801
+ #endif
802
+
775
803
  GIT_ASSERT_ARG(_backend);
776
804
 
777
805
  backend = (struct pack_backend *)_backend;
778
806
 
779
- error = git_midx_writer_new(&w, backend->pack_folder);
807
+ #ifdef GIT_EXPERIMENTAL_SHA256
808
+ midx_opts.oid_type = backend->opts.oid_type;
809
+ #endif
810
+
811
+ error = git_midx_writer_new(&w, backend->pack_folder
812
+ #ifdef GIT_EXPERIMENTAL_SHA256
813
+ , &midx_opts
814
+ #endif
815
+ );
816
+
780
817
  if (error < 0)
781
818
  return error;
782
819
 
783
820
  git_vector_foreach(&backend->midx_packs, i, p) {
784
- git_buf idx_path = GIT_BUF_INIT;
821
+ git_str idx_path = GIT_STR_INIT;
785
822
  error = get_idx_path(&idx_path, backend, p);
786
823
  if (error < 0)
787
824
  goto cleanup;
788
- error = git_midx_writer_add(w, git_buf_cstr(&idx_path));
789
- git_buf_dispose(&idx_path);
825
+ error = git_midx_writer_add(w, git_str_cstr(&idx_path));
826
+ git_str_dispose(&idx_path);
790
827
  if (error < 0)
791
828
  goto cleanup;
792
829
  }
793
830
  git_vector_foreach(&backend->packs, i, p) {
794
- git_buf idx_path = GIT_BUF_INIT;
831
+ git_str idx_path = GIT_STR_INIT;
795
832
  error = get_idx_path(&idx_path, backend, p);
796
833
  if (error < 0)
797
834
  goto cleanup;
798
- error = git_midx_writer_add(w, git_buf_cstr(&idx_path));
799
- git_buf_dispose(&idx_path);
835
+ error = git_midx_writer_add(w, git_str_cstr(&idx_path));
836
+ git_str_dispose(&idx_path);
800
837
  if (error < 0)
801
838
  goto cleanup;
802
839
  }
@@ -834,13 +871,16 @@ static void pack_backend__free(git_odb_backend *_backend)
834
871
  git_mwindow_put_pack(p);
835
872
 
836
873
  git_midx_free(backend->midx);
837
- git_vector_free(&backend->midx_packs);
838
- git_vector_free(&backend->packs);
874
+ git_vector_dispose(&backend->midx_packs);
875
+ git_vector_dispose(&backend->packs);
839
876
  git__free(backend->pack_folder);
840
877
  git__free(backend);
841
878
  }
842
879
 
843
- static int pack_backend__alloc(struct pack_backend **out, size_t initial_size)
880
+ static int pack_backend__alloc(
881
+ struct pack_backend **out,
882
+ size_t initial_size,
883
+ const git_odb_backend_pack_options *opts)
844
884
  {
845
885
  struct pack_backend *backend = git__calloc(1, sizeof(struct pack_backend));
846
886
  GIT_ERROR_CHECK_ALLOC(backend);
@@ -849,12 +889,19 @@ static int pack_backend__alloc(struct pack_backend **out, size_t initial_size)
849
889
  git__free(backend);
850
890
  return -1;
851
891
  }
892
+
852
893
  if (git_vector_init(&backend->packs, initial_size, packfile_sort__cb) < 0) {
853
- git_vector_free(&backend->midx_packs);
894
+ git_vector_dispose(&backend->midx_packs);
854
895
  git__free(backend);
855
896
  return -1;
856
897
  }
857
898
 
899
+ if (opts)
900
+ memcpy(&backend->opts, opts, sizeof(git_odb_backend_pack_options));
901
+
902
+ if (!backend->opts.oid_type)
903
+ backend->opts.oid_type = GIT_OID_DEFAULT;
904
+
858
905
  backend->parent.version = GIT_ODB_BACKEND_VERSION;
859
906
 
860
907
  backend->parent.read = &pack_backend__read;
@@ -873,17 +920,31 @@ static int pack_backend__alloc(struct pack_backend **out, size_t initial_size)
873
920
  return 0;
874
921
  }
875
922
 
876
- int git_odb_backend_one_pack(git_odb_backend **backend_out, const char *idx)
923
+ #ifdef GIT_EXPERIMENTAL_SHA256
924
+ int git_odb_backend_one_pack(
925
+ git_odb_backend **backend_out,
926
+ const char *idx,
927
+ const git_odb_backend_pack_options *opts)
928
+ #else
929
+ int git_odb_backend_one_pack(
930
+ git_odb_backend **backend_out,
931
+ const char *idx)
932
+ #endif
877
933
  {
878
934
  struct pack_backend *backend = NULL;
879
935
  struct git_pack_file *packfile = NULL;
880
936
 
881
- if (pack_backend__alloc(&backend, 1) < 0)
937
+ #ifndef GIT_EXPERIMENTAL_SHA256
938
+ git_odb_backend_pack_options *opts = NULL;
939
+ #endif
940
+
941
+ git_oid_t oid_type = opts ? opts->oid_type : 0;
942
+
943
+ if (pack_backend__alloc(&backend, 1, opts) < 0)
882
944
  return -1;
883
945
 
884
- if (git_mwindow_get_pack(&packfile, idx) < 0 ||
885
- git_vector_insert(&backend->packs, packfile) < 0)
886
- {
946
+ if (git_mwindow_get_pack(&packfile, idx, oid_type) < 0 ||
947
+ git_vector_insert(&backend->packs, packfile) < 0) {
887
948
  pack_backend__free((git_odb_backend *)backend);
888
949
  return -1;
889
950
  }
@@ -892,19 +953,31 @@ int git_odb_backend_one_pack(git_odb_backend **backend_out, const char *idx)
892
953
  return 0;
893
954
  }
894
955
 
895
- int git_odb_backend_pack(git_odb_backend **backend_out, const char *objects_dir)
956
+ #ifdef GIT_EXPERIMENTAL_SHA256
957
+ int git_odb_backend_pack(
958
+ git_odb_backend **backend_out,
959
+ const char *objects_dir,
960
+ const git_odb_backend_pack_options *opts)
961
+ #else
962
+ int git_odb_backend_pack(
963
+ git_odb_backend **backend_out,
964
+ const char *objects_dir)
965
+ #endif
896
966
  {
897
967
  int error = 0;
898
968
  struct pack_backend *backend = NULL;
899
- git_buf path = GIT_BUF_INIT;
969
+ git_str path = GIT_STR_INIT;
970
+
971
+ #ifndef GIT_EXPERIMENTAL_SHA256
972
+ git_odb_backend_pack_options *opts = NULL;
973
+ #endif
900
974
 
901
- if (pack_backend__alloc(&backend, 8) < 0)
975
+ if (pack_backend__alloc(&backend, 8, opts) < 0)
902
976
  return -1;
903
977
 
904
- if (!(error = git_buf_joinpath(&path, objects_dir, "pack")) &&
905
- git_path_isdir(git_buf_cstr(&path)))
906
- {
907
- backend->pack_folder = git_buf_detach(&path);
978
+ if (!(error = git_str_joinpath(&path, objects_dir, "pack")) &&
979
+ git_fs_path_isdir(git_str_cstr(&path))) {
980
+ backend->pack_folder = git_str_detach(&path);
908
981
  error = pack_backend__refresh((git_odb_backend *)backend);
909
982
  }
910
983
 
@@ -915,7 +988,7 @@ int git_odb_backend_pack(git_odb_backend **backend_out, const char *objects_dir)
915
988
 
916
989
  *backend_out = (git_odb_backend *)backend;
917
990
 
918
- git_buf_dispose(&path);
991
+ git_str_dispose(&path);
919
992
 
920
993
  return error;
921
994
  }