rugged 1.3.1 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (656) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +34 -2
  3. data/ext/rugged/extconf.rb +6 -3
  4. data/ext/rugged/rugged.c +16 -0
  5. data/ext/rugged/rugged.h +4 -0
  6. data/ext/rugged/rugged_allocator.c +0 -54
  7. data/ext/rugged/rugged_blame.c +2 -0
  8. data/ext/rugged/rugged_blob.c +3 -0
  9. data/ext/rugged/rugged_commit.c +1 -0
  10. data/ext/rugged/rugged_config.c +9 -2
  11. data/ext/rugged/rugged_diff.c +1 -0
  12. data/ext/rugged/rugged_index.c +2 -0
  13. data/ext/rugged/rugged_patch.c +1 -0
  14. data/ext/rugged/rugged_rebase.c +1 -0
  15. data/ext/rugged/rugged_reference.c +1 -0
  16. data/ext/rugged/rugged_remote.c +28 -10
  17. data/ext/rugged/rugged_repo.c +7 -9
  18. data/ext/rugged/rugged_revwalk.c +5 -1
  19. data/ext/rugged/rugged_settings.c +5 -0
  20. data/ext/rugged/rugged_submodule.c +1 -0
  21. data/ext/rugged/rugged_tag.c +1 -0
  22. data/ext/rugged/rugged_tree.c +4 -0
  23. data/lib/rugged/index.rb +1 -1
  24. data/lib/rugged/tree.rb +5 -1
  25. data/lib/rugged/version.rb +1 -1
  26. data/vendor/libgit2/AUTHORS +1 -0
  27. data/vendor/libgit2/CMakeLists.txt +141 -289
  28. data/vendor/libgit2/COPYING +301 -20
  29. data/vendor/libgit2/cmake/AddCFlagIfSupported.cmake +21 -21
  30. data/vendor/libgit2/cmake/AddClarTest.cmake +7 -0
  31. data/vendor/libgit2/cmake/CheckPrototypeDefinitionSafe.cmake +16 -0
  32. data/vendor/libgit2/cmake/DefaultCFlags.cmake +154 -0
  33. data/vendor/libgit2/cmake/EnableWarnings.cmake +13 -13
  34. data/vendor/libgit2/cmake/ExperimentalFeatures.cmake +23 -0
  35. data/vendor/libgit2/cmake/FindCoreFoundation.cmake +13 -13
  36. data/vendor/libgit2/cmake/FindGSSAPI.cmake +171 -287
  37. data/vendor/libgit2/cmake/FindGSSFramework.cmake +13 -13
  38. data/vendor/libgit2/cmake/FindHTTP_Parser.cmake +17 -17
  39. data/vendor/libgit2/cmake/FindIntlIconv.cmake +51 -0
  40. data/vendor/libgit2/cmake/FindLLHTTP.cmake +39 -0
  41. data/vendor/libgit2/cmake/FindLibSSH2.cmake +5 -5
  42. data/vendor/libgit2/cmake/FindPCRE.cmake +12 -13
  43. data/vendor/libgit2/cmake/FindPCRE2.cmake +12 -12
  44. data/vendor/libgit2/cmake/FindPkgLibraries.cmake +19 -19
  45. data/vendor/libgit2/cmake/FindSecurity.cmake +14 -14
  46. data/vendor/libgit2/cmake/FindStatNsec.cmake +12 -18
  47. data/vendor/libgit2/cmake/Findfutimens.cmake +8 -8
  48. data/vendor/libgit2/cmake/FindmbedTLS.cmake +63 -70
  49. data/vendor/libgit2/cmake/IdeSplitSources.cmake +18 -18
  50. data/vendor/libgit2/cmake/PkgBuildConfig.cmake +60 -60
  51. data/vendor/libgit2/cmake/SanitizeBool.cmake +20 -20
  52. data/vendor/libgit2/cmake/SelectGSSAPI.cmake +37 -37
  53. data/vendor/libgit2/cmake/SelectHTTPParser.cmake +34 -0
  54. data/vendor/libgit2/cmake/SelectHTTPSBackend.cmake +129 -101
  55. data/vendor/libgit2/cmake/SelectHashes.cmake +113 -54
  56. data/vendor/libgit2/cmake/SelectRegex.cmake +56 -0
  57. data/vendor/libgit2/cmake/SelectSSH.cmake +46 -0
  58. data/vendor/libgit2/cmake/SelectXdiff.cmake +9 -0
  59. data/vendor/libgit2/cmake/SelectZlib.cmake +38 -0
  60. data/vendor/libgit2/deps/chromium-zlib/CMakeLists.txt +6 -6
  61. data/vendor/libgit2/deps/llhttp/CMakeLists.txt +8 -0
  62. data/vendor/libgit2/deps/llhttp/LICENSE-MIT +22 -0
  63. data/vendor/libgit2/deps/llhttp/api.c +510 -0
  64. data/vendor/libgit2/deps/llhttp/http.c +170 -0
  65. data/vendor/libgit2/deps/llhttp/llhttp.c +10168 -0
  66. data/vendor/libgit2/deps/llhttp/llhttp.h +897 -0
  67. data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +33 -31
  68. data/vendor/libgit2/deps/ntlmclient/crypt_builtin_md4.c +311 -0
  69. data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.c +2 -1
  70. data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.c +0 -20
  71. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +7 -5
  72. data/vendor/libgit2/deps/ntlmclient/ntlm.c +25 -25
  73. data/vendor/libgit2/deps/ntlmclient/ntlm.h +4 -4
  74. data/vendor/libgit2/deps/ntlmclient/ntlmclient.h +2 -2
  75. data/vendor/libgit2/deps/ntlmclient/unicode_builtin.c +5 -4
  76. data/vendor/libgit2/deps/ntlmclient/unicode_iconv.c +2 -1
  77. data/vendor/libgit2/deps/ntlmclient/utf8.h +1176 -721
  78. data/vendor/libgit2/deps/ntlmclient/util.h +11 -0
  79. data/vendor/libgit2/deps/pcre/CMakeLists.txt +89 -88
  80. data/vendor/libgit2/deps/pcre/LICENCE +5 -5
  81. data/vendor/libgit2/deps/pcre/pcre.h +2 -2
  82. data/vendor/libgit2/deps/pcre/pcre_compile.c +6 -3
  83. data/vendor/libgit2/deps/pcre/pcre_exec.c +2 -2
  84. data/vendor/libgit2/deps/winhttp/CMakeLists.txt +14 -16
  85. data/vendor/libgit2/deps/xdiff/CMakeLists.txt +28 -0
  86. data/vendor/libgit2/deps/xdiff/git-xdiff.h +56 -0
  87. data/vendor/libgit2/{src → deps}/xdiff/xdiff.h +15 -15
  88. data/vendor/libgit2/{src → deps}/xdiff/xdiffi.c +152 -125
  89. data/vendor/libgit2/{src → deps}/xdiff/xdiffi.h +2 -4
  90. data/vendor/libgit2/{src → deps}/xdiff/xemit.c +26 -10
  91. data/vendor/libgit2/{src → deps}/xdiff/xhistogram.c +92 -94
  92. data/vendor/libgit2/{src → deps}/xdiff/xinclude.h +1 -12
  93. data/vendor/libgit2/{src → deps}/xdiff/xmacros.h +18 -1
  94. data/vendor/libgit2/{src → deps}/xdiff/xmerge.c +126 -137
  95. data/vendor/libgit2/{src → deps}/xdiff/xpatience.c +26 -46
  96. data/vendor/libgit2/{src → deps}/xdiff/xprepare.c +24 -46
  97. data/vendor/libgit2/{src → deps}/xdiff/xutils.c +36 -8
  98. data/vendor/libgit2/{src → deps}/xdiff/xutils.h +2 -1
  99. data/vendor/libgit2/deps/zlib/CMakeLists.txt +6 -1
  100. data/vendor/libgit2/deps/zlib/LICENSE +22 -0
  101. data/vendor/libgit2/deps/zlib/adler32.c +7 -22
  102. data/vendor/libgit2/deps/zlib/crc32.c +931 -317
  103. data/vendor/libgit2/deps/zlib/crc32.h +9441 -436
  104. data/vendor/libgit2/deps/zlib/deflate.c +428 -453
  105. data/vendor/libgit2/deps/zlib/deflate.h +51 -23
  106. data/vendor/libgit2/deps/zlib/gzguts.h +15 -19
  107. data/vendor/libgit2/deps/zlib/infback.c +19 -31
  108. data/vendor/libgit2/deps/zlib/inffast.c +15 -18
  109. data/vendor/libgit2/deps/zlib/inffast.h +1 -1
  110. data/vendor/libgit2/deps/zlib/inflate.c +75 -110
  111. data/vendor/libgit2/deps/zlib/inflate.h +3 -2
  112. data/vendor/libgit2/deps/zlib/inftrees.c +6 -11
  113. data/vendor/libgit2/deps/zlib/inftrees.h +6 -6
  114. data/vendor/libgit2/deps/zlib/trees.c +294 -380
  115. data/vendor/libgit2/deps/zlib/zconf.h +23 -14
  116. data/vendor/libgit2/deps/zlib/zlib.h +310 -284
  117. data/vendor/libgit2/deps/zlib/zutil.c +20 -46
  118. data/vendor/libgit2/deps/zlib/zutil.h +24 -41
  119. data/vendor/libgit2/include/git2/annotated_commit.h +12 -5
  120. data/vendor/libgit2/include/git2/apply.h +43 -8
  121. data/vendor/libgit2/include/git2/attr.h +28 -6
  122. data/vendor/libgit2/include/git2/blame.h +137 -29
  123. data/vendor/libgit2/include/git2/blob.h +85 -29
  124. data/vendor/libgit2/include/git2/branch.h +25 -16
  125. data/vendor/libgit2/include/git2/buffer.h +24 -82
  126. data/vendor/libgit2/include/git2/cert.h +4 -3
  127. data/vendor/libgit2/include/git2/checkout.h +88 -34
  128. data/vendor/libgit2/include/git2/cherrypick.h +10 -3
  129. data/vendor/libgit2/include/git2/clone.h +28 -12
  130. data/vendor/libgit2/include/git2/commit.h +134 -3
  131. data/vendor/libgit2/include/git2/common.h +172 -59
  132. data/vendor/libgit2/include/git2/config.h +118 -32
  133. data/vendor/libgit2/include/git2/credential.h +32 -3
  134. data/vendor/libgit2/include/git2/credential_helpers.h +2 -0
  135. data/vendor/libgit2/include/git2/deprecated.h +141 -3
  136. data/vendor/libgit2/include/git2/describe.h +20 -3
  137. data/vendor/libgit2/include/git2/diff.h +95 -19
  138. data/vendor/libgit2/include/git2/email.h +10 -30
  139. data/vendor/libgit2/include/git2/errors.h +51 -61
  140. data/vendor/libgit2/include/git2/experimental.h +20 -0
  141. data/vendor/libgit2/include/git2/filter.h +21 -9
  142. data/vendor/libgit2/include/git2/global.h +8 -1
  143. data/vendor/libgit2/include/git2/graph.h +4 -2
  144. data/vendor/libgit2/include/git2/ignore.h +11 -1
  145. data/vendor/libgit2/include/git2/index.h +111 -11
  146. data/vendor/libgit2/include/git2/indexer.h +67 -2
  147. data/vendor/libgit2/include/git2/mailmap.h +7 -1
  148. data/vendor/libgit2/include/git2/merge.h +70 -5
  149. data/vendor/libgit2/include/git2/message.h +4 -2
  150. data/vendor/libgit2/include/git2/net.h +3 -1
  151. data/vendor/libgit2/include/git2/notes.h +9 -6
  152. data/vendor/libgit2/include/git2/object.h +57 -7
  153. data/vendor/libgit2/include/git2/odb.h +156 -33
  154. data/vendor/libgit2/include/git2/odb_backend.h +132 -16
  155. data/vendor/libgit2/include/git2/oid.h +116 -17
  156. data/vendor/libgit2/include/git2/oidarray.h +7 -1
  157. data/vendor/libgit2/include/git2/pack.h +37 -9
  158. data/vendor/libgit2/include/git2/patch.h +10 -3
  159. data/vendor/libgit2/include/git2/pathspec.h +10 -1
  160. data/vendor/libgit2/include/git2/proxy.h +11 -1
  161. data/vendor/libgit2/include/git2/rebase.h +18 -7
  162. data/vendor/libgit2/include/git2/refdb.h +5 -2
  163. data/vendor/libgit2/include/git2/reflog.h +4 -3
  164. data/vendor/libgit2/include/git2/refs.h +11 -8
  165. data/vendor/libgit2/include/git2/refspec.h +14 -4
  166. data/vendor/libgit2/include/git2/remote.h +295 -54
  167. data/vendor/libgit2/include/git2/repository.h +95 -25
  168. data/vendor/libgit2/include/git2/reset.h +18 -5
  169. data/vendor/libgit2/include/git2/revert.h +9 -4
  170. data/vendor/libgit2/include/git2/revparse.h +4 -4
  171. data/vendor/libgit2/include/git2/revwalk.h +7 -3
  172. data/vendor/libgit2/include/git2/signature.h +47 -2
  173. data/vendor/libgit2/include/git2/stash.h +78 -10
  174. data/vendor/libgit2/include/git2/status.h +24 -11
  175. data/vendor/libgit2/include/git2/stdint.h +87 -85
  176. data/vendor/libgit2/include/git2/strarray.h +2 -16
  177. data/vendor/libgit2/include/git2/submodule.h +27 -11
  178. data/vendor/libgit2/include/git2/sys/alloc.h +12 -34
  179. data/vendor/libgit2/include/git2/sys/commit.h +77 -3
  180. data/vendor/libgit2/include/git2/sys/commit_graph.h +110 -59
  181. data/vendor/libgit2/include/git2/sys/config.h +80 -4
  182. data/vendor/libgit2/include/git2/sys/credential.h +4 -3
  183. data/vendor/libgit2/include/git2/sys/diff.h +21 -1
  184. data/vendor/libgit2/include/git2/sys/email.h +7 -0
  185. data/vendor/libgit2/include/git2/sys/errors.h +76 -0
  186. data/vendor/libgit2/include/git2/sys/filter.h +66 -3
  187. data/vendor/libgit2/include/git2/sys/hashsig.h +11 -0
  188. data/vendor/libgit2/include/git2/sys/index.h +3 -2
  189. data/vendor/libgit2/include/git2/sys/mempack.h +32 -2
  190. data/vendor/libgit2/include/git2/sys/merge.h +55 -7
  191. data/vendor/libgit2/include/git2/sys/midx.h +47 -4
  192. data/vendor/libgit2/include/git2/sys/odb_backend.h +10 -9
  193. data/vendor/libgit2/include/git2/sys/openssl.h +8 -1
  194. data/vendor/libgit2/include/git2/sys/path.h +12 -1
  195. data/vendor/libgit2/include/git2/sys/refdb_backend.h +40 -36
  196. data/vendor/libgit2/include/git2/sys/refs.h +3 -2
  197. data/vendor/libgit2/include/git2/sys/remote.h +53 -0
  198. data/vendor/libgit2/include/git2/sys/repository.h +63 -3
  199. data/vendor/libgit2/include/git2/sys/stream.h +26 -3
  200. data/vendor/libgit2/include/git2/sys/transport.h +87 -41
  201. data/vendor/libgit2/include/git2/tag.h +4 -1
  202. data/vendor/libgit2/include/git2/trace.h +9 -3
  203. data/vendor/libgit2/include/git2/transaction.h +3 -2
  204. data/vendor/libgit2/include/git2/transport.h +11 -3
  205. data/vendor/libgit2/include/git2/tree.h +20 -8
  206. data/vendor/libgit2/include/git2/types.h +26 -10
  207. data/vendor/libgit2/include/git2/version.h +63 -6
  208. data/vendor/libgit2/include/git2/worktree.h +30 -8
  209. data/vendor/libgit2/include/git2.h +1 -0
  210. data/vendor/libgit2/src/CMakeLists.txt +203 -420
  211. data/vendor/libgit2/src/README.md +12 -0
  212. data/vendor/libgit2/src/cli/CMakeLists.txt +56 -0
  213. data/vendor/libgit2/src/cli/README.md +26 -0
  214. data/vendor/libgit2/src/{branch.h → cli/cmd.c} +10 -8
  215. data/vendor/libgit2/src/cli/cmd.h +37 -0
  216. data/vendor/libgit2/src/cli/cmd_blame.c +287 -0
  217. data/vendor/libgit2/src/cli/cmd_cat_file.c +202 -0
  218. data/vendor/libgit2/src/cli/cmd_clone.c +190 -0
  219. data/vendor/libgit2/src/cli/cmd_config.c +241 -0
  220. data/vendor/libgit2/src/cli/cmd_hash_object.c +152 -0
  221. data/vendor/libgit2/src/cli/cmd_help.c +85 -0
  222. data/vendor/libgit2/src/cli/cmd_index_pack.c +114 -0
  223. data/vendor/libgit2/src/cli/cmd_init.c +102 -0
  224. data/vendor/libgit2/src/cli/common.c +168 -0
  225. data/vendor/libgit2/src/cli/common.h +63 -0
  226. data/vendor/libgit2/src/cli/error.h +51 -0
  227. data/vendor/libgit2/src/cli/main.c +134 -0
  228. data/vendor/libgit2/src/cli/opt.c +695 -0
  229. data/vendor/libgit2/src/cli/opt.h +367 -0
  230. data/vendor/libgit2/src/cli/opt_usage.c +263 -0
  231. data/vendor/libgit2/src/cli/opt_usage.h +40 -0
  232. data/vendor/libgit2/src/cli/progress.c +395 -0
  233. data/vendor/libgit2/src/cli/progress.h +129 -0
  234. data/vendor/libgit2/src/cli/sighandler.h +20 -0
  235. data/vendor/libgit2/src/cli/unix/sighandler.c +37 -0
  236. data/vendor/libgit2/src/cli/win32/precompiled.h +3 -0
  237. data/vendor/libgit2/src/cli/win32/sighandler.c +37 -0
  238. data/vendor/libgit2/src/libgit2/CMakeLists.txt +140 -0
  239. data/vendor/libgit2/src/{annotated_commit.c → libgit2/annotated_commit.c} +2 -2
  240. data/vendor/libgit2/src/{annotated_commit.h → libgit2/annotated_commit.h} +2 -2
  241. data/vendor/libgit2/src/{apply.c → libgit2/apply.c} +32 -34
  242. data/vendor/libgit2/src/{apply.h → libgit2/apply.h} +2 -2
  243. data/vendor/libgit2/src/{attr.c → libgit2/attr.c} +48 -31
  244. data/vendor/libgit2/src/{attr_file.c → libgit2/attr_file.c} +25 -20
  245. data/vendor/libgit2/src/{attr_file.h → libgit2/attr_file.h} +6 -4
  246. data/vendor/libgit2/src/{attrcache.c → libgit2/attrcache.c} +87 -46
  247. data/vendor/libgit2/src/{attrcache.h → libgit2/attrcache.h} +5 -9
  248. data/vendor/libgit2/src/{blame.c → libgit2/blame.c} +152 -57
  249. data/vendor/libgit2/src/{blame.h → libgit2/blame.h} +1 -0
  250. data/vendor/libgit2/src/{blame_git.c → libgit2/blame_git.c} +1 -2
  251. data/vendor/libgit2/src/{blob.c → libgit2/blob.c} +38 -29
  252. data/vendor/libgit2/src/{blob.h → libgit2/blob.h} +3 -3
  253. data/vendor/libgit2/src/{branch.c → libgit2/branch.c} +164 -118
  254. data/vendor/libgit2/src/libgit2/branch.h +31 -0
  255. data/vendor/libgit2/src/libgit2/buf.c +126 -0
  256. data/vendor/libgit2/src/libgit2/buf.h +50 -0
  257. data/vendor/libgit2/src/{cache.c → libgit2/cache.c} +22 -17
  258. data/vendor/libgit2/src/{cache.h → libgit2/cache.h} +7 -9
  259. data/vendor/libgit2/src/{checkout.c → libgit2/checkout.c} +107 -91
  260. data/vendor/libgit2/src/{checkout.h → libgit2/checkout.h} +0 -2
  261. data/vendor/libgit2/src/{cherrypick.c → libgit2/cherrypick.c} +14 -15
  262. data/vendor/libgit2/src/{clone.c → libgit2/clone.c} +254 -203
  263. data/vendor/libgit2/src/{clone.h → libgit2/clone.h} +4 -1
  264. data/vendor/libgit2/src/{commit.c → libgit2/commit.c} +296 -77
  265. data/vendor/libgit2/src/libgit2/commit.h +87 -0
  266. data/vendor/libgit2/src/{commit_graph.c → libgit2/commit_graph.c} +246 -135
  267. data/vendor/libgit2/src/{commit_graph.h → libgit2/commit_graph.h} +33 -8
  268. data/vendor/libgit2/src/{commit_list.c → libgit2/commit_list.c} +17 -7
  269. data/vendor/libgit2/src/{commit_list.h → libgit2/commit_list.h} +1 -0
  270. data/vendor/libgit2/src/libgit2/common.h +55 -0
  271. data/vendor/libgit2/src/{config.c → libgit2/config.c} +490 -360
  272. data/vendor/libgit2/src/libgit2/config.cmake.in +3 -0
  273. data/vendor/libgit2/src/{config.h → libgit2/config.h} +24 -6
  274. data/vendor/libgit2/src/{config_backend.h → libgit2/config_backend.h} +8 -10
  275. data/vendor/libgit2/src/{config_cache.c → libgit2/config_cache.c} +4 -5
  276. data/vendor/libgit2/src/{config_file.c → libgit2/config_file.c} +212 -183
  277. data/vendor/libgit2/src/libgit2/config_list.c +285 -0
  278. data/vendor/libgit2/src/libgit2/config_list.h +32 -0
  279. data/vendor/libgit2/src/libgit2/config_mem.c +374 -0
  280. data/vendor/libgit2/src/{config_parse.c → libgit2/config_parse.c} +37 -32
  281. data/vendor/libgit2/src/{config_snapshot.c → libgit2/config_snapshot.c} +24 -31
  282. data/vendor/libgit2/src/{crlf.c → libgit2/crlf.c} +24 -21
  283. data/vendor/libgit2/src/{describe.c → libgit2/describe.c} +62 -51
  284. data/vendor/libgit2/src/{diff.c → libgit2/diff.c} +44 -14
  285. data/vendor/libgit2/src/{diff.h → libgit2/diff.h} +8 -10
  286. data/vendor/libgit2/src/{diff_driver.c → libgit2/diff_driver.c} +46 -55
  287. data/vendor/libgit2/src/{diff_driver.h → libgit2/diff_driver.h} +5 -5
  288. data/vendor/libgit2/src/{diff_file.c → libgit2/diff_file.c} +45 -27
  289. data/vendor/libgit2/src/{diff_generate.c → libgit2/diff_generate.c} +70 -20
  290. data/vendor/libgit2/src/{diff_generate.h → libgit2/diff_generate.h} +5 -3
  291. data/vendor/libgit2/src/{diff_parse.c → libgit2/diff_parse.c} +22 -6
  292. data/vendor/libgit2/src/{diff_print.c → libgit2/diff_print.c} +192 -105
  293. data/vendor/libgit2/src/{diff_stats.c → libgit2/diff_stats.c} +40 -29
  294. data/vendor/libgit2/src/libgit2/diff_stats.h +18 -0
  295. data/vendor/libgit2/src/{diff_tform.c → libgit2/diff_tform.c} +49 -16
  296. data/vendor/libgit2/src/{diff_xdiff.c → libgit2/diff_xdiff.c} +4 -8
  297. data/vendor/libgit2/src/{diff_xdiff.h → libgit2/diff_xdiff.h} +1 -1
  298. data/vendor/libgit2/src/{email.c → libgit2/email.c} +58 -40
  299. data/vendor/libgit2/src/{email.h → libgit2/email.h} +1 -1
  300. data/vendor/libgit2/src/{transports/ssh.h → libgit2/experimental.h.in} +3 -4
  301. data/vendor/libgit2/src/{fetch.c → libgit2/fetch.c} +105 -30
  302. data/vendor/libgit2/src/{fetch.h → libgit2/fetch.h} +1 -3
  303. data/vendor/libgit2/src/{fetchhead.c → libgit2/fetchhead.c} +30 -28
  304. data/vendor/libgit2/src/{filter.c → libgit2/filter.c} +132 -58
  305. data/vendor/libgit2/src/{filter.h → libgit2/filter.h} +26 -5
  306. data/vendor/libgit2/src/{win32 → libgit2}/git2.rc +3 -3
  307. data/vendor/libgit2/src/libgit2/grafts.c +270 -0
  308. data/vendor/libgit2/src/libgit2/grafts.h +35 -0
  309. data/vendor/libgit2/src/{graph.c → libgit2/graph.c} +1 -1
  310. data/vendor/libgit2/src/libgit2/hashmap_oid.h +30 -0
  311. data/vendor/libgit2/src/{ident.c → libgit2/ident.c} +20 -20
  312. data/vendor/libgit2/src/{ignore.c → libgit2/ignore.c} +44 -39
  313. data/vendor/libgit2/src/{ignore.h → libgit2/ignore.h} +2 -2
  314. data/vendor/libgit2/src/{index.c → libgit2/index.c} +460 -276
  315. data/vendor/libgit2/src/{index.h → libgit2/index.h} +21 -5
  316. data/vendor/libgit2/src/libgit2/index_map.c +95 -0
  317. data/vendor/libgit2/src/libgit2/index_map.h +28 -0
  318. data/vendor/libgit2/src/{indexer.c → libgit2/indexer.c} +208 -124
  319. data/vendor/libgit2/src/{iterator.c → libgit2/iterator.c} +102 -71
  320. data/vendor/libgit2/src/{iterator.h → libgit2/iterator.h} +8 -5
  321. data/vendor/libgit2/src/libgit2/libgit2.c +268 -0
  322. data/vendor/libgit2/src/{mailmap.c → libgit2/mailmap.c} +39 -37
  323. data/vendor/libgit2/src/{merge.c → libgit2/merge.c} +83 -73
  324. data/vendor/libgit2/src/{merge.h → libgit2/merge.h} +1 -14
  325. data/vendor/libgit2/src/{merge_driver.c → libgit2/merge_driver.c} +4 -4
  326. data/vendor/libgit2/src/{merge_file.c → libgit2/merge_file.c} +13 -5
  327. data/vendor/libgit2/src/{message.c → libgit2/message.c} +21 -10
  328. data/vendor/libgit2/src/{midx.c → libgit2/midx.c} +174 -112
  329. data/vendor/libgit2/src/{midx.h → libgit2/midx.h} +17 -6
  330. data/vendor/libgit2/src/{mwindow.c → libgit2/mwindow.c} +53 -57
  331. data/vendor/libgit2/src/{mwindow.h → libgit2/mwindow.h} +9 -2
  332. data/vendor/libgit2/src/{notes.c → libgit2/notes.c} +29 -37
  333. data/vendor/libgit2/src/{object.c → libgit2/object.c} +166 -35
  334. data/vendor/libgit2/src/{object.h → libgit2/object.h} +17 -2
  335. data/vendor/libgit2/src/{odb.c → libgit2/odb.c} +261 -88
  336. data/vendor/libgit2/src/{odb.h → libgit2/odb.h} +44 -5
  337. data/vendor/libgit2/src/{odb_loose.c → libgit2/odb_loose.c} +192 -134
  338. data/vendor/libgit2/src/{odb_mempack.c → libgit2/odb_mempack.c} +67 -22
  339. data/vendor/libgit2/src/{odb_pack.c → libgit2/odb_pack.c} +162 -89
  340. data/vendor/libgit2/src/{oid.c → libgit2/oid.c} +171 -92
  341. data/vendor/libgit2/src/libgit2/oid.h +284 -0
  342. data/vendor/libgit2/src/libgit2/oidarray.c +89 -0
  343. data/vendor/libgit2/src/{oidarray.h → libgit2/oidarray.h} +5 -1
  344. data/vendor/libgit2/src/{pack-objects.c → libgit2/pack-objects.c} +126 -66
  345. data/vendor/libgit2/src/{pack-objects.h → libgit2/pack-objects.h} +28 -12
  346. data/vendor/libgit2/src/{pack.c → libgit2/pack.c} +146 -111
  347. data/vendor/libgit2/src/{pack.h → libgit2/pack.h} +45 -25
  348. data/vendor/libgit2/src/{parse.c → libgit2/parse.c} +8 -4
  349. data/vendor/libgit2/src/{parse.h → libgit2/parse.h} +1 -1
  350. data/vendor/libgit2/src/{patch.c → libgit2/patch.c} +3 -3
  351. data/vendor/libgit2/src/{patch.h → libgit2/patch.h} +8 -1
  352. data/vendor/libgit2/src/{patch_generate.c → libgit2/patch_generate.c} +51 -16
  353. data/vendor/libgit2/src/{patch_generate.h → libgit2/patch_generate.h} +5 -5
  354. data/vendor/libgit2/src/{patch_parse.c → libgit2/patch_parse.c} +42 -34
  355. data/vendor/libgit2/src/libgit2/path.c +375 -0
  356. data/vendor/libgit2/src/libgit2/path.h +68 -0
  357. data/vendor/libgit2/src/{pathspec.c → libgit2/pathspec.c} +7 -7
  358. data/vendor/libgit2/src/{pathspec.h → libgit2/pathspec.h} +2 -2
  359. data/vendor/libgit2/src/{proxy.c → libgit2/proxy.c} +4 -1
  360. data/vendor/libgit2/src/{proxy.h → libgit2/proxy.h} +1 -1
  361. data/vendor/libgit2/src/{push.c → libgit2/push.c} +116 -60
  362. data/vendor/libgit2/src/{push.h → libgit2/push.h} +5 -16
  363. data/vendor/libgit2/src/{reader.c → libgit2/reader.c} +9 -9
  364. data/vendor/libgit2/src/{reader.h → libgit2/reader.h} +2 -2
  365. data/vendor/libgit2/src/{rebase.c → libgit2/rebase.c} +147 -147
  366. data/vendor/libgit2/src/{refdb_fs.c → libgit2/refdb_fs.c} +639 -254
  367. data/vendor/libgit2/src/{reflog.c → libgit2/reflog.c} +8 -7
  368. data/vendor/libgit2/src/{reflog.h → libgit2/reflog.h} +3 -2
  369. data/vendor/libgit2/src/{refs.c → libgit2/refs.c} +67 -39
  370. data/vendor/libgit2/src/{refs.h → libgit2/refs.h} +8 -3
  371. data/vendor/libgit2/src/{refspec.c → libgit2/refspec.c} +60 -38
  372. data/vendor/libgit2/src/{refspec.h → libgit2/refspec.h} +13 -2
  373. data/vendor/libgit2/src/{remote.c → libgit2/remote.c} +821 -454
  374. data/vendor/libgit2/src/libgit2/remote.h +101 -0
  375. data/vendor/libgit2/src/{repository.c → libgit2/repository.c} +1377 -594
  376. data/vendor/libgit2/src/{repository.h → libgit2/repository.h} +43 -12
  377. data/vendor/libgit2/src/{reset.c → libgit2/reset.c} +8 -5
  378. data/vendor/libgit2/src/{revert.c → libgit2/revert.c} +18 -22
  379. data/vendor/libgit2/src/{revparse.c → libgit2/revparse.c} +76 -44
  380. data/vendor/libgit2/src/{revwalk.c → libgit2/revwalk.c} +48 -19
  381. data/vendor/libgit2/src/{revwalk.h → libgit2/revwalk.h} +3 -3
  382. data/vendor/libgit2/src/{libgit2.c → libgit2/settings.c} +162 -95
  383. data/vendor/libgit2/src/{settings.h → libgit2/settings.h} +6 -2
  384. data/vendor/libgit2/src/{signature.c → libgit2/signature.c} +144 -21
  385. data/vendor/libgit2/src/{signature.h → libgit2/signature.h} +1 -2
  386. data/vendor/libgit2/src/{stash.c → libgit2/stash.c} +243 -68
  387. data/vendor/libgit2/src/{status.c → libgit2/status.c} +5 -2
  388. data/vendor/libgit2/src/{strarray.c → libgit2/strarray.c} +1 -0
  389. data/vendor/libgit2/src/libgit2/strarray.h +25 -0
  390. data/vendor/libgit2/src/{streams → libgit2/streams}/mbedtls.c +62 -67
  391. data/vendor/libgit2/src/{streams → libgit2/streams}/openssl.c +41 -24
  392. data/vendor/libgit2/src/{streams → libgit2/streams}/openssl.h +2 -0
  393. data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_dynamic.c +11 -3
  394. data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_dynamic.h +6 -3
  395. data/vendor/libgit2/src/libgit2/streams/schannel.c +715 -0
  396. data/vendor/libgit2/src/libgit2/streams/schannel.h +28 -0
  397. data/vendor/libgit2/src/libgit2/streams/socket.c +428 -0
  398. data/vendor/libgit2/src/{streams → libgit2/streams}/socket.h +3 -1
  399. data/vendor/libgit2/src/{streams → libgit2/streams}/stransport.c +79 -19
  400. data/vendor/libgit2/src/{streams → libgit2/streams}/tls.c +5 -0
  401. data/vendor/libgit2/src/{submodule.c → libgit2/submodule.c} +279 -220
  402. data/vendor/libgit2/src/{submodule.h → libgit2/submodule.h} +10 -11
  403. data/vendor/libgit2/src/libgit2/sysdir.c +650 -0
  404. data/vendor/libgit2/src/{sysdir.h → libgit2/sysdir.h} +55 -18
  405. data/vendor/libgit2/src/{tag.c → libgit2/tag.c} +74 -43
  406. data/vendor/libgit2/src/{tag.h → libgit2/tag.h} +2 -2
  407. data/vendor/libgit2/src/{trace.c → libgit2/trace.c} +1 -14
  408. data/vendor/libgit2/src/{trace.h → libgit2/trace.h} +5 -22
  409. data/vendor/libgit2/src/{trailer.c → libgit2/trailer.c} +7 -7
  410. data/vendor/libgit2/src/{transaction.c → libgit2/transaction.c} +27 -21
  411. data/vendor/libgit2/src/{transaction.h → libgit2/transaction.h} +4 -1
  412. data/vendor/libgit2/src/{transport.c → libgit2/transport.c} +14 -11
  413. data/vendor/libgit2/src/{transports → libgit2/transports}/auth.c +7 -9
  414. data/vendor/libgit2/src/{transports → libgit2/transports}/auth.h +3 -5
  415. data/vendor/libgit2/src/{transports/auth_negotiate.c → libgit2/transports/auth_gssapi.c} +44 -45
  416. data/vendor/libgit2/src/{transports → libgit2/transports}/auth_negotiate.h +1 -1
  417. data/vendor/libgit2/src/{transports → libgit2/transports}/auth_ntlm.h +1 -2
  418. data/vendor/libgit2/src/{transports/auth_ntlm.c → libgit2/transports/auth_ntlmclient.c} +22 -22
  419. data/vendor/libgit2/src/libgit2/transports/auth_sspi.c +341 -0
  420. data/vendor/libgit2/src/{transports → libgit2/transports}/credential.c +1 -1
  421. data/vendor/libgit2/src/{transports → libgit2/transports}/git.c +16 -19
  422. data/vendor/libgit2/src/{transports → libgit2/transports}/http.c +49 -24
  423. data/vendor/libgit2/src/{transports → libgit2/transports}/http.h +0 -11
  424. data/vendor/libgit2/src/{transports → libgit2/transports}/httpclient.c +188 -134
  425. data/vendor/libgit2/src/{transports → libgit2/transports}/httpclient.h +10 -0
  426. data/vendor/libgit2/src/libgit2/transports/httpparser.c +128 -0
  427. data/vendor/libgit2/src/libgit2/transports/httpparser.h +99 -0
  428. data/vendor/libgit2/src/{transports → libgit2/transports}/local.c +159 -127
  429. data/vendor/libgit2/src/{transports → libgit2/transports}/smart.c +142 -165
  430. data/vendor/libgit2/src/{transports → libgit2/transports}/smart.h +56 -36
  431. data/vendor/libgit2/src/{transports → libgit2/transports}/smart_pkt.c +307 -74
  432. data/vendor/libgit2/src/{transports → libgit2/transports}/smart_protocol.c +297 -97
  433. data/vendor/libgit2/src/libgit2/transports/ssh.c +85 -0
  434. data/vendor/libgit2/src/libgit2/transports/ssh_exec.c +347 -0
  435. data/vendor/libgit2/src/libgit2/transports/ssh_exec.h +26 -0
  436. data/vendor/libgit2/src/{transports/ssh.c → libgit2/transports/ssh_libssh2.c} +414 -268
  437. data/vendor/libgit2/src/libgit2/transports/ssh_libssh2.h +28 -0
  438. data/vendor/libgit2/src/{transports → libgit2/transports}/winhttp.c +101 -75
  439. data/vendor/libgit2/src/{tree-cache.c → libgit2/tree-cache.c} +30 -20
  440. data/vendor/libgit2/src/{tree-cache.h → libgit2/tree-cache.h} +7 -5
  441. data/vendor/libgit2/src/{tree.c → libgit2/tree.c} +128 -110
  442. data/vendor/libgit2/src/{tree.h → libgit2/tree.h} +7 -6
  443. data/vendor/libgit2/src/{worktree.c → libgit2/worktree.c} +160 -121
  444. data/vendor/libgit2/src/{worktree.h → libgit2/worktree.h} +1 -1
  445. data/vendor/libgit2/src/util/CMakeLists.txt +77 -0
  446. data/vendor/libgit2/src/{alloc.c → util/alloc.c} +69 -7
  447. data/vendor/libgit2/src/util/alloc.h +65 -0
  448. data/vendor/libgit2/src/util/allocators/debugalloc.c +73 -0
  449. data/vendor/libgit2/src/util/allocators/debugalloc.h +17 -0
  450. data/vendor/libgit2/src/util/allocators/failalloc.c +32 -0
  451. data/vendor/libgit2/src/util/allocators/failalloc.h +17 -0
  452. data/vendor/libgit2/src/util/allocators/stdalloc.c +37 -0
  453. data/vendor/libgit2/src/{allocators → util/allocators}/stdalloc.h +1 -1
  454. data/vendor/libgit2/src/util/allocators/win32_leakcheck.c +50 -0
  455. data/vendor/libgit2/src/{allocators → util/allocators}/win32_leakcheck.h +1 -1
  456. data/vendor/libgit2/src/{array.h → util/array.h} +25 -19
  457. data/vendor/libgit2/src/{assert_safe.h → util/assert_safe.h} +16 -0
  458. data/vendor/libgit2/src/{cc-compat.h → util/cc-compat.h} +5 -1
  459. data/vendor/libgit2/src/util/ctype_compat.h +70 -0
  460. data/vendor/libgit2/src/{date.c → util/date.c} +35 -33
  461. data/vendor/libgit2/src/util/date.h +45 -0
  462. data/vendor/libgit2/src/util/errors.c +401 -0
  463. data/vendor/libgit2/src/{errors.h → util/errors.h} +22 -19
  464. data/vendor/libgit2/src/{filebuf.c → util/filebuf.c} +35 -30
  465. data/vendor/libgit2/src/{filebuf.h → util/filebuf.h} +21 -8
  466. data/vendor/libgit2/src/{path.c → util/fs_path.c} +591 -615
  467. data/vendor/libgit2/src/{path.h → util/fs_path.h} +257 -181
  468. data/vendor/libgit2/src/{futils.c → util/futils.c} +144 -95
  469. data/vendor/libgit2/src/{futils.h → util/futils.h} +40 -18
  470. data/vendor/libgit2/src/{features.h.in → util/git2_features.h.in} +33 -2
  471. data/vendor/libgit2/src/{common.h → util/git2_util.h} +26 -59
  472. data/vendor/libgit2/src/util/hash/builtin.c +53 -0
  473. data/vendor/libgit2/src/{hash/sha1/openssl.h → util/hash/builtin.h} +6 -6
  474. data/vendor/libgit2/src/{hash/sha1 → util/hash}/collisiondetect.c +3 -3
  475. data/vendor/libgit2/src/{hash/sha1 → util/hash}/collisiondetect.h +3 -3
  476. data/vendor/libgit2/src/util/hash/common_crypto.c +112 -0
  477. data/vendor/libgit2/src/{hash/sha1 → util/hash}/common_crypto.h +11 -3
  478. data/vendor/libgit2/src/util/hash/mbedtls.c +92 -0
  479. data/vendor/libgit2/src/{hash/sha1 → util/hash}/mbedtls.h +14 -4
  480. data/vendor/libgit2/src/util/hash/openssl.c +347 -0
  481. data/vendor/libgit2/src/util/hash/openssl.h +61 -0
  482. data/vendor/libgit2/src/util/hash/rfc6234/sha.h +243 -0
  483. data/vendor/libgit2/src/util/hash/rfc6234/sha224-256.c +601 -0
  484. data/vendor/libgit2/src/util/hash/sha.h +73 -0
  485. data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/sha1.c +1 -1
  486. data/vendor/libgit2/src/util/hash/win32.c +549 -0
  487. data/vendor/libgit2/src/util/hash/win32.h +60 -0
  488. data/vendor/libgit2/src/util/hash.c +158 -0
  489. data/vendor/libgit2/src/util/hash.h +61 -0
  490. data/vendor/libgit2/src/util/hashmap.h +424 -0
  491. data/vendor/libgit2/src/util/hashmap_str.h +43 -0
  492. data/vendor/libgit2/src/{integer.h → util/integer.h} +3 -1
  493. data/vendor/libgit2/src/{map.h → util/map.h} +1 -1
  494. data/vendor/libgit2/src/util/net.c +1160 -0
  495. data/vendor/libgit2/src/{net.h → util/net.h} +45 -4
  496. data/vendor/libgit2/src/{pool.c → util/pool.c} +1 -1
  497. data/vendor/libgit2/src/{pool.h → util/pool.h} +6 -1
  498. data/vendor/libgit2/src/{posix.c → util/posix.c} +57 -3
  499. data/vendor/libgit2/src/{posix.h → util/posix.h} +26 -1
  500. data/vendor/libgit2/src/{pqueue.h → util/pqueue.h} +3 -3
  501. data/vendor/libgit2/src/util/process.h +222 -0
  502. data/vendor/libgit2/src/util/rand.c +230 -0
  503. data/vendor/libgit2/src/util/rand.h +37 -0
  504. data/vendor/libgit2/src/{regexp.c → util/regexp.c} +5 -5
  505. data/vendor/libgit2/src/{regexp.h → util/regexp.h} +1 -1
  506. data/vendor/libgit2/src/{runtime.c → util/runtime.c} +1 -1
  507. data/vendor/libgit2/src/{runtime.h → util/runtime.h} +1 -1
  508. data/vendor/libgit2/src/{sortedcache.c → util/sortedcache.c} +15 -14
  509. data/vendor/libgit2/src/{sortedcache.h → util/sortedcache.h} +5 -5
  510. data/vendor/libgit2/src/util/staticstr.h +66 -0
  511. data/vendor/libgit2/src/{buffer.c → util/str.c} +159 -153
  512. data/vendor/libgit2/src/util/str.h +357 -0
  513. data/vendor/libgit2/src/util/strlist.c +108 -0
  514. data/vendor/libgit2/src/util/strlist.h +36 -0
  515. data/vendor/libgit2/src/{thread.c → util/thread.c} +1 -1
  516. data/vendor/libgit2/src/{thread.h → util/thread.h} +23 -22
  517. data/vendor/libgit2/src/{tsort.c → util/tsort.c} +1 -1
  518. data/vendor/libgit2/src/{unix → util/unix}/map.c +1 -3
  519. data/vendor/libgit2/src/{unix → util/unix}/posix.h +1 -6
  520. data/vendor/libgit2/src/util/unix/process.c +629 -0
  521. data/vendor/libgit2/src/{unix → util/unix}/realpath.c +24 -8
  522. data/vendor/libgit2/src/{utf8.c → util/utf8.c} +1 -1
  523. data/vendor/libgit2/src/{utf8.h → util/utf8.h} +1 -1
  524. data/vendor/libgit2/src/{util.c → util/util.c} +24 -19
  525. data/vendor/libgit2/src/{util.h → util/util.h} +30 -81
  526. data/vendor/libgit2/src/{varint.h → util/varint.h} +1 -1
  527. data/vendor/libgit2/src/{vector.c → util/vector.c} +3 -3
  528. data/vendor/libgit2/src/{vector.h → util/vector.h} +4 -4
  529. data/vendor/libgit2/src/{wildmatch.h → util/wildmatch.h} +1 -1
  530. data/vendor/libgit2/src/{win32 → util/win32}/dir.h +1 -1
  531. data/vendor/libgit2/src/{win32 → util/win32}/error.c +1 -1
  532. data/vendor/libgit2/src/{win32 → util/win32}/error.h +1 -1
  533. data/vendor/libgit2/src/{win32 → util/win32}/map.c +1 -1
  534. data/vendor/libgit2/src/{win32 → util/win32}/path_w32.c +148 -17
  535. data/vendor/libgit2/src/{win32 → util/win32}/path_w32.h +3 -1
  536. data/vendor/libgit2/src/{win32 → util/win32}/posix.h +1 -2
  537. data/vendor/libgit2/src/{win32 → util/win32}/posix_w32.c +42 -35
  538. data/vendor/libgit2/src/util/win32/precompiled.c +1 -0
  539. data/vendor/libgit2/src/{win32 → util/win32}/precompiled.h +1 -1
  540. data/vendor/libgit2/src/util/win32/process.c +506 -0
  541. data/vendor/libgit2/src/{win32 → util/win32}/thread.h +1 -1
  542. data/vendor/libgit2/src/util/win32/utf-conv.c +144 -0
  543. data/vendor/libgit2/src/util/win32/utf-conv.h +127 -0
  544. data/vendor/libgit2/src/{win32 → util/win32}/w32_buffer.c +2 -3
  545. data/vendor/libgit2/src/{win32 → util/win32}/w32_buffer.h +3 -4
  546. data/vendor/libgit2/src/{win32 → util/win32}/w32_leakcheck.c +1 -1
  547. data/vendor/libgit2/src/{win32 → util/win32}/w32_leakcheck.h +1 -1
  548. data/vendor/libgit2/src/{win32 → util/win32}/w32_util.c +1 -1
  549. data/vendor/libgit2/src/{win32 → util/win32}/w32_util.h +1 -1
  550. data/vendor/libgit2/src/{zstream.c → util/zstream.c} +5 -5
  551. data/vendor/libgit2/src/{zstream.h → util/zstream.h} +5 -5
  552. metadata +431 -362
  553. data/vendor/libgit2/cmake/FindIconv.cmake +0 -45
  554. data/vendor/libgit2/deps/http-parser/CMakeLists.txt +0 -6
  555. data/vendor/libgit2/deps/http-parser/COPYING +0 -23
  556. data/vendor/libgit2/deps/http-parser/http_parser.c +0 -2182
  557. data/vendor/libgit2/deps/http-parser/http_parser.h +0 -305
  558. data/vendor/libgit2/deps/zlib/COPYING +0 -27
  559. data/vendor/libgit2/include/git2/sys/reflog.h +0 -21
  560. data/vendor/libgit2/src/alloc.h +0 -40
  561. data/vendor/libgit2/src/allocators/failalloc.c +0 -92
  562. data/vendor/libgit2/src/allocators/failalloc.h +0 -23
  563. data/vendor/libgit2/src/allocators/stdalloc.c +0 -150
  564. data/vendor/libgit2/src/allocators/win32_leakcheck.c +0 -118
  565. data/vendor/libgit2/src/buffer.h +0 -374
  566. data/vendor/libgit2/src/commit.h +0 -46
  567. data/vendor/libgit2/src/config_entries.c +0 -237
  568. data/vendor/libgit2/src/config_entries.h +0 -24
  569. data/vendor/libgit2/src/config_mem.c +0 -220
  570. data/vendor/libgit2/src/errors.c +0 -238
  571. data/vendor/libgit2/src/hash/sha1/common_crypto.c +0 -57
  572. data/vendor/libgit2/src/hash/sha1/generic.c +0 -300
  573. data/vendor/libgit2/src/hash/sha1/generic.h +0 -19
  574. data/vendor/libgit2/src/hash/sha1/mbedtls.c +0 -46
  575. data/vendor/libgit2/src/hash/sha1/openssl.c +0 -59
  576. data/vendor/libgit2/src/hash/sha1/win32.c +0 -333
  577. data/vendor/libgit2/src/hash/sha1/win32.h +0 -128
  578. data/vendor/libgit2/src/hash/sha1.h +0 -38
  579. data/vendor/libgit2/src/hash.c +0 -110
  580. data/vendor/libgit2/src/hash.h +0 -46
  581. data/vendor/libgit2/src/idxmap.c +0 -157
  582. data/vendor/libgit2/src/idxmap.h +0 -177
  583. data/vendor/libgit2/src/khash.h +0 -615
  584. data/vendor/libgit2/src/libgit2.h +0 -15
  585. data/vendor/libgit2/src/message.h +0 -17
  586. data/vendor/libgit2/src/net.c +0 -540
  587. data/vendor/libgit2/src/netops.c +0 -125
  588. data/vendor/libgit2/src/netops.h +0 -68
  589. data/vendor/libgit2/src/offmap.c +0 -101
  590. data/vendor/libgit2/src/offmap.h +0 -133
  591. data/vendor/libgit2/src/oid.h +0 -51
  592. data/vendor/libgit2/src/oidarray.c +0 -43
  593. data/vendor/libgit2/src/oidmap.c +0 -107
  594. data/vendor/libgit2/src/oidmap.h +0 -128
  595. data/vendor/libgit2/src/remote.h +0 -55
  596. data/vendor/libgit2/src/streams/socket.c +0 -239
  597. data/vendor/libgit2/src/strmap.c +0 -100
  598. data/vendor/libgit2/src/strmap.h +0 -131
  599. data/vendor/libgit2/src/sysdir.c +0 -347
  600. data/vendor/libgit2/src/threadstate.c +0 -84
  601. data/vendor/libgit2/src/threadstate.h +0 -24
  602. data/vendor/libgit2/src/win32/findfile.c +0 -230
  603. data/vendor/libgit2/src/win32/findfile.h +0 -19
  604. data/vendor/libgit2/src/win32/utf-conv.c +0 -146
  605. data/vendor/libgit2/src/win32/utf-conv.h +0 -60
  606. /data/vendor/libgit2/{src → deps}/xdiff/xemit.h +0 -0
  607. /data/vendor/libgit2/{src → deps}/xdiff/xprepare.h +0 -0
  608. /data/vendor/libgit2/{src → deps}/xdiff/xtypes.h +0 -0
  609. /data/vendor/libgit2/src/{win32 → cli/win32}/precompiled.c +0 -0
  610. /data/vendor/libgit2/src/{attr.h → libgit2/attr.h} +0 -0
  611. /data/vendor/libgit2/src/{blame_git.h → libgit2/blame_git.h} +0 -0
  612. /data/vendor/libgit2/src/{config_parse.h → libgit2/config_parse.h} +0 -0
  613. /data/vendor/libgit2/src/{delta.c → libgit2/delta.c} +0 -0
  614. /data/vendor/libgit2/src/{delta.h → libgit2/delta.h} +0 -0
  615. /data/vendor/libgit2/src/{diff_file.h → libgit2/diff_file.h} +0 -0
  616. /data/vendor/libgit2/src/{diff_parse.h → libgit2/diff_parse.h} +0 -0
  617. /data/vendor/libgit2/src/{diff_tform.h → libgit2/diff_tform.h} +0 -0
  618. /data/vendor/libgit2/src/{fetchhead.h → libgit2/fetchhead.h} +0 -0
  619. /data/vendor/libgit2/src/{hashsig.c → libgit2/hashsig.c} +0 -0
  620. /data/vendor/libgit2/src/{indexer.h → libgit2/indexer.h} +0 -0
  621. /data/vendor/libgit2/src/{mailmap.h → libgit2/mailmap.h} +0 -0
  622. /data/vendor/libgit2/src/{merge_driver.h → libgit2/merge_driver.h} +0 -0
  623. /data/vendor/libgit2/src/{notes.h → libgit2/notes.h} +0 -0
  624. /data/vendor/libgit2/src/{object_api.c → libgit2/object_api.c} +0 -0
  625. /data/vendor/libgit2/src/{patch_parse.h → libgit2/patch_parse.h} +0 -0
  626. /data/vendor/libgit2/src/{refdb.c → libgit2/refdb.c} +0 -0
  627. /data/vendor/libgit2/src/{refdb.h → libgit2/refdb.h} +0 -0
  628. /data/vendor/libgit2/src/{repo_template.h → libgit2/repo_template.h} +0 -0
  629. /data/vendor/libgit2/src/{status.h → libgit2/status.h} +0 -0
  630. /data/vendor/libgit2/src/{stream.h → libgit2/stream.h} +0 -0
  631. /data/vendor/libgit2/src/{streams → libgit2/streams}/mbedtls.h +0 -0
  632. /data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_legacy.c +0 -0
  633. /data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_legacy.h +0 -0
  634. /data/vendor/libgit2/src/{streams → libgit2/streams}/registry.c +0 -0
  635. /data/vendor/libgit2/src/{streams → libgit2/streams}/registry.h +0 -0
  636. /data/vendor/libgit2/src/{streams → libgit2/streams}/stransport.h +0 -0
  637. /data/vendor/libgit2/src/{streams → libgit2/streams}/tls.h +0 -0
  638. /data/vendor/libgit2/src/{transports → libgit2/transports}/credential_helpers.c +0 -0
  639. /data/vendor/libgit2/src/{userdiff.h → libgit2/userdiff.h} +0 -0
  640. /data/vendor/libgit2/src/{bitvec.h → util/bitvec.h} +0 -0
  641. /data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/sha1.h +0 -0
  642. /data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/ubc_check.c +0 -0
  643. /data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/ubc_check.h +0 -0
  644. /data/vendor/libgit2/src/{pqueue.c → util/pqueue.c} +0 -0
  645. /data/vendor/libgit2/src/{strnlen.h → util/strnlen.h} +0 -0
  646. /data/vendor/libgit2/src/{unix → util/unix}/pthread.h +0 -0
  647. /data/vendor/libgit2/src/{varint.c → util/varint.c} +0 -0
  648. /data/vendor/libgit2/src/{wildmatch.c → util/wildmatch.c} +0 -0
  649. /data/vendor/libgit2/src/{win32 → util/win32}/dir.c +0 -0
  650. /data/vendor/libgit2/src/{win32 → util/win32}/mingw-compat.h +0 -0
  651. /data/vendor/libgit2/src/{win32 → util/win32}/msvc-compat.h +0 -0
  652. /data/vendor/libgit2/src/{win32 → util/win32}/reparse.h +0 -0
  653. /data/vendor/libgit2/src/{win32 → util/win32}/thread.c +0 -0
  654. /data/vendor/libgit2/src/{win32 → util/win32}/version.h +0 -0
  655. /data/vendor/libgit2/src/{win32 → util/win32}/w32_common.h +0 -0
  656. /data/vendor/libgit2/src/{win32 → util/win32}/win32-compat.h +0 -0
@@ -7,12 +7,16 @@
7
7
 
8
8
  #include "email.h"
9
9
 
10
- #include "buffer.h"
11
10
  #include "common.h"
11
+ #include "buf.h"
12
12
  #include "diff_generate.h"
13
+ #include "diff_stats.h"
14
+ #include "patch.h"
15
+ #include "date.h"
13
16
 
14
17
  #include "git2/email.h"
15
18
  #include "git2/patch.h"
19
+ #include "git2/sys/email.h"
16
20
  #include "git2/version.h"
17
21
 
18
22
  /*
@@ -32,7 +36,7 @@ GIT_INLINE(int) include_prefix(
32
36
  }
33
37
 
34
38
  static int append_prefix(
35
- git_buf *out,
39
+ git_str *out,
36
40
  size_t patch_idx,
37
41
  size_t patch_count,
38
42
  git_email_create_options *opts)
@@ -40,16 +44,16 @@ static int append_prefix(
40
44
  const char *subject_prefix = opts->subject_prefix ?
41
45
  opts->subject_prefix : "PATCH";
42
46
 
43
- git_buf_putc(out, '[');
47
+ git_str_putc(out, '[');
44
48
 
45
49
  if (*subject_prefix)
46
- git_buf_puts(out, subject_prefix);
50
+ git_str_puts(out, subject_prefix);
47
51
 
48
52
  if (opts->reroll_number) {
49
53
  if (*subject_prefix)
50
- git_buf_putc(out, ' ');
54
+ git_str_putc(out, ' ');
51
55
 
52
- git_buf_printf(out, "v%" PRIuZ, opts->reroll_number);
56
+ git_str_printf(out, "v%" PRIuZ, opts->reroll_number);
53
57
  }
54
58
 
55
59
  if ((opts->flags & GIT_EMAIL_CREATE_ALWAYS_NUMBER) != 0 ||
@@ -58,20 +62,33 @@ static int append_prefix(
58
62
  opts->start_number : 1;
59
63
 
60
64
  if (*subject_prefix || opts->reroll_number)
61
- git_buf_putc(out, ' ');
65
+ git_str_putc(out, ' ');
62
66
 
63
- git_buf_printf(out, "%" PRIuZ "/%" PRIuZ,
67
+ git_str_printf(out, "%" PRIuZ "/%" PRIuZ,
64
68
  patch_idx + (start_number - 1),
65
69
  patch_count + (start_number - 1));
66
70
  }
67
71
 
68
- git_buf_puts(out, "]");
72
+ git_str_puts(out, "]");
73
+
74
+ return git_str_oom(out) ? -1 : 0;
75
+ }
76
+
77
+ static int append_date(
78
+ git_str *out,
79
+ const git_time *date)
80
+ {
81
+ int error;
82
+
83
+ if ((error = git_str_printf(out, "Date: ")) == 0 &&
84
+ (error = git_date_rfc2822_fmt(out, date->time, date->offset)) == 0)
85
+ error = git_str_putc(out, '\n');
69
86
 
70
- return git_buf_oom(out) ? -1 : 0;
87
+ return error;
71
88
  }
72
89
 
73
90
  static int append_subject(
74
- git_buf *out,
91
+ git_str *out,
75
92
  size_t patch_idx,
76
93
  size_t patch_count,
77
94
  const char *summary,
@@ -88,25 +105,25 @@ static int append_subject(
88
105
  summary_len = (nl - summary);
89
106
  }
90
107
 
91
- if ((error = git_buf_puts(out, "Subject: ")) < 0)
108
+ if ((error = git_str_puts(out, "Subject: ")) < 0)
92
109
  return error;
93
110
 
94
111
  if (prefix &&
95
112
  (error = append_prefix(out, patch_idx, patch_count, opts)) < 0)
96
113
  return error;
97
114
 
98
- if (prefix && summary_len && (error = git_buf_putc(out, ' ')) < 0)
115
+ if (prefix && summary_len && (error = git_str_putc(out, ' ')) < 0)
99
116
  return error;
100
117
 
101
118
  if (summary_len &&
102
- (error = git_buf_put(out, summary, summary_len)) < 0)
119
+ (error = git_str_put(out, summary, summary_len)) < 0)
103
120
  return error;
104
121
 
105
- return git_buf_putc(out, '\n');
122
+ return git_str_putc(out, '\n');
106
123
  }
107
124
 
108
125
  static int append_header(
109
- git_buf *out,
126
+ git_str *out,
110
127
  size_t patch_idx,
111
128
  size_t patch_count,
112
129
  const git_oid *commit_id,
@@ -114,25 +131,24 @@ static int append_header(
114
131
  const git_signature *author,
115
132
  git_email_create_options *opts)
116
133
  {
117
- char id[GIT_OID_HEXSZ];
118
- char date[GIT_DATE_RFC2822_SZ];
134
+ char id[GIT_OID_MAX_HEXSIZE + 1];
119
135
  int error;
120
136
 
121
- if ((error = git_oid_fmt(id, commit_id)) < 0 ||
122
- (error = git_buf_printf(out, "From %.*s %s\n", GIT_OID_HEXSZ, id, EMAIL_TIMESTAMP)) < 0 ||
123
- (error = git_buf_printf(out, "From: %s <%s>\n", author->name, author->email)) < 0 ||
124
- (error = git__date_rfc2822_fmt(date, sizeof(date), &author->when)) < 0 ||
125
- (error = git_buf_printf(out, "Date: %s\n", date)) < 0 ||
137
+ git_oid_tostr(id, GIT_OID_MAX_HEXSIZE + 1, commit_id);
138
+
139
+ if ((error = git_str_printf(out, "From %s %s\n", id, EMAIL_TIMESTAMP)) < 0 ||
140
+ (error = git_str_printf(out, "From: %s <%s>\n", author->name, author->email)) < 0 ||
141
+ (error = append_date(out, &author->when)) < 0 ||
126
142
  (error = append_subject(out, patch_idx, patch_count, summary, opts)) < 0)
127
143
  return error;
128
144
 
129
- if ((error = git_buf_putc(out, '\n')) < 0)
145
+ if ((error = git_str_putc(out, '\n')) < 0)
130
146
  return error;
131
147
 
132
148
  return 0;
133
149
  }
134
150
 
135
- static int append_body(git_buf *out, const char *body)
151
+ static int append_body(git_str *out, const char *body)
136
152
  {
137
153
  size_t body_len;
138
154
  int error;
@@ -142,16 +158,16 @@ static int append_body(git_buf *out, const char *body)
142
158
 
143
159
  body_len = strlen(body);
144
160
 
145
- if ((error = git_buf_puts(out, body)) < 0)
161
+ if ((error = git_str_puts(out, body)) < 0)
146
162
  return error;
147
163
 
148
164
  if (body_len && body[body_len - 1] != '\n')
149
- error = git_buf_putc(out, '\n');
165
+ error = git_str_putc(out, '\n');
150
166
 
151
167
  return error;
152
168
  }
153
169
 
154
- static int append_diffstat(git_buf *out, git_diff *diff)
170
+ static int append_diffstat(git_str *out, git_diff *diff)
155
171
  {
156
172
  git_diff_stats *stats = NULL;
157
173
  unsigned int format_flags;
@@ -160,14 +176,14 @@ static int append_diffstat(git_buf *out, git_diff *diff)
160
176
  format_flags = GIT_DIFF_STATS_FULL | GIT_DIFF_STATS_INCLUDE_SUMMARY;
161
177
 
162
178
  if ((error = git_diff_get_stats(&stats, diff)) == 0 &&
163
- (error = git_diff_stats_to_buf(out, stats, format_flags, 0)) == 0)
164
- error = git_buf_putc(out, '\n');
179
+ (error = git_diff__stats_to_buf(out, stats, format_flags, 0)) == 0)
180
+ error = git_str_putc(out, '\n');
165
181
 
166
182
  git_diff_stats_free(stats);
167
183
  return error;
168
184
  }
169
185
 
170
- static int append_patches(git_buf *out, git_diff *diff)
186
+ static int append_patches(git_str *out, git_diff *diff)
171
187
  {
172
188
  size_t i, deltas;
173
189
  int error = 0;
@@ -178,7 +194,7 @@ static int append_patches(git_buf *out, git_diff *diff)
178
194
  git_patch *patch = NULL;
179
195
 
180
196
  if ((error = git_patch_from_diff(&patch, diff, i)) >= 0)
181
- error = git_patch_to_buf(out, patch);
197
+ error = git_patch__to_buf(out, patch);
182
198
 
183
199
  git_patch_free(patch);
184
200
 
@@ -190,7 +206,7 @@ static int append_patches(git_buf *out, git_diff *diff)
190
206
  }
191
207
 
192
208
  int git_email__append_from_diff(
193
- git_buf *out,
209
+ git_str *out,
194
210
  git_diff *diff,
195
211
  size_t patch_idx,
196
212
  size_t patch_count,
@@ -216,14 +232,12 @@ int git_email__append_from_diff(
216
232
  if (given_opts)
217
233
  memcpy(&opts, given_opts, sizeof(git_email_create_options));
218
234
 
219
- git_buf_sanitize(out);
220
-
221
235
  if ((error = append_header(out, patch_idx, patch_count, commit_id, summary, author, &opts)) == 0 &&
222
236
  (error = append_body(out, body)) == 0 &&
223
- (error = git_buf_puts(out, "---\n")) == 0 &&
237
+ (error = git_str_puts(out, "---\n")) == 0 &&
224
238
  (error = append_diffstat(out, diff)) == 0 &&
225
239
  (error = append_patches(out, diff)) == 0)
226
- error = git_buf_puts(out, "--\nlibgit2 " LIBGIT2_VERSION "\n\n");
240
+ error = git_str_puts(out, "--\nlibgit2 " LIBGIT2_VERSION "\n\n");
227
241
 
228
242
  return error;
229
243
  }
@@ -239,15 +253,19 @@ int git_email_create_from_diff(
239
253
  const git_signature *author,
240
254
  const git_email_create_options *given_opts)
241
255
  {
256
+ git_str email = GIT_STR_INIT;
242
257
  int error;
243
258
 
244
- git_buf_sanitize(out);
245
- git_buf_clear(out);
259
+ git_buf_tostr(&email, out);
246
260
 
247
- error = git_email__append_from_diff(out, diff, patch_idx,
261
+ error = git_email__append_from_diff(&email, diff, patch_idx,
248
262
  patch_count, commit_id, summary, body, author,
249
263
  given_opts);
250
264
 
265
+ if (error == 0)
266
+ error = git_buf_fromstr(out, &email);
267
+
268
+ git_str_dispose(&email);
251
269
  return error;
252
270
  }
253
271
 
@@ -12,7 +12,7 @@
12
12
  #include "git2/email.h"
13
13
 
14
14
  extern int git_email__append_from_diff(
15
- git_buf *out,
15
+ git_str *out,
16
16
  git_diff *diff,
17
17
  size_t patch_idx,
18
18
  size_t patch_count,
@@ -4,11 +4,10 @@
4
4
  * This file is part of libgit2, distributed under the GNU GPL v2 with
5
5
  * a Linking Exception. For full terms see the included COPYING file.
6
6
  */
7
- #ifndef INCLUDE_transports_ssh_h__
8
- #define INCLUDE_transports_ssh_h__
9
7
 
10
- #include "common.h"
8
+ #ifndef INCLUDE_experimental_h__
9
+ #define INCLUDE_experimental_h__
11
10
 
12
- int git_transport_ssh_global_init(void);
11
+ #cmakedefine GIT_EXPERIMENTAL_SHA256 1
13
12
 
14
13
  #endif
@@ -11,15 +11,17 @@
11
11
  #include "git2/refs.h"
12
12
  #include "git2/revwalk.h"
13
13
  #include "git2/transport.h"
14
+ #include "git2/sys/remote.h"
14
15
 
16
+ #include "oid.h"
15
17
  #include "remote.h"
16
18
  #include "refspec.h"
17
19
  #include "pack.h"
18
- #include "netops.h"
19
20
  #include "repository.h"
20
21
  #include "refs.h"
22
+ #include "transports/smart.h"
21
23
 
22
- static int maybe_want(git_remote *remote, git_remote_head *head, git_odb *odb, git_refspec *tagspec, git_remote_autotag_option_t tagopt)
24
+ static int maybe_want(git_remote *remote, git_remote_head *head, git_refspec *tagspec, git_remote_autotag_option_t tagopt)
23
25
  {
24
26
  int match = 0, valid;
25
27
 
@@ -44,23 +46,63 @@ static int maybe_want(git_remote *remote, git_remote_head *head, git_odb *odb, g
44
46
  if (!match)
45
47
  return 0;
46
48
 
47
- /* If we have the object, mark it so we don't ask for it */
48
- if (git_odb_exists(odb, &head->oid)) {
49
- head->local = 1;
49
+ return git_vector_insert(&remote->refs, head);
50
+ }
51
+
52
+ static int mark_local(git_remote *remote)
53
+ {
54
+ git_remote_head *head;
55
+ git_odb *odb;
56
+ size_t i;
57
+
58
+ if (git_repository_odb__weakptr(&odb, remote->repo) < 0)
59
+ return -1;
60
+
61
+ git_vector_foreach(&remote->refs, i, head) {
62
+ /* If we have the object, mark it so we don't ask for it.
63
+ However if we are unshallowing or changing history
64
+ depth, we need to ask for it even though the head
65
+ exists locally. */
66
+ if (remote->nego.depth == GIT_FETCH_DEPTH_FULL &&
67
+ git_odb_exists(odb, &head->oid))
68
+ head->local = 1;
69
+ else
70
+ remote->need_pack = 1;
50
71
  }
51
- else
52
- remote->need_pack = 1;
53
72
 
54
- return git_vector_insert(&remote->refs, head);
73
+ return 0;
74
+ }
75
+
76
+ static int maybe_want_oid(git_remote *remote, git_refspec *spec)
77
+ {
78
+ git_remote_head *oid_head;
79
+
80
+ oid_head = git__calloc(1, sizeof(git_remote_head));
81
+ GIT_ERROR_CHECK_ALLOC(oid_head);
82
+
83
+ git_oid__fromstr(&oid_head->oid, spec->src, remote->repo->oid_type);
84
+
85
+ if (spec->dst) {
86
+ oid_head->name = git__strdup(spec->dst);
87
+ GIT_ERROR_CHECK_ALLOC(oid_head->name);
88
+ }
89
+
90
+ if (git_vector_insert(&remote->local_heads, oid_head) < 0 ||
91
+ git_vector_insert(&remote->refs, oid_head) < 0)
92
+ return -1;
93
+
94
+ return 0;
55
95
  }
56
96
 
57
97
  static int filter_wants(git_remote *remote, const git_fetch_options *opts)
58
98
  {
59
99
  git_remote_head **heads;
60
- git_refspec tagspec, head;
100
+ git_refspec tagspec, head, *spec;
61
101
  int error = 0;
62
- git_odb *odb;
63
102
  size_t i, heads_len;
103
+ unsigned int remote_caps;
104
+ unsigned int oid_mask = GIT_REMOTE_CAPABILITY_TIP_OID |
105
+ GIT_REMOTE_CAPABILITY_REACHABLE_OID;
64
106
  git_remote_autotag_option_t tagopt = remote->download_tags;
65
107
 
66
108
  if (opts && opts->download_tags != GIT_REMOTE_DOWNLOAD_TAGS_UNSPECIFIED)
@@ -87,17 +129,33 @@ static int filter_wants(git_remote *remote, const git_fetch_options *opts)
87
129
  goto cleanup;
88
130
  }
89
131
 
90
- if (git_repository_odb__weakptr(&odb, remote->repo) < 0)
91
- goto cleanup;
92
-
93
- if (git_remote_ls((const git_remote_head ***)&heads, &heads_len, remote) < 0)
132
+ if ((error = git_remote_ls((const git_remote_head ***)&heads, &heads_len, remote)) < 0 ||
133
+ (error = git_remote_capabilities(&remote_caps, remote)) < 0)
94
134
  goto cleanup;
95
135
 
136
+ /* Handle remote heads */
96
137
  for (i = 0; i < heads_len; i++) {
97
- if ((error = maybe_want(remote, heads[i], odb, &tagspec, tagopt)) < 0)
98
- break;
138
+ if ((error = maybe_want(remote, heads[i], &tagspec, tagopt)) < 0)
139
+ goto cleanup;
140
+ }
141
+
142
+ /* Handle explicitly specified OID specs */
143
+ git_vector_foreach(&remote->active_refspecs, i, spec) {
144
+ if (!git_oid__is_hexstr(spec->src, remote->repo->oid_type))
145
+ continue;
146
+
147
+ if (!(remote_caps & oid_mask)) {
148
+ git_error_set(GIT_ERROR_INVALID, "cannot fetch a specific object from the remote repository");
149
+ error = -1;
150
+ goto cleanup;
151
+ }
152
+
153
+ if ((error = maybe_want_oid(remote, spec)) < 0)
154
+ goto cleanup;
99
155
  }
100
156
 
157
+ error = mark_local(remote);
158
+
101
159
  cleanup:
102
160
  git_refspec__dispose(&tagspec);
103
161
 
@@ -112,14 +170,18 @@ cleanup:
112
170
  int git_fetch_negotiate(git_remote *remote, const git_fetch_options *opts)
113
171
  {
114
172
  git_transport *t = remote->transport;
173
+ int error;
115
174
 
116
175
  remote->need_pack = 0;
117
176
 
118
- if (filter_wants(remote, opts) < 0) {
119
- git_error_set(GIT_ERROR_NET, "failed to filter the reference list for wants");
120
- return -1;
177
+ if (opts) {
178
+ GIT_ASSERT_ARG(opts->depth >= 0);
179
+ remote->nego.depth = opts->depth;
121
180
  }
122
181
 
182
+ if (filter_wants(remote, opts) < 0)
183
+ return -1;
184
+
123
185
  /* Don't try to negotiate when we don't want anything */
124
186
  if (!remote->need_pack)
125
187
  return 0;
@@ -128,27 +190,40 @@ int git_fetch_negotiate(git_remote *remote, const git_fetch_options *opts)
128
190
  * Now we have everything set up so we can start tell the
129
191
  * server what we want and what we have.
130
192
  */
131
- return t->negotiate_fetch(t,
193
+ remote->nego.refs = (const git_remote_head * const *)remote->refs.contents;
194
+ remote->nego.refs_len = remote->refs.length;
195
+
196
+ if (git_repository__shallow_roots(&remote->nego.shallow_roots,
197
+ &remote->nego.shallow_roots_len,
198
+ remote->repo) < 0)
199
+ return -1;
200
+
201
+ error = t->negotiate_fetch(t,
132
202
  remote->repo,
133
- (const git_remote_head * const *)remote->refs.contents,
134
- remote->refs.length);
203
+ &remote->nego);
204
+
205
+ git__free(remote->nego.shallow_roots);
206
+
207
+ return error;
135
208
  }
136
209
 
137
- int git_fetch_download_pack(git_remote *remote, const git_remote_callbacks *callbacks)
210
+ int git_fetch_download_pack(git_remote *remote)
138
211
  {
212
+ git_oidarray shallow_roots = { NULL };
139
213
  git_transport *t = remote->transport;
140
- git_indexer_progress_cb progress = NULL;
141
- void *payload = NULL;
214
+ int error;
142
215
 
143
216
  if (!remote->need_pack)
144
217
  return 0;
145
218
 
146
- if (callbacks) {
147
- progress = callbacks->transfer_progress;
148
- payload = callbacks->payload;
149
- }
219
+ if ((error = t->download_pack(t, remote->repo, &remote->stats)) != 0 ||
220
+ (error = t->shallow_roots(&shallow_roots, t)) != 0)
221
+ return error;
150
222
 
151
- return t->download_pack(t, remote->repo, &remote->stats, progress, payload);
223
+ error = git_repository__shallow_roots_write(remote->repo, &shallow_roots);
224
+
225
+ git_oidarray_dispose(&shallow_roots);
226
+ return error;
152
227
  }
153
228
 
154
229
  int git_fetch_options_init(git_fetch_options *opts, unsigned int version)
@@ -11,11 +11,9 @@
11
11
 
12
12
  #include "git2/remote.h"
13
13
 
14
- #include "netops.h"
15
-
16
14
  int git_fetch_negotiate(git_remote *remote, const git_fetch_options *opts);
17
15
 
18
- int git_fetch_download_pack(git_remote *remote, const git_remote_callbacks *callbacks);
16
+ int git_fetch_download_pack(git_remote *remote);
19
17
 
20
18
  int git_fetch_setup_walk(git_revwalk **out, git_repository *repo);
21
19
 
@@ -10,7 +10,7 @@
10
10
  #include "git2/types.h"
11
11
  #include "git2/oid.h"
12
12
 
13
- #include "buffer.h"
13
+ #include "str.h"
14
14
  #include "futils.h"
15
15
  #include "filebuf.h"
16
16
  #include "refs.h"
@@ -44,7 +44,7 @@ static char *sanitized_remote_url(const char *remote_url)
44
44
  int error;
45
45
 
46
46
  if (git_net_url_parse(&url, remote_url) == 0) {
47
- git_buf buf = GIT_BUF_INIT;
47
+ git_str buf = GIT_STR_INIT;
48
48
 
49
49
  git__free(url.username);
50
50
  git__free(url.password);
@@ -53,7 +53,7 @@ static char *sanitized_remote_url(const char *remote_url)
53
53
  if ((error = git_net_url_fmt(&buf, &url)) < 0)
54
54
  goto fallback;
55
55
 
56
- sanitized = git_buf_detach(&buf);
56
+ sanitized = git_str_detach(&buf);
57
57
  }
58
58
 
59
59
  fallback:
@@ -105,15 +105,14 @@ static int fetchhead_ref_write(
105
105
  git_filebuf *file,
106
106
  git_fetchhead_ref *fetchhead_ref)
107
107
  {
108
- char oid[GIT_OID_HEXSZ + 1];
108
+ char oid[GIT_OID_MAX_HEXSIZE + 1];
109
109
  const char *type, *name;
110
110
  int head = 0;
111
111
 
112
112
  GIT_ASSERT_ARG(file);
113
113
  GIT_ASSERT_ARG(fetchhead_ref);
114
114
 
115
- git_oid_fmt(oid, &fetchhead_ref->oid);
116
- oid[GIT_OID_HEXSZ] = '\0';
115
+ git_oid_tostr(oid, GIT_OID_MAX_HEXSIZE + 1, &fetchhead_ref->oid);
117
116
 
118
117
  if (git__prefixcmp(fetchhead_ref->ref_name, GIT_REFS_HEADS_DIR) == 0) {
119
118
  type = "branch ";
@@ -143,22 +142,22 @@ static int fetchhead_ref_write(
143
142
  int git_fetchhead_write(git_repository *repo, git_vector *fetchhead_refs)
144
143
  {
145
144
  git_filebuf file = GIT_FILEBUF_INIT;
146
- git_buf path = GIT_BUF_INIT;
145
+ git_str path = GIT_STR_INIT;
147
146
  unsigned int i;
148
147
  git_fetchhead_ref *fetchhead_ref;
149
148
 
150
149
  GIT_ASSERT_ARG(repo);
151
150
  GIT_ASSERT_ARG(fetchhead_refs);
152
151
 
153
- if (git_buf_joinpath(&path, repo->gitdir, GIT_FETCH_HEAD_FILE) < 0)
152
+ if (git_str_joinpath(&path, repo->gitdir, GIT_FETCH_HEAD_FILE) < 0)
154
153
  return -1;
155
154
 
156
155
  if (git_filebuf_open(&file, path.ptr, GIT_FILEBUF_APPEND, GIT_REFS_FILE_MODE) < 0) {
157
- git_buf_dispose(&path);
156
+ git_str_dispose(&path);
158
157
  return -1;
159
158
  }
160
159
 
161
- git_buf_dispose(&path);
160
+ git_str_dispose(&path);
162
161
 
163
162
  git_vector_sort(fetchhead_refs);
164
163
 
@@ -171,10 +170,11 @@ int git_fetchhead_write(git_repository *repo, git_vector *fetchhead_refs)
171
170
  static int fetchhead_ref_parse(
172
171
  git_oid *oid,
173
172
  unsigned int *is_merge,
174
- git_buf *ref_name,
173
+ git_str *ref_name,
175
174
  const char **remote_url,
176
175
  char *line,
177
- size_t line_num)
176
+ size_t line_num,
177
+ git_oid_t oid_type)
178
178
  {
179
179
  char *oid_str, *is_merge_str, *desc, *name = NULL;
180
180
  const char *type = NULL;
@@ -196,13 +196,13 @@ static int fetchhead_ref_parse(
196
196
  *is_merge = 1;
197
197
  }
198
198
 
199
- if (strlen(oid_str) != GIT_OID_HEXSZ) {
199
+ if (strlen(oid_str) != git_oid_hexsize(oid_type)) {
200
200
  git_error_set(GIT_ERROR_FETCHHEAD,
201
201
  "invalid object ID in FETCH_HEAD line %"PRIuZ, line_num);
202
202
  return -1;
203
203
  }
204
204
 
205
- if (git_oid_fromstr(oid, oid_str) < 0) {
205
+ if (git_oid__fromstr(oid, oid_str, oid_type) < 0) {
206
206
  const git_error *oid_err = git_error_last();
207
207
  const char *err_msg = oid_err ? oid_err->message : "invalid object ID";
208
208
 
@@ -259,21 +259,22 @@ static int fetchhead_ref_parse(
259
259
  *remote_url = desc;
260
260
  }
261
261
 
262
- git_buf_clear(ref_name);
262
+ git_str_clear(ref_name);
263
263
 
264
264
  if (type)
265
- git_buf_join(ref_name, '/', type, name);
265
+ git_str_join(ref_name, '/', type, name);
266
266
  else if(name)
267
- git_buf_puts(ref_name, name);
267
+ git_str_puts(ref_name, name);
268
268
 
269
269
  return error;
270
270
  }
271
271
 
272
- int git_repository_fetchhead_foreach(git_repository *repo,
272
+ int git_repository_fetchhead_foreach(
273
+ git_repository *repo,
273
274
  git_repository_fetchhead_foreach_cb cb,
274
275
  void *payload)
275
276
  {
276
- git_buf path = GIT_BUF_INIT, file = GIT_BUF_INIT, name = GIT_BUF_INIT;
277
+ git_str path = GIT_STR_INIT, file = GIT_STR_INIT, name = GIT_STR_INIT;
277
278
  const char *ref_name;
278
279
  git_oid oid;
279
280
  const char *remote_url;
@@ -285,10 +286,10 @@ int git_repository_fetchhead_foreach(git_repository *repo,
285
286
  GIT_ASSERT_ARG(repo);
286
287
  GIT_ASSERT_ARG(cb);
287
288
 
288
- if (git_buf_joinpath(&path, repo->gitdir, GIT_FETCH_HEAD_FILE) < 0)
289
+ if (git_str_joinpath(&path, repo->gitdir, GIT_FETCH_HEAD_FILE) < 0)
289
290
  return -1;
290
291
 
291
- if ((error = git_futils_readbuffer(&file, git_buf_cstr(&path))) < 0)
292
+ if ((error = git_futils_readbuffer(&file, git_str_cstr(&path))) < 0)
292
293
  goto done;
293
294
 
294
295
  buffer = file.ptr;
@@ -296,12 +297,13 @@ int git_repository_fetchhead_foreach(git_repository *repo,
296
297
  while ((line = git__strsep(&buffer, "\n")) != NULL) {
297
298
  ++line_num;
298
299
 
299
- if ((error = fetchhead_ref_parse(
300
- &oid, &is_merge, &name, &remote_url, line, line_num)) < 0)
300
+ if ((error = fetchhead_ref_parse(&oid, &is_merge, &name,
301
+ &remote_url, line, line_num,
302
+ repo->oid_type)) < 0)
301
303
  goto done;
302
304
 
303
- if (git_buf_len(&name) > 0)
304
- ref_name = git_buf_cstr(&name);
305
+ if (git_str_len(&name) > 0)
306
+ ref_name = git_str_cstr(&name);
305
307
  else
306
308
  ref_name = NULL;
307
309
 
@@ -319,9 +321,9 @@ int git_repository_fetchhead_foreach(git_repository *repo,
319
321
  }
320
322
 
321
323
  done:
322
- git_buf_dispose(&file);
323
- git_buf_dispose(&path);
324
- git_buf_dispose(&name);
324
+ git_str_dispose(&file);
325
+ git_str_dispose(&path);
326
+ git_str_dispose(&name);
325
327
 
326
328
  return error;
327
329
  }