rugged 1.3.2 → 1.6.2

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 (547) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +34 -2
  3. data/ext/rugged/extconf.rb +7 -4
  4. data/ext/rugged/rugged.c +16 -0
  5. data/ext/rugged/rugged.h +4 -0
  6. data/ext/rugged/rugged_blame.c +2 -0
  7. data/ext/rugged/rugged_blob.c +3 -0
  8. data/ext/rugged/rugged_commit.c +1 -0
  9. data/ext/rugged/rugged_config.c +9 -2
  10. data/ext/rugged/rugged_diff.c +1 -0
  11. data/ext/rugged/rugged_index.c +2 -0
  12. data/ext/rugged/rugged_patch.c +1 -0
  13. data/ext/rugged/rugged_rebase.c +1 -0
  14. data/ext/rugged/rugged_reference.c +1 -0
  15. data/ext/rugged/rugged_remote.c +28 -10
  16. data/ext/rugged/rugged_repo.c +7 -9
  17. data/ext/rugged/rugged_revwalk.c +5 -1
  18. data/ext/rugged/rugged_settings.c +5 -0
  19. data/ext/rugged/rugged_submodule.c +1 -0
  20. data/ext/rugged/rugged_tag.c +1 -0
  21. data/ext/rugged/rugged_tree.c +4 -0
  22. data/lib/rugged/index.rb +1 -1
  23. data/lib/rugged/tree.rb +5 -1
  24. data/lib/rugged/version.rb +1 -1
  25. data/vendor/libgit2/CMakeLists.txt +132 -288
  26. data/vendor/libgit2/COPYING +106 -19
  27. data/vendor/libgit2/cmake/AddCFlagIfSupported.cmake +21 -21
  28. data/vendor/libgit2/cmake/AddClarTest.cmake +7 -0
  29. data/vendor/libgit2/cmake/DefaultCFlags.cmake +154 -0
  30. data/vendor/libgit2/cmake/EnableWarnings.cmake +13 -13
  31. data/vendor/libgit2/cmake/ExperimentalFeatures.cmake +23 -0
  32. data/vendor/libgit2/cmake/FindCoreFoundation.cmake +13 -13
  33. data/vendor/libgit2/cmake/FindGSSAPI.cmake +171 -287
  34. data/vendor/libgit2/cmake/FindGSSFramework.cmake +13 -13
  35. data/vendor/libgit2/cmake/{FindHTTP_Parser.cmake → FindHTTPParser.cmake} +17 -17
  36. data/vendor/libgit2/cmake/FindIconv.cmake +27 -27
  37. data/vendor/libgit2/cmake/FindLibSSH2.cmake +5 -5
  38. data/vendor/libgit2/cmake/FindPCRE.cmake +12 -13
  39. data/vendor/libgit2/cmake/FindPCRE2.cmake +12 -12
  40. data/vendor/libgit2/cmake/FindPkgLibraries.cmake +19 -19
  41. data/vendor/libgit2/cmake/FindSecurity.cmake +14 -14
  42. data/vendor/libgit2/cmake/FindStatNsec.cmake +12 -18
  43. data/vendor/libgit2/cmake/Findfutimens.cmake +8 -8
  44. data/vendor/libgit2/cmake/FindmbedTLS.cmake +63 -70
  45. data/vendor/libgit2/cmake/IdeSplitSources.cmake +18 -18
  46. data/vendor/libgit2/cmake/PkgBuildConfig.cmake +60 -60
  47. data/vendor/libgit2/cmake/SanitizeBool.cmake +20 -20
  48. data/vendor/libgit2/cmake/SelectGSSAPI.cmake +37 -37
  49. data/vendor/libgit2/cmake/SelectHTTPParser.cmake +19 -0
  50. data/vendor/libgit2/cmake/SelectHTTPSBackend.cmake +100 -100
  51. data/vendor/libgit2/cmake/SelectHashes.cmake +91 -53
  52. data/vendor/libgit2/cmake/SelectRegex.cmake +51 -0
  53. data/vendor/libgit2/cmake/SelectSSH.cmake +41 -0
  54. data/vendor/libgit2/cmake/SelectWinHTTP.cmake +17 -0
  55. data/vendor/libgit2/cmake/SelectZlib.cmake +34 -0
  56. data/vendor/libgit2/deps/chromium-zlib/CMakeLists.txt +6 -6
  57. data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +33 -31
  58. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +3 -1
  59. data/vendor/libgit2/deps/ntlmclient/ntlm.c +4 -4
  60. data/vendor/libgit2/deps/ntlmclient/ntlm.h +4 -4
  61. data/vendor/libgit2/deps/ntlmclient/ntlmclient.h +2 -2
  62. data/vendor/libgit2/deps/pcre/CMakeLists.txt +88 -88
  63. data/vendor/libgit2/deps/winhttp/CMakeLists.txt +14 -16
  64. data/vendor/libgit2/deps/zlib/adler32.c +7 -0
  65. data/vendor/libgit2/deps/zlib/crc32.c +975 -288
  66. data/vendor/libgit2/deps/zlib/crc32.h +9441 -436
  67. data/vendor/libgit2/deps/zlib/deflate.c +83 -31
  68. data/vendor/libgit2/deps/zlib/deflate.h +12 -15
  69. data/vendor/libgit2/deps/zlib/gzguts.h +3 -2
  70. data/vendor/libgit2/deps/zlib/infback.c +2 -1
  71. data/vendor/libgit2/deps/zlib/inffast.c +14 -14
  72. data/vendor/libgit2/deps/zlib/inflate.c +39 -8
  73. data/vendor/libgit2/deps/zlib/inflate.h +3 -2
  74. data/vendor/libgit2/deps/zlib/inftrees.c +3 -3
  75. data/vendor/libgit2/deps/zlib/trees.c +27 -48
  76. data/vendor/libgit2/deps/zlib/zlib.h +126 -100
  77. data/vendor/libgit2/deps/zlib/zutil.c +2 -2
  78. data/vendor/libgit2/deps/zlib/zutil.h +12 -9
  79. data/vendor/libgit2/include/git2/apply.h +16 -2
  80. data/vendor/libgit2/include/git2/attr.h +11 -2
  81. data/vendor/libgit2/include/git2/blame.h +4 -1
  82. data/vendor/libgit2/include/git2/blob.h +14 -1
  83. data/vendor/libgit2/include/git2/branch.h +4 -2
  84. data/vendor/libgit2/include/git2/buffer.h +18 -78
  85. data/vendor/libgit2/include/git2/cert.h +2 -2
  86. data/vendor/libgit2/include/git2/checkout.h +5 -2
  87. data/vendor/libgit2/include/git2/clone.h +3 -3
  88. data/vendor/libgit2/include/git2/commit.h +2 -0
  89. data/vendor/libgit2/include/git2/common.h +28 -7
  90. data/vendor/libgit2/include/git2/config.h +25 -9
  91. data/vendor/libgit2/include/git2/credential.h +2 -1
  92. data/vendor/libgit2/include/git2/credential_helpers.h +1 -0
  93. data/vendor/libgit2/include/git2/deprecated.h +9 -1
  94. data/vendor/libgit2/include/git2/describe.h +7 -2
  95. data/vendor/libgit2/include/git2/diff.h +18 -10
  96. data/vendor/libgit2/include/git2/email.h +1 -1
  97. data/vendor/libgit2/include/git2/errors.h +17 -3
  98. data/vendor/libgit2/include/git2/experimental.h +20 -0
  99. data/vendor/libgit2/include/git2/filter.h +7 -2
  100. data/vendor/libgit2/include/git2/graph.h +1 -0
  101. data/vendor/libgit2/include/git2/ignore.h +1 -1
  102. data/vendor/libgit2/include/git2/index.h +11 -5
  103. data/vendor/libgit2/include/git2/indexer.h +48 -0
  104. data/vendor/libgit2/include/git2/merge.h +24 -4
  105. data/vendor/libgit2/include/git2/message.h +2 -0
  106. data/vendor/libgit2/include/git2/object.h +49 -0
  107. data/vendor/libgit2/include/git2/odb.h +94 -13
  108. data/vendor/libgit2/include/git2/odb_backend.h +107 -19
  109. data/vendor/libgit2/include/git2/oid.h +115 -15
  110. data/vendor/libgit2/include/git2/pack.h +24 -8
  111. data/vendor/libgit2/include/git2/patch.h +8 -0
  112. data/vendor/libgit2/include/git2/pathspec.h +1 -1
  113. data/vendor/libgit2/include/git2/proxy.h +1 -1
  114. data/vendor/libgit2/include/git2/rebase.h +9 -1
  115. data/vendor/libgit2/include/git2/refdb.h +3 -0
  116. data/vendor/libgit2/include/git2/reflog.h +1 -1
  117. data/vendor/libgit2/include/git2/refs.h +2 -2
  118. data/vendor/libgit2/include/git2/remote.h +184 -37
  119. data/vendor/libgit2/include/git2/repository.h +34 -10
  120. data/vendor/libgit2/include/git2/reset.h +2 -2
  121. data/vendor/libgit2/include/git2/revparse.h +1 -1
  122. data/vendor/libgit2/include/git2/revwalk.h +4 -1
  123. data/vendor/libgit2/include/git2/signature.h +1 -1
  124. data/vendor/libgit2/include/git2/stash.h +61 -7
  125. data/vendor/libgit2/include/git2/status.h +14 -5
  126. data/vendor/libgit2/include/git2/strarray.h +0 -13
  127. data/vendor/libgit2/include/git2/submodule.h +7 -2
  128. data/vendor/libgit2/include/git2/sys/commit_graph.h +1 -1
  129. data/vendor/libgit2/include/git2/sys/odb_backend.h +3 -6
  130. data/vendor/libgit2/include/git2/sys/remote.h +46 -0
  131. data/vendor/libgit2/include/git2/sys/stream.h +1 -1
  132. data/vendor/libgit2/include/git2/sys/transport.h +46 -39
  133. data/vendor/libgit2/include/git2/tag.h +1 -0
  134. data/vendor/libgit2/include/git2/tree.h +4 -3
  135. data/vendor/libgit2/include/git2/types.h +7 -7
  136. data/vendor/libgit2/include/git2/version.h +27 -6
  137. data/vendor/libgit2/include/git2/worktree.h +12 -2
  138. data/vendor/libgit2/include/git2.h +1 -0
  139. data/vendor/libgit2/src/CMakeLists.txt +177 -419
  140. data/vendor/libgit2/src/README.md +12 -0
  141. data/vendor/libgit2/src/cli/CMakeLists.txt +57 -0
  142. data/vendor/libgit2/src/cli/README.md +26 -0
  143. data/vendor/libgit2/src/cli/cli.h +20 -0
  144. data/vendor/libgit2/src/cli/cmd.c +21 -0
  145. data/vendor/libgit2/src/cli/cmd.h +33 -0
  146. data/vendor/libgit2/src/cli/cmd_cat_file.c +204 -0
  147. data/vendor/libgit2/src/cli/cmd_clone.c +176 -0
  148. data/vendor/libgit2/src/cli/cmd_hash_object.c +154 -0
  149. data/vendor/libgit2/src/cli/cmd_help.c +86 -0
  150. data/vendor/libgit2/src/cli/error.h +51 -0
  151. data/vendor/libgit2/src/cli/main.c +106 -0
  152. data/vendor/libgit2/src/cli/opt.c +669 -0
  153. data/vendor/libgit2/src/cli/opt.h +349 -0
  154. data/vendor/libgit2/src/cli/opt_usage.c +194 -0
  155. data/vendor/libgit2/src/cli/opt_usage.h +35 -0
  156. data/vendor/libgit2/src/cli/progress.c +345 -0
  157. data/vendor/libgit2/src/cli/progress.h +117 -0
  158. data/vendor/libgit2/src/cli/sighandler.h +20 -0
  159. data/vendor/libgit2/src/cli/unix/sighandler.c +36 -0
  160. data/vendor/libgit2/src/cli/win32/precompiled.h +3 -0
  161. data/vendor/libgit2/src/cli/win32/sighandler.c +37 -0
  162. data/vendor/libgit2/src/libgit2/CMakeLists.txt +141 -0
  163. data/vendor/libgit2/src/{annotated_commit.c → libgit2/annotated_commit.c} +1 -1
  164. data/vendor/libgit2/src/{annotated_commit.h → libgit2/annotated_commit.h} +2 -2
  165. data/vendor/libgit2/src/{apply.c → libgit2/apply.c} +18 -18
  166. data/vendor/libgit2/src/{apply.h → libgit2/apply.h} +2 -2
  167. data/vendor/libgit2/src/{attr.c → libgit2/attr.c} +18 -18
  168. data/vendor/libgit2/src/{attr_file.c → libgit2/attr_file.c} +18 -18
  169. data/vendor/libgit2/src/{attr_file.h → libgit2/attr_file.h} +4 -4
  170. data/vendor/libgit2/src/{attrcache.c → libgit2/attrcache.c} +18 -13
  171. data/vendor/libgit2/src/{blame.c → libgit2/blame.c} +2 -0
  172. data/vendor/libgit2/src/{blame_git.c → libgit2/blame_git.c} +1 -1
  173. data/vendor/libgit2/src/{blob.c → libgit2/blob.c} +38 -29
  174. data/vendor/libgit2/src/{blob.h → libgit2/blob.h} +3 -3
  175. data/vendor/libgit2/src/{branch.c → libgit2/branch.c} +164 -118
  176. data/vendor/libgit2/src/{branch.h → libgit2/branch.h} +15 -3
  177. data/vendor/libgit2/src/libgit2/buf.c +126 -0
  178. data/vendor/libgit2/src/libgit2/buf.h +50 -0
  179. data/vendor/libgit2/src/{checkout.c → libgit2/checkout.c} +74 -68
  180. data/vendor/libgit2/src/{cherrypick.c → libgit2/cherrypick.c} +13 -13
  181. data/vendor/libgit2/src/{clone.c → libgit2/clone.c} +96 -67
  182. data/vendor/libgit2/src/{commit.c → libgit2/commit.c} +178 -73
  183. data/vendor/libgit2/src/libgit2/commit.h +87 -0
  184. data/vendor/libgit2/src/{commit_graph.c → libgit2/commit_graph.c} +122 -89
  185. data/vendor/libgit2/src/{commit_graph.h → libgit2/commit_graph.h} +14 -4
  186. data/vendor/libgit2/src/{commit_list.c → libgit2/commit_list.c} +7 -4
  187. data/vendor/libgit2/src/libgit2/common.h +55 -0
  188. data/vendor/libgit2/src/{config.c → libgit2/config.c} +101 -69
  189. data/vendor/libgit2/src/{config.h → libgit2/config.h} +15 -2
  190. data/vendor/libgit2/src/{config_file.c → libgit2/config_file.c} +105 -93
  191. data/vendor/libgit2/src/{config_mem.c → libgit2/config_mem.c} +9 -9
  192. data/vendor/libgit2/src/{config_parse.c → libgit2/config_parse.c} +27 -23
  193. data/vendor/libgit2/src/{crlf.c → libgit2/crlf.c} +24 -21
  194. data/vendor/libgit2/src/{describe.c → libgit2/describe.c} +35 -27
  195. data/vendor/libgit2/src/{diff.c → libgit2/diff.c} +30 -9
  196. data/vendor/libgit2/src/{diff.h → libgit2/diff.h} +2 -4
  197. data/vendor/libgit2/src/{diff_driver.c → libgit2/diff_driver.c} +34 -36
  198. data/vendor/libgit2/src/{diff_driver.h → libgit2/diff_driver.h} +3 -3
  199. data/vendor/libgit2/src/{diff_file.c → libgit2/diff_file.c} +44 -26
  200. data/vendor/libgit2/src/{diff_generate.c → libgit2/diff_generate.c} +47 -18
  201. data/vendor/libgit2/src/{diff_generate.h → libgit2/diff_generate.h} +5 -3
  202. data/vendor/libgit2/src/{diff_print.c → libgit2/diff_print.c} +112 -100
  203. data/vendor/libgit2/src/{diff_stats.c → libgit2/diff_stats.c} +40 -29
  204. data/vendor/libgit2/src/libgit2/diff_stats.h +18 -0
  205. data/vendor/libgit2/src/{diff_tform.c → libgit2/diff_tform.c} +13 -8
  206. data/vendor/libgit2/src/{diff_xdiff.c → libgit2/diff_xdiff.c} +4 -8
  207. data/vendor/libgit2/src/{email.c → libgit2/email.c} +55 -39
  208. data/vendor/libgit2/src/{email.h → libgit2/email.h} +1 -1
  209. data/vendor/libgit2/src/{errors.c → libgit2/errors.c} +18 -18
  210. data/vendor/libgit2/src/{errors.h → libgit2/errors.h} +1 -2
  211. data/vendor/libgit2/src/libgit2/experimental.h.in +13 -0
  212. data/vendor/libgit2/src/{fetch.c → libgit2/fetch.c} +72 -27
  213. data/vendor/libgit2/src/{fetch.h → libgit2/fetch.h} +1 -1
  214. data/vendor/libgit2/src/{fetchhead.c → libgit2/fetchhead.c} +23 -23
  215. data/vendor/libgit2/src/{filter.c → libgit2/filter.c} +127 -53
  216. data/vendor/libgit2/src/{filter.h → libgit2/filter.h} +26 -5
  217. data/vendor/libgit2/src/{ident.c → libgit2/ident.c} +20 -20
  218. data/vendor/libgit2/src/{ignore.c → libgit2/ignore.c} +35 -34
  219. data/vendor/libgit2/src/{ignore.h → libgit2/ignore.h} +2 -2
  220. data/vendor/libgit2/src/{index.c → libgit2/index.c} +91 -90
  221. data/vendor/libgit2/src/{index.h → libgit2/index.h} +6 -3
  222. data/vendor/libgit2/src/{indexer.c → libgit2/indexer.c} +173 -92
  223. data/vendor/libgit2/src/{iterator.c → libgit2/iterator.c} +71 -61
  224. data/vendor/libgit2/src/{iterator.h → libgit2/iterator.h} +5 -5
  225. data/vendor/libgit2/src/{libgit2.c → libgit2/libgit2.c} +46 -11
  226. data/vendor/libgit2/src/{mailmap.c → libgit2/mailmap.c} +38 -36
  227. data/vendor/libgit2/src/{merge.c → libgit2/merge.c} +30 -30
  228. data/vendor/libgit2/src/{merge.h → libgit2/merge.h} +1 -14
  229. data/vendor/libgit2/src/{merge_driver.c → libgit2/merge_driver.c} +2 -2
  230. data/vendor/libgit2/src/{merge_file.c → libgit2/merge_file.c} +13 -3
  231. data/vendor/libgit2/src/{message.c → libgit2/message.c} +21 -10
  232. data/vendor/libgit2/src/{midx.c → libgit2/midx.c} +112 -92
  233. data/vendor/libgit2/src/{midx.h → libgit2/midx.h} +5 -4
  234. data/vendor/libgit2/src/{mwindow.c → libgit2/mwindow.c} +15 -12
  235. data/vendor/libgit2/src/{mwindow.h → libgit2/mwindow.h} +5 -2
  236. data/vendor/libgit2/src/{netops.c → libgit2/netops.c} +1 -2
  237. data/vendor/libgit2/src/{netops.h → libgit2/netops.h} +1 -1
  238. data/vendor/libgit2/src/{notes.c → libgit2/notes.c} +25 -34
  239. data/vendor/libgit2/src/{object.c → libgit2/object.c} +135 -30
  240. data/vendor/libgit2/src/{object.h → libgit2/object.h} +12 -3
  241. data/vendor/libgit2/src/{odb.c → libgit2/odb.c} +228 -81
  242. data/vendor/libgit2/src/{odb.h → libgit2/odb.h} +44 -5
  243. data/vendor/libgit2/src/{odb_loose.c → libgit2/odb_loose.c} +192 -134
  244. data/vendor/libgit2/src/{odb_mempack.c → libgit2/odb_mempack.c} +18 -5
  245. data/vendor/libgit2/src/{odb_pack.c → libgit2/odb_pack.c} +137 -85
  246. data/vendor/libgit2/src/{oid.c → libgit2/oid.c} +136 -90
  247. data/vendor/libgit2/src/libgit2/oid.h +273 -0
  248. data/vendor/libgit2/src/{oidmap.c → libgit2/oidmap.c} +1 -1
  249. data/vendor/libgit2/src/{pack-objects.c → libgit2/pack-objects.c} +56 -30
  250. data/vendor/libgit2/src/{pack-objects.h → libgit2/pack-objects.h} +11 -6
  251. data/vendor/libgit2/src/{pack.c → libgit2/pack.c} +114 -84
  252. data/vendor/libgit2/src/{pack.h → libgit2/pack.h} +31 -16
  253. data/vendor/libgit2/src/{parse.c → libgit2/parse.c} +4 -3
  254. data/vendor/libgit2/src/{patch.c → libgit2/patch.c} +3 -3
  255. data/vendor/libgit2/src/{patch.h → libgit2/patch.h} +1 -0
  256. data/vendor/libgit2/src/{patch_generate.c → libgit2/patch_generate.c} +27 -11
  257. data/vendor/libgit2/src/{patch_generate.h → libgit2/patch_generate.h} +5 -5
  258. data/vendor/libgit2/src/{patch_parse.c → libgit2/patch_parse.c} +29 -29
  259. data/vendor/libgit2/src/libgit2/path.c +375 -0
  260. data/vendor/libgit2/src/libgit2/path.h +68 -0
  261. data/vendor/libgit2/src/{pathspec.c → libgit2/pathspec.c} +6 -6
  262. data/vendor/libgit2/src/{pathspec.h → libgit2/pathspec.h} +2 -2
  263. data/vendor/libgit2/src/{proxy.c → libgit2/proxy.c} +4 -1
  264. data/vendor/libgit2/src/{proxy.h → libgit2/proxy.h} +1 -1
  265. data/vendor/libgit2/src/{push.c → libgit2/push.c} +43 -38
  266. data/vendor/libgit2/src/{push.h → libgit2/push.h} +4 -16
  267. data/vendor/libgit2/src/{reader.c → libgit2/reader.c} +9 -9
  268. data/vendor/libgit2/src/{reader.h → libgit2/reader.h} +2 -2
  269. data/vendor/libgit2/src/{rebase.c → libgit2/rebase.c} +119 -107
  270. data/vendor/libgit2/src/{refdb_fs.c → libgit2/refdb_fs.c} +506 -197
  271. data/vendor/libgit2/src/{reflog.c → libgit2/reflog.c} +7 -5
  272. data/vendor/libgit2/src/{reflog.h → libgit2/reflog.h} +1 -2
  273. data/vendor/libgit2/src/{refs.c → libgit2/refs.c} +34 -32
  274. data/vendor/libgit2/src/{refs.h → libgit2/refs.h} +2 -2
  275. data/vendor/libgit2/src/{refspec.c → libgit2/refspec.c} +32 -37
  276. data/vendor/libgit2/src/{refspec.h → libgit2/refspec.h} +5 -2
  277. data/vendor/libgit2/src/{remote.c → libgit2/remote.c} +718 -420
  278. data/vendor/libgit2/src/libgit2/remote.h +100 -0
  279. data/vendor/libgit2/src/{repository.c → libgit2/repository.c} +629 -386
  280. data/vendor/libgit2/src/{repository.h → libgit2/repository.h} +20 -9
  281. data/vendor/libgit2/src/{reset.c → libgit2/reset.c} +8 -5
  282. data/vendor/libgit2/src/{revert.c → libgit2/revert.c} +14 -14
  283. data/vendor/libgit2/src/{revparse.c → libgit2/revparse.c} +71 -42
  284. data/vendor/libgit2/src/{revwalk.c → libgit2/revwalk.c} +12 -8
  285. data/vendor/libgit2/src/{signature.c → libgit2/signature.c} +12 -6
  286. data/vendor/libgit2/src/{signature.h → libgit2/signature.h} +1 -1
  287. data/vendor/libgit2/src/{stash.c → libgit2/stash.c} +235 -61
  288. data/vendor/libgit2/src/{status.c → libgit2/status.c} +4 -1
  289. data/vendor/libgit2/src/{strarray.c → libgit2/strarray.c} +1 -0
  290. data/vendor/libgit2/src/libgit2/strarray.h +25 -0
  291. data/vendor/libgit2/src/{streams → libgit2/streams}/mbedtls.c +8 -6
  292. data/vendor/libgit2/src/{streams → libgit2/streams}/openssl.c +1 -1
  293. data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_dynamic.c +7 -3
  294. data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_dynamic.h +3 -3
  295. data/vendor/libgit2/src/{streams → libgit2/streams}/socket.c +4 -1
  296. data/vendor/libgit2/src/{submodule.c → libgit2/submodule.c} +177 -161
  297. data/vendor/libgit2/src/{submodule.h → libgit2/submodule.h} +1 -1
  298. data/vendor/libgit2/src/libgit2/sysdir.c +650 -0
  299. data/vendor/libgit2/src/{sysdir.h → libgit2/sysdir.h} +53 -18
  300. data/vendor/libgit2/src/{tag.c → libgit2/tag.c} +73 -42
  301. data/vendor/libgit2/src/{tag.h → libgit2/tag.h} +2 -2
  302. data/vendor/libgit2/src/{threadstate.c → libgit2/threadstate.c} +3 -3
  303. data/vendor/libgit2/src/{threadstate.h → libgit2/threadstate.h} +2 -2
  304. data/vendor/libgit2/src/{trace.c → libgit2/trace.c} +1 -14
  305. data/vendor/libgit2/src/{trace.h → libgit2/trace.h} +5 -22
  306. data/vendor/libgit2/src/{trailer.c → libgit2/trailer.c} +1 -1
  307. data/vendor/libgit2/src/{transaction.c → libgit2/transaction.c} +1 -1
  308. data/vendor/libgit2/src/{transport.c → libgit2/transport.c} +10 -10
  309. data/vendor/libgit2/src/{transports → libgit2/transports}/auth.c +7 -9
  310. data/vendor/libgit2/src/{transports → libgit2/transports}/auth.h +2 -3
  311. data/vendor/libgit2/src/{transports → libgit2/transports}/auth_negotiate.c +12 -13
  312. data/vendor/libgit2/src/{transports → libgit2/transports}/auth_ntlm.c +10 -10
  313. data/vendor/libgit2/src/{transports → libgit2/transports}/auth_ntlm.h +0 -1
  314. data/vendor/libgit2/src/{transports → libgit2/transports}/git.c +9 -11
  315. data/vendor/libgit2/src/{transports → libgit2/transports}/http.c +41 -20
  316. data/vendor/libgit2/src/{transports → libgit2/transports}/http.h +2 -3
  317. data/vendor/libgit2/src/{transports → libgit2/transports}/httpclient.c +75 -66
  318. data/vendor/libgit2/src/{transports → libgit2/transports}/httpclient.h +10 -0
  319. data/vendor/libgit2/src/{transports → libgit2/transports}/local.c +138 -116
  320. data/vendor/libgit2/src/{transports → libgit2/transports}/smart.c +92 -133
  321. data/vendor/libgit2/src/{transports → libgit2/transports}/smart.h +35 -32
  322. data/vendor/libgit2/src/{transports → libgit2/transports}/smart_pkt.c +177 -65
  323. data/vendor/libgit2/src/{transports → libgit2/transports}/smart_protocol.c +97 -49
  324. data/vendor/libgit2/src/{transports → libgit2/transports}/ssh.c +365 -198
  325. data/vendor/libgit2/src/{transports → libgit2/transports}/winhttp.c +58 -59
  326. data/vendor/libgit2/src/{tree-cache.c → libgit2/tree-cache.c} +8 -8
  327. data/vendor/libgit2/src/{tree-cache.h → libgit2/tree-cache.h} +2 -2
  328. data/vendor/libgit2/src/{tree.c → libgit2/tree.c} +93 -83
  329. data/vendor/libgit2/src/{tree.h → libgit2/tree.h} +4 -4
  330. data/vendor/libgit2/src/{worktree.c → libgit2/worktree.c} +121 -94
  331. data/vendor/libgit2/src/{worktree.h → libgit2/worktree.h} +1 -1
  332. data/vendor/libgit2/src/libgit2/xdiff/git-xdiff.h +53 -0
  333. data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xdiff.h +15 -15
  334. data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xdiffi.c +134 -108
  335. data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xemit.c +23 -7
  336. data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xhistogram.c +87 -78
  337. data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xinclude.h +1 -12
  338. data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xmerge.c +104 -117
  339. data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xpatience.c +6 -17
  340. data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xprepare.c +15 -20
  341. data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xutils.c +18 -7
  342. data/vendor/libgit2/src/util/CMakeLists.txt +80 -0
  343. data/vendor/libgit2/src/{allocators → util/allocators}/failalloc.h +1 -1
  344. data/vendor/libgit2/src/{allocators → util/allocators}/stdalloc.h +1 -1
  345. data/vendor/libgit2/src/{allocators → util/allocators}/win32_leakcheck.h +1 -1
  346. data/vendor/libgit2/src/{array.h → util/array.h} +1 -1
  347. data/vendor/libgit2/src/{assert_safe.h → util/assert_safe.h} +16 -0
  348. data/vendor/libgit2/src/{cc-compat.h → util/cc-compat.h} +1 -1
  349. data/vendor/libgit2/src/{date.c → util/date.c} +14 -20
  350. data/vendor/libgit2/src/util/date.h +33 -0
  351. data/vendor/libgit2/src/{filebuf.c → util/filebuf.c} +29 -29
  352. data/vendor/libgit2/src/{filebuf.h → util/filebuf.h} +2 -2
  353. data/vendor/libgit2/src/{path.c → util/fs_path.c} +453 -647
  354. data/vendor/libgit2/src/{path.h → util/fs_path.h} +221 -188
  355. data/vendor/libgit2/src/{futils.c → util/futils.c} +135 -90
  356. data/vendor/libgit2/src/{futils.h → util/futils.h} +28 -15
  357. data/vendor/libgit2/src/{features.h.in → util/git2_features.h.in} +15 -1
  358. data/vendor/libgit2/src/{common.h → util/git2_util.h} +20 -59
  359. data/vendor/libgit2/src/util/hash/builtin.c +53 -0
  360. data/vendor/libgit2/src/{hash/sha1/openssl.h → util/hash/builtin.h} +6 -6
  361. data/vendor/libgit2/src/{hash/sha1 → util/hash}/collisiondetect.c +3 -3
  362. data/vendor/libgit2/src/{hash/sha1 → util/hash}/collisiondetect.h +3 -3
  363. data/vendor/libgit2/src/util/hash/common_crypto.c +112 -0
  364. data/vendor/libgit2/src/{hash/sha1 → util/hash}/common_crypto.h +11 -3
  365. data/vendor/libgit2/src/util/hash/mbedtls.c +92 -0
  366. data/vendor/libgit2/src/{hash/sha1 → util/hash}/mbedtls.h +14 -4
  367. data/vendor/libgit2/src/util/hash/openssl.c +195 -0
  368. data/vendor/libgit2/src/util/hash/openssl.h +45 -0
  369. data/vendor/libgit2/src/util/hash/rfc6234/sha.h +243 -0
  370. data/vendor/libgit2/src/util/hash/rfc6234/sha224-256.c +601 -0
  371. data/vendor/libgit2/src/util/hash/sha.h +70 -0
  372. data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/sha1.c +1 -1
  373. data/vendor/libgit2/src/util/hash/win32.c +549 -0
  374. data/vendor/libgit2/src/util/hash/win32.h +60 -0
  375. data/vendor/libgit2/src/util/hash.c +158 -0
  376. data/vendor/libgit2/src/util/hash.h +61 -0
  377. data/vendor/libgit2/src/{khash.h → util/khash.h} +1 -1
  378. data/vendor/libgit2/src/{map.h → util/map.h} +1 -1
  379. data/vendor/libgit2/src/util/net.c +1003 -0
  380. data/vendor/libgit2/src/{net.h → util/net.h} +18 -4
  381. data/vendor/libgit2/src/{pool.h → util/pool.h} +1 -1
  382. data/vendor/libgit2/src/{posix.c → util/posix.c} +3 -3
  383. data/vendor/libgit2/src/{posix.h → util/posix.h} +4 -1
  384. data/vendor/libgit2/src/{pqueue.h → util/pqueue.h} +2 -2
  385. data/vendor/libgit2/src/util/rand.c +234 -0
  386. data/vendor/libgit2/src/util/rand.h +37 -0
  387. data/vendor/libgit2/src/{regexp.c → util/regexp.c} +4 -4
  388. data/vendor/libgit2/src/{regexp.h → util/regexp.h} +1 -1
  389. data/vendor/libgit2/src/{runtime.c → util/runtime.c} +1 -1
  390. data/vendor/libgit2/src/{runtime.h → util/runtime.h} +1 -1
  391. data/vendor/libgit2/src/{sortedcache.c → util/sortedcache.c} +1 -1
  392. data/vendor/libgit2/src/{sortedcache.h → util/sortedcache.h} +2 -2
  393. data/vendor/libgit2/src/{buffer.c → util/str.c} +157 -151
  394. data/vendor/libgit2/src/util/str.h +357 -0
  395. data/vendor/libgit2/src/{strmap.h → util/strmap.h} +1 -1
  396. data/vendor/libgit2/src/{thread.c → util/thread.c} +1 -1
  397. data/vendor/libgit2/src/{thread.h → util/thread.h} +23 -22
  398. data/vendor/libgit2/src/{tsort.c → util/tsort.c} +1 -1
  399. data/vendor/libgit2/src/{unix → util/unix}/map.c +1 -3
  400. data/vendor/libgit2/src/{unix → util/unix}/posix.h +1 -4
  401. data/vendor/libgit2/src/{unix → util/unix}/realpath.c +1 -3
  402. data/vendor/libgit2/src/{utf8.c → util/utf8.c} +1 -1
  403. data/vendor/libgit2/src/{utf8.h → util/utf8.h} +1 -1
  404. data/vendor/libgit2/src/{util.c → util/util.c} +15 -15
  405. data/vendor/libgit2/src/{util.h → util/util.h} +4 -29
  406. data/vendor/libgit2/src/{varint.h → util/varint.h} +1 -1
  407. data/vendor/libgit2/src/{vector.h → util/vector.h} +2 -2
  408. data/vendor/libgit2/src/{wildmatch.h → util/wildmatch.h} +1 -1
  409. data/vendor/libgit2/src/{win32 → util/win32}/dir.h +1 -1
  410. data/vendor/libgit2/src/{win32 → util/win32}/error.h +1 -1
  411. data/vendor/libgit2/src/{win32 → util/win32}/map.c +1 -1
  412. data/vendor/libgit2/src/{win32 → util/win32}/path_w32.c +140 -9
  413. data/vendor/libgit2/src/{win32 → util/win32}/path_w32.h +3 -1
  414. data/vendor/libgit2/src/{win32 → util/win32}/posix.h +1 -2
  415. data/vendor/libgit2/src/{win32 → util/win32}/posix_w32.c +12 -28
  416. data/vendor/libgit2/src/util/win32/precompiled.c +1 -0
  417. data/vendor/libgit2/src/{win32 → util/win32}/precompiled.h +1 -1
  418. data/vendor/libgit2/src/{win32 → util/win32}/thread.h +1 -1
  419. data/vendor/libgit2/src/{win32 → util/win32}/utf-conv.h +1 -1
  420. data/vendor/libgit2/src/{win32 → util/win32}/w32_buffer.c +2 -3
  421. data/vendor/libgit2/src/{win32 → util/win32}/w32_buffer.h +3 -4
  422. data/vendor/libgit2/src/{win32 → util/win32}/w32_leakcheck.c +1 -1
  423. data/vendor/libgit2/src/{win32 → util/win32}/w32_leakcheck.h +1 -1
  424. data/vendor/libgit2/src/{win32 → util/win32}/w32_util.h +1 -1
  425. data/vendor/libgit2/src/{zstream.c → util/zstream.c} +5 -5
  426. data/vendor/libgit2/src/{zstream.h → util/zstream.h} +5 -5
  427. metadata +402 -356
  428. data/vendor/libgit2/src/buffer.h +0 -374
  429. data/vendor/libgit2/src/commit.h +0 -46
  430. data/vendor/libgit2/src/hash/sha1/common_crypto.c +0 -57
  431. data/vendor/libgit2/src/hash/sha1/generic.c +0 -300
  432. data/vendor/libgit2/src/hash/sha1/generic.h +0 -19
  433. data/vendor/libgit2/src/hash/sha1/mbedtls.c +0 -46
  434. data/vendor/libgit2/src/hash/sha1/openssl.c +0 -59
  435. data/vendor/libgit2/src/hash/sha1/win32.c +0 -333
  436. data/vendor/libgit2/src/hash/sha1/win32.h +0 -128
  437. data/vendor/libgit2/src/hash/sha1.h +0 -38
  438. data/vendor/libgit2/src/hash.c +0 -110
  439. data/vendor/libgit2/src/hash.h +0 -46
  440. data/vendor/libgit2/src/message.h +0 -17
  441. data/vendor/libgit2/src/net.c +0 -540
  442. data/vendor/libgit2/src/oid.h +0 -51
  443. data/vendor/libgit2/src/remote.h +0 -55
  444. data/vendor/libgit2/src/sysdir.c +0 -347
  445. data/vendor/libgit2/src/win32/findfile.c +0 -230
  446. data/vendor/libgit2/src/win32/findfile.h +0 -19
  447. /data/vendor/libgit2/src/{win32 → cli/win32}/precompiled.c +0 -0
  448. /data/vendor/libgit2/src/{attr.h → libgit2/attr.h} +0 -0
  449. /data/vendor/libgit2/src/{attrcache.h → libgit2/attrcache.h} +0 -0
  450. /data/vendor/libgit2/src/{blame.h → libgit2/blame.h} +0 -0
  451. /data/vendor/libgit2/src/{blame_git.h → libgit2/blame_git.h} +0 -0
  452. /data/vendor/libgit2/src/{cache.c → libgit2/cache.c} +0 -0
  453. /data/vendor/libgit2/src/{cache.h → libgit2/cache.h} +0 -0
  454. /data/vendor/libgit2/src/{checkout.h → libgit2/checkout.h} +0 -0
  455. /data/vendor/libgit2/src/{clone.h → libgit2/clone.h} +0 -0
  456. /data/vendor/libgit2/src/{commit_list.h → libgit2/commit_list.h} +0 -0
  457. /data/vendor/libgit2/src/{config_backend.h → libgit2/config_backend.h} +0 -0
  458. /data/vendor/libgit2/src/{config_cache.c → libgit2/config_cache.c} +0 -0
  459. /data/vendor/libgit2/src/{config_entries.c → libgit2/config_entries.c} +0 -0
  460. /data/vendor/libgit2/src/{config_entries.h → libgit2/config_entries.h} +0 -0
  461. /data/vendor/libgit2/src/{config_parse.h → libgit2/config_parse.h} +0 -0
  462. /data/vendor/libgit2/src/{config_snapshot.c → libgit2/config_snapshot.c} +0 -0
  463. /data/vendor/libgit2/src/{delta.c → libgit2/delta.c} +0 -0
  464. /data/vendor/libgit2/src/{delta.h → libgit2/delta.h} +0 -0
  465. /data/vendor/libgit2/src/{diff_file.h → libgit2/diff_file.h} +0 -0
  466. /data/vendor/libgit2/src/{diff_parse.c → libgit2/diff_parse.c} +0 -0
  467. /data/vendor/libgit2/src/{diff_parse.h → libgit2/diff_parse.h} +0 -0
  468. /data/vendor/libgit2/src/{diff_tform.h → libgit2/diff_tform.h} +0 -0
  469. /data/vendor/libgit2/src/{diff_xdiff.h → libgit2/diff_xdiff.h} +0 -0
  470. /data/vendor/libgit2/src/{fetchhead.h → libgit2/fetchhead.h} +0 -0
  471. /data/vendor/libgit2/src/{win32 → libgit2}/git2.rc +0 -0
  472. /data/vendor/libgit2/src/{graph.c → libgit2/graph.c} +0 -0
  473. /data/vendor/libgit2/src/{hashsig.c → libgit2/hashsig.c} +0 -0
  474. /data/vendor/libgit2/src/{idxmap.c → libgit2/idxmap.c} +0 -0
  475. /data/vendor/libgit2/src/{idxmap.h → libgit2/idxmap.h} +0 -0
  476. /data/vendor/libgit2/src/{indexer.h → libgit2/indexer.h} +0 -0
  477. /data/vendor/libgit2/src/{libgit2.h → libgit2/libgit2.h} +0 -0
  478. /data/vendor/libgit2/src/{mailmap.h → libgit2/mailmap.h} +0 -0
  479. /data/vendor/libgit2/src/{merge_driver.h → libgit2/merge_driver.h} +0 -0
  480. /data/vendor/libgit2/src/{notes.h → libgit2/notes.h} +0 -0
  481. /data/vendor/libgit2/src/{object_api.c → libgit2/object_api.c} +0 -0
  482. /data/vendor/libgit2/src/{offmap.c → libgit2/offmap.c} +0 -0
  483. /data/vendor/libgit2/src/{offmap.h → libgit2/offmap.h} +0 -0
  484. /data/vendor/libgit2/src/{oidarray.c → libgit2/oidarray.c} +0 -0
  485. /data/vendor/libgit2/src/{oidarray.h → libgit2/oidarray.h} +0 -0
  486. /data/vendor/libgit2/src/{oidmap.h → libgit2/oidmap.h} +0 -0
  487. /data/vendor/libgit2/src/{parse.h → libgit2/parse.h} +0 -0
  488. /data/vendor/libgit2/src/{patch_parse.h → libgit2/patch_parse.h} +0 -0
  489. /data/vendor/libgit2/src/{refdb.c → libgit2/refdb.c} +0 -0
  490. /data/vendor/libgit2/src/{refdb.h → libgit2/refdb.h} +0 -0
  491. /data/vendor/libgit2/src/{repo_template.h → libgit2/repo_template.h} +0 -0
  492. /data/vendor/libgit2/src/{revwalk.h → libgit2/revwalk.h} +0 -0
  493. /data/vendor/libgit2/src/{settings.h → libgit2/settings.h} +0 -0
  494. /data/vendor/libgit2/src/{status.h → libgit2/status.h} +0 -0
  495. /data/vendor/libgit2/src/{stream.h → libgit2/stream.h} +0 -0
  496. /data/vendor/libgit2/src/{streams → libgit2/streams}/mbedtls.h +0 -0
  497. /data/vendor/libgit2/src/{streams → libgit2/streams}/openssl.h +0 -0
  498. /data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_legacy.c +0 -0
  499. /data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_legacy.h +0 -0
  500. /data/vendor/libgit2/src/{streams → libgit2/streams}/registry.c +0 -0
  501. /data/vendor/libgit2/src/{streams → libgit2/streams}/registry.h +0 -0
  502. /data/vendor/libgit2/src/{streams → libgit2/streams}/socket.h +0 -0
  503. /data/vendor/libgit2/src/{streams → libgit2/streams}/stransport.c +0 -0
  504. /data/vendor/libgit2/src/{streams → libgit2/streams}/stransport.h +0 -0
  505. /data/vendor/libgit2/src/{streams → libgit2/streams}/tls.c +0 -0
  506. /data/vendor/libgit2/src/{streams → libgit2/streams}/tls.h +0 -0
  507. /data/vendor/libgit2/src/{transaction.h → libgit2/transaction.h} +0 -0
  508. /data/vendor/libgit2/src/{transports → libgit2/transports}/auth_negotiate.h +0 -0
  509. /data/vendor/libgit2/src/{transports → libgit2/transports}/credential.c +0 -0
  510. /data/vendor/libgit2/src/{transports → libgit2/transports}/credential_helpers.c +0 -0
  511. /data/vendor/libgit2/src/{transports → libgit2/transports}/ssh.h +0 -0
  512. /data/vendor/libgit2/src/{userdiff.h → libgit2/userdiff.h} +0 -0
  513. /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xdiffi.h +0 -0
  514. /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xemit.h +0 -0
  515. /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xmacros.h +0 -0
  516. /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xprepare.h +0 -0
  517. /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xtypes.h +0 -0
  518. /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xutils.h +0 -0
  519. /data/vendor/libgit2/src/{alloc.c → util/alloc.c} +0 -0
  520. /data/vendor/libgit2/src/{alloc.h → util/alloc.h} +0 -0
  521. /data/vendor/libgit2/src/{allocators → util/allocators}/failalloc.c +0 -0
  522. /data/vendor/libgit2/src/{allocators → util/allocators}/stdalloc.c +0 -0
  523. /data/vendor/libgit2/src/{allocators → util/allocators}/win32_leakcheck.c +0 -0
  524. /data/vendor/libgit2/src/{bitvec.h → util/bitvec.h} +0 -0
  525. /data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/sha1.h +0 -0
  526. /data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/ubc_check.c +0 -0
  527. /data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/ubc_check.h +0 -0
  528. /data/vendor/libgit2/src/{integer.h → util/integer.h} +0 -0
  529. /data/vendor/libgit2/src/{pool.c → util/pool.c} +0 -0
  530. /data/vendor/libgit2/src/{pqueue.c → util/pqueue.c} +0 -0
  531. /data/vendor/libgit2/src/{strmap.c → util/strmap.c} +0 -0
  532. /data/vendor/libgit2/src/{strnlen.h → util/strnlen.h} +0 -0
  533. /data/vendor/libgit2/src/{unix → util/unix}/pthread.h +0 -0
  534. /data/vendor/libgit2/src/{varint.c → util/varint.c} +0 -0
  535. /data/vendor/libgit2/src/{vector.c → util/vector.c} +0 -0
  536. /data/vendor/libgit2/src/{wildmatch.c → util/wildmatch.c} +0 -0
  537. /data/vendor/libgit2/src/{win32 → util/win32}/dir.c +0 -0
  538. /data/vendor/libgit2/src/{win32 → util/win32}/error.c +0 -0
  539. /data/vendor/libgit2/src/{win32 → util/win32}/mingw-compat.h +0 -0
  540. /data/vendor/libgit2/src/{win32 → util/win32}/msvc-compat.h +0 -0
  541. /data/vendor/libgit2/src/{win32 → util/win32}/reparse.h +0 -0
  542. /data/vendor/libgit2/src/{win32 → util/win32}/thread.c +0 -0
  543. /data/vendor/libgit2/src/{win32 → util/win32}/utf-conv.c +0 -0
  544. /data/vendor/libgit2/src/{win32 → util/win32}/version.h +0 -0
  545. /data/vendor/libgit2/src/{win32 → util/win32}/w32_common.h +0 -0
  546. /data/vendor/libgit2/src/{win32 → util/win32}/w32_util.c +0 -0
  547. /data/vendor/libgit2/src/{win32 → util/win32}/win32-compat.h +0 -0
@@ -7,6 +7,7 @@
7
7
 
8
8
  #include "filter.h"
9
9
 
10
+ #include "buf.h"
10
11
  #include "common.h"
11
12
  #include "futils.h"
12
13
  #include "hash.h"
@@ -17,6 +18,7 @@
17
18
  #include "blob.h"
18
19
  #include "attr_file.h"
19
20
  #include "array.h"
21
+ #include "path.h"
20
22
 
21
23
  struct git_filter_source {
22
24
  git_repository *repo;
@@ -36,7 +38,7 @@ typedef struct {
36
38
  struct git_filter_list {
37
39
  git_array_t(git_filter_entry) filters;
38
40
  git_filter_source source;
39
- git_buf *temp_buf;
41
+ git_str *temp_buf;
40
42
  char path[GIT_FLEX_ARRAY];
41
43
  };
42
44
 
@@ -68,7 +70,7 @@ static void git_filter_global_shutdown(void);
68
70
 
69
71
 
70
72
  static int filter_def_scan_attrs(
71
- git_buf *attrs, size_t *nattr, size_t *nmatch, const char *attr_str)
73
+ git_str *attrs, size_t *nattr, size_t *nmatch, const char *attr_str)
72
74
  {
73
75
  const char *start, *scan = attr_str;
74
76
  int has_eq;
@@ -92,9 +94,9 @@ static int filter_def_scan_attrs(
92
94
  (*nmatch)++;
93
95
 
94
96
  if (has_eq)
95
- git_buf_putc(attrs, '=');
96
- git_buf_put(attrs, start, scan - start);
97
- git_buf_putc(attrs, '\0');
97
+ git_str_putc(attrs, '=');
98
+ git_str_put(attrs, start, scan - start);
99
+ git_str_putc(attrs, '\0');
98
100
  }
99
101
  }
100
102
 
@@ -152,7 +154,7 @@ static int filter_registry_insert(
152
154
  {
153
155
  git_filter_def *fdef;
154
156
  size_t nattr = 0, nmatch = 0, alloc_len;
155
- git_buf attrs = GIT_BUF_INIT;
157
+ git_str attrs = GIT_STR_INIT;
156
158
 
157
159
  if (filter_def_scan_attrs(&attrs, &nattr, &nmatch, filter->attributes) < 0)
158
160
  return -1;
@@ -171,7 +173,7 @@ static int filter_registry_insert(
171
173
  fdef->priority = priority;
172
174
  fdef->nattrs = nattr;
173
175
  fdef->nmatches = nmatch;
174
- fdef->attrdata = git_buf_detach(&attrs);
176
+ fdef->attrdata = git_str_detach(&attrs);
175
177
 
176
178
  filter_def_set_attrs(fdef);
177
179
 
@@ -710,7 +712,7 @@ size_t git_filter_list_length(const git_filter_list *fl)
710
712
 
711
713
  struct buf_stream {
712
714
  git_writestream parent;
713
- git_buf *target;
715
+ git_str *target;
714
716
  bool complete;
715
717
  };
716
718
 
@@ -721,7 +723,7 @@ static int buf_stream_write(
721
723
  GIT_ASSERT_ARG(buf_stream);
722
724
  GIT_ASSERT(buf_stream->complete == 0);
723
725
 
724
- return git_buf_put(buf_stream->target, buffer, len);
726
+ return git_str_put(buf_stream->target, buffer, len);
725
727
  }
726
728
 
727
729
  static int buf_stream_close(git_writestream *s)
@@ -740,7 +742,7 @@ static void buf_stream_free(git_writestream *s)
740
742
  GIT_UNUSED(s);
741
743
  }
742
744
 
743
- static void buf_stream_init(struct buf_stream *writer, git_buf *target)
745
+ static void buf_stream_init(struct buf_stream *writer, git_str *target)
744
746
  {
745
747
  memset(writer, 0, sizeof(struct buf_stream));
746
748
 
@@ -749,7 +751,7 @@ static void buf_stream_init(struct buf_stream *writer, git_buf *target)
749
751
  writer->parent.free = buf_stream_free;
750
752
  writer->target = target;
751
753
 
752
- git_buf_clear(target);
754
+ git_str_clear(target);
753
755
  }
754
756
 
755
757
  int git_filter_list_apply_to_buffer(
@@ -757,13 +759,19 @@ int git_filter_list_apply_to_buffer(
757
759
  git_filter_list *filters,
758
760
  const char *in,
759
761
  size_t in_len)
762
+ {
763
+ GIT_BUF_WRAP_PRIVATE(out, git_filter_list__apply_to_buffer, filters, in, in_len);
764
+ }
765
+
766
+ int git_filter_list__apply_to_buffer(
767
+ git_str *out,
768
+ git_filter_list *filters,
769
+ const char *in,
770
+ size_t in_len)
760
771
  {
761
772
  struct buf_stream writer;
762
773
  int error;
763
774
 
764
- if ((error = git_buf_sanitize(out)) < 0)
765
- return error;
766
-
767
775
  buf_stream_init(&writer, out);
768
776
 
769
777
  if ((error = git_filter_list_stream_buffer(filters,
@@ -775,23 +783,23 @@ int git_filter_list_apply_to_buffer(
775
783
  }
776
784
 
777
785
  int git_filter_list__convert_buf(
778
- git_buf *out,
786
+ git_str *out,
779
787
  git_filter_list *filters,
780
- git_buf *in)
788
+ git_str *in)
781
789
  {
782
790
  int error;
783
791
 
784
792
  if (!filters || git_filter_list_length(filters) == 0) {
785
- git_buf_swap(out, in);
786
- git_buf_dispose(in);
793
+ git_str_swap(out, in);
794
+ git_str_dispose(in);
787
795
  return 0;
788
796
  }
789
797
 
790
- error = git_filter_list_apply_to_buffer(out, filters,
798
+ error = git_filter_list__apply_to_buffer(out, filters,
791
799
  in->ptr, in->size);
792
800
 
793
801
  if (!error)
794
- git_buf_dispose(in);
802
+ git_str_dispose(in);
795
803
 
796
804
  return error;
797
805
  }
@@ -801,6 +809,15 @@ int git_filter_list_apply_to_file(
801
809
  git_filter_list *filters,
802
810
  git_repository *repo,
803
811
  const char *path)
812
+ {
813
+ GIT_BUF_WRAP_PRIVATE(out, git_filter_list__apply_to_file, filters, repo, path);
814
+ }
815
+
816
+ int git_filter_list__apply_to_file(
817
+ git_str *out,
818
+ git_filter_list *filters,
819
+ git_repository *repo,
820
+ const char *path)
804
821
  {
805
822
  struct buf_stream writer;
806
823
  int error;
@@ -815,7 +832,7 @@ int git_filter_list_apply_to_file(
815
832
  return error;
816
833
  }
817
834
 
818
- static int buf_from_blob(git_buf *out, git_blob *blob)
835
+ static int buf_from_blob(git_str *out, git_blob *blob)
819
836
  {
820
837
  git_object_size_t rawsize = git_blob_rawsize(blob);
821
838
 
@@ -824,7 +841,7 @@ static int buf_from_blob(git_buf *out, git_blob *blob)
824
841
  return -1;
825
842
  }
826
843
 
827
- git_buf_attach_notowned(out, git_blob_rawcontent(blob), (size_t)rawsize);
844
+ git_str_attach_notowned(out, git_blob_rawcontent(blob), (size_t)rawsize);
828
845
  return 0;
829
846
  }
830
847
 
@@ -832,6 +849,14 @@ int git_filter_list_apply_to_blob(
832
849
  git_buf *out,
833
850
  git_filter_list *filters,
834
851
  git_blob *blob)
852
+ {
853
+ GIT_BUF_WRAP_PRIVATE(out, git_filter_list__apply_to_blob, filters, blob);
854
+ }
855
+
856
+ int git_filter_list__apply_to_blob(
857
+ git_str *out,
858
+ git_filter_list *filters,
859
+ git_blob *blob)
835
860
  {
836
861
  struct buf_stream writer;
837
862
  int error;
@@ -849,12 +874,13 @@ int git_filter_list_apply_to_blob(
849
874
  struct buffered_stream {
850
875
  git_writestream parent;
851
876
  git_filter *filter;
852
- int (*write_fn)(git_filter *, void **, git_buf *, const git_buf *, const git_filter_source *);
877
+ int (*write_fn)(git_filter *, void **, git_str *, const git_str *, const git_filter_source *);
878
+ int (*legacy_write_fn)(git_filter *, void **, git_buf *, const git_buf *, const git_filter_source *);
853
879
  const git_filter_source *source;
854
880
  void **payload;
855
- git_buf input;
856
- git_buf temp_buf;
857
- git_buf *output;
881
+ git_str input;
882
+ git_str temp_buf;
883
+ git_str *output;
858
884
  git_writestream *target;
859
885
  };
860
886
 
@@ -864,18 +890,48 @@ static int buffered_stream_write(
864
890
  struct buffered_stream *buffered_stream = (struct buffered_stream *)s;
865
891
  GIT_ASSERT_ARG(buffered_stream);
866
892
 
867
- return git_buf_put(&buffered_stream->input, buffer, len);
893
+ return git_str_put(&buffered_stream->input, buffer, len);
868
894
  }
869
895
 
896
+ #ifndef GIT_DEPRECATE_HARD
897
+ # define BUF_TO_STRUCT(b, s) \
898
+ (b)->ptr = (s)->ptr; \
899
+ (b)->size = (s)->size; \
900
+ (b)->reserved = (s)->asize;
901
+ # define STRUCT_TO_BUF(s, b) \
902
+ (s)->ptr = (b)->ptr; \
903
+ (s)->size = (b)->size; \
904
+ (s)->asize = (b)->reserved;
905
+ #endif
906
+
870
907
  static int buffered_stream_close(git_writestream *s)
871
908
  {
872
909
  struct buffered_stream *buffered_stream = (struct buffered_stream *)s;
873
- git_buf *writebuf;
910
+ git_str *writebuf;
874
911
  git_error_state error_state = {0};
875
912
  int error;
876
913
 
877
914
  GIT_ASSERT_ARG(buffered_stream);
878
915
 
916
+ #ifndef GIT_DEPRECATE_HARD
917
+ if (buffered_stream->write_fn == NULL) {
918
+ git_buf legacy_output = GIT_BUF_INIT,
919
+ legacy_input = GIT_BUF_INIT;
920
+
921
+ BUF_TO_STRUCT(&legacy_output, buffered_stream->output);
922
+ BUF_TO_STRUCT(&legacy_input, &buffered_stream->input);
923
+
924
+ error = buffered_stream->legacy_write_fn(
925
+ buffered_stream->filter,
926
+ buffered_stream->payload,
927
+ &legacy_output,
928
+ &legacy_input,
929
+ buffered_stream->source);
930
+
931
+ STRUCT_TO_BUF(buffered_stream->output, &legacy_output);
932
+ STRUCT_TO_BUF(&buffered_stream->input, &legacy_input);
933
+ } else
934
+ #endif
879
935
  error = buffered_stream->write_fn(
880
936
  buffered_stream->filter,
881
937
  buffered_stream->payload,
@@ -886,9 +942,6 @@ static int buffered_stream_close(git_writestream *s)
886
942
  if (error == GIT_PASSTHROUGH) {
887
943
  writebuf = &buffered_stream->input;
888
944
  } else if (error == 0) {
889
- if ((error = git_buf_sanitize(buffered_stream->output)) < 0)
890
- return error;
891
-
892
945
  writebuf = buffered_stream->output;
893
946
  } else {
894
947
  /* close stream before erroring out taking care
@@ -911,8 +964,8 @@ static void buffered_stream_free(git_writestream *s)
911
964
  struct buffered_stream *buffered_stream = (struct buffered_stream *)s;
912
965
 
913
966
  if (buffered_stream) {
914
- git_buf_dispose(&buffered_stream->input);
915
- git_buf_dispose(&buffered_stream->temp_buf);
967
+ git_str_dispose(&buffered_stream->input);
968
+ git_str_dispose(&buffered_stream->temp_buf);
916
969
  git__free(buffered_stream);
917
970
  }
918
971
  }
@@ -920,8 +973,8 @@ static void buffered_stream_free(git_writestream *s)
920
973
  int git_filter_buffered_stream_new(
921
974
  git_writestream **out,
922
975
  git_filter *filter,
923
- int (*write_fn)(git_filter *, void **, git_buf *, const git_buf *, const git_filter_source *),
924
- git_buf *temp_buf,
976
+ int (*write_fn)(git_filter *, void **, git_str *, const git_str *, const git_filter_source *),
977
+ git_str *temp_buf,
925
978
  void **payload,
926
979
  const git_filter_source *source,
927
980
  git_writestream *target)
@@ -940,11 +993,42 @@ int git_filter_buffered_stream_new(
940
993
  buffered_stream->target = target;
941
994
 
942
995
  if (temp_buf)
943
- git_buf_clear(temp_buf);
996
+ git_str_clear(temp_buf);
997
+
998
+ *out = (git_writestream *)buffered_stream;
999
+ return 0;
1000
+ }
1001
+
1002
+ #ifndef GIT_DEPRECATE_HARD
1003
+ static int buffered_legacy_stream_new(
1004
+ git_writestream **out,
1005
+ git_filter *filter,
1006
+ int (*legacy_write_fn)(git_filter *, void **, git_buf *, const git_buf *, const git_filter_source *),
1007
+ git_str *temp_buf,
1008
+ void **payload,
1009
+ const git_filter_source *source,
1010
+ git_writestream *target)
1011
+ {
1012
+ struct buffered_stream *buffered_stream = git__calloc(1, sizeof(struct buffered_stream));
1013
+ GIT_ERROR_CHECK_ALLOC(buffered_stream);
1014
+
1015
+ buffered_stream->parent.write = buffered_stream_write;
1016
+ buffered_stream->parent.close = buffered_stream_close;
1017
+ buffered_stream->parent.free = buffered_stream_free;
1018
+ buffered_stream->filter = filter;
1019
+ buffered_stream->legacy_write_fn = legacy_write_fn;
1020
+ buffered_stream->output = temp_buf ? temp_buf : &buffered_stream->temp_buf;
1021
+ buffered_stream->payload = payload;
1022
+ buffered_stream->source = source;
1023
+ buffered_stream->target = target;
1024
+
1025
+ if (temp_buf)
1026
+ git_str_clear(temp_buf);
944
1027
 
945
1028
  *out = (git_writestream *)buffered_stream;
946
1029
  return 0;
947
1030
  }
1031
+ #endif
948
1032
 
949
1033
  static int setup_stream(
950
1034
  git_writestream **out,
@@ -961,7 +1045,7 @@ static int setup_stream(
961
1045
  */
962
1046
  if (!fe->filter->stream) {
963
1047
  /* Create a stream that proxies the one-shot apply */
964
- return git_filter_buffered_stream_new(out,
1048
+ return buffered_legacy_stream_new(out,
965
1049
  fe->filter, fe->filter->apply, filters->temp_buf,
966
1050
  &fe->payload, &filters->source, last_stream);
967
1051
  }
@@ -1031,8 +1115,8 @@ int git_filter_list_stream_file(
1031
1115
  const char *path,
1032
1116
  git_writestream *target)
1033
1117
  {
1034
- char buf[FILTERIO_BUFSIZE];
1035
- git_buf abspath = GIT_BUF_INIT;
1118
+ char buf[GIT_BUFSIZE_FILTERIO];
1119
+ git_str abspath = GIT_STR_INIT;
1036
1120
  const char *base = repo ? git_repository_workdir(repo) : NULL;
1037
1121
  git_vector filter_streams = GIT_VECTOR_INIT;
1038
1122
  git_writestream *stream_start;
@@ -1041,8 +1125,8 @@ int git_filter_list_stream_file(
1041
1125
 
1042
1126
  if ((error = stream_list_init(
1043
1127
  &stream_start, &filter_streams, filters, target)) < 0 ||
1044
- (error = git_path_join_unrooted(&abspath, path, base, NULL)) < 0 ||
1045
- (error = git_path_validate_workdir_buf(repo, &abspath)) < 0)
1128
+ (error = git_fs_path_join_unrooted(&abspath, path, base, NULL)) < 0 ||
1129
+ (error = git_path_validate_str_length(repo, &abspath)) < 0)
1046
1130
  goto done;
1047
1131
 
1048
1132
  initialized = 1;
@@ -1067,7 +1151,7 @@ done:
1067
1151
  if (fd >= 0)
1068
1152
  p_close(fd);
1069
1153
  filter_streams_free(&filter_streams);
1070
- git_buf_dispose(&abspath);
1154
+ git_str_dispose(&abspath);
1071
1155
  return error;
1072
1156
  }
1073
1157
 
@@ -1101,7 +1185,7 @@ int git_filter_list_stream_blob(
1101
1185
  git_blob *blob,
1102
1186
  git_writestream *target)
1103
1187
  {
1104
- git_buf in = GIT_BUF_INIT;
1188
+ git_str in = GIT_STR_INIT;
1105
1189
 
1106
1190
  if (buf_from_blob(&in, blob) < 0)
1107
1191
  return -1;
@@ -1125,22 +1209,12 @@ int git_filter_list_stream_data(
1125
1209
  git_buf *data,
1126
1210
  git_writestream *target)
1127
1211
  {
1128
- int error;
1129
-
1130
- if ((error = git_buf_sanitize(data)) < 0)
1131
- return error;
1132
-
1133
1212
  return git_filter_list_stream_buffer(filters, data->ptr, data->size, target);
1134
1213
  }
1135
1214
 
1136
1215
  int git_filter_list_apply_to_data(
1137
1216
  git_buf *tgt, git_filter_list *filters, git_buf *src)
1138
1217
  {
1139
- int error;
1140
-
1141
- if ((error = git_buf_sanitize(src)) < 0)
1142
- return error;
1143
-
1144
1218
  return git_filter_list_apply_to_buffer(tgt, filters, src->ptr, src->size);
1145
1219
  }
1146
1220
 
@@ -19,7 +19,7 @@
19
19
  typedef struct {
20
20
  git_filter_options options;
21
21
  git_attr_session *attr_session;
22
- git_buf *temp_buf;
22
+ git_str *temp_buf;
23
23
  } git_filter_session;
24
24
 
25
25
  #define GIT_FILTER_SESSION_INIT {GIT_FILTER_OPTIONS_INIT, 0}
@@ -36,14 +36,35 @@ extern int git_filter_list__load(
36
36
  git_filter_mode_t mode,
37
37
  git_filter_session *filter_session);
38
38
 
39
+ int git_filter_list__apply_to_buffer(
40
+ git_str *out,
41
+ git_filter_list *filters,
42
+ const char *in,
43
+ size_t in_len);
44
+ int git_filter_list__apply_to_file(
45
+ git_str *out,
46
+ git_filter_list *filters,
47
+ git_repository *repo,
48
+ const char *path);
49
+ int git_filter_list__apply_to_blob(
50
+ git_str *out,
51
+ git_filter_list *filters,
52
+ git_blob *blob);
53
+
39
54
  /*
40
55
  * The given input buffer will be converted to the given output buffer.
41
56
  * The input buffer will be freed (_if_ it was allocated).
42
57
  */
43
58
  extern int git_filter_list__convert_buf(
44
- git_buf *out,
59
+ git_str *out,
60
+ git_filter_list *filters,
61
+ git_str *in);
62
+
63
+ extern int git_filter_list__apply_to_file(
64
+ git_str *out,
45
65
  git_filter_list *filters,
46
- git_buf *in);
66
+ git_repository *repo,
67
+ const char *path);
47
68
 
48
69
  /*
49
70
  * Available filters
@@ -55,8 +76,8 @@ extern git_filter *git_ident_filter_new(void);
55
76
  extern int git_filter_buffered_stream_new(
56
77
  git_writestream **out,
57
78
  git_filter *filter,
58
- int (*write_fn)(git_filter *, void **, git_buf *, const git_buf *, const git_filter_source *),
59
- git_buf *temp_buf,
79
+ int (*write_fn)(git_filter *, void **, git_str *, const git_str *, const git_filter_source *),
80
+ git_str *temp_buf,
60
81
  void **payload,
61
82
  const git_filter_source *source,
62
83
  git_writestream *target);
@@ -9,7 +9,7 @@
9
9
 
10
10
  #include "git2/sys/filter.h"
11
11
  #include "filter.h"
12
- #include "buffer.h"
12
+ #include "str.h"
13
13
 
14
14
  static int ident_find_id(
15
15
  const char **id_start, const char **id_end, const char *start, size_t len)
@@ -40,9 +40,9 @@ static int ident_find_id(
40
40
  }
41
41
 
42
42
  static int ident_insert_id(
43
- git_buf *to, const git_buf *from, const git_filter_source *src)
43
+ git_str *to, const git_str *from, const git_filter_source *src)
44
44
  {
45
- char oid[GIT_OID_HEXSZ+1];
45
+ char oid[GIT_OID_SHA1_HEXSIZE+1];
46
46
  const char *id_start, *id_end, *from_end = from->ptr + from->size;
47
47
  size_t need_size;
48
48
 
@@ -57,23 +57,23 @@ static int ident_insert_id(
57
57
  return GIT_PASSTHROUGH;
58
58
 
59
59
  need_size = (size_t)(id_start - from->ptr) +
60
- 5 /* "$Id: " */ + GIT_OID_HEXSZ + 2 /* " $" */ +
60
+ 5 /* "$Id: " */ + GIT_OID_SHA1_HEXSIZE + 2 /* " $" */ +
61
61
  (size_t)(from_end - id_end);
62
62
 
63
- if (git_buf_grow(to, need_size) < 0)
63
+ if (git_str_grow(to, need_size) < 0)
64
64
  return -1;
65
65
 
66
- git_buf_set(to, from->ptr, (size_t)(id_start - from->ptr));
67
- git_buf_put(to, "$Id: ", 5);
68
- git_buf_put(to, oid, GIT_OID_HEXSZ);
69
- git_buf_put(to, " $", 2);
70
- git_buf_put(to, id_end, (size_t)(from_end - id_end));
66
+ git_str_set(to, from->ptr, (size_t)(id_start - from->ptr));
67
+ git_str_put(to, "$Id: ", 5);
68
+ git_str_put(to, oid, GIT_OID_SHA1_HEXSIZE);
69
+ git_str_put(to, " $", 2);
70
+ git_str_put(to, id_end, (size_t)(from_end - id_end));
71
71
 
72
- return git_buf_oom(to) ? -1 : 0;
72
+ return git_str_oom(to) ? -1 : 0;
73
73
  }
74
74
 
75
75
  static int ident_remove_id(
76
- git_buf *to, const git_buf *from)
76
+ git_str *to, const git_str *from)
77
77
  {
78
78
  const char *id_start, *id_end, *from_end = from->ptr + from->size;
79
79
  size_t need_size;
@@ -84,27 +84,27 @@ static int ident_remove_id(
84
84
  need_size = (size_t)(id_start - from->ptr) +
85
85
  4 /* "$Id$" */ + (size_t)(from_end - id_end);
86
86
 
87
- if (git_buf_grow(to, need_size) < 0)
87
+ if (git_str_grow(to, need_size) < 0)
88
88
  return -1;
89
89
 
90
- git_buf_set(to, from->ptr, (size_t)(id_start - from->ptr));
91
- git_buf_put(to, "$Id$", 4);
92
- git_buf_put(to, id_end, (size_t)(from_end - id_end));
90
+ git_str_set(to, from->ptr, (size_t)(id_start - from->ptr));
91
+ git_str_put(to, "$Id$", 4);
92
+ git_str_put(to, id_end, (size_t)(from_end - id_end));
93
93
 
94
- return git_buf_oom(to) ? -1 : 0;
94
+ return git_str_oom(to) ? -1 : 0;
95
95
  }
96
96
 
97
97
  static int ident_apply(
98
98
  git_filter *self,
99
99
  void **payload,
100
- git_buf *to,
101
- const git_buf *from,
100
+ git_str *to,
101
+ const git_str *from,
102
102
  const git_filter_source *src)
103
103
  {
104
104
  GIT_UNUSED(self); GIT_UNUSED(payload);
105
105
 
106
106
  /* Don't filter binary files */
107
- if (git_buf_is_binary(from))
107
+ if (git_str_is_binary(from))
108
108
  return GIT_PASSTHROUGH;
109
109
 
110
110
  if (git_filter_source_mode(src) == GIT_FILTER_SMUDGE)