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
@@ -8,12 +8,13 @@
8
8
  #include "futils.h"
9
9
 
10
10
  #include "runtime.h"
11
- #include "strmap.h"
12
11
  #include "hash.h"
12
+ #include "rand.h"
13
+ #include "hashmap_str.h"
14
+
13
15
  #include <ctype.h>
14
- #if GIT_WIN32
15
- #include "win32/findfile.h"
16
- #endif
16
+
17
+ #define GIT_FILEMODE_DEFAULT 0100666
17
18
 
18
19
  int git_futils_mkpath2file(const char *file_path, const mode_t mode)
19
20
  {
@@ -22,32 +23,31 @@ int git_futils_mkpath2file(const char *file_path, const mode_t mode)
22
23
  GIT_MKDIR_PATH | GIT_MKDIR_SKIP_LAST | GIT_MKDIR_VERIFY_DIR);
23
24
  }
24
25
 
25
- int git_futils_mktmp(git_buf *path_out, const char *filename, mode_t mode)
26
+ int git_futils_mktmp(git_str *path_out, const char *filename, mode_t mode)
26
27
  {
28
+ const int open_flags = O_RDWR | O_CREAT | O_EXCL | O_BINARY | O_CLOEXEC;
29
+ unsigned int tries = 32;
27
30
  int fd;
28
- mode_t mask;
29
31
 
30
- p_umask(mask = p_umask(0));
32
+ while (tries--) {
33
+ uint64_t rand = git_rand_next();
31
34
 
32
- git_buf_sets(path_out, filename);
33
- git_buf_puts(path_out, "_git2_XXXXXX");
34
-
35
- if (git_buf_oom(path_out))
36
- return -1;
35
+ git_str_sets(path_out, filename);
36
+ git_str_puts(path_out, "_git2_");
37
+ git_str_encode_hexstr(path_out, (void *)&rand, sizeof(uint64_t));
37
38
 
38
- if ((fd = p_mkstemp(path_out->ptr)) < 0) {
39
- git_error_set(GIT_ERROR_OS,
40
- "failed to create temporary file '%s'", path_out->ptr);
41
- return -1;
42
- }
39
+ if (git_str_oom(path_out))
40
+ return -1;
43
41
 
44
- if (p_chmod(path_out->ptr, (mode & ~mask))) {
45
- git_error_set(GIT_ERROR_OS,
46
- "failed to set permissions on file '%s'", path_out->ptr);
47
- return -1;
42
+ /* Note that we open with O_CREAT | O_EXCL */
43
+ if ((fd = p_open(path_out->ptr, open_flags, mode)) >= 0)
44
+ return fd;
48
45
  }
49
46
 
50
- return fd;
47
+ git_error_set(GIT_ERROR_OS,
48
+ "failed to create temporary file '%s'", path_out->ptr);
49
+ git_str_dispose(path_out);
50
+ return -1;
51
51
  }
52
52
 
53
53
  int git_futils_creat_withpath(const char *path, const mode_t dirmode, const mode_t mode)
@@ -99,7 +99,7 @@ int git_futils_open_ro(const char *path)
99
99
  {
100
100
  int fd = p_open(path, O_RDONLY);
101
101
  if (fd < 0)
102
- return git_path_set_error(errno, path, "open");
102
+ return git_fs_path_set_error(errno, path, "open");
103
103
  return fd;
104
104
  }
105
105
 
@@ -107,7 +107,7 @@ int git_futils_truncate(const char *path, int mode)
107
107
  {
108
108
  int fd = p_open(path, O_WRONLY | O_CREAT | O_TRUNC | O_CLOEXEC, mode);
109
109
  if (fd < 0)
110
- return git_path_set_error(errno, path, "open");
110
+ return git_fs_path_set_error(errno, path, "open");
111
111
 
112
112
  close(fd);
113
113
  return 0;
@@ -145,12 +145,12 @@ mode_t git_futils_canonical_mode(mode_t raw_mode)
145
145
  return 0;
146
146
  }
147
147
 
148
- int git_futils_readbuffer_fd(git_buf *buf, git_file fd, size_t len)
148
+ int git_futils_readbuffer_fd(git_str *buf, git_file fd, size_t len)
149
149
  {
150
150
  ssize_t read_size = 0;
151
151
  size_t alloc_len;
152
152
 
153
- git_buf_clear(buf);
153
+ git_str_clear(buf);
154
154
 
155
155
  if (!git__is_ssizet(len)) {
156
156
  git_error_set(GIT_ERROR_INVALID, "read too large");
@@ -158,15 +158,21 @@ int git_futils_readbuffer_fd(git_buf *buf, git_file fd, size_t len)
158
158
  }
159
159
 
160
160
  GIT_ERROR_CHECK_ALLOC_ADD(&alloc_len, len, 1);
161
- if (git_buf_grow(buf, alloc_len) < 0)
161
+ if (git_str_grow(buf, alloc_len) < 0)
162
162
  return -1;
163
163
 
164
164
  /* p_read loops internally to read len bytes */
165
165
  read_size = p_read(fd, buf->ptr, len);
166
166
 
167
- if (read_size != (ssize_t)len) {
167
+ if (read_size < 0) {
168
168
  git_error_set(GIT_ERROR_OS, "failed to read descriptor");
169
- git_buf_dispose(buf);
169
+ git_str_dispose(buf);
170
+ return -1;
171
+ }
172
+
173
+ if ((size_t)read_size != len) {
174
+ git_error_set(GIT_ERROR_FILESYSTEM, "could not read (expected %" PRIuZ " bytes, read %" PRIuZ ")", len, (size_t)read_size);
175
+ git_str_dispose(buf);
170
176
  return -1;
171
177
  }
172
178
 
@@ -176,14 +182,53 @@ int git_futils_readbuffer_fd(git_buf *buf, git_file fd, size_t len)
176
182
  return 0;
177
183
  }
178
184
 
185
+ int git_futils_readbuffer_fd_full(git_str *buf, git_file fd)
186
+ {
187
+ static size_t blocksize = 10240;
188
+ size_t alloc_len = 0, total_size = 0;
189
+ ssize_t read_size = 0;
190
+
191
+ git_str_clear(buf);
192
+
193
+ while (true) {
194
+ GIT_ERROR_CHECK_ALLOC_ADD(&alloc_len, alloc_len, blocksize);
195
+
196
+ if (git_str_grow(buf, alloc_len) < 0)
197
+ return -1;
198
+
199
+ /* p_read loops internally to read blocksize bytes */
200
+ read_size = p_read(fd, buf->ptr, blocksize);
201
+
202
+ if (read_size < 0) {
203
+ git_error_set(GIT_ERROR_OS, "failed to read descriptor");
204
+ git_str_dispose(buf);
205
+ return -1;
206
+ }
207
+
208
+ total_size += read_size;
209
+
210
+ if ((size_t)read_size < blocksize) {
211
+ break;
212
+ }
213
+ }
214
+
215
+ buf->ptr[total_size] = '\0';
216
+ buf->size = total_size;
217
+
218
+ return 0;
219
+ }
220
+
179
221
  int git_futils_readbuffer_updated(
180
- git_buf *out, const char *path, git_oid *checksum, int *updated)
222
+ git_str *out,
223
+ const char *path,
224
+ unsigned char checksum[GIT_HASH_SHA256_SIZE],
225
+ int *updated)
181
226
  {
182
227
  int error;
183
228
  git_file fd;
184
229
  struct stat st;
185
- git_buf buf = GIT_BUF_INIT;
186
- git_oid checksum_new;
230
+ git_str buf = GIT_STR_INIT;
231
+ unsigned char checksum_new[GIT_HASH_SHA256_SIZE];
187
232
 
188
233
  GIT_ASSERT_ARG(out);
189
234
  GIT_ASSERT_ARG(path && *path);
@@ -192,7 +237,7 @@ int git_futils_readbuffer_updated(
192
237
  *updated = 0;
193
238
 
194
239
  if (p_stat(path, &st) < 0)
195
- return git_path_set_error(errno, path, "stat");
240
+ return git_fs_path_set_error(errno, path, "stat");
196
241
 
197
242
 
198
243
  if (S_ISDIR(st.st_mode)) {
@@ -216,23 +261,26 @@ int git_futils_readbuffer_updated(
216
261
  p_close(fd);
217
262
 
218
263
  if (checksum) {
219
- if ((error = git_hash_buf(&checksum_new, buf.ptr, buf.size)) < 0) {
220
- git_buf_dispose(&buf);
264
+ error = git_hash_buf(checksum_new, buf.ptr,
265
+ buf.size, GIT_HASH_ALGORITHM_SHA256);
266
+
267
+ if (error < 0) {
268
+ git_str_dispose(&buf);
221
269
  return error;
222
270
  }
223
271
 
224
272
  /*
225
273
  * If we were given a checksum, we only want to use it if it's different
226
274
  */
227
- if (!git_oid__cmp(checksum, &checksum_new)) {
228
- git_buf_dispose(&buf);
275
+ if (!memcmp(checksum, checksum_new, GIT_HASH_SHA256_SIZE)) {
276
+ git_str_dispose(&buf);
229
277
  if (updated)
230
278
  *updated = 0;
231
279
 
232
280
  return 0;
233
281
  }
234
282
 
235
- git_oid_cpy(checksum, &checksum_new);
283
+ memcpy(checksum, checksum_new, GIT_HASH_SHA256_SIZE);
236
284
  }
237
285
 
238
286
  /*
@@ -241,19 +289,19 @@ int git_futils_readbuffer_updated(
241
289
  if (updated != NULL)
242
290
  *updated = 1;
243
291
 
244
- git_buf_swap(out, &buf);
245
- git_buf_dispose(&buf);
292
+ git_str_swap(out, &buf);
293
+ git_str_dispose(&buf);
246
294
 
247
295
  return 0;
248
296
  }
249
297
 
250
- int git_futils_readbuffer(git_buf *buf, const char *path)
298
+ int git_futils_readbuffer(git_str *buf, const char *path)
251
299
  {
252
300
  return git_futils_readbuffer_updated(buf, path, NULL, NULL);
253
301
  }
254
302
 
255
303
  int git_futils_writebuffer(
256
- const git_buf *buf, const char *path, int flags, mode_t mode)
304
+ const git_str *buf, const char *path, int flags, mode_t mode)
257
305
  {
258
306
  int fd, do_fsync = 0, error = 0;
259
307
 
@@ -266,14 +314,14 @@ int git_futils_writebuffer(
266
314
  flags &= ~O_FSYNC;
267
315
 
268
316
  if (!mode)
269
- mode = GIT_FILEMODE_BLOB;
317
+ mode = GIT_FILEMODE_DEFAULT;
270
318
 
271
319
  if ((fd = p_open(path, flags, mode)) < 0) {
272
320
  git_error_set(GIT_ERROR_OS, "could not open '%s' for writing", path);
273
321
  return fd;
274
322
  }
275
323
 
276
- if ((error = p_write(fd, git_buf_cstr(buf), git_buf_len(buf))) < 0) {
324
+ if ((error = p_write(fd, git_str_cstr(buf), git_str_len(buf))) < 0) {
277
325
  git_error_set(GIT_ERROR_OS, "could not write to '%s'", path);
278
326
  (void)p_close(fd);
279
327
  return error;
@@ -415,7 +463,7 @@ GIT_INLINE(int) mkdir_validate_mode(
415
463
  }
416
464
 
417
465
  GIT_INLINE(int) mkdir_canonicalize(
418
- git_buf *path,
466
+ git_str *path,
419
467
  uint32_t flags)
420
468
  {
421
469
  ssize_t root_len;
@@ -426,7 +474,7 @@ GIT_INLINE(int) mkdir_canonicalize(
426
474
  }
427
475
 
428
476
  /* Trim trailing slashes (except the root) */
429
- if ((root_len = git_path_root(path->ptr)) < 0)
477
+ if ((root_len = git_fs_path_root(path->ptr)) < 0)
430
478
  root_len = 0;
431
479
  else
432
480
  root_len++;
@@ -436,18 +484,18 @@ GIT_INLINE(int) mkdir_canonicalize(
436
484
 
437
485
  /* if we are not supposed to made the last element, truncate it */
438
486
  if ((flags & GIT_MKDIR_SKIP_LAST2) != 0) {
439
- git_path_dirname_r(path, path->ptr);
487
+ git_fs_path_dirname_r(path, path->ptr);
440
488
  flags |= GIT_MKDIR_SKIP_LAST;
441
489
  }
442
490
  if ((flags & GIT_MKDIR_SKIP_LAST) != 0) {
443
- git_path_dirname_r(path, path->ptr);
491
+ git_fs_path_dirname_r(path, path->ptr);
444
492
  }
445
493
 
446
494
  /* We were either given the root path (or trimmed it to
447
495
  * the root), we don't have anything to do.
448
496
  */
449
497
  if (path->size <= (size_t)root_len)
450
- git_buf_clear(path);
498
+ git_str_clear(path);
451
499
 
452
500
  return 0;
453
501
  }
@@ -457,20 +505,20 @@ int git_futils_mkdir(
457
505
  mode_t mode,
458
506
  uint32_t flags)
459
507
  {
460
- git_buf make_path = GIT_BUF_INIT, parent_path = GIT_BUF_INIT;
508
+ git_str make_path = GIT_STR_INIT, parent_path = GIT_STR_INIT;
461
509
  const char *relative;
462
510
  struct git_futils_mkdir_options opts = { 0 };
463
511
  struct stat st;
464
512
  size_t depth = 0;
465
513
  int len = 0, root_len, error;
466
514
 
467
- if ((error = git_buf_puts(&make_path, path)) < 0 ||
515
+ if ((error = git_str_puts(&make_path, path)) < 0 ||
468
516
  (error = mkdir_canonicalize(&make_path, flags)) < 0 ||
469
- (error = git_buf_puts(&parent_path, make_path.ptr)) < 0 ||
517
+ (error = git_str_puts(&parent_path, make_path.ptr)) < 0 ||
470
518
  make_path.size == 0)
471
519
  goto done;
472
520
 
473
- root_len = git_path_root(make_path.ptr);
521
+ root_len = git_fs_path_root(make_path.ptr);
474
522
 
475
523
  /* find the first parent directory that exists. this will be used
476
524
  * as the base to dirname_relative.
@@ -489,7 +537,7 @@ int git_futils_mkdir(
489
537
  depth++;
490
538
 
491
539
  /* examine the parent of the current path */
492
- if ((len = git_path_dirname_r(&parent_path, parent_path.ptr)) < 0) {
540
+ if ((len = git_fs_path_dirname_r(&parent_path, parent_path.ptr)) < 0) {
493
541
  error = len;
494
542
  goto done;
495
543
  }
@@ -538,8 +586,8 @@ int git_futils_mkdir(
538
586
  parent_path.size ? parent_path.ptr : NULL, mode, flags, &opts);
539
587
 
540
588
  done:
541
- git_buf_dispose(&make_path);
542
- git_buf_dispose(&parent_path);
589
+ git_str_dispose(&make_path);
590
+ git_str_dispose(&parent_path);
543
591
  return error;
544
592
  }
545
593
 
@@ -555,7 +603,7 @@ int git_futils_mkdir_relative(
555
603
  uint32_t flags,
556
604
  struct git_futils_mkdir_options *opts)
557
605
  {
558
- git_buf make_path = GIT_BUF_INIT;
606
+ git_str make_path = GIT_STR_INIT;
559
607
  ssize_t root = 0, min_root_len;
560
608
  char lastch = '/', *tail;
561
609
  struct stat st;
@@ -566,7 +614,7 @@ int git_futils_mkdir_relative(
566
614
  opts = &empty_opts;
567
615
 
568
616
  /* build path and find "root" where we should start calling mkdir */
569
- if (git_path_join_unrooted(&make_path, relative_path, base, &root) < 0)
617
+ if (git_fs_path_join_unrooted(&make_path, relative_path, base, &root) < 0)
570
618
  return -1;
571
619
 
572
620
  if ((error = mkdir_canonicalize(&make_path, flags)) < 0 ||
@@ -575,10 +623,10 @@ int git_futils_mkdir_relative(
575
623
 
576
624
  /* if we are not supposed to make the whole path, reset root */
577
625
  if ((flags & GIT_MKDIR_PATH) == 0)
578
- root = git_buf_rfind(&make_path, '/');
626
+ root = git_str_rfind(&make_path, '/');
579
627
 
580
628
  /* advance root past drive name or network mount prefix */
581
- min_root_len = git_path_root(make_path.ptr);
629
+ min_root_len = git_fs_path_root(make_path.ptr);
582
630
  if (root < min_root_len)
583
631
  root = min_root_len;
584
632
  while (root >= 0 && make_path.ptr[root] == '/')
@@ -605,7 +653,8 @@ int git_futils_mkdir_relative(
605
653
  *tail = '\0';
606
654
  st.st_mode = 0;
607
655
 
608
- if (opts->dir_map && git_strmap_exists(opts->dir_map, make_path.ptr))
656
+ if (opts->cache_pathset &&
657
+ git_hashset_str_contains(opts->cache_pathset, make_path.ptr))
609
658
  continue;
610
659
 
611
660
  /* See what's going on with this path component */
@@ -640,17 +689,17 @@ retry_lstat:
640
689
  make_path.ptr, &st, (lastch == '\0'), mode, flags, opts)) < 0)
641
690
  goto done;
642
691
 
643
- if (opts->dir_map && opts->pool) {
692
+ if (opts->cache_pathset && opts->cache_pool) {
644
693
  char *cache_path;
645
694
  size_t alloc_size;
646
695
 
647
696
  GIT_ERROR_CHECK_ALLOC_ADD(&alloc_size, make_path.size, 1);
648
- cache_path = git_pool_malloc(opts->pool, alloc_size);
697
+ cache_path = git_pool_malloc(opts->cache_pool, alloc_size);
649
698
  GIT_ERROR_CHECK_ALLOC(cache_path);
650
699
 
651
700
  memcpy(cache_path, make_path.ptr, make_path.size + 1);
652
701
 
653
- if ((error = git_strmap_set(opts->dir_map, cache_path, cache_path)) < 0)
702
+ if ((error = git_hashset_str_add(opts->cache_pathset, cache_path)) < 0)
654
703
  goto done;
655
704
  }
656
705
  }
@@ -670,7 +719,7 @@ retry_lstat:
670
719
  }
671
720
 
672
721
  done:
673
- git_buf_dispose(&make_path);
722
+ git_str_dispose(&make_path);
674
723
  return error;
675
724
  }
676
725
 
@@ -694,13 +743,13 @@ static int futils__error_cannot_rmdir(const char *path, const char *filemsg)
694
743
  return -1;
695
744
  }
696
745
 
697
- static int futils__rm_first_parent(git_buf *path, const char *ceiling)
746
+ static int futils__rm_first_parent(git_str *path, const char *ceiling)
698
747
  {
699
748
  int error = GIT_ENOTFOUND;
700
749
  struct stat st;
701
750
 
702
751
  while (error == GIT_ENOTFOUND) {
703
- git_buf_rtruncate_at_char(path, '/');
752
+ git_str_rtruncate_at_char(path, '/');
704
753
 
705
754
  if (!path->size || git__prefixcmp(path->ptr, ceiling) != 0)
706
755
  error = 0;
@@ -719,7 +768,7 @@ static int futils__rm_first_parent(git_buf *path, const char *ceiling)
719
768
  return error;
720
769
  }
721
770
 
722
- static int futils__rmdir_recurs_foreach(void *opaque, git_buf *path)
771
+ static int futils__rmdir_recurs_foreach(void *opaque, git_str *path)
723
772
  {
724
773
  int error = 0;
725
774
  futils__rmdir_data *data = opaque;
@@ -741,13 +790,13 @@ static int futils__rmdir_recurs_foreach(void *opaque, git_buf *path)
741
790
  path->ptr, "parent is not directory");
742
791
  }
743
792
  else
744
- error = git_path_set_error(errno, path->ptr, "rmdir");
793
+ error = git_fs_path_set_error(errno, path->ptr, "rmdir");
745
794
  }
746
795
 
747
796
  else if (S_ISDIR(st.st_mode)) {
748
797
  data->depth++;
749
798
 
750
- error = git_path_direach(path, 0, futils__rmdir_recurs_foreach, data);
799
+ error = git_fs_path_direach(path, 0, futils__rmdir_recurs_foreach, data);
751
800
 
752
801
  data->depth--;
753
802
 
@@ -762,13 +811,13 @@ static int futils__rmdir_recurs_foreach(void *opaque, git_buf *path)
762
811
  (errno == ENOTEMPTY || errno == EEXIST || errno == EBUSY))
763
812
  error = 0;
764
813
  else
765
- error = git_path_set_error(errno, path->ptr, "rmdir");
814
+ error = git_fs_path_set_error(errno, path->ptr, "rmdir");
766
815
  }
767
816
  }
768
817
 
769
818
  else if ((data->flags & GIT_RMDIR_REMOVE_FILES) != 0) {
770
819
  if (p_unlink(path->ptr) < 0)
771
- error = git_path_set_error(errno, path->ptr, "remove");
820
+ error = git_fs_path_set_error(errno, path->ptr, "remove");
772
821
  }
773
822
 
774
823
  else if ((data->flags & GIT_RMDIR_SKIP_NONEMPTY) == 0)
@@ -792,11 +841,11 @@ static int futils__rmdir_empty_parent(void *opaque, const char *path)
792
841
  /* do nothing */
793
842
  } else if ((data->flags & GIT_RMDIR_SKIP_NONEMPTY) == 0 &&
794
843
  en == EBUSY) {
795
- error = git_path_set_error(errno, path, "rmdir");
844
+ error = git_fs_path_set_error(errno, path, "rmdir");
796
845
  } else if (en == ENOTEMPTY || en == EEXIST || en == EBUSY) {
797
846
  error = GIT_ITEROVER;
798
847
  } else {
799
- error = git_path_set_error(errno, path, "rmdir");
848
+ error = git_fs_path_set_error(errno, path, "rmdir");
800
849
  }
801
850
  }
802
851
 
@@ -807,11 +856,11 @@ int git_futils_rmdir_r(
807
856
  const char *path, const char *base, uint32_t flags)
808
857
  {
809
858
  int error;
810
- git_buf fullpath = GIT_BUF_INIT;
859
+ git_str fullpath = GIT_STR_INIT;
811
860
  futils__rmdir_data data;
812
861
 
813
862
  /* build path and find "root" where we should start calling mkdir */
814
- if (git_path_join_unrooted(&fullpath, path, base, NULL) < 0)
863
+ if (git_fs_path_join_unrooted(&fullpath, path, base, NULL) < 0)
815
864
  return -1;
816
865
 
817
866
  memset(&data, 0, sizeof(data));
@@ -823,7 +872,7 @@ int git_futils_rmdir_r(
823
872
 
824
873
  /* remove now-empty parents if requested */
825
874
  if (!error && (flags & GIT_RMDIR_EMPTY_PARENTS) != 0)
826
- error = git_path_walk_up(
875
+ error = git_fs_path_walk_up(
827
876
  &fullpath, base, futils__rmdir_empty_parent, &data);
828
877
 
829
878
  if (error == GIT_ITEROVER) {
@@ -831,7 +880,7 @@ int git_futils_rmdir_r(
831
880
  error = 0;
832
881
  }
833
882
 
834
- git_buf_dispose(&fullpath);
883
+ git_str_dispose(&fullpath);
835
884
 
836
885
  return error;
837
886
  }
@@ -850,7 +899,7 @@ int git_futils_fake_symlink(const char *target, const char *path)
850
899
  static int cp_by_fd(int ifd, int ofd, bool close_fd_when_done)
851
900
  {
852
901
  int error = 0;
853
- char buffer[FILEIO_BUFSIZE];
902
+ char buffer[GIT_BUFSIZE_FILEIO];
854
903
  ssize_t len = 0;
855
904
 
856
905
  while (!error && (len = p_read(ifd, buffer, sizeof(buffer))) > 0)
@@ -884,7 +933,7 @@ int git_futils_cp(const char *from, const char *to, mode_t filemode)
884
933
 
885
934
  if ((ofd = p_open(to, O_WRONLY | O_CREAT | O_EXCL, filemode)) < 0) {
886
935
  p_close(ifd);
887
- return git_path_set_error(errno, to, "open for writing");
936
+ return git_fs_path_set_error(errno, to, "open for writing");
888
937
  }
889
938
 
890
939
  return cp_by_fd(ifd, ofd, true);
@@ -900,7 +949,7 @@ int git_futils_touch(const char *path, time_t *when)
900
949
 
901
950
  ret = p_utimes(path, times);
902
951
 
903
- return (ret < 0) ? git_path_set_error(errno, path, "touch") : 0;
952
+ return (ret < 0) ? git_fs_path_set_error(errno, path, "touch") : 0;
904
953
  }
905
954
 
906
955
  static int cp_link(const char *from, const char *to, size_t link_size)
@@ -935,7 +984,7 @@ static int cp_link(const char *from, const char *to, size_t link_size)
935
984
 
936
985
  typedef struct {
937
986
  const char *to_root;
938
- git_buf to;
987
+ git_str to;
939
988
  ssize_t from_prefix;
940
989
  uint32_t flags;
941
990
  uint32_t mkdir_flags;
@@ -944,7 +993,7 @@ typedef struct {
944
993
 
945
994
  #define GIT_CPDIR__MKDIR_DONE_FOR_TO_ROOT (1u << 10)
946
995
 
947
- static int _cp_r_mkdir(cp_r_info *info, git_buf *from)
996
+ static int _cp_r_mkdir(cp_r_info *info, git_str *from)
948
997
  {
949
998
  int error = 0;
950
999
 
@@ -966,7 +1015,7 @@ static int _cp_r_mkdir(cp_r_info *info, git_buf *from)
966
1015
  return error;
967
1016
  }
968
1017
 
969
- static int _cp_r_callback(void *ref, git_buf *from)
1018
+ static int _cp_r_callback(void *ref, git_str *from)
970
1019
  {
971
1020
  int error = 0;
972
1021
  cp_r_info *info = ref;
@@ -974,14 +1023,14 @@ static int _cp_r_callback(void *ref, git_buf *from)
974
1023
  bool exists = false;
975
1024
 
976
1025
  if ((info->flags & GIT_CPDIR_COPY_DOTFILES) == 0 &&
977
- from->ptr[git_path_basename_offset(from)] == '.')
1026
+ from->ptr[git_fs_path_basename_offset(from)] == '.')
978
1027
  return 0;
979
1028
 
980
- if ((error = git_buf_joinpath(
1029
+ if ((error = git_str_joinpath(
981
1030
  &info->to, info->to_root, from->ptr + info->from_prefix)) < 0)
982
1031
  return error;
983
1032
 
984
- if (!(error = git_path_lstat(info->to.ptr, &to_st)))
1033
+ if (!(error = git_fs_path_lstat(info->to.ptr, &to_st)))
985
1034
  exists = true;
986
1035
  else if (error != GIT_ENOTFOUND)
987
1036
  return error;
@@ -990,7 +1039,7 @@ static int _cp_r_callback(void *ref, git_buf *from)
990
1039
  error = 0;
991
1040
  }
992
1041
 
993
- if ((error = git_path_lstat(from->ptr, &from_st)) < 0)
1042
+ if ((error = git_fs_path_lstat(from->ptr, &from_st)) < 0)
994
1043
  return error;
995
1044
 
996
1045
  if (S_ISDIR(from_st.st_mode)) {
@@ -1006,7 +1055,7 @@ static int _cp_r_callback(void *ref, git_buf *from)
1006
1055
 
1007
1056
  /* recurse onto target directory */
1008
1057
  if (!error && (!exists || S_ISDIR(to_st.st_mode)))
1009
- error = git_path_direach(from, 0, _cp_r_callback, info);
1058
+ error = git_fs_path_direach(from, 0, _cp_r_callback, info);
1010
1059
 
1011
1060
  if (oldmode != 0)
1012
1061
  info->dirmode = oldmode;
@@ -1061,10 +1110,10 @@ int git_futils_cp_r(
1061
1110
  mode_t dirmode)
1062
1111
  {
1063
1112
  int error;
1064
- git_buf path = GIT_BUF_INIT;
1113
+ git_str path = GIT_STR_INIT;
1065
1114
  cp_r_info info;
1066
1115
 
1067
- if (git_buf_joinpath(&path, from, "") < 0) /* ensure trailing slash */
1116
+ if (git_str_joinpath(&path, from, "") < 0) /* ensure trailing slash */
1068
1117
  return -1;
1069
1118
 
1070
1119
  memset(&info, 0, sizeof(info));
@@ -1072,7 +1121,7 @@ int git_futils_cp_r(
1072
1121
  info.flags = flags;
1073
1122
  info.dirmode = dirmode;
1074
1123
  info.from_prefix = path.size;
1075
- git_buf_init(&info.to, 0);
1124
+ git_str_init(&info.to, 0);
1076
1125
 
1077
1126
  /* precalculate mkdir flags */
1078
1127
  if ((flags & GIT_CPDIR_CREATE_EMPTY_DIRS) == 0) {
@@ -1090,8 +1139,8 @@ int git_futils_cp_r(
1090
1139
 
1091
1140
  error = _cp_r_callback(&info, &path);
1092
1141
 
1093
- git_buf_dispose(&path);
1094
- git_buf_dispose(&info.to);
1142
+ git_str_dispose(&path);
1143
+ git_str_dispose(&info.to);
1095
1144
 
1096
1145
  return error;
1097
1146
  }
@@ -1179,7 +1228,7 @@ int git_futils_fsync_parent(const char *path)
1179
1228
  char *parent;
1180
1229
  int error;
1181
1230
 
1182
- if ((parent = git_path_dirname(path)) == NULL)
1231
+ if ((parent = git_fs_path_dirname(path)) == NULL)
1183
1232
  return -1;
1184
1233
 
1185
1234
  error = git_futils_fsync_dir(parent);