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
@@ -27,10 +27,11 @@
27
27
  #include "diff_generate.h"
28
28
  #include "pathspec.h"
29
29
  #include "diff_xdiff.h"
30
- #include "path.h"
30
+ #include "fs_path.h"
31
31
  #include "attr.h"
32
32
  #include "pool.h"
33
- #include "strmap.h"
33
+ #include "path.h"
34
+ #include "hashmap_str.h"
34
35
 
35
36
  /* See docs/checkout-internals.md for more information */
36
37
 
@@ -44,7 +45,7 @@ enum {
44
45
  CHECKOUT_ACTION__UPDATE_CONFLICT = 32,
45
46
  CHECKOUT_ACTION__MAX = 32,
46
47
  CHECKOUT_ACTION__REMOVE_AND_UPDATE =
47
- (CHECKOUT_ACTION__UPDATE_BLOB | CHECKOUT_ACTION__REMOVE),
48
+ (CHECKOUT_ACTION__UPDATE_BLOB | CHECKOUT_ACTION__REMOVE)
48
49
  };
49
50
 
50
51
  typedef struct {
@@ -61,9 +62,9 @@ typedef struct {
61
62
  git_vector update_conflicts;
62
63
  git_vector *update_reuc;
63
64
  git_vector *update_names;
64
- git_buf target_path;
65
+ git_str target_path;
65
66
  size_t target_len;
66
- git_buf tmp;
67
+ git_str tmp;
67
68
  unsigned int strategy;
68
69
  int can_symlink;
69
70
  int respect_filemode;
@@ -71,7 +72,7 @@ typedef struct {
71
72
  size_t total_steps;
72
73
  size_t completed_steps;
73
74
  git_checkout_perfdata perfdata;
74
- git_strmap *mkdir_map;
75
+ git_hashset_str mkdir_pathcache;
75
76
  git_attr_session attr_session;
76
77
  } checkout_data;
77
78
 
@@ -80,11 +81,11 @@ typedef struct {
80
81
  const git_index_entry *ours;
81
82
  const git_index_entry *theirs;
82
83
 
83
- int name_collision:1,
84
- directoryfile:1,
85
- one_to_two:1,
86
- binary:1,
87
- submodule:1;
84
+ unsigned int name_collision:1,
85
+ directoryfile:1,
86
+ one_to_two:1,
87
+ binary:1,
88
+ submodule:1;
88
89
  } checkout_conflictdata;
89
90
 
90
91
  static int checkout_notify(
@@ -293,6 +294,9 @@ static int checkout_action_no_wd(
293
294
 
294
295
  *action = CHECKOUT_ACTION__NONE;
295
296
 
297
+ if ((data->strategy & GIT_CHECKOUT_NONE))
298
+ return 0;
299
+
296
300
  switch (delta->status) {
297
301
  case GIT_DELTA_UNMODIFIED: /* case 12 */
298
302
  error = checkout_notify(data, GIT_CHECKOUT_NOTIFY_DIRTY, delta, NULL);
@@ -301,17 +305,17 @@ static int checkout_action_no_wd(
301
305
  *action = CHECKOUT_ACTION_IF(RECREATE_MISSING, UPDATE_BLOB, NONE);
302
306
  break;
303
307
  case GIT_DELTA_ADDED: /* case 2 or 28 (and 5 but not really) */
304
- *action = CHECKOUT_ACTION_IF(SAFE, UPDATE_BLOB, NONE);
308
+ *action = CHECKOUT_ACTION__UPDATE_BLOB;
305
309
  break;
306
310
  case GIT_DELTA_MODIFIED: /* case 13 (and 35 but not really) */
307
311
  *action = CHECKOUT_ACTION_IF(RECREATE_MISSING, UPDATE_BLOB, CONFLICT);
308
312
  break;
309
313
  case GIT_DELTA_TYPECHANGE: /* case 21 (B->T) and 28 (T->B)*/
310
314
  if (delta->new_file.mode == GIT_FILEMODE_TREE)
311
- *action = CHECKOUT_ACTION_IF(SAFE, UPDATE_BLOB, NONE);
315
+ *action = CHECKOUT_ACTION__UPDATE_BLOB;
312
316
  break;
313
317
  case GIT_DELTA_DELETED: /* case 8 or 25 */
314
- *action = CHECKOUT_ACTION_IF(SAFE, REMOVE, NONE);
318
+ *action = CHECKOUT_ACTION__REMOVE;
315
319
  break;
316
320
  default: /* impossible */
317
321
  break;
@@ -321,14 +325,14 @@ static int checkout_action_no_wd(
321
325
  }
322
326
 
323
327
  static int checkout_target_fullpath(
324
- git_buf **out, checkout_data *data, const char *path)
328
+ git_str **out, checkout_data *data, const char *path)
325
329
  {
326
- git_buf_truncate(&data->target_path, data->target_len);
330
+ git_str_truncate(&data->target_path, data->target_len);
327
331
 
328
- if (path && git_buf_puts(&data->target_path, path) < 0)
332
+ if (path && git_str_puts(&data->target_path, path) < 0)
329
333
  return -1;
330
334
 
331
- if (git_path_validate_workdir_buf(data->repo, &data->target_path) < 0)
335
+ if (git_path_validate_str_length(data->repo, &data->target_path) < 0)
332
336
  return -1;
333
337
 
334
338
  *out = &data->target_path;
@@ -339,7 +343,7 @@ static int checkout_target_fullpath(
339
343
  static bool wd_item_is_removable(
340
344
  checkout_data *data, const git_index_entry *wd)
341
345
  {
342
- git_buf *full;
346
+ git_str *full;
343
347
 
344
348
  if (wd->mode != GIT_FILEMODE_TREE)
345
349
  return true;
@@ -347,7 +351,7 @@ static bool wd_item_is_removable(
347
351
  if (checkout_target_fullpath(&full, data, wd->path) < 0)
348
352
  return false;
349
353
 
350
- return !full || !git_path_contains(full, DOT_GIT);
354
+ return !full || !git_fs_path_contains(full, DOT_GIT);
351
355
  }
352
356
 
353
357
  static int checkout_queue_remove(checkout_data *data, const char *path)
@@ -423,7 +427,7 @@ static int checkout_action_wd_only(
423
427
 
424
428
  /* copy the entry for issuing notification callback later */
425
429
  git_index_entry saved_wd = *wd;
426
- git_buf_sets(&data->tmp, wd->path);
430
+ git_str_sets(&data->tmp, wd->path);
427
431
  saved_wd.path = data->tmp.ptr;
428
432
 
429
433
  error = git_iterator_advance_over(
@@ -476,12 +480,12 @@ static bool submodule_is_config_only(
476
480
 
477
481
  static bool checkout_is_empty_dir(checkout_data *data, const char *path)
478
482
  {
479
- git_buf *fullpath;
483
+ git_str *fullpath;
480
484
 
481
485
  if (checkout_target_fullpath(&fullpath, data, path) < 0)
482
486
  return false;
483
487
 
484
- return git_path_is_empty_dir(fullpath->ptr);
488
+ return git_fs_path_is_empty_dir(fullpath->ptr);
485
489
  }
486
490
 
487
491
  static int checkout_action_with_wd(
@@ -493,6 +497,9 @@ static int checkout_action_with_wd(
493
497
  {
494
498
  *action = CHECKOUT_ACTION__NONE;
495
499
 
500
+ if ((data->strategy & GIT_CHECKOUT_NONE))
501
+ return 0;
502
+
496
503
  switch (delta->status) {
497
504
  case GIT_DELTA_UNMODIFIED: /* case 14/15 or 33 */
498
505
  if (checkout_is_workdir_modified(data, &delta->old_file, &delta->new_file, wd)) {
@@ -511,14 +518,14 @@ static int checkout_action_with_wd(
511
518
  if (checkout_is_workdir_modified(data, &delta->old_file, &delta->new_file, wd))
512
519
  *action = CHECKOUT_ACTION_IF(FORCE, REMOVE, CONFLICT);
513
520
  else
514
- *action = CHECKOUT_ACTION_IF(SAFE, REMOVE, NONE);
521
+ *action = CHECKOUT_ACTION__REMOVE;
515
522
  break;
516
523
  case GIT_DELTA_MODIFIED: /* case 16, 17, 18 (or 36 but not really) */
517
524
  if (wd->mode != GIT_FILEMODE_COMMIT &&
518
525
  checkout_is_workdir_modified(data, &delta->old_file, &delta->new_file, wd))
519
526
  *action = CHECKOUT_ACTION_IF(FORCE, UPDATE_BLOB, CONFLICT);
520
527
  else
521
- *action = CHECKOUT_ACTION_IF(SAFE, UPDATE_BLOB, NONE);
528
+ *action = CHECKOUT_ACTION__UPDATE_BLOB;
522
529
  break;
523
530
  case GIT_DELTA_TYPECHANGE: /* case 22, 23, 29, 30 */
524
531
  if (delta->old_file.mode == GIT_FILEMODE_TREE) {
@@ -526,13 +533,13 @@ static int checkout_action_with_wd(
526
533
  /* either deleting items in old tree will delete the wd dir,
527
534
  * or we'll get a conflict when we attempt blob update...
528
535
  */
529
- *action = CHECKOUT_ACTION_IF(SAFE, UPDATE_BLOB, NONE);
536
+ *action = CHECKOUT_ACTION__UPDATE_BLOB;
530
537
  else if (wd->mode == GIT_FILEMODE_COMMIT) {
531
538
  /* workdir is possibly a "phantom" submodule - treat as a
532
539
  * tree if the only submodule info came from the config
533
540
  */
534
541
  if (submodule_is_config_only(data, wd->path))
535
- *action = CHECKOUT_ACTION_IF(SAFE, UPDATE_BLOB, NONE);
542
+ *action = CHECKOUT_ACTION__UPDATE_BLOB;
536
543
  else
537
544
  *action = CHECKOUT_ACTION_IF(FORCE, REMOVE_AND_UPDATE, CONFLICT);
538
545
  } else
@@ -541,7 +548,7 @@ static int checkout_action_with_wd(
541
548
  else if (checkout_is_workdir_modified(data, &delta->old_file, &delta->new_file, wd))
542
549
  *action = CHECKOUT_ACTION_IF(FORCE, REMOVE_AND_UPDATE, CONFLICT);
543
550
  else
544
- *action = CHECKOUT_ACTION_IF(SAFE, REMOVE_AND_UPDATE, NONE);
551
+ *action = CHECKOUT_ACTION__REMOVE_AND_UPDATE;
545
552
 
546
553
  /* don't update if the typechange is to a tree */
547
554
  if (delta->new_file.mode == GIT_FILEMODE_TREE)
@@ -562,6 +569,9 @@ static int checkout_action_with_wd_blocker(
562
569
  {
563
570
  *action = CHECKOUT_ACTION__NONE;
564
571
 
572
+ if ((data->strategy & GIT_CHECKOUT_NONE))
573
+ return 0;
574
+
565
575
  switch (delta->status) {
566
576
  case GIT_DELTA_UNMODIFIED:
567
577
  /* should show delta as dirty / deleted */
@@ -596,6 +606,9 @@ static int checkout_action_with_wd_dir(
596
606
  {
597
607
  *action = CHECKOUT_ACTION__NONE;
598
608
 
609
+ if ((data->strategy & GIT_CHECKOUT_NONE))
610
+ return 0;
611
+
599
612
  switch (delta->status) {
600
613
  case GIT_DELTA_UNMODIFIED: /* case 19 or 24 (or 34 but not really) */
601
614
  GIT_ERROR_CHECK_ERROR(
@@ -626,7 +639,7 @@ static int checkout_action_with_wd_dir(
626
639
  * directory if is it left empty, so we can defer removing the
627
640
  * dir and it will succeed if no children are left.
628
641
  */
629
- *action = CHECKOUT_ACTION_IF(SAFE, UPDATE_BLOB, NONE);
642
+ *action = CHECKOUT_ACTION__UPDATE_BLOB;
630
643
  }
631
644
  else if (delta->new_file.mode != GIT_FILEMODE_TREE)
632
645
  /* For typechange to dir, dir is already created so no action */
@@ -962,7 +975,7 @@ static int checkout_conflicts_load(checkout_data *data, git_iterator *workdir, g
962
975
  {
963
976
  git_index *index;
964
977
 
965
- /* Only write conficts from sources that have them: indexes. */
978
+ /* Only write conflicts from sources that have them: indexes. */
966
979
  if ((index = git_iterator_index(data->target)) == NULL)
967
980
  return 0;
968
981
 
@@ -1201,12 +1214,12 @@ static int checkout_conflicts_mark_directoryfile(
1201
1214
  goto done;
1202
1215
  }
1203
1216
 
1204
- prefixed = git_path_equal_or_prefixed(path, entry->path, NULL);
1217
+ prefixed = git_fs_path_equal_or_prefixed(path, entry->path, NULL);
1205
1218
 
1206
- if (prefixed == GIT_PATH_EQUAL)
1219
+ if (prefixed == GIT_FS_PATH_EQUAL)
1207
1220
  continue;
1208
1221
 
1209
- if (prefixed == GIT_PATH_PREFIX)
1222
+ if (prefixed == GIT_FS_PATH_PREFIX)
1210
1223
  conflict->directoryfile = 1;
1211
1224
 
1212
1225
  break;
@@ -1280,14 +1293,14 @@ static int checkout_verify_paths(
1280
1293
  unsigned int flags = GIT_PATH_REJECT_WORKDIR_DEFAULTS;
1281
1294
 
1282
1295
  if (action & CHECKOUT_ACTION__REMOVE) {
1283
- if (!git_path_validate(repo, delta->old_file.path, delta->old_file.mode, flags)) {
1296
+ if (!git_path_is_valid(repo, delta->old_file.path, delta->old_file.mode, flags)) {
1284
1297
  git_error_set(GIT_ERROR_CHECKOUT, "cannot remove invalid path '%s'", delta->old_file.path);
1285
1298
  return -1;
1286
1299
  }
1287
1300
  }
1288
1301
 
1289
1302
  if (action & ~CHECKOUT_ACTION__REMOVE) {
1290
- if (!git_path_validate(repo, delta->new_file.path, delta->new_file.mode, flags)) {
1303
+ if (!git_path_is_valid(repo, delta->new_file.path, delta->new_file.mode, flags)) {
1291
1304
  git_error_set(GIT_ERROR_CHECKOUT, "cannot checkout to invalid path '%s'", delta->new_file.path);
1292
1305
  return -1;
1293
1306
  }
@@ -1418,8 +1431,10 @@ static int checkout_mkdir(
1418
1431
  struct git_futils_mkdir_options mkdir_opts = {0};
1419
1432
  int error;
1420
1433
 
1421
- mkdir_opts.dir_map = data->mkdir_map;
1422
- mkdir_opts.pool = &data->pool;
1434
+ if (git_pool_is_initialized(&data->pool)) {
1435
+ mkdir_opts.cache_pool = &data->pool;
1436
+ mkdir_opts.cache_pathset = &data->mkdir_pathcache;
1437
+ }
1423
1438
 
1424
1439
  error = git_futils_mkdir_relative(
1425
1440
  path, base, mode, flags, &mkdir_opts);
@@ -1584,7 +1599,7 @@ static int blob_content_to_link(
1584
1599
  git_blob *blob,
1585
1600
  const char *path)
1586
1601
  {
1587
- git_buf linktarget = GIT_BUF_INIT;
1602
+ git_str linktarget = GIT_STR_INIT;
1588
1603
  int error;
1589
1604
 
1590
1605
  if ((error = mkpath2file(data, path, data->opts.dir_mode)) < 0)
@@ -1594,10 +1609,10 @@ static int blob_content_to_link(
1594
1609
  return error;
1595
1610
 
1596
1611
  if (data->can_symlink) {
1597
- if ((error = p_symlink(git_buf_cstr(&linktarget), path)) < 0)
1612
+ if ((error = p_symlink(git_str_cstr(&linktarget), path)) < 0)
1598
1613
  git_error_set(GIT_ERROR_OS, "could not create symlink %s", path);
1599
1614
  } else {
1600
- error = git_futils_fake_symlink(git_buf_cstr(&linktarget), path);
1615
+ error = git_futils_fake_symlink(git_str_cstr(&linktarget), path);
1601
1616
  }
1602
1617
 
1603
1618
  if (!error) {
@@ -1609,7 +1624,7 @@ static int blob_content_to_link(
1609
1624
  st->st_mode = GIT_FILEMODE_LINK;
1610
1625
  }
1611
1626
 
1612
- git_buf_dispose(&linktarget);
1627
+ git_str_dispose(&linktarget);
1613
1628
 
1614
1629
  return error;
1615
1630
  }
@@ -1636,7 +1651,7 @@ static int checkout_submodule_update_index(
1636
1651
  checkout_data *data,
1637
1652
  const git_diff_file *file)
1638
1653
  {
1639
- git_buf *fullpath;
1654
+ git_str *fullpath;
1640
1655
  struct stat st;
1641
1656
 
1642
1657
  /* update the index unless prevented */
@@ -1772,7 +1787,7 @@ static int checkout_blob(
1772
1787
  checkout_data *data,
1773
1788
  const git_diff_file *file)
1774
1789
  {
1775
- git_buf *fullpath;
1790
+ git_str *fullpath;
1776
1791
  struct stat st;
1777
1792
  int error = 0;
1778
1793
 
@@ -1809,7 +1824,7 @@ static int checkout_remove_the_old(
1809
1824
  git_diff_delta *delta;
1810
1825
  const char *str;
1811
1826
  size_t i;
1812
- git_buf *fullpath;
1827
+ git_str *fullpath;
1813
1828
  uint32_t flg = GIT_RMDIR_EMPTY_PARENTS |
1814
1829
  GIT_RMDIR_REMOVE_FILES | GIT_RMDIR_REMOVE_BLOCKERS;
1815
1830
 
@@ -1927,40 +1942,40 @@ static int checkout_lookup_head_tree(git_tree **out, git_repository *repo)
1927
1942
 
1928
1943
 
1929
1944
  static int conflict_entry_name(
1930
- git_buf *out,
1945
+ git_str *out,
1931
1946
  const char *side_name,
1932
1947
  const char *filename)
1933
1948
  {
1934
- if (git_buf_puts(out, side_name) < 0 ||
1935
- git_buf_putc(out, ':') < 0 ||
1936
- git_buf_puts(out, filename) < 0)
1949
+ if (git_str_puts(out, side_name) < 0 ||
1950
+ git_str_putc(out, ':') < 0 ||
1951
+ git_str_puts(out, filename) < 0)
1937
1952
  return -1;
1938
1953
 
1939
1954
  return 0;
1940
1955
  }
1941
1956
 
1942
- static int checkout_path_suffixed(git_buf *path, const char *suffix)
1957
+ static int checkout_path_suffixed(git_str *path, const char *suffix)
1943
1958
  {
1944
1959
  size_t path_len;
1945
1960
  int i = 0, error = 0;
1946
1961
 
1947
- if ((error = git_buf_putc(path, '~')) < 0 || (error = git_buf_puts(path, suffix)) < 0)
1962
+ if ((error = git_str_putc(path, '~')) < 0 || (error = git_str_puts(path, suffix)) < 0)
1948
1963
  return -1;
1949
1964
 
1950
- path_len = git_buf_len(path);
1965
+ path_len = git_str_len(path);
1951
1966
 
1952
- while (git_path_exists(git_buf_cstr(path)) && i < INT_MAX) {
1953
- git_buf_truncate(path, path_len);
1967
+ while (git_fs_path_exists(git_str_cstr(path)) && i < INT_MAX) {
1968
+ git_str_truncate(path, path_len);
1954
1969
 
1955
- if ((error = git_buf_putc(path, '_')) < 0 ||
1956
- (error = git_buf_printf(path, "%d", i)) < 0)
1970
+ if ((error = git_str_putc(path, '_')) < 0 ||
1971
+ (error = git_str_printf(path, "%d", i)) < 0)
1957
1972
  return error;
1958
1973
 
1959
1974
  i++;
1960
1975
  }
1961
1976
 
1962
1977
  if (i == INT_MAX) {
1963
- git_buf_truncate(path, path_len);
1978
+ git_str_truncate(path, path_len);
1964
1979
 
1965
1980
  git_error_set(GIT_ERROR_CHECKOUT, "could not write '%s': working directory file exists", path->ptr);
1966
1981
  return GIT_EEXISTS;
@@ -1974,8 +1989,8 @@ static int checkout_write_entry(
1974
1989
  checkout_conflictdata *conflict,
1975
1990
  const git_index_entry *side)
1976
1991
  {
1977
- const char *hint_path, *suffix;
1978
- git_buf *fullpath;
1992
+ const char *hint_path = NULL, *suffix;
1993
+ git_str *fullpath;
1979
1994
  struct stat st;
1980
1995
  int error;
1981
1996
 
@@ -2025,7 +2040,7 @@ static int checkout_write_entries(
2025
2040
  }
2026
2041
 
2027
2042
  static int checkout_merge_path(
2028
- git_buf *out,
2043
+ git_str *out,
2029
2044
  checkout_data *data,
2030
2045
  checkout_conflictdata *conflict,
2031
2046
  git_merge_file_result *result)
@@ -2033,8 +2048,8 @@ static int checkout_merge_path(
2033
2048
  const char *our_label_raw, *their_label_raw, *suffix;
2034
2049
  int error = 0;
2035
2050
 
2036
- if ((error = git_buf_joinpath(out, data->opts.target_directory, result->path)) < 0 ||
2037
- (error = git_path_validate_workdir_buf(data->repo, out)) < 0)
2051
+ if ((error = git_str_joinpath(out, data->opts.target_directory, result->path)) < 0 ||
2052
+ (error = git_path_validate_str_length(data->repo, out)) < 0)
2038
2053
  return error;
2039
2054
 
2040
2055
  /* Most conflicts simply use the filename in the index */
@@ -2056,9 +2071,9 @@ static int checkout_write_merge(
2056
2071
  checkout_data *data,
2057
2072
  checkout_conflictdata *conflict)
2058
2073
  {
2059
- git_buf our_label = GIT_BUF_INIT, their_label = GIT_BUF_INIT,
2060
- path_suffixed = GIT_BUF_INIT, path_workdir = GIT_BUF_INIT,
2061
- in_data = GIT_BUF_INIT, out_data = GIT_BUF_INIT;
2074
+ git_str our_label = GIT_STR_INIT, their_label = GIT_STR_INIT,
2075
+ path_suffixed = GIT_STR_INIT, path_workdir = GIT_STR_INIT,
2076
+ in_data = GIT_STR_INIT, out_data = GIT_STR_INIT;
2062
2077
  git_merge_file_options opts = GIT_MERGE_FILE_OPTIONS_INIT;
2063
2078
  git_merge_file_result result = {0};
2064
2079
  git_filebuf output = GIT_FILEBUF_INIT;
@@ -2069,6 +2084,9 @@ static int checkout_write_merge(
2069
2084
  if (data->opts.checkout_strategy & GIT_CHECKOUT_CONFLICT_STYLE_DIFF3)
2070
2085
  opts.flags |= GIT_MERGE_FILE_STYLE_DIFF3;
2071
2086
 
2087
+ if (data->opts.checkout_strategy & GIT_CHECKOUT_CONFLICT_STYLE_ZDIFF3)
2088
+ opts.flags |= GIT_MERGE_FILE_STYLE_ZDIFF3;
2089
+
2072
2090
  opts.ancestor_label = data->opts.ancestor_label ?
2073
2091
  data->opts.ancestor_label : "ancestor";
2074
2092
  opts.our_label = data->opts.our_label ?
@@ -2088,8 +2106,8 @@ static int checkout_write_merge(
2088
2106
  &their_label, opts.their_label, conflict->theirs->path)) < 0)
2089
2107
  goto done;
2090
2108
 
2091
- opts.our_label = git_buf_cstr(&our_label);
2092
- opts.their_label = git_buf_cstr(&their_label);
2109
+ opts.our_label = git_str_cstr(&our_label);
2110
+ opts.their_label = git_str_cstr(&their_label);
2093
2111
  }
2094
2112
 
2095
2113
  if ((error = git_merge_file_from_index(&result, data->repo,
@@ -2106,7 +2124,7 @@ static int checkout_write_merge(
2106
2124
  goto done;
2107
2125
 
2108
2126
  if ((data->strategy & GIT_CHECKOUT_UPDATE_ONLY) != 0 &&
2109
- (error = checkout_safe_for_update_only(data, git_buf_cstr(&path_workdir), result.mode)) <= 0)
2127
+ (error = checkout_safe_for_update_only(data, git_str_cstr(&path_workdir), result.mode)) <= 0)
2110
2128
  goto done;
2111
2129
 
2112
2130
  if (!data->opts.disable_filters) {
@@ -2127,7 +2145,7 @@ static int checkout_write_merge(
2127
2145
  }
2128
2146
 
2129
2147
  if ((error = mkpath2file(data, path_workdir.ptr, data->opts.dir_mode)) < 0 ||
2130
- (error = git_filebuf_open(&output, git_buf_cstr(&path_workdir), GIT_FILEBUF_DO_NOT_BUFFER, result.mode)) < 0 ||
2148
+ (error = git_filebuf_open(&output, git_str_cstr(&path_workdir), GIT_FILEBUF_DO_NOT_BUFFER, result.mode)) < 0 ||
2131
2149
  (error = git_filebuf_write(&output, out_data.ptr, out_data.size)) < 0 ||
2132
2150
  (error = git_filebuf_commit(&output)) < 0)
2133
2151
  goto done;
@@ -2135,13 +2153,13 @@ static int checkout_write_merge(
2135
2153
  done:
2136
2154
  git_filter_list_free(fl);
2137
2155
 
2138
- git_buf_dispose(&out_data);
2139
- git_buf_dispose(&our_label);
2140
- git_buf_dispose(&their_label);
2156
+ git_str_dispose(&out_data);
2157
+ git_str_dispose(&our_label);
2158
+ git_str_dispose(&their_label);
2141
2159
 
2142
2160
  git_merge_file_result_free(&result);
2143
- git_buf_dispose(&path_workdir);
2144
- git_buf_dispose(&path_suffixed);
2161
+ git_str_dispose(&path_workdir);
2162
+ git_str_dispose(&path_suffixed);
2145
2163
 
2146
2164
  return error;
2147
2165
  }
@@ -2312,23 +2330,22 @@ static void checkout_data_clear(checkout_data *data)
2312
2330
  data->opts.baseline = NULL;
2313
2331
  }
2314
2332
 
2315
- git_vector_free(&data->removes);
2333
+ git_vector_dispose(&data->removes);
2316
2334
  git_pool_clear(&data->pool);
2317
2335
 
2318
- git_vector_free_deep(&data->remove_conflicts);
2319
- git_vector_free_deep(&data->update_conflicts);
2336
+ git_vector_dispose_deep(&data->remove_conflicts);
2337
+ git_vector_dispose_deep(&data->update_conflicts);
2320
2338
 
2321
2339
  git__free(data->pfx);
2322
2340
  data->pfx = NULL;
2323
2341
 
2324
- git_buf_dispose(&data->target_path);
2325
- git_buf_dispose(&data->tmp);
2342
+ git_str_dispose(&data->target_path);
2343
+ git_str_dispose(&data->tmp);
2326
2344
 
2327
2345
  git_index_free(data->index);
2328
2346
  data->index = NULL;
2329
2347
 
2330
- git_strmap_free(data->mkdir_map);
2331
- data->mkdir_map = NULL;
2348
+ git_hashset_str_dispose(&data->mkdir_pathcache);
2332
2349
 
2333
2350
  git_attr_session__free(&data->attr_session);
2334
2351
  }
@@ -2337,10 +2354,10 @@ static int validate_target_directory(checkout_data *data)
2337
2354
  {
2338
2355
  int error;
2339
2356
 
2340
- if ((error = git_path_validate_workdir(data->repo, data->opts.target_directory)) < 0)
2357
+ if ((error = git_path_validate_length(data->repo, data->opts.target_directory)) < 0)
2341
2358
  return error;
2342
2359
 
2343
- if (git_path_isdir(data->opts.target_directory))
2360
+ if (git_fs_path_isdir(data->opts.target_directory))
2344
2361
  return 0;
2345
2362
 
2346
2363
  error = checkout_mkdir(data, data->opts.target_directory, NULL,
@@ -2428,14 +2445,12 @@ static int checkout_data_init(
2428
2445
 
2429
2446
  /* if you are forcing, allow all safe updates, plus recreate missing */
2430
2447
  if ((data->opts.checkout_strategy & GIT_CHECKOUT_FORCE) != 0)
2431
- data->opts.checkout_strategy |= GIT_CHECKOUT_SAFE |
2432
- GIT_CHECKOUT_RECREATE_MISSING;
2448
+ data->opts.checkout_strategy |= GIT_CHECKOUT_RECREATE_MISSING;
2433
2449
 
2434
2450
  /* if the repository does not actually have an index file, then this
2435
2451
  * is an initial checkout (perhaps from clone), so we allow safe updates
2436
2452
  */
2437
- if (!data->index->on_disk &&
2438
- (data->opts.checkout_strategy & GIT_CHECKOUT_SAFE) != 0)
2453
+ if (!data->index->on_disk)
2439
2454
  data->opts.checkout_strategy |= GIT_CHECKOUT_RECREATE_MISSING;
2440
2455
 
2441
2456
  data->strategy = data->opts.checkout_strategy;
@@ -2492,6 +2507,8 @@ static int checkout_data_init(
2492
2507
  data->opts.checkout_strategy |= GIT_CHECKOUT_CONFLICT_STYLE_MERGE;
2493
2508
  else if (strcmp(conflict_style->value, "diff3") == 0)
2494
2509
  data->opts.checkout_strategy |= GIT_CHECKOUT_CONFLICT_STYLE_DIFF3;
2510
+ else if (strcmp(conflict_style->value, "zdiff3") == 0)
2511
+ data->opts.checkout_strategy |= GIT_CHECKOUT_CONFLICT_STYLE_ZDIFF3;
2495
2512
  else {
2496
2513
  git_error_set(GIT_ERROR_CHECKOUT, "unknown style '%s' given for 'merge.conflictstyle'",
2497
2514
  conflict_style->value);
@@ -2506,12 +2523,11 @@ static int checkout_data_init(
2506
2523
  (error = git_vector_init(&data->removes, 0, git__strcmp_cb)) < 0 ||
2507
2524
  (error = git_vector_init(&data->remove_conflicts, 0, NULL)) < 0 ||
2508
2525
  (error = git_vector_init(&data->update_conflicts, 0, NULL)) < 0 ||
2509
- (error = git_buf_puts(&data->target_path, data->opts.target_directory)) < 0 ||
2510
- (error = git_path_to_dir(&data->target_path)) < 0 ||
2511
- (error = git_strmap_new(&data->mkdir_map)) < 0)
2526
+ (error = git_str_puts(&data->target_path, data->opts.target_directory)) < 0 ||
2527
+ (error = git_fs_path_to_dir(&data->target_path)) < 0)
2512
2528
  goto cleanup;
2513
2529
 
2514
- data->target_len = git_buf_len(&data->target_path);
2530
+ data->target_len = git_str_len(&data->target_path);
2515
2531
 
2516
2532
  git_attr_session__init(&data->attr_session, data->repo);
2517
2533
 
@@ -2623,7 +2639,7 @@ int git_checkout_iterator(
2623
2639
 
2624
2640
  if (data.strategy & GIT_CHECKOUT_DRY_RUN)
2625
2641
  goto cleanup;
2626
-
2642
+
2627
2643
  data.total_steps = counts[CHECKOUT_ACTION__REMOVE] +
2628
2644
  counts[CHECKOUT_ACTION__REMOVE_CONFLICT] +
2629
2645
  counts[CHECKOUT_ACTION__UPDATE_BLOB] +
@@ -12,8 +12,6 @@
12
12
  #include "git2/checkout.h"
13
13
  #include "iterator.h"
14
14
 
15
- #define GIT_CHECKOUT__NOTIFY_CONFLICT_TREE (1u << 12)
16
-
17
15
  /**
18
16
  * Update the working directory to match the target iterator. The
19
17
  * expected baseline value can be passed in via the checkout options
@@ -26,10 +26,10 @@ static int write_cherrypick_head(
26
26
  const char *commit_oidstr)
27
27
  {
28
28
  git_filebuf file = GIT_FILEBUF_INIT;
29
- git_buf file_path = GIT_BUF_INIT;
29
+ git_str file_path = GIT_STR_INIT;
30
30
  int error = 0;
31
31
 
32
- if ((error = git_buf_joinpath(&file_path, repo->gitdir, GIT_CHERRYPICK_HEAD_FILE)) >= 0 &&
32
+ if ((error = git_str_joinpath(&file_path, repo->gitdir, GIT_CHERRYPICK_HEAD_FILE)) >= 0 &&
33
33
  (error = git_filebuf_open(&file, file_path.ptr, GIT_FILEBUF_CREATE_LEADING_DIRS, GIT_CHERRYPICK_FILE_MODE)) >= 0 &&
34
34
  (error = git_filebuf_printf(&file, "%s\n", commit_oidstr)) >= 0)
35
35
  error = git_filebuf_commit(&file);
@@ -37,7 +37,7 @@ static int write_cherrypick_head(
37
37
  if (error < 0)
38
38
  git_filebuf_cleanup(&file);
39
39
 
40
- git_buf_dispose(&file_path);
40
+ git_str_dispose(&file_path);
41
41
 
42
42
  return error;
43
43
  }
@@ -47,10 +47,10 @@ static int write_merge_msg(
47
47
  const char *commit_msg)
48
48
  {
49
49
  git_filebuf file = GIT_FILEBUF_INIT;
50
- git_buf file_path = GIT_BUF_INIT;
50
+ git_str file_path = GIT_STR_INIT;
51
51
  int error = 0;
52
52
 
53
- if ((error = git_buf_joinpath(&file_path, repo->gitdir, GIT_MERGE_MSG_FILE)) < 0 ||
53
+ if ((error = git_str_joinpath(&file_path, repo->gitdir, GIT_MERGE_MSG_FILE)) < 0 ||
54
54
  (error = git_filebuf_open(&file, file_path.ptr, GIT_FILEBUF_CREATE_LEADING_DIRS, GIT_CHERRYPICK_FILE_MODE)) < 0 ||
55
55
  (error = git_filebuf_printf(&file, "%s", commit_msg)) < 0)
56
56
  goto cleanup;
@@ -61,7 +61,7 @@ cleanup:
61
61
  if (error < 0)
62
62
  git_filebuf_cleanup(&file);
63
63
 
64
- git_buf_dispose(&file_path);
64
+ git_str_dispose(&file_path);
65
65
 
66
66
  return error;
67
67
  }
@@ -73,8 +73,7 @@ static int cherrypick_normalize_opts(
73
73
  const char *their_label)
74
74
  {
75
75
  int error = 0;
76
- unsigned int default_checkout_strategy = GIT_CHECKOUT_SAFE |
77
- GIT_CHECKOUT_ALLOW_CONFLICTS;
76
+ unsigned int default_checkout_strategy = GIT_CHECKOUT_ALLOW_CONFLICTS;
78
77
 
79
78
  GIT_UNUSED(repo);
80
79
 
@@ -106,10 +105,10 @@ static int cherrypick_state_cleanup(git_repository *repo)
106
105
 
107
106
  static int cherrypick_seterr(git_commit *commit, const char *fmt)
108
107
  {
109
- char commit_oidstr[GIT_OID_HEXSZ + 1];
108
+ char commit_oidstr[GIT_OID_MAX_HEXSIZE + 1];
110
109
 
111
110
  git_error_set(GIT_ERROR_CHERRYPICK, fmt,
112
- git_oid_tostr(commit_oidstr, GIT_OID_HEXSZ + 1, git_commit_id(commit)));
111
+ git_oid_tostr(commit_oidstr, GIT_OID_MAX_HEXSIZE + 1, git_commit_id(commit)));
113
112
 
114
113
  return -1;
115
114
  }
@@ -173,9 +172,9 @@ int git_cherrypick(
173
172
  git_cherrypick_options opts;
174
173
  git_reference *our_ref = NULL;
175
174
  git_commit *our_commit = NULL;
176
- char commit_oidstr[GIT_OID_HEXSZ + 1];
175
+ char commit_oidstr[GIT_OID_MAX_HEXSIZE + 1];
177
176
  const char *commit_msg, *commit_summary;
178
- git_buf their_label = GIT_BUF_INIT;
177
+ git_str their_label = GIT_STR_INIT;
179
178
  git_index *index = NULL;
180
179
  git_indexwriter indexwriter = GIT_INDEXWRITER_INIT;
181
180
  int error = 0;
@@ -197,8 +196,8 @@ int git_cherrypick(
197
196
  git_oid_nfmt(commit_oidstr, sizeof(commit_oidstr), git_commit_id(commit));
198
197
 
199
198
  if ((error = write_merge_msg(repo, commit_msg)) < 0 ||
200
- (error = git_buf_printf(&their_label, "%.7s... %s", commit_oidstr, commit_summary)) < 0 ||
201
- (error = cherrypick_normalize_opts(repo, &opts, given_opts, git_buf_cstr(&their_label))) < 0 ||
199
+ (error = git_str_printf(&their_label, "%.7s... %s", commit_oidstr, commit_summary)) < 0 ||
200
+ (error = cherrypick_normalize_opts(repo, &opts, given_opts, git_str_cstr(&their_label))) < 0 ||
202
201
  (error = git_indexwriter_init_for_operation(&indexwriter, repo, &opts.checkout_opts.checkout_strategy)) < 0 ||
203
202
  (error = write_cherrypick_head(repo, commit_oidstr)) < 0 ||
204
203
  (error = git_repository_head(&our_ref, repo)) < 0 ||
@@ -220,7 +219,7 @@ done:
220
219
  git_index_free(index);
221
220
  git_commit_free(our_commit);
222
221
  git_reference_free(our_ref);
223
- git_buf_dispose(&their_label);
222
+ git_str_dispose(&their_label);
224
223
 
225
224
  return error;
226
225
  }