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
@@ -7,10 +7,11 @@
7
7
 
8
8
  #include "common.h"
9
9
 
10
- #include "buffer.h"
10
+ #include "str.h"
11
11
  #include "repository.h"
12
12
  #include "posix.h"
13
13
  #include "filebuf.h"
14
+ #include "commit.h"
14
15
  #include "merge.h"
15
16
  #include "array.h"
16
17
  #include "config.h"
@@ -34,6 +35,7 @@
34
35
  #define ONTO_FILE "onto"
35
36
  #define ONTO_NAME_FILE "onto_name"
36
37
  #define QUIET_FILE "quiet"
38
+ #define INTERACTIVE_FILE "interactive"
37
39
 
38
40
  #define MSGNUM_FILE "msgnum"
39
41
  #define END_FILE "end"
@@ -52,7 +54,7 @@ typedef enum {
52
54
  GIT_REBASE_NONE = 0,
53
55
  GIT_REBASE_APPLY = 1,
54
56
  GIT_REBASE_MERGE = 2,
55
- GIT_REBASE_INTERACTIVE = 3,
57
+ GIT_REBASE_INTERACTIVE = 3
56
58
  } git_rebase_t;
57
59
 
58
60
  struct git_rebase {
@@ -63,10 +65,13 @@ struct git_rebase {
63
65
  git_rebase_t type;
64
66
  char *state_path;
65
67
 
66
- int head_detached : 1,
67
- inmemory : 1,
68
- quiet : 1,
69
- started : 1;
68
+ /* Temporary buffer for paths within the state path. */
69
+ git_str state_filename;
70
+
71
+ unsigned int head_detached:1,
72
+ inmemory:1,
73
+ quiet:1,
74
+ started:1;
70
75
 
71
76
  git_array_t(git_rebase_operation) operations;
72
77
  size_t current;
@@ -90,23 +95,31 @@ static int rebase_state_type(
90
95
  char **path_out,
91
96
  git_repository *repo)
92
97
  {
93
- git_buf path = GIT_BUF_INIT;
98
+ git_str path = GIT_STR_INIT;
99
+ git_str interactive_path = GIT_STR_INIT;
94
100
  git_rebase_t type = GIT_REBASE_NONE;
95
101
 
96
- if (git_buf_joinpath(&path, repo->gitdir, REBASE_APPLY_DIR) < 0)
102
+ if (git_str_joinpath(&path, repo->gitdir, REBASE_APPLY_DIR) < 0)
97
103
  return -1;
98
104
 
99
- if (git_path_isdir(git_buf_cstr(&path))) {
105
+ if (git_fs_path_isdir(git_str_cstr(&path))) {
100
106
  type = GIT_REBASE_APPLY;
101
107
  goto done;
102
108
  }
103
109
 
104
- git_buf_clear(&path);
105
- if (git_buf_joinpath(&path, repo->gitdir, REBASE_MERGE_DIR) < 0)
110
+ git_str_clear(&path);
111
+ if (git_str_joinpath(&path, repo->gitdir, REBASE_MERGE_DIR) < 0)
106
112
  return -1;
107
113
 
108
- if (git_path_isdir(git_buf_cstr(&path))) {
109
- type = GIT_REBASE_MERGE;
114
+ if (git_fs_path_isdir(git_str_cstr(&path))) {
115
+ if (git_str_joinpath(&interactive_path, path.ptr, INTERACTIVE_FILE) < 0)
116
+ return -1;
117
+
118
+ if (git_fs_path_isfile(interactive_path.ptr))
119
+ type = GIT_REBASE_INTERACTIVE;
120
+ else
121
+ type = GIT_REBASE_MERGE;
122
+
110
123
  goto done;
111
124
  }
112
125
 
@@ -114,42 +127,52 @@ done:
114
127
  *type_out = type;
115
128
 
116
129
  if (type != GIT_REBASE_NONE && path_out)
117
- *path_out = git_buf_detach(&path);
130
+ *path_out = git_str_detach(&path);
118
131
 
119
- git_buf_dispose(&path);
132
+ git_str_dispose(&path);
133
+ git_str_dispose(&interactive_path);
120
134
 
121
135
  return 0;
122
136
  }
123
137
 
124
138
  GIT_INLINE(int) rebase_readfile(
125
- git_buf *out,
126
- git_buf *state_path,
139
+ git_str *out,
140
+ git_rebase *rebase,
127
141
  const char *filename)
128
142
  {
129
- size_t state_path_len = state_path->size;
143
+ /*
144
+ * `rebase->state_filename` is a temporary buffer to avoid
145
+ * unnecessary allocations and copies of `rebase->state_path`.
146
+ * At the start and end of this function it always contains the
147
+ * contents of `rebase->state_path` itself.
148
+ */
149
+ size_t state_path_len = rebase->state_filename.size;
130
150
  int error;
131
151
 
132
- git_buf_clear(out);
152
+ git_str_clear(out);
133
153
 
134
- if ((error = git_buf_joinpath(state_path, state_path->ptr, filename)) < 0 ||
135
- (error = git_futils_readbuffer(out, state_path->ptr)) < 0)
154
+ if ((error = git_str_joinpath(&rebase->state_filename, rebase->state_filename.ptr, filename)) < 0 ||
155
+ (error = git_futils_readbuffer(out, rebase->state_filename.ptr)) < 0)
136
156
  goto done;
137
157
 
138
- git_buf_rtrim(out);
158
+ git_str_rtrim(out);
139
159
 
140
160
  done:
141
- git_buf_truncate(state_path, state_path_len);
161
+ git_str_truncate(&rebase->state_filename, state_path_len);
142
162
  return error;
143
163
  }
144
164
 
145
165
  GIT_INLINE(int) rebase_readint(
146
- size_t *out, git_buf *asc_out, git_buf *state_path, const char *filename)
166
+ size_t *out,
167
+ git_str *asc_out,
168
+ git_rebase *rebase,
169
+ const char *filename)
147
170
  {
148
171
  int32_t num;
149
172
  const char *eol;
150
173
  int error = 0;
151
174
 
152
- if ((error = rebase_readfile(asc_out, state_path, filename)) < 0)
175
+ if ((error = rebase_readfile(asc_out, rebase, filename)) < 0)
153
176
  return error;
154
177
 
155
178
  if (git__strntol32(&num, asc_out->ptr, asc_out->size, &eol, 10) < 0 || num < 0 || *eol) {
@@ -163,14 +186,18 @@ GIT_INLINE(int) rebase_readint(
163
186
  }
164
187
 
165
188
  GIT_INLINE(int) rebase_readoid(
166
- git_oid *out, git_buf *str_out, git_buf *state_path, const char *filename)
189
+ git_oid *out,
190
+ git_str *str_out,
191
+ git_rebase *rebase,
192
+ const char *filename)
167
193
  {
168
194
  int error;
169
195
 
170
- if ((error = rebase_readfile(str_out, state_path, filename)) < 0)
196
+ if ((error = rebase_readfile(str_out, rebase, filename)) < 0)
171
197
  return error;
172
198
 
173
- if (str_out->size != GIT_OID_HEXSZ || git_oid_fromstr(out, str_out->ptr) < 0) {
199
+ if (str_out->size != git_oid_hexsize(rebase->repo->oid_type) ||
200
+ git_oid__fromstr(out, str_out->ptr, rebase->repo->oid_type) < 0) {
174
201
  git_error_set(GIT_ERROR_REBASE, "the file '%s' contains an invalid object ID", filename);
175
202
  return -1;
176
203
  }
@@ -201,17 +228,14 @@ static git_rebase_operation *rebase_operation_alloc(
201
228
 
202
229
  static int rebase_open_merge(git_rebase *rebase)
203
230
  {
204
- git_buf state_path = GIT_BUF_INIT, buf = GIT_BUF_INIT, cmt = GIT_BUF_INIT;
231
+ git_str buf = GIT_STR_INIT, cmt = GIT_STR_INIT;
205
232
  git_oid id;
206
233
  git_rebase_operation *operation;
207
234
  size_t i, msgnum = 0, end;
208
235
  int error;
209
236
 
210
- if ((error = git_buf_puts(&state_path, rebase->state_path)) < 0)
211
- goto done;
212
-
213
237
  /* Read 'msgnum' if it exists (otherwise, let msgnum = 0) */
214
- if ((error = rebase_readint(&msgnum, &buf, &state_path, MSGNUM_FILE)) < 0 &&
238
+ if ((error = rebase_readint(&msgnum, &buf, rebase, MSGNUM_FILE)) < 0 &&
215
239
  error != GIT_ENOTFOUND)
216
240
  goto done;
217
241
 
@@ -221,11 +245,11 @@ static int rebase_open_merge(git_rebase *rebase)
221
245
  }
222
246
 
223
247
  /* Read 'end' */
224
- if ((error = rebase_readint(&end, &buf, &state_path, END_FILE)) < 0)
248
+ if ((error = rebase_readint(&end, &buf, rebase, END_FILE)) < 0)
225
249
  goto done;
226
250
 
227
251
  /* Read 'current' if it exists */
228
- if ((error = rebase_readoid(&id, &buf, &state_path, CURRENT_FILE)) < 0 &&
252
+ if ((error = rebase_readoid(&id, &buf, rebase, CURRENT_FILE)) < 0 &&
229
253
  error != GIT_ENOTFOUND)
230
254
  goto done;
231
255
 
@@ -234,10 +258,10 @@ static int rebase_open_merge(git_rebase *rebase)
234
258
  GIT_ERROR_CHECK_ARRAY(rebase->operations);
235
259
 
236
260
  for (i = 0; i < end; i++) {
237
- git_buf_clear(&cmt);
261
+ git_str_clear(&cmt);
238
262
 
239
- if ((error = git_buf_printf(&cmt, "cmt.%" PRIuZ, (i+1))) < 0 ||
240
- (error = rebase_readoid(&id, &buf, &state_path, cmt.ptr)) < 0)
263
+ if ((error = git_str_printf(&cmt, "cmt.%" PRIuZ, (i+1))) < 0 ||
264
+ (error = rebase_readoid(&id, &buf, rebase, cmt.ptr)) < 0)
241
265
  goto done;
242
266
 
243
267
  operation = rebase_operation_alloc(rebase, GIT_REBASE_OPERATION_PICK, &id, NULL);
@@ -245,15 +269,14 @@ static int rebase_open_merge(git_rebase *rebase)
245
269
  }
246
270
 
247
271
  /* Read 'onto_name' */
248
- if ((error = rebase_readfile(&buf, &state_path, ONTO_NAME_FILE)) < 0)
272
+ if ((error = rebase_readfile(&buf, rebase, ONTO_NAME_FILE)) < 0)
249
273
  goto done;
250
274
 
251
- rebase->onto_name = git_buf_detach(&buf);
275
+ rebase->onto_name = git_str_detach(&buf);
252
276
 
253
277
  done:
254
- git_buf_dispose(&cmt);
255
- git_buf_dispose(&state_path);
256
- git_buf_dispose(&buf);
278
+ git_str_dispose(&cmt);
279
+ git_str_dispose(&buf);
257
280
 
258
281
  return error;
259
282
  }
@@ -296,9 +319,9 @@ int git_rebase_open(
296
319
  const git_rebase_options *given_opts)
297
320
  {
298
321
  git_rebase *rebase;
299
- git_buf path = GIT_BUF_INIT, orig_head_name = GIT_BUF_INIT,
300
- orig_head_id = GIT_BUF_INIT, onto_id = GIT_BUF_INIT;
301
- size_t state_path_len;
322
+ git_str orig_head_name = GIT_STR_INIT,
323
+ orig_head_id = GIT_STR_INIT,
324
+ onto_id = GIT_STR_INIT;
302
325
  int error;
303
326
 
304
327
  GIT_ASSERT_ARG(repo);
@@ -320,54 +343,31 @@ int git_rebase_open(
320
343
  goto done;
321
344
  }
322
345
 
323
- if ((error = git_buf_puts(&path, rebase->state_path)) < 0)
346
+ if ((error = git_str_puts(&rebase->state_filename, rebase->state_path)) < 0)
324
347
  goto done;
325
348
 
326
- state_path_len = git_buf_len(&path);
327
-
328
- if ((error = git_buf_joinpath(&path, path.ptr, HEAD_NAME_FILE)) < 0 ||
329
- (error = git_futils_readbuffer(&orig_head_name, path.ptr)) < 0)
349
+ if ((error = rebase_readfile(&orig_head_name, rebase, HEAD_NAME_FILE)) < 0)
330
350
  goto done;
331
351
 
332
- git_buf_rtrim(&orig_head_name);
352
+ git_str_rtrim(&orig_head_name);
333
353
 
334
354
  if (strcmp(ORIG_DETACHED_HEAD, orig_head_name.ptr) == 0)
335
355
  rebase->head_detached = 1;
336
356
 
337
- git_buf_truncate(&path, state_path_len);
338
-
339
- if ((error = git_buf_joinpath(&path, path.ptr, ORIG_HEAD_FILE)) < 0)
340
- goto done;
341
-
342
- if (!git_path_isfile(path.ptr)) {
357
+ if ((error = rebase_readoid(&rebase->orig_head_id, &orig_head_id, rebase, ORIG_HEAD_FILE)) < 0) {
343
358
  /* Previous versions of git.git used 'head' here; support that. */
344
- git_buf_truncate(&path, state_path_len);
359
+ if (error == GIT_ENOTFOUND)
360
+ error = rebase_readoid(&rebase->orig_head_id, &orig_head_id, rebase, HEAD_FILE);
345
361
 
346
- if ((error = git_buf_joinpath(&path, path.ptr, HEAD_FILE)) < 0)
362
+ if (error < 0)
347
363
  goto done;
348
364
  }
349
365
 
350
- if ((error = git_futils_readbuffer(&orig_head_id, path.ptr)) < 0)
351
- goto done;
352
-
353
- git_buf_rtrim(&orig_head_id);
354
-
355
- if ((error = git_oid_fromstr(&rebase->orig_head_id, orig_head_id.ptr)) < 0)
356
- goto done;
357
-
358
- git_buf_truncate(&path, state_path_len);
359
-
360
- if ((error = git_buf_joinpath(&path, path.ptr, ONTO_FILE)) < 0 ||
361
- (error = git_futils_readbuffer(&onto_id, path.ptr)) < 0)
362
- goto done;
363
-
364
- git_buf_rtrim(&onto_id);
365
-
366
- if ((error = git_oid_fromstr(&rebase->onto_id, onto_id.ptr)) < 0)
366
+ if ((error = rebase_readoid(&rebase->onto_id, &onto_id, rebase, ONTO_FILE)) < 0)
367
367
  goto done;
368
368
 
369
369
  if (!rebase->head_detached)
370
- rebase->orig_head_name = git_buf_detach(&orig_head_name);
370
+ rebase->orig_head_name = git_str_detach(&orig_head_name);
371
371
 
372
372
  switch (rebase->type) {
373
373
  case GIT_REBASE_INTERACTIVE:
@@ -391,10 +391,9 @@ done:
391
391
  else
392
392
  git_rebase_free(rebase);
393
393
 
394
- git_buf_dispose(&path);
395
- git_buf_dispose(&orig_head_name);
396
- git_buf_dispose(&orig_head_id);
397
- git_buf_dispose(&onto_id);
394
+ git_str_dispose(&orig_head_name);
395
+ git_str_dispose(&orig_head_id);
396
+ git_str_dispose(&onto_id);
398
397
  return error;
399
398
  }
400
399
 
@@ -403,27 +402,27 @@ static int rebase_cleanup(git_rebase *rebase)
403
402
  if (!rebase || rebase->inmemory)
404
403
  return 0;
405
404
 
406
- return git_path_isdir(rebase->state_path) ?
405
+ return git_fs_path_isdir(rebase->state_path) ?
407
406
  git_futils_rmdir_r(rebase->state_path, NULL, GIT_RMDIR_REMOVE_FILES) :
408
407
  0;
409
408
  }
410
409
 
411
410
  static int rebase_setupfile(git_rebase *rebase, const char *filename, int flags, const char *fmt, ...)
412
411
  {
413
- git_buf path = GIT_BUF_INIT,
414
- contents = GIT_BUF_INIT;
412
+ git_str path = GIT_STR_INIT,
413
+ contents = GIT_STR_INIT;
415
414
  va_list ap;
416
415
  int error;
417
416
 
418
417
  va_start(ap, fmt);
419
- git_buf_vprintf(&contents, fmt, ap);
418
+ git_str_vprintf(&contents, fmt, ap);
420
419
  va_end(ap);
421
420
 
422
- if ((error = git_buf_joinpath(&path, rebase->state_path, filename)) == 0)
421
+ if ((error = git_str_joinpath(&path, rebase->state_path, filename)) == 0)
423
422
  error = git_futils_writebuffer(&contents, path.ptr, flags, REBASE_FILE_MODE);
424
423
 
425
- git_buf_dispose(&path);
426
- git_buf_dispose(&contents);
424
+ git_str_dispose(&path);
425
+ git_str_dispose(&contents);
427
426
 
428
427
  return error;
429
428
  }
@@ -440,41 +439,40 @@ static const char *rebase_onto_name(const git_annotated_commit *onto)
440
439
 
441
440
  static int rebase_setupfiles_merge(git_rebase *rebase)
442
441
  {
443
- git_buf commit_filename = GIT_BUF_INIT;
444
- char id_str[GIT_OID_HEXSZ];
442
+ git_str commit_filename = GIT_STR_INIT;
443
+ char id_str[GIT_OID_MAX_HEXSIZE + 1];
445
444
  git_rebase_operation *operation;
446
445
  size_t i;
447
446
  int error = 0;
448
447
 
449
448
  if ((error = rebase_setupfile(rebase, END_FILE, 0, "%" PRIuZ "\n", git_array_size(rebase->operations))) < 0 ||
450
- (error = rebase_setupfile(rebase, ONTO_NAME_FILE, 0, "%s\n", rebase->onto_name)) < 0)
449
+ (error = rebase_setupfile(rebase, ONTO_NAME_FILE, 0, "%s\n", rebase->onto_name)) < 0)
451
450
  goto done;
452
451
 
453
452
  for (i = 0; i < git_array_size(rebase->operations); i++) {
454
453
  operation = git_array_get(rebase->operations, i);
455
454
 
456
- git_buf_clear(&commit_filename);
457
- git_buf_printf(&commit_filename, CMT_FILE_FMT, i+1);
455
+ git_str_clear(&commit_filename);
456
+ git_str_printf(&commit_filename, CMT_FILE_FMT, i+1);
458
457
 
459
- git_oid_fmt(id_str, &operation->id);
458
+ git_oid_tostr(id_str, GIT_OID_MAX_HEXSIZE + 1, &operation->id);
460
459
 
461
- if ((error = rebase_setupfile(rebase, commit_filename.ptr, 0,
462
- "%.*s\n", GIT_OID_HEXSZ, id_str)) < 0)
460
+ if ((error = rebase_setupfile(rebase, commit_filename.ptr, 0, "%s\n", id_str)) < 0)
463
461
  goto done;
464
462
  }
465
463
 
466
464
  done:
467
- git_buf_dispose(&commit_filename);
465
+ git_str_dispose(&commit_filename);
468
466
  return error;
469
467
  }
470
468
 
471
469
  static int rebase_setupfiles(git_rebase *rebase)
472
470
  {
473
- char onto[GIT_OID_HEXSZ], orig_head[GIT_OID_HEXSZ];
471
+ char onto[GIT_OID_MAX_HEXSIZE + 1], orig_head[GIT_OID_MAX_HEXSIZE + 1];
474
472
  const char *orig_head_name;
475
473
 
476
- git_oid_fmt(onto, &rebase->onto_id);
477
- git_oid_fmt(orig_head, &rebase->orig_head_id);
474
+ git_oid_tostr(onto, GIT_OID_MAX_HEXSIZE + 1, &rebase->onto_id);
475
+ git_oid_tostr(orig_head, GIT_OID_MAX_HEXSIZE + 1, &rebase->orig_head_id);
478
476
 
479
477
  if (p_mkdir(rebase->state_path, REBASE_DIR_MODE) < 0) {
480
478
  git_error_set(GIT_ERROR_OS, "failed to create rebase directory '%s'", rebase->state_path);
@@ -486,8 +484,8 @@ static int rebase_setupfiles(git_rebase *rebase)
486
484
 
487
485
  if (git_repository__set_orig_head(rebase->repo, &rebase->orig_head_id) < 0 ||
488
486
  rebase_setupfile(rebase, HEAD_NAME_FILE, 0, "%s\n", orig_head_name) < 0 ||
489
- rebase_setupfile(rebase, ONTO_FILE, 0, "%.*s\n", GIT_OID_HEXSZ, onto) < 0 ||
490
- rebase_setupfile(rebase, ORIG_HEAD_FILE, 0, "%.*s\n", GIT_OID_HEXSZ, orig_head) < 0 ||
487
+ rebase_setupfile(rebase, ONTO_FILE, 0, "%s\n", onto) < 0 ||
488
+ rebase_setupfile(rebase, ORIG_HEAD_FILE, 0, "%s\n", orig_head) < 0 ||
491
489
  rebase_setupfile(rebase, QUIET_FILE, 0, rebase->quiet ? "t\n" : "\n") < 0)
492
490
  return -1;
493
491
 
@@ -626,16 +624,17 @@ static int rebase_init_merge(
626
624
  {
627
625
  git_reference *head_ref = NULL;
628
626
  git_commit *onto_commit = NULL;
629
- git_buf reflog = GIT_BUF_INIT;
630
- git_buf state_path = GIT_BUF_INIT;
627
+ git_str reflog = GIT_STR_INIT;
628
+ git_str state_path = GIT_STR_INIT;
631
629
  int error;
632
630
 
633
631
  GIT_UNUSED(upstream);
634
632
 
635
- if ((error = git_buf_joinpath(&state_path, repo->gitdir, REBASE_MERGE_DIR)) < 0)
633
+ if ((error = git_str_joinpath(&state_path, repo->gitdir, REBASE_MERGE_DIR)) < 0 ||
634
+ (error = git_str_put(&rebase->state_filename, state_path.ptr, state_path.size)) < 0)
636
635
  goto done;
637
636
 
638
- rebase->state_path = git_buf_detach(&state_path);
637
+ rebase->state_path = git_str_detach(&state_path);
639
638
  GIT_ERROR_CHECK_ALLOC(rebase->state_path);
640
639
 
641
640
  if (branch->ref_name && strcmp(branch->ref_name, "HEAD")) {
@@ -654,7 +653,7 @@ static int rebase_init_merge(
654
653
  git_oid_cpy(&rebase->onto_id, git_annotated_commit_id(onto));
655
654
 
656
655
  if ((error = rebase_setupfiles(rebase)) < 0 ||
657
- (error = git_buf_printf(&reflog,
656
+ (error = git_str_printf(&reflog,
658
657
  "rebase: checkout %s", rebase_onto_name(onto))) < 0 ||
659
658
  (error = git_commit_lookup(
660
659
  &onto_commit, repo, git_annotated_commit_id(onto))) < 0 ||
@@ -667,8 +666,8 @@ static int rebase_init_merge(
667
666
  done:
668
667
  git_reference_free(head_ref);
669
668
  git_commit_free(onto_commit);
670
- git_buf_dispose(&reflog);
671
- git_buf_dispose(&state_path);
669
+ git_str_dispose(&reflog);
670
+ git_str_dispose(&state_path);
672
671
 
673
672
  return error;
674
673
  }
@@ -795,14 +794,14 @@ static int rebase_next_merge(
795
794
  git_rebase_operation **out,
796
795
  git_rebase *rebase)
797
796
  {
798
- git_buf path = GIT_BUF_INIT;
797
+ git_str path = GIT_STR_INIT;
799
798
  git_commit *current_commit = NULL, *parent_commit = NULL;
800
799
  git_tree *current_tree = NULL, *head_tree = NULL, *parent_tree = NULL;
801
800
  git_index *index = NULL;
802
801
  git_indexwriter indexwriter = GIT_INDEXWRITER_INIT;
803
802
  git_rebase_operation *operation;
804
803
  git_checkout_options checkout_opts;
805
- char current_idstr[GIT_OID_HEXSZ];
804
+ char current_idstr[GIT_OID_MAX_HEXSIZE + 1];
806
805
  unsigned int parent_count;
807
806
  int error;
808
807
 
@@ -825,13 +824,13 @@ static int rebase_next_merge(
825
824
  goto done;
826
825
  }
827
826
 
828
- git_oid_fmt(current_idstr, &operation->id);
827
+ git_oid_tostr(current_idstr, GIT_OID_MAX_HEXSIZE + 1, &operation->id);
829
828
 
830
829
  normalize_checkout_options_for_apply(&checkout_opts, rebase, current_commit);
831
830
 
832
831
  if ((error = git_indexwriter_init_for_operation(&indexwriter, rebase->repo, &checkout_opts.checkout_strategy)) < 0 ||
833
832
  (error = rebase_setupfile(rebase, MSGNUM_FILE, 0, "%" PRIuZ "\n", rebase->current+1)) < 0 ||
834
- (error = rebase_setupfile(rebase, CURRENT_FILE, 0, "%.*s\n", GIT_OID_HEXSZ, current_idstr)) < 0 ||
833
+ (error = rebase_setupfile(rebase, CURRENT_FILE, 0, "%s\n", current_idstr)) < 0 ||
835
834
  (error = git_merge_trees(&index, rebase->repo, parent_tree, head_tree, current_tree, &rebase->options.merge_options)) < 0 ||
836
835
  (error = git_merge__check_result(rebase->repo, index)) < 0 ||
837
836
  (error = git_checkout_index(rebase->repo, index, &checkout_opts)) < 0 ||
@@ -848,7 +847,7 @@ done:
848
847
  git_tree_free(parent_tree);
849
848
  git_commit_free(parent_commit);
850
849
  git_commit_free(current_commit);
851
- git_buf_dispose(&path);
850
+ git_str_dispose(&path);
852
851
 
853
852
  return error;
854
853
  }
@@ -955,14 +954,14 @@ static int create_signed(
955
954
  size_t parent_count,
956
955
  const git_commit **parents)
957
956
  {
958
- git_buf commit_content = GIT_BUF_INIT,
959
- commit_signature = GIT_BUF_INIT,
960
- signature_field = GIT_BUF_INIT;
957
+ git_str commit_content = GIT_STR_INIT;
958
+ git_buf commit_signature = { NULL, 0, 0 },
959
+ signature_field = { NULL, 0, 0 };
961
960
  int error;
962
961
 
963
962
  git_error_clear();
964
963
 
965
- if ((error = git_commit_create_buffer(&commit_content,
964
+ if ((error = git_commit__create_buffer(&commit_content,
966
965
  rebase->repo, author, committer, message_encoding,
967
966
  message, tree, parent_count, parents)) < 0)
968
967
  goto done;
@@ -986,7 +985,7 @@ static int create_signed(
986
985
  done:
987
986
  git_buf_dispose(&commit_signature);
988
987
  git_buf_dispose(&signature_field);
989
- git_buf_dispose(&commit_content);
988
+ git_str_dispose(&commit_content);
990
989
  return error;
991
990
  }
992
991
  #endif
@@ -1091,7 +1090,7 @@ static int rebase_commit_merge(
1091
1090
  git_reference *head = NULL;
1092
1091
  git_commit *head_commit = NULL, *commit = NULL;
1093
1092
  git_index *index = NULL;
1094
- char old_idstr[GIT_OID_HEXSZ], new_idstr[GIT_OID_HEXSZ];
1093
+ char old_idstr[GIT_OID_MAX_HEXSIZE + 1], new_idstr[GIT_OID_MAX_HEXSIZE + 1];
1095
1094
  int error;
1096
1095
 
1097
1096
  operation = git_array_get(rebase->operations, rebase->current);
@@ -1107,11 +1106,11 @@ static int rebase_commit_merge(
1107
1106
  rebase->repo, NULL, "HEAD", git_commit_id(commit), "rebase")) < 0)
1108
1107
  goto done;
1109
1108
 
1110
- git_oid_fmt(old_idstr, &operation->id);
1111
- git_oid_fmt(new_idstr, git_commit_id(commit));
1109
+ git_oid_tostr(old_idstr, GIT_OID_MAX_HEXSIZE + 1, &operation->id);
1110
+ git_oid_tostr(new_idstr, GIT_OID_MAX_HEXSIZE + 1, git_commit_id(commit));
1112
1111
 
1113
1112
  if ((error = rebase_setupfile(rebase, REWRITTEN_FILE, O_CREAT|O_WRONLY|O_APPEND,
1114
- "%.*s %.*s\n", GIT_OID_HEXSZ, old_idstr, GIT_OID_HEXSZ, new_idstr)) < 0)
1113
+ "%s %s\n", old_idstr, new_idstr)) < 0)
1115
1114
  goto done;
1116
1115
 
1117
1116
  git_oid_cpy(commit_id, git_commit_id(commit));
@@ -1216,13 +1215,13 @@ done:
1216
1215
  return error;
1217
1216
  }
1218
1217
 
1219
- static int notes_ref_lookup(git_buf *out, git_rebase *rebase)
1218
+ static int notes_ref_lookup(git_str *out, git_rebase *rebase)
1220
1219
  {
1221
1220
  git_config *config = NULL;
1222
1221
  int do_rewrite, error;
1223
1222
 
1224
1223
  if (rebase->options.rewrite_notes_ref) {
1225
- git_buf_attach_notowned(out,
1224
+ git_str_attach_notowned(out,
1226
1225
  rebase->options.rewrite_notes_ref,
1227
1226
  strlen(rebase->options.rewrite_notes_ref));
1228
1227
  return 0;
@@ -1239,7 +1238,7 @@ static int notes_ref_lookup(git_buf *out, git_rebase *rebase)
1239
1238
  }
1240
1239
 
1241
1240
  error = do_rewrite ?
1242
- git_config_get_string_buf(out, config, "notes.rewriteref") :
1241
+ git_config__get_string_buf(out, config, "notes.rewriteref") :
1243
1242
  GIT_ENOTFOUND;
1244
1243
 
1245
1244
  done:
@@ -1294,7 +1293,9 @@ static int rebase_copy_notes(
1294
1293
  git_rebase *rebase,
1295
1294
  const git_signature *committer)
1296
1295
  {
1297
- git_buf path = GIT_BUF_INIT, rewritten = GIT_BUF_INIT, notes_ref = GIT_BUF_INIT;
1296
+ git_str path = GIT_STR_INIT,
1297
+ rewritten = GIT_STR_INIT,
1298
+ notes_ref = GIT_STR_INIT;
1298
1299
  char *pair_list, *fromstr, *tostr, *end;
1299
1300
  git_oid from, to;
1300
1301
  unsigned int linenum = 1;
@@ -1309,7 +1310,7 @@ static int rebase_copy_notes(
1309
1310
  goto done;
1310
1311
  }
1311
1312
 
1312
- if ((error = git_buf_joinpath(&path, rebase->state_path, REWRITTEN_FILE)) < 0 ||
1313
+ if ((error = git_str_joinpath(&path, rebase->state_path, REWRITTEN_FILE)) < 0 ||
1313
1314
  (error = git_futils_readbuffer(&rewritten, path.ptr)) < 0)
1314
1315
  goto done;
1315
1316
 
@@ -1330,10 +1331,10 @@ static int rebase_copy_notes(
1330
1331
  tostr = end+1;
1331
1332
  *end = '\0';
1332
1333
 
1333
- if (strlen(fromstr) != GIT_OID_HEXSZ ||
1334
- strlen(tostr) != GIT_OID_HEXSZ ||
1335
- git_oid_fromstr(&from, fromstr) < 0 ||
1336
- git_oid_fromstr(&to, tostr) < 0)
1334
+ if (strlen(fromstr) != git_oid_hexsize(rebase->repo->oid_type) ||
1335
+ strlen(tostr) != git_oid_hexsize(rebase->repo->oid_type) ||
1336
+ git_oid__fromstr(&from, fromstr, rebase->repo->oid_type) < 0 ||
1337
+ git_oid__fromstr(&to, tostr, rebase->repo->oid_type) < 0)
1337
1338
  goto on_error;
1338
1339
 
1339
1340
  if ((error = rebase_copy_note(rebase, notes_ref.ptr, &from, &to, committer)) < 0)
@@ -1349,9 +1350,9 @@ on_error:
1349
1350
  error = -1;
1350
1351
 
1351
1352
  done:
1352
- git_buf_dispose(&rewritten);
1353
- git_buf_dispose(&path);
1354
- git_buf_dispose(&notes_ref);
1353
+ git_str_dispose(&rewritten);
1354
+ git_str_dispose(&path);
1355
+ git_str_dispose(&notes_ref);
1355
1356
 
1356
1357
  return error;
1357
1358
  }
@@ -1360,18 +1361,16 @@ static int return_to_orig_head(git_rebase *rebase)
1360
1361
  {
1361
1362
  git_reference *terminal_ref = NULL, *branch_ref = NULL, *head_ref = NULL;
1362
1363
  git_commit *terminal_commit = NULL;
1363
- git_buf branch_msg = GIT_BUF_INIT, head_msg = GIT_BUF_INIT;
1364
- char onto[GIT_OID_HEXSZ];
1364
+ git_str branch_msg = GIT_STR_INIT, head_msg = GIT_STR_INIT;
1365
+ char onto[GIT_OID_MAX_HEXSIZE + 1];
1365
1366
  int error = 0;
1366
1367
 
1367
- git_oid_fmt(onto, &rebase->onto_id);
1368
+ git_oid_tostr(onto, GIT_OID_MAX_HEXSIZE + 1, &rebase->onto_id);
1368
1369
 
1369
- if ((error = git_buf_printf(&branch_msg,
1370
- "rebase finished: %s onto %.*s",
1371
- rebase->orig_head_name, GIT_OID_HEXSZ, onto)) == 0 &&
1372
- (error = git_buf_printf(&head_msg,
1373
- "rebase finished: returning to %s",
1374
- rebase->orig_head_name)) == 0 &&
1370
+ if ((error = git_str_printf(&branch_msg,
1371
+ "rebase finished: %s onto %s", rebase->orig_head_name, onto)) == 0 &&
1372
+ (error = git_str_printf(&head_msg,
1373
+ "rebase finished: returning to %s", rebase->orig_head_name)) == 0 &&
1375
1374
  (error = git_repository_head(&terminal_ref, rebase->repo)) == 0 &&
1376
1375
  (error = git_reference_peel((git_object **)&terminal_commit,
1377
1376
  terminal_ref, GIT_OBJECT_COMMIT)) == 0 &&
@@ -1383,8 +1382,8 @@ static int return_to_orig_head(git_rebase *rebase)
1383
1382
  rebase->repo, GIT_HEAD_FILE, rebase->orig_head_name, 1,
1384
1383
  head_msg.ptr);
1385
1384
 
1386
- git_buf_dispose(&head_msg);
1387
- git_buf_dispose(&branch_msg);
1385
+ git_str_dispose(&head_msg);
1386
+ git_str_dispose(&branch_msg);
1388
1387
  git_commit_free(terminal_commit);
1389
1388
  git_reference_free(head_ref);
1390
1389
  git_reference_free(branch_ref);
@@ -1463,6 +1462,7 @@ void git_rebase_free(git_rebase *rebase)
1463
1462
  git__free(rebase->onto_name);
1464
1463
  git__free(rebase->orig_head_name);
1465
1464
  git__free(rebase->state_path);
1465
+ git_str_dispose(&rebase->state_filename);
1466
1466
  git_array_clear(rebase->operations);
1467
1467
  git__free((char *)rebase->options.rewrite_notes_ref);
1468
1468
  git__free(rebase);