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
@@ -9,6 +9,7 @@
9
9
 
10
10
  #include "tree.h"
11
11
  #include "index.h"
12
+ #include "path.h"
12
13
 
13
14
  #define GIT_ITERATOR_FIRST_ACCESS (1 << 15)
14
15
  #define GIT_ITERATOR_HONOR_IGNORES (1 << 16)
@@ -25,9 +26,10 @@
25
26
  #define iterator__ignore_dot_git(I) iterator__flag(I,IGNORE_DOT_GIT)
26
27
  #define iterator__descend_symlinks(I) iterator__flag(I,DESCEND_SYMLINKS)
27
28
 
28
-
29
29
  static void iterator_set_ignore_case(git_iterator *iter, bool ignore_case)
30
30
  {
31
+ int (*vector_cmp)(const void *a, const void *b);
32
+
31
33
  if (ignore_case)
32
34
  iter->flags |= GIT_ITERATOR_IGNORE_CASE;
33
35
  else
@@ -38,7 +40,9 @@ static void iterator_set_ignore_case(git_iterator *iter, bool ignore_case)
38
40
  iter->prefixcomp = ignore_case ? git__prefixcmp_icase : git__prefixcmp;
39
41
  iter->entry_srch = ignore_case ? git_index_entry_isrch : git_index_entry_srch;
40
42
 
41
- git_vector_set_cmp(&iter->pathlist, (git_vector_cmp)iter->strcomp);
43
+ vector_cmp = ignore_case ? git__strcasecmp_cb : git__strcmp_cb;
44
+
45
+ git_vector_set_cmp(&iter->pathlist, vector_cmp);
42
46
  }
43
47
 
44
48
  static int iterator_range_init(
@@ -292,12 +296,13 @@ typedef enum {
292
296
  ITERATOR_PATHLIST_IS_FILE = 1,
293
297
  ITERATOR_PATHLIST_IS_DIR = 2,
294
298
  ITERATOR_PATHLIST_IS_PARENT = 3,
295
- ITERATOR_PATHLIST_FULL = 4,
299
+ ITERATOR_PATHLIST_FULL = 4
296
300
  } iterator_pathlist_search_t;
297
301
 
298
302
  static iterator_pathlist_search_t iterator_pathlist_search(
299
303
  git_iterator *iter, const char *path, size_t path_len)
300
304
  {
305
+ int (*vector_cmp)(const void *a, const void *b);
301
306
  const char *p;
302
307
  size_t idx;
303
308
  int error;
@@ -307,8 +312,10 @@ static iterator_pathlist_search_t iterator_pathlist_search(
307
312
 
308
313
  git_vector_sort(&iter->pathlist);
309
314
 
310
- error = git_vector_bsearch2(&idx, &iter->pathlist,
311
- (git_vector_cmp)iter->strcomp, path);
315
+ vector_cmp = (iter->flags & GIT_ITERATOR_IGNORE_CASE) != 0 ?
316
+ git__strcasecmp_cb : git__strcmp_cb;
317
+
318
+ error = git_vector_bsearch2(&idx, &iter->pathlist, vector_cmp, path);
312
319
 
313
320
  /* the given path was found in the pathlist. since the pathlist only
314
321
  * matches directories when they're suffixed with a '/', analyze the
@@ -424,7 +431,7 @@ typedef struct {
424
431
  git_tree *tree;
425
432
 
426
433
  /* path to this particular frame (folder) */
427
- git_buf path;
434
+ git_str path;
428
435
 
429
436
  /* a sorted list of the entries for this frame (folder), these are
430
437
  * actually pointers to the iterator's entry pool.
@@ -441,7 +448,7 @@ typedef struct {
441
448
  * parent path.
442
449
  */
443
450
  git_vector similar_trees;
444
- git_array_t(git_buf) similar_paths;
451
+ git_array_t(git_str) similar_paths;
445
452
  } tree_iterator_frame;
446
453
 
447
454
  typedef struct {
@@ -450,7 +457,7 @@ typedef struct {
450
457
  git_array_t(tree_iterator_frame) frames;
451
458
 
452
459
  git_index_entry entry;
453
- git_buf entry_path;
460
+ git_str entry_path;
454
461
 
455
462
  /* a pool of entries to reduce the number of allocations */
456
463
  git_pool entry_pool;
@@ -472,7 +479,7 @@ GIT_INLINE(tree_iterator_frame *) tree_iterator_current_frame(
472
479
  GIT_INLINE(int) tree_entry_cmp(
473
480
  const git_tree_entry *a, const git_tree_entry *b, bool icase)
474
481
  {
475
- return git_path_cmp(
482
+ return git_fs_path_cmp(
476
483
  a->filename, a->filename_len, a->attr == GIT_FILEMODE_TREE,
477
484
  b->filename, b->filename_len, b->attr == GIT_FILEMODE_TREE,
478
485
  icase ? git__strncasecmp : git__strncmp);
@@ -508,20 +515,20 @@ static int tree_iterator_entry_sort_icase(const void *ptr_a, const void *ptr_b)
508
515
  }
509
516
 
510
517
  static int tree_iterator_compute_path(
511
- git_buf *out,
518
+ git_str *out,
512
519
  tree_iterator_entry *entry)
513
520
  {
514
- git_buf_clear(out);
521
+ git_str_clear(out);
515
522
 
516
523
  if (entry->parent_path)
517
- git_buf_joinpath(out, entry->parent_path, entry->tree_entry->filename);
524
+ git_str_joinpath(out, entry->parent_path, entry->tree_entry->filename);
518
525
  else
519
- git_buf_puts(out, entry->tree_entry->filename);
526
+ git_str_puts(out, entry->tree_entry->filename);
520
527
 
521
528
  if (git_tree_entry__is_tree(entry->tree_entry))
522
- git_buf_putc(out, '/');
529
+ git_str_putc(out, '/');
523
530
 
524
- if (git_buf_oom(out))
531
+ if (git_str_oom(out))
525
532
  return -1;
526
533
 
527
534
  return 0;
@@ -601,7 +608,7 @@ GIT_INLINE(int) tree_iterator_frame_push_neighbors(
601
608
  tree_iterator_entry *entry, *new_entry;
602
609
  git_tree *tree = NULL;
603
610
  git_tree_entry *tree_entry;
604
- git_buf *path;
611
+ git_str *path;
605
612
  size_t new_size, i;
606
613
  int error = 0;
607
614
 
@@ -612,7 +619,7 @@ GIT_INLINE(int) tree_iterator_frame_push_neighbors(
612
619
  break;
613
620
 
614
621
  if ((error = git_tree_lookup(&tree,
615
- iter->base.repo, entry->tree_entry->oid)) < 0)
622
+ iter->base.repo, &entry->tree_entry->oid)) < 0)
616
623
  break;
617
624
 
618
625
  if (git_vector_insert(&parent_frame->similar_trees, tree) < 0)
@@ -621,7 +628,7 @@ GIT_INLINE(int) tree_iterator_frame_push_neighbors(
621
628
  path = git_array_alloc(parent_frame->similar_paths);
622
629
  GIT_ERROR_CHECK_ALLOC(path);
623
630
 
624
- memset(path, 0, sizeof(git_buf));
631
+ memset(path, 0, sizeof(git_str));
625
632
 
626
633
  if ((error = tree_iterator_compute_path(path, entry)) < 0)
627
634
  break;
@@ -658,7 +665,7 @@ GIT_INLINE(int) tree_iterator_frame_push(
658
665
  int error;
659
666
 
660
667
  if ((error = git_tree_lookup(&tree,
661
- iter->base.repo, entry->tree_entry->oid)) < 0 ||
668
+ iter->base.repo, &entry->tree_entry->oid)) < 0 ||
662
669
  (error = tree_iterator_frame_init(iter, tree, entry)) < 0)
663
670
  goto done;
664
671
 
@@ -681,7 +688,7 @@ done:
681
688
  static int tree_iterator_frame_pop(tree_iterator *iter)
682
689
  {
683
690
  tree_iterator_frame *frame;
684
- git_buf *buf = NULL;
691
+ git_str *buf = NULL;
685
692
  git_tree *tree;
686
693
  size_t i;
687
694
 
@@ -689,12 +696,12 @@ static int tree_iterator_frame_pop(tree_iterator *iter)
689
696
 
690
697
  frame = git_array_pop(iter->frames);
691
698
 
692
- git_vector_free(&frame->entries);
699
+ git_vector_dispose(&frame->entries);
693
700
  git_tree_free(frame->tree);
694
701
 
695
702
  do {
696
703
  buf = git_array_pop(frame->similar_paths);
697
- git_buf_dispose(buf);
704
+ git_str_dispose(buf);
698
705
  } while (buf != NULL);
699
706
 
700
707
  git_array_clear(frame->similar_paths);
@@ -702,9 +709,9 @@ static int tree_iterator_frame_pop(tree_iterator *iter)
702
709
  git_vector_foreach(&frame->similar_trees, i, tree)
703
710
  git_tree_free(tree);
704
711
 
705
- git_vector_free(&frame->similar_trees);
712
+ git_vector_dispose(&frame->similar_trees);
706
713
 
707
- git_buf_dispose(&frame->path);
714
+ git_str_dispose(&frame->path);
708
715
 
709
716
  return 0;
710
717
  }
@@ -739,7 +746,7 @@ static void tree_iterator_set_current(
739
746
 
740
747
  iter->entry.mode = tree_entry->attr;
741
748
  iter->entry.path = iter->entry_path.ptr;
742
- git_oid_cpy(&iter->entry.id, tree_entry->oid);
749
+ git_oid_cpy(&iter->entry.id, &tree_entry->oid);
743
750
  }
744
751
 
745
752
  static int tree_iterator_advance(const git_index_entry **out, git_iterator *i)
@@ -892,7 +899,7 @@ static void tree_iterator_clear(tree_iterator *iter)
892
899
  git_array_clear(iter->frames);
893
900
 
894
901
  git_pool_clear(&iter->entry_pool);
895
- git_buf_clear(&iter->entry_path);
902
+ git_str_clear(&iter->entry_path);
896
903
 
897
904
  iterator_clear(&iter->base);
898
905
  }
@@ -925,7 +932,7 @@ static void tree_iterator_free(git_iterator *i)
925
932
  tree_iterator_clear(iter);
926
933
 
927
934
  git_tree_free(iter->root);
928
- git_buf_dispose(&iter->entry_path);
935
+ git_str_dispose(&iter->entry_path);
929
936
  }
930
937
 
931
938
  int git_iterator_for_tree(
@@ -1035,16 +1042,18 @@ typedef struct {
1035
1042
  git_index *index;
1036
1043
  git_vector index_snapshot;
1037
1044
 
1045
+ git_oid_t oid_type;
1046
+
1038
1047
  git_array_t(filesystem_iterator_frame) frames;
1039
1048
  git_ignores ignores;
1040
1049
 
1041
1050
  /* info about the current entry */
1042
1051
  git_index_entry entry;
1043
- git_buf current_path;
1052
+ git_str current_path;
1044
1053
  int current_is_ignored;
1045
1054
 
1046
1055
  /* temporary buffer for advance_over */
1047
- git_buf tmp_buf;
1056
+ git_str tmp_buf;
1048
1057
  } filesystem_iterator;
1049
1058
 
1050
1059
 
@@ -1266,11 +1275,11 @@ static int filesystem_iterator_entry_hash(
1266
1275
  filesystem_iterator *iter,
1267
1276
  filesystem_iterator_entry *entry)
1268
1277
  {
1269
- git_buf fullpath = GIT_BUF_INIT;
1278
+ git_str fullpath = GIT_STR_INIT;
1270
1279
  int error;
1271
1280
 
1272
1281
  if (S_ISDIR(entry->st.st_mode)) {
1273
- memset(&entry->id, 0, GIT_OID_RAWSZ);
1282
+ memset(&entry->id, 0, git_oid_size(iter->oid_type));
1274
1283
  return 0;
1275
1284
  }
1276
1285
 
@@ -1278,11 +1287,11 @@ static int filesystem_iterator_entry_hash(
1278
1287
  return git_repository_hashfile(&entry->id,
1279
1288
  iter->base.repo, entry->path, GIT_OBJECT_BLOB, NULL);
1280
1289
 
1281
- if (!(error = git_buf_joinpath(&fullpath, iter->root, entry->path)) &&
1282
- !(error = git_path_validate_workdir_buf(iter->base.repo, &fullpath)))
1283
- error = git_odb_hashfile(&entry->id, fullpath.ptr, GIT_OBJECT_BLOB);
1290
+ if (!(error = git_str_joinpath(&fullpath, iter->root, entry->path)) &&
1291
+ !(error = git_path_validate_str_length(iter->base.repo, &fullpath)))
1292
+ error = git_odb__hashfile(&entry->id, fullpath.ptr, GIT_OBJECT_BLOB, iter->oid_type);
1284
1293
 
1285
- git_buf_dispose(&fullpath);
1294
+ git_str_dispose(&fullpath);
1286
1295
  return error;
1287
1296
  }
1288
1297
 
@@ -1336,8 +1345,8 @@ static int filesystem_iterator_frame_push(
1336
1345
  filesystem_iterator_entry *frame_entry)
1337
1346
  {
1338
1347
  filesystem_iterator_frame *new_frame = NULL;
1339
- git_path_diriter diriter = GIT_PATH_DIRITER_INIT;
1340
- git_buf root = GIT_BUF_INIT;
1348
+ git_fs_path_diriter diriter = GIT_FS_PATH_DIRITER_INIT;
1349
+ git_str root = GIT_STR_INIT;
1341
1350
  const char *path;
1342
1351
  filesystem_iterator_entry *entry;
1343
1352
  struct stat statbuf;
@@ -1356,12 +1365,12 @@ static int filesystem_iterator_frame_push(
1356
1365
  memset(new_frame, 0, sizeof(filesystem_iterator_frame));
1357
1366
 
1358
1367
  if (frame_entry)
1359
- git_buf_joinpath(&root, iter->root, frame_entry->path);
1368
+ git_str_joinpath(&root, iter->root, frame_entry->path);
1360
1369
  else
1361
- git_buf_puts(&root, iter->root);
1370
+ git_str_puts(&root, iter->root);
1362
1371
 
1363
- if (git_buf_oom(&root) ||
1364
- git_path_validate_workdir_buf(iter->base.repo, &root) < 0) {
1372
+ if (git_str_oom(&root) ||
1373
+ git_path_validate_str_length(iter->base.repo, &root) < 0) {
1365
1374
  error = -1;
1366
1375
  goto done;
1367
1376
  }
@@ -1369,7 +1378,7 @@ static int filesystem_iterator_frame_push(
1369
1378
  new_frame->path_len = frame_entry ? frame_entry->path_len : 0;
1370
1379
 
1371
1380
  /* Any error here is equivalent to the dir not existing, skip over it */
1372
- if ((error = git_path_diriter_init(
1381
+ if ((error = git_fs_path_diriter_init(
1373
1382
  &diriter, root.ptr, iter->dirload_flags)) < 0) {
1374
1383
  error = GIT_ENOTFOUND;
1375
1384
  goto done;
@@ -1387,12 +1396,18 @@ static int filesystem_iterator_frame_push(
1387
1396
  /* check if this directory is ignored */
1388
1397
  filesystem_iterator_frame_push_ignores(iter, frame_entry, new_frame);
1389
1398
 
1390
- while ((error = git_path_diriter_next(&diriter)) == 0) {
1399
+ while ((error = git_fs_path_diriter_next(&diriter)) == 0) {
1391
1400
  iterator_pathlist_search_t pathlist_match = ITERATOR_PATHLIST_FULL;
1401
+ git_str path_str = GIT_STR_INIT;
1392
1402
  bool dir_expected = false;
1393
1403
 
1394
- if ((error = git_path_diriter_fullpath(&path, &path_len, &diriter)) < 0 ||
1395
- (error = git_path_validate_workdir_with_len(iter->base.repo, path, path_len)) < 0)
1404
+ if ((error = git_fs_path_diriter_fullpath(&path, &path_len, &diriter)) < 0)
1405
+ goto done;
1406
+
1407
+ path_str.ptr = (char *)path;
1408
+ path_str.size = path_len;
1409
+
1410
+ if ((error = git_path_validate_str_length(iter->base.repo, &path_str)) < 0)
1396
1411
  goto done;
1397
1412
 
1398
1413
  GIT_ASSERT(path_len > iter->root_len);
@@ -1414,7 +1429,7 @@ static int filesystem_iterator_frame_push(
1414
1429
  * we have an index, we can just copy the data out of it.
1415
1430
  */
1416
1431
 
1417
- if ((error = git_path_diriter_stat(&statbuf, &diriter)) < 0) {
1432
+ if ((error = git_fs_path_diriter_stat(&statbuf, &diriter)) < 0) {
1418
1433
  /* file was removed between readdir and lstat */
1419
1434
  if (error == GIT_ENOTFOUND)
1420
1435
  continue;
@@ -1471,8 +1486,8 @@ done:
1471
1486
  if (error < 0)
1472
1487
  git_array_pop(iter->frames);
1473
1488
 
1474
- git_buf_dispose(&root);
1475
- git_path_diriter_free(&diriter);
1489
+ git_str_dispose(&root);
1490
+ git_fs_path_diriter_free(&diriter);
1476
1491
  return error;
1477
1492
  }
1478
1493
 
@@ -1486,7 +1501,7 @@ GIT_INLINE(int) filesystem_iterator_frame_pop(filesystem_iterator *iter)
1486
1501
  filesystem_iterator_frame_pop_ignores(iter);
1487
1502
 
1488
1503
  git_pool_clear(&frame->entry_pool);
1489
- git_vector_free(&frame->entries);
1504
+ git_vector_dispose(&frame->entries);
1490
1505
 
1491
1506
  return 0;
1492
1507
  }
@@ -1522,6 +1537,8 @@ static void filesystem_iterator_set_current(
1522
1537
 
1523
1538
  if (iter->base.flags & GIT_ITERATOR_INCLUDE_HASH)
1524
1539
  git_oid_cpy(&iter->entry.id, &entry->id);
1540
+ else
1541
+ git_oid_clear(&iter->entry.id, iter->oid_type);
1525
1542
 
1526
1543
  iter->entry.path = entry->path;
1527
1544
 
@@ -1551,7 +1568,7 @@ static int filesystem_iterator_is_dir(
1551
1568
  const filesystem_iterator_entry *entry)
1552
1569
  {
1553
1570
  struct stat st;
1554
- git_buf fullpath = GIT_BUF_INIT;
1571
+ git_str fullpath = GIT_STR_INIT;
1555
1572
  int error = 0;
1556
1573
 
1557
1574
  if (S_ISDIR(entry->st.st_mode)) {
@@ -1564,15 +1581,15 @@ static int filesystem_iterator_is_dir(
1564
1581
  goto done;
1565
1582
  }
1566
1583
 
1567
- if ((error = git_buf_joinpath(&fullpath, iter->root, entry->path)) < 0 ||
1568
- (error = git_path_validate_workdir_buf(iter->base.repo, &fullpath)) < 0 ||
1584
+ if ((error = git_str_joinpath(&fullpath, iter->root, entry->path)) < 0 ||
1585
+ (error = git_path_validate_str_length(iter->base.repo, &fullpath)) < 0 ||
1569
1586
  (error = p_stat(fullpath.ptr, &st)) < 0)
1570
1587
  goto done;
1571
1588
 
1572
1589
  *is_dir = S_ISDIR(st.st_mode);
1573
1590
 
1574
1591
  done:
1575
- git_buf_dispose(&fullpath);
1592
+ git_str_dispose(&fullpath);
1576
1593
  return error;
1577
1594
  }
1578
1595
 
@@ -1673,7 +1690,7 @@ static int filesystem_iterator_advance_into(
1673
1690
  return filesystem_iterator_advance(out, i);
1674
1691
  }
1675
1692
 
1676
- int git_iterator_current_workdir_path(git_buf **out, git_iterator *i)
1693
+ int git_iterator_current_workdir_path(git_str **out, git_iterator *i)
1677
1694
  {
1678
1695
  filesystem_iterator *iter = GIT_CONTAINER_OF(i, filesystem_iterator, base);
1679
1696
  const git_index_entry *entry;
@@ -1684,10 +1701,10 @@ int git_iterator_current_workdir_path(git_buf **out, git_iterator *i)
1684
1701
  return 0;
1685
1702
  }
1686
1703
 
1687
- git_buf_truncate(&iter->current_path, iter->root_len);
1704
+ git_str_truncate(&iter->current_path, iter->root_len);
1688
1705
 
1689
1706
  if (git_iterator_current(&entry, i) < 0 ||
1690
- git_buf_puts(&iter->current_path, entry->path) < 0)
1707
+ git_str_puts(&iter->current_path, entry->path) < 0)
1691
1708
  return -1;
1692
1709
 
1693
1710
  *out = &iter->current_path;
@@ -1790,8 +1807,8 @@ static int filesystem_iterator_advance_over(
1790
1807
  return filesystem_iterator_advance(out, i);
1791
1808
  }
1792
1809
 
1793
- git_buf_clear(&iter->tmp_buf);
1794
- if ((error = git_buf_puts(&iter->tmp_buf, entry->path)) < 0)
1810
+ git_str_clear(&iter->tmp_buf);
1811
+ if ((error = git_str_puts(&iter->tmp_buf, entry->path)) < 0)
1795
1812
  return error;
1796
1813
 
1797
1814
  base = iter->tmp_buf.ptr;
@@ -1858,7 +1875,7 @@ static void filesystem_iterator_clear(filesystem_iterator *iter)
1858
1875
  git_array_clear(iter->frames);
1859
1876
  git_ignore__free(&iter->ignores);
1860
1877
 
1861
- git_buf_dispose(&iter->tmp_buf);
1878
+ git_str_dispose(&iter->tmp_buf);
1862
1879
 
1863
1880
  iterator_clear(&iter->base);
1864
1881
  }
@@ -1892,7 +1909,7 @@ static void filesystem_iterator_free(git_iterator *i)
1892
1909
  {
1893
1910
  filesystem_iterator *iter = GIT_CONTAINER_OF(i, filesystem_iterator, base);
1894
1911
  git__free(iter->root);
1895
- git_buf_dispose(&iter->current_path);
1912
+ git_str_dispose(&iter->current_path);
1896
1913
  git_tree_free(iter->tree);
1897
1914
  if (iter->index)
1898
1915
  git_index_snapshot_release(&iter->index_snapshot, iter->index);
@@ -1946,7 +1963,7 @@ static int iterator_for_filesystem(
1946
1963
  iter->root[root_len] = '\0';
1947
1964
  iter->root_len = root_len;
1948
1965
 
1949
- if ((error = git_buf_puts(&iter->current_path, iter->root)) < 0)
1966
+ if ((error = git_str_puts(&iter->current_path, iter->root)) < 0)
1950
1967
  goto on_error;
1951
1968
 
1952
1969
  if ((error = iterator_init_common(&iter->base, repo, index, options)) < 0)
@@ -1961,9 +1978,12 @@ static int iterator_for_filesystem(
1961
1978
 
1962
1979
  iter->index = index;
1963
1980
  iter->dirload_flags =
1964
- (iterator__ignore_case(&iter->base) ? GIT_PATH_DIR_IGNORE_CASE : 0) |
1981
+ (iterator__ignore_case(&iter->base) ?
1982
+ GIT_FS_PATH_DIR_IGNORE_CASE : 0) |
1965
1983
  (iterator__flag(&iter->base, PRECOMPOSE_UNICODE) ?
1966
- GIT_PATH_DIR_PRECOMPOSE_UNICODE : 0);
1984
+ GIT_FS_PATH_DIR_PRECOMPOSE_UNICODE : 0);
1985
+
1986
+ iter->oid_type = options->oid_type;
1967
1987
 
1968
1988
  if ((error = filesystem_iterator_init(iter)) < 0)
1969
1989
  goto on_error;
@@ -1979,10 +1999,15 @@ on_error:
1979
1999
  int git_iterator_for_filesystem(
1980
2000
  git_iterator **out,
1981
2001
  const char *root,
1982
- git_iterator_options *options)
2002
+ git_iterator_options *given_opts)
1983
2003
  {
2004
+ git_iterator_options options = GIT_ITERATOR_OPTIONS_INIT;
2005
+
2006
+ if (given_opts)
2007
+ memcpy(&options, given_opts, sizeof(git_iterator_options));
2008
+
1984
2009
  return iterator_for_filesystem(out,
1985
- NULL, root, NULL, NULL, GIT_ITERATOR_FS, options);
2010
+ NULL, root, NULL, NULL, GIT_ITERATOR_FS, &options);
1986
2011
  }
1987
2012
 
1988
2013
  int git_iterator_for_workdir_ext(
@@ -2009,6 +2034,12 @@ int git_iterator_for_workdir_ext(
2009
2034
  options.flags |= GIT_ITERATOR_HONOR_IGNORES |
2010
2035
  GIT_ITERATOR_IGNORE_DOT_GIT;
2011
2036
 
2037
+ if (!options.oid_type)
2038
+ options.oid_type = repo->oid_type;
2039
+ else if (options.oid_type != repo->oid_type)
2040
+ git_error_set(GIT_ERROR_INVALID,
2041
+ "specified object ID type does not match repository object ID type");
2042
+
2012
2043
  return iterator_for_filesystem(out,
2013
2044
  repo, repo_workdir, index, tree, GIT_ITERATOR_WORKDIR, &options);
2014
2045
  }
@@ -2024,7 +2055,7 @@ typedef struct {
2024
2055
 
2025
2056
  /* the pseudotree entry */
2026
2057
  git_index_entry tree_entry;
2027
- git_buf tree_buf;
2058
+ git_str tree_buf;
2028
2059
  bool skip_tree;
2029
2060
 
2030
2061
  const git_index_entry *entry;
@@ -2058,14 +2089,14 @@ static bool index_iterator_create_pseudotree(
2058
2089
  prev_path = iter->entry ? iter->entry->path : "";
2059
2090
 
2060
2091
  /* determine if the new path is in a different directory from the old */
2061
- common_len = git_path_common_dirlen(prev_path, path);
2092
+ common_len = git_fs_path_common_dirlen(prev_path, path);
2062
2093
  relative_path = path + common_len;
2063
2094
 
2064
2095
  if ((dirsep = strchr(relative_path, '/')) == NULL)
2065
2096
  return false;
2066
2097
 
2067
- git_buf_clear(&iter->tree_buf);
2068
- git_buf_put(&iter->tree_buf, path, (dirsep - path) + 1);
2098
+ git_str_clear(&iter->tree_buf);
2099
+ git_str_put(&iter->tree_buf, path, (dirsep - path) + 1);
2069
2100
 
2070
2101
  iter->tree_entry.mode = GIT_FILEMODE_TREE;
2071
2102
  iter->tree_entry.path = iter->tree_buf.ptr;
@@ -2230,7 +2261,7 @@ static void index_iterator_free(git_iterator *i)
2230
2261
  index_iterator *iter = GIT_CONTAINER_OF(i, index_iterator, base);
2231
2262
 
2232
2263
  git_index_snapshot_release(&iter->entries, iter->base.index);
2233
- git_buf_dispose(&iter->tree_buf);
2264
+ git_str_dispose(&iter->tree_buf);
2234
2265
  }
2235
2266
 
2236
2267
  int git_iterator_for_index(
@@ -2305,7 +2336,7 @@ void git_iterator_free(git_iterator *iter)
2305
2336
 
2306
2337
  iter->cb->free(iter);
2307
2338
 
2308
- git_vector_free(&iter->pathlist);
2339
+ git_vector_dispose(&iter->pathlist);
2309
2340
  git__free(iter->start);
2310
2341
  git__free(iter->end);
2311
2342
 
@@ -11,7 +11,7 @@
11
11
 
12
12
  #include "git2/index.h"
13
13
  #include "vector.h"
14
- #include "buffer.h"
14
+ #include "str.h"
15
15
  #include "ignore.h"
16
16
 
17
17
  typedef struct git_iterator git_iterator;
@@ -21,7 +21,7 @@ typedef enum {
21
21
  GIT_ITERATOR_TREE = 1,
22
22
  GIT_ITERATOR_INDEX = 2,
23
23
  GIT_ITERATOR_WORKDIR = 3,
24
- GIT_ITERATOR_FS = 4,
24
+ GIT_ITERATOR_FS = 4
25
25
  } git_iterator_t;
26
26
 
27
27
  typedef enum {
@@ -42,7 +42,7 @@ typedef enum {
42
42
  /** descend into symlinked directories */
43
43
  GIT_ITERATOR_DESCEND_SYMLINKS = (1u << 7),
44
44
  /** hash files in workdir or filesystem iterators */
45
- GIT_ITERATOR_INCLUDE_HASH = (1u << 8),
45
+ GIT_ITERATOR_INCLUDE_HASH = (1u << 8)
46
46
  } git_iterator_flag_t;
47
47
 
48
48
  typedef enum {
@@ -63,6 +63,9 @@ typedef struct {
63
63
 
64
64
  /* flags, from above */
65
65
  unsigned int flags;
66
+
67
+ /* oid type - necessary for non-workdir filesystem iterators */
68
+ git_oid_t oid_type;
66
69
  } git_iterator_options;
67
70
 
68
71
  #define GIT_ITERATOR_OPTIONS_INIT {0}
@@ -278,11 +281,11 @@ extern bool git_iterator_current_tree_is_ignored(git_iterator *iter);
278
281
 
279
282
  /**
280
283
  * Get full path of the current item from a workdir iterator. This will
281
- * return NULL for a non-workdir iterator. The git_buf is still owned by
284
+ * return NULL for a non-workdir iterator. The git_str is still owned by
282
285
  * the iterator; this is exposed just for efficiency.
283
286
  */
284
287
  extern int git_iterator_current_workdir_path(
285
- git_buf **path, git_iterator *iter);
288
+ git_str **path, git_iterator *iter);
286
289
 
287
290
  /**
288
291
  * Retrieve the index stored in the iterator.