rugged 1.3.2.3 → 1.4.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 (329) hide show
  1. checksums.yaml +4 -4
  2. data/ext/rugged/extconf.rb +1 -1
  3. data/ext/rugged/rugged_config.c +7 -2
  4. data/ext/rugged/rugged_remote.c +17 -0
  5. data/lib/rugged/version.rb +1 -1
  6. data/vendor/libgit2/CMakeLists.txt +103 -276
  7. data/vendor/libgit2/COPYING +36 -19
  8. data/vendor/libgit2/cmake/AddCFlagIfSupported.cmake +21 -21
  9. data/vendor/libgit2/cmake/DefaultCFlags.cmake +154 -0
  10. data/vendor/libgit2/cmake/EnableWarnings.cmake +13 -13
  11. data/vendor/libgit2/cmake/FindCoreFoundation.cmake +13 -13
  12. data/vendor/libgit2/cmake/FindGSSAPI.cmake +171 -287
  13. data/vendor/libgit2/cmake/FindGSSFramework.cmake +13 -13
  14. data/vendor/libgit2/cmake/{FindHTTP_Parser.cmake → FindHTTPParser.cmake} +17 -17
  15. data/vendor/libgit2/cmake/FindIconv.cmake +27 -27
  16. data/vendor/libgit2/cmake/FindLibSSH2.cmake +5 -5
  17. data/vendor/libgit2/cmake/FindPCRE.cmake +13 -13
  18. data/vendor/libgit2/cmake/FindPCRE2.cmake +12 -12
  19. data/vendor/libgit2/cmake/FindPkgLibraries.cmake +19 -19
  20. data/vendor/libgit2/cmake/FindSecurity.cmake +14 -14
  21. data/vendor/libgit2/cmake/FindStatNsec.cmake +12 -18
  22. data/vendor/libgit2/cmake/Findfutimens.cmake +8 -8
  23. data/vendor/libgit2/cmake/FindmbedTLS.cmake +63 -70
  24. data/vendor/libgit2/cmake/IdeSplitSources.cmake +18 -18
  25. data/vendor/libgit2/cmake/PkgBuildConfig.cmake +60 -60
  26. data/vendor/libgit2/cmake/SanitizeBool.cmake +20 -20
  27. data/vendor/libgit2/cmake/SelectGSSAPI.cmake +37 -37
  28. data/vendor/libgit2/cmake/SelectHTTPParser.cmake +19 -0
  29. data/vendor/libgit2/cmake/SelectHTTPSBackend.cmake +100 -100
  30. data/vendor/libgit2/cmake/SelectHashes.cmake +39 -49
  31. data/vendor/libgit2/cmake/SelectRegex.cmake +51 -0
  32. data/vendor/libgit2/cmake/SelectSSH.cmake +41 -0
  33. data/vendor/libgit2/cmake/SelectWinHTTP.cmake +17 -0
  34. data/vendor/libgit2/cmake/SelectZlib.cmake +34 -0
  35. data/vendor/libgit2/deps/chromium-zlib/CMakeLists.txt +6 -6
  36. data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +31 -31
  37. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +1 -1
  38. data/vendor/libgit2/deps/ntlmclient/ntlm.c +4 -4
  39. data/vendor/libgit2/deps/ntlmclient/ntlm.h +4 -4
  40. data/vendor/libgit2/deps/ntlmclient/ntlmclient.h +2 -2
  41. data/vendor/libgit2/deps/pcre/CMakeLists.txt +88 -88
  42. data/vendor/libgit2/deps/winhttp/CMakeLists.txt +14 -16
  43. data/vendor/libgit2/deps/zlib/adler32.c +0 -7
  44. data/vendor/libgit2/deps/zlib/crc32.c +288 -975
  45. data/vendor/libgit2/deps/zlib/crc32.h +436 -9441
  46. data/vendor/libgit2/deps/zlib/deflate.c +31 -83
  47. data/vendor/libgit2/deps/zlib/deflate.h +15 -12
  48. data/vendor/libgit2/deps/zlib/gzguts.h +2 -3
  49. data/vendor/libgit2/deps/zlib/infback.c +1 -2
  50. data/vendor/libgit2/deps/zlib/inffast.c +14 -14
  51. data/vendor/libgit2/deps/zlib/inflate.c +8 -39
  52. data/vendor/libgit2/deps/zlib/inflate.h +2 -3
  53. data/vendor/libgit2/deps/zlib/inftrees.c +3 -3
  54. data/vendor/libgit2/deps/zlib/trees.c +48 -27
  55. data/vendor/libgit2/deps/zlib/zlib.h +100 -126
  56. data/vendor/libgit2/deps/zlib/zutil.c +2 -2
  57. data/vendor/libgit2/deps/zlib/zutil.h +9 -12
  58. data/vendor/libgit2/include/git2/apply.h +16 -2
  59. data/vendor/libgit2/include/git2/attr.h +11 -2
  60. data/vendor/libgit2/include/git2/blame.h +4 -1
  61. data/vendor/libgit2/include/git2/blob.h +14 -1
  62. data/vendor/libgit2/include/git2/branch.h +2 -0
  63. data/vendor/libgit2/include/git2/buffer.h +18 -78
  64. data/vendor/libgit2/include/git2/cert.h +2 -2
  65. data/vendor/libgit2/include/git2/checkout.h +5 -2
  66. data/vendor/libgit2/include/git2/clone.h +3 -3
  67. data/vendor/libgit2/include/git2/commit.h +2 -0
  68. data/vendor/libgit2/include/git2/common.h +5 -12
  69. data/vendor/libgit2/include/git2/config.h +19 -3
  70. data/vendor/libgit2/include/git2/credential.h +2 -1
  71. data/vendor/libgit2/include/git2/credential_helpers.h +1 -0
  72. data/vendor/libgit2/include/git2/deprecated.h +1 -1
  73. data/vendor/libgit2/include/git2/describe.h +7 -2
  74. data/vendor/libgit2/include/git2/diff.h +17 -9
  75. data/vendor/libgit2/include/git2/email.h +1 -1
  76. data/vendor/libgit2/include/git2/errors.h +1 -2
  77. data/vendor/libgit2/include/git2/filter.h +7 -2
  78. data/vendor/libgit2/include/git2/graph.h +1 -0
  79. data/vendor/libgit2/include/git2/ignore.h +1 -1
  80. data/vendor/libgit2/include/git2/index.h +11 -5
  81. data/vendor/libgit2/include/git2/indexer.h +19 -0
  82. data/vendor/libgit2/include/git2/merge.h +23 -3
  83. data/vendor/libgit2/include/git2/message.h +2 -0
  84. data/vendor/libgit2/include/git2/object.h +23 -0
  85. data/vendor/libgit2/include/git2/odb.h +37 -7
  86. data/vendor/libgit2/include/git2/odb_backend.h +1 -1
  87. data/vendor/libgit2/include/git2/pack.h +24 -8
  88. data/vendor/libgit2/include/git2/patch.h +8 -0
  89. data/vendor/libgit2/include/git2/pathspec.h +1 -1
  90. data/vendor/libgit2/include/git2/proxy.h +1 -1
  91. data/vendor/libgit2/include/git2/rebase.h +9 -1
  92. data/vendor/libgit2/include/git2/refdb.h +3 -0
  93. data/vendor/libgit2/include/git2/reflog.h +1 -1
  94. data/vendor/libgit2/include/git2/refs.h +2 -2
  95. data/vendor/libgit2/include/git2/remote.h +184 -37
  96. data/vendor/libgit2/include/git2/repository.h +14 -9
  97. data/vendor/libgit2/include/git2/reset.h +2 -2
  98. data/vendor/libgit2/include/git2/revparse.h +1 -1
  99. data/vendor/libgit2/include/git2/revwalk.h +4 -1
  100. data/vendor/libgit2/include/git2/signature.h +1 -1
  101. data/vendor/libgit2/include/git2/stash.h +3 -3
  102. data/vendor/libgit2/include/git2/status.h +9 -3
  103. data/vendor/libgit2/include/git2/submodule.h +7 -2
  104. data/vendor/libgit2/include/git2/sys/commit_graph.h +1 -1
  105. data/vendor/libgit2/include/git2/sys/odb_backend.h +2 -5
  106. data/vendor/libgit2/include/git2/sys/remote.h +31 -0
  107. data/vendor/libgit2/include/git2/sys/stream.h +1 -1
  108. data/vendor/libgit2/include/git2/sys/transport.h +25 -34
  109. data/vendor/libgit2/include/git2/tag.h +1 -0
  110. data/vendor/libgit2/include/git2/tree.h +4 -3
  111. data/vendor/libgit2/include/git2/types.h +7 -7
  112. data/vendor/libgit2/include/git2/version.h +3 -3
  113. data/vendor/libgit2/include/git2/worktree.h +12 -2
  114. data/vendor/libgit2/src/CMakeLists.txt +189 -315
  115. data/vendor/libgit2/src/annotated_commit.h +1 -1
  116. data/vendor/libgit2/src/apply.c +18 -18
  117. data/vendor/libgit2/src/apply.h +2 -2
  118. data/vendor/libgit2/src/attr.c +18 -18
  119. data/vendor/libgit2/src/attr_file.c +17 -17
  120. data/vendor/libgit2/src/attr_file.h +4 -4
  121. data/vendor/libgit2/src/attrcache.c +17 -12
  122. data/vendor/libgit2/src/blame_git.c +1 -1
  123. data/vendor/libgit2/src/blob.c +33 -26
  124. data/vendor/libgit2/src/blob.h +1 -1
  125. data/vendor/libgit2/src/branch.c +150 -109
  126. data/vendor/libgit2/src/branch.h +15 -3
  127. data/vendor/libgit2/src/buf.c +126 -0
  128. data/vendor/libgit2/src/buf.h +50 -0
  129. data/vendor/libgit2/src/cc-compat.h +1 -1
  130. data/vendor/libgit2/src/checkout.c +74 -68
  131. data/vendor/libgit2/src/cherrypick.c +10 -10
  132. data/vendor/libgit2/src/clone.c +66 -66
  133. data/vendor/libgit2/src/commit.c +128 -58
  134. data/vendor/libgit2/src/commit.h +24 -1
  135. data/vendor/libgit2/src/commit_graph.c +68 -53
  136. data/vendor/libgit2/src/commit_graph.h +10 -3
  137. data/vendor/libgit2/src/commit_list.c +2 -3
  138. data/vendor/libgit2/src/common.h +10 -3
  139. data/vendor/libgit2/src/config.c +99 -77
  140. data/vendor/libgit2/src/config.h +15 -2
  141. data/vendor/libgit2/src/config_file.c +103 -91
  142. data/vendor/libgit2/src/config_mem.c +9 -9
  143. data/vendor/libgit2/src/config_parse.c +27 -23
  144. data/vendor/libgit2/src/crlf.c +24 -21
  145. data/vendor/libgit2/src/date.c +10 -17
  146. data/vendor/libgit2/src/date.h +33 -0
  147. data/vendor/libgit2/src/describe.c +27 -19
  148. data/vendor/libgit2/src/diff.c +25 -8
  149. data/vendor/libgit2/src/diff.h +2 -4
  150. data/vendor/libgit2/src/diff_driver.c +34 -36
  151. data/vendor/libgit2/src/diff_driver.h +3 -3
  152. data/vendor/libgit2/src/diff_file.c +29 -20
  153. data/vendor/libgit2/src/diff_generate.c +30 -6
  154. data/vendor/libgit2/src/diff_generate.h +5 -3
  155. data/vendor/libgit2/src/diff_print.c +102 -95
  156. data/vendor/libgit2/src/diff_stats.c +40 -29
  157. data/vendor/libgit2/src/{message.h → diff_stats.h} +7 -6
  158. data/vendor/libgit2/src/diff_tform.c +9 -8
  159. data/vendor/libgit2/src/diff_xdiff.c +3 -8
  160. data/vendor/libgit2/src/email.c +54 -38
  161. data/vendor/libgit2/src/email.h +1 -1
  162. data/vendor/libgit2/src/errors.c +18 -18
  163. data/vendor/libgit2/src/features.h.in +6 -1
  164. data/vendor/libgit2/src/fetch.c +69 -24
  165. data/vendor/libgit2/src/fetch.h +1 -1
  166. data/vendor/libgit2/src/fetchhead.c +19 -19
  167. data/vendor/libgit2/src/filebuf.c +28 -28
  168. data/vendor/libgit2/src/filebuf.h +1 -1
  169. data/vendor/libgit2/src/filter.c +96 -52
  170. data/vendor/libgit2/src/filter.h +26 -5
  171. data/vendor/libgit2/src/fs_path.c +1912 -0
  172. data/vendor/libgit2/src/fs_path.h +752 -0
  173. data/vendor/libgit2/src/futils.c +91 -85
  174. data/vendor/libgit2/src/futils.h +26 -14
  175. data/vendor/libgit2/src/hash/sha1/collisiondetect.c +2 -2
  176. data/vendor/libgit2/src/hash/sha1/common_crypto.c +2 -2
  177. data/vendor/libgit2/src/hash/sha1/generic.c +2 -2
  178. data/vendor/libgit2/src/hash/sha1/mbedtls.c +2 -2
  179. data/vendor/libgit2/src/hash/sha1/openssl.c +2 -2
  180. data/vendor/libgit2/src/hash/sha1/sha1dc/sha1.c +1 -1
  181. data/vendor/libgit2/src/hash/sha1/win32.c +6 -6
  182. data/vendor/libgit2/src/hash/sha1.h +3 -1
  183. data/vendor/libgit2/src/hash.c +67 -35
  184. data/vendor/libgit2/src/hash.h +12 -12
  185. data/vendor/libgit2/src/ident.c +18 -18
  186. data/vendor/libgit2/src/ignore.c +35 -34
  187. data/vendor/libgit2/src/ignore.h +2 -2
  188. data/vendor/libgit2/src/index.c +79 -80
  189. data/vendor/libgit2/src/index.h +6 -3
  190. data/vendor/libgit2/src/indexer.c +75 -57
  191. data/vendor/libgit2/src/iterator.c +64 -56
  192. data/vendor/libgit2/src/iterator.h +5 -5
  193. data/vendor/libgit2/src/khash.h +1 -1
  194. data/vendor/libgit2/src/libgit2.c +22 -19
  195. data/vendor/libgit2/src/mailmap.c +38 -36
  196. data/vendor/libgit2/src/merge.c +27 -27
  197. data/vendor/libgit2/src/merge.h +1 -14
  198. data/vendor/libgit2/src/merge_driver.c +2 -2
  199. data/vendor/libgit2/src/merge_file.c +13 -3
  200. data/vendor/libgit2/src/message.c +21 -10
  201. data/vendor/libgit2/src/midx.c +83 -66
  202. data/vendor/libgit2/src/midx.h +3 -3
  203. data/vendor/libgit2/src/mwindow.c +1 -1
  204. data/vendor/libgit2/src/net.c +278 -68
  205. data/vendor/libgit2/src/net.h +10 -3
  206. data/vendor/libgit2/src/netops.c +1 -1
  207. data/vendor/libgit2/src/netops.h +1 -1
  208. data/vendor/libgit2/src/notes.c +20 -29
  209. data/vendor/libgit2/src/object.c +49 -9
  210. data/vendor/libgit2/src/object.h +1 -1
  211. data/vendor/libgit2/src/odb.c +35 -32
  212. data/vendor/libgit2/src/odb.h +1 -1
  213. data/vendor/libgit2/src/odb_loose.c +68 -68
  214. data/vendor/libgit2/src/odb_mempack.c +18 -5
  215. data/vendor/libgit2/src/odb_pack.c +43 -43
  216. data/vendor/libgit2/src/oid.c +11 -4
  217. data/vendor/libgit2/src/oid.h +15 -0
  218. data/vendor/libgit2/src/pack-objects.c +41 -26
  219. data/vendor/libgit2/src/pack-objects.h +11 -6
  220. data/vendor/libgit2/src/pack.c +10 -10
  221. data/vendor/libgit2/src/patch.c +3 -3
  222. data/vendor/libgit2/src/patch.h +1 -0
  223. data/vendor/libgit2/src/patch_generate.c +27 -11
  224. data/vendor/libgit2/src/patch_generate.h +5 -5
  225. data/vendor/libgit2/src/patch_parse.c +24 -24
  226. data/vendor/libgit2/src/path.c +76 -1951
  227. data/vendor/libgit2/src/path.h +34 -741
  228. data/vendor/libgit2/src/pathspec.c +6 -6
  229. data/vendor/libgit2/src/pathspec.h +2 -2
  230. data/vendor/libgit2/src/posix.c +3 -3
  231. data/vendor/libgit2/src/posix.h +1 -0
  232. data/vendor/libgit2/src/pqueue.h +1 -1
  233. data/vendor/libgit2/src/proxy.c +4 -1
  234. data/vendor/libgit2/src/proxy.h +1 -1
  235. data/vendor/libgit2/src/push.c +30 -35
  236. data/vendor/libgit2/src/push.h +4 -16
  237. data/vendor/libgit2/src/rand.c +226 -0
  238. data/vendor/libgit2/src/rand.h +37 -0
  239. data/vendor/libgit2/src/reader.c +8 -8
  240. data/vendor/libgit2/src/reader.h +2 -2
  241. data/vendor/libgit2/src/rebase.c +89 -88
  242. data/vendor/libgit2/src/refdb_fs.c +447 -173
  243. data/vendor/libgit2/src/refs.c +32 -32
  244. data/vendor/libgit2/src/refs.h +2 -2
  245. data/vendor/libgit2/src/refspec.c +32 -37
  246. data/vendor/libgit2/src/refspec.h +5 -2
  247. data/vendor/libgit2/src/regexp.c +1 -1
  248. data/vendor/libgit2/src/remote.c +713 -419
  249. data/vendor/libgit2/src/remote.h +15 -10
  250. data/vendor/libgit2/src/repository.c +350 -467
  251. data/vendor/libgit2/src/repository.h +11 -10
  252. data/vendor/libgit2/src/reset.c +8 -5
  253. data/vendor/libgit2/src/revert.c +10 -10
  254. data/vendor/libgit2/src/revparse.c +48 -35
  255. data/vendor/libgit2/src/revwalk.c +7 -7
  256. data/vendor/libgit2/src/signature.c +12 -6
  257. data/vendor/libgit2/src/signature.h +1 -1
  258. data/vendor/libgit2/src/sortedcache.c +1 -1
  259. data/vendor/libgit2/src/sortedcache.h +1 -1
  260. data/vendor/libgit2/src/stash.c +36 -37
  261. data/vendor/libgit2/src/status.c +4 -1
  262. data/vendor/libgit2/src/{buffer.c → str.c} +157 -151
  263. data/vendor/libgit2/src/str.h +357 -0
  264. data/vendor/libgit2/src/streams/mbedtls.c +8 -6
  265. data/vendor/libgit2/src/streams/openssl_dynamic.h +3 -3
  266. data/vendor/libgit2/src/submodule.c +171 -159
  267. data/vendor/libgit2/src/submodule.h +1 -1
  268. data/vendor/libgit2/src/sysdir.c +68 -52
  269. data/vendor/libgit2/src/sysdir.h +15 -10
  270. data/vendor/libgit2/src/tag.c +29 -27
  271. data/vendor/libgit2/src/thread.h +3 -3
  272. data/vendor/libgit2/src/threadstate.c +3 -3
  273. data/vendor/libgit2/src/threadstate.h +1 -1
  274. data/vendor/libgit2/src/trace.c +1 -14
  275. data/vendor/libgit2/src/trace.h +5 -22
  276. data/vendor/libgit2/src/trailer.c +1 -1
  277. data/vendor/libgit2/src/transaction.c +1 -1
  278. data/vendor/libgit2/src/transport.c +10 -10
  279. data/vendor/libgit2/src/transports/auth.c +7 -9
  280. data/vendor/libgit2/src/transports/auth.h +2 -3
  281. data/vendor/libgit2/src/transports/auth_negotiate.c +12 -13
  282. data/vendor/libgit2/src/transports/auth_ntlm.c +10 -10
  283. data/vendor/libgit2/src/transports/auth_ntlm.h +0 -1
  284. data/vendor/libgit2/src/transports/git.c +9 -11
  285. data/vendor/libgit2/src/transports/http.c +37 -17
  286. data/vendor/libgit2/src/transports/http.h +2 -3
  287. data/vendor/libgit2/src/transports/httpclient.c +65 -65
  288. data/vendor/libgit2/src/transports/local.c +124 -116
  289. data/vendor/libgit2/src/transports/smart.c +51 -139
  290. data/vendor/libgit2/src/transports/smart.h +25 -31
  291. data/vendor/libgit2/src/transports/smart_pkt.c +33 -33
  292. data/vendor/libgit2/src/transports/smart_protocol.c +57 -39
  293. data/vendor/libgit2/src/transports/ssh.c +47 -112
  294. data/vendor/libgit2/src/transports/winhttp.c +50 -56
  295. data/vendor/libgit2/src/tree-cache.c +5 -5
  296. data/vendor/libgit2/src/tree-cache.h +2 -2
  297. data/vendor/libgit2/src/tree.c +59 -48
  298. data/vendor/libgit2/src/tree.h +1 -1
  299. data/vendor/libgit2/src/unix/map.c +0 -2
  300. data/vendor/libgit2/src/unix/posix.h +1 -4
  301. data/vendor/libgit2/src/unix/realpath.c +0 -2
  302. data/vendor/libgit2/src/util.c +14 -14
  303. data/vendor/libgit2/src/util.h +2 -28
  304. data/vendor/libgit2/src/vector.h +1 -1
  305. data/vendor/libgit2/src/win32/findfile.c +172 -116
  306. data/vendor/libgit2/src/win32/findfile.h +7 -4
  307. data/vendor/libgit2/src/win32/path_w32.c +140 -9
  308. data/vendor/libgit2/src/win32/path_w32.h +2 -0
  309. data/vendor/libgit2/src/win32/posix.h +0 -1
  310. data/vendor/libgit2/src/win32/posix_w32.c +11 -27
  311. data/vendor/libgit2/src/win32/w32_buffer.c +2 -3
  312. data/vendor/libgit2/src/win32/w32_buffer.h +2 -3
  313. data/vendor/libgit2/src/win32/w32_leakcheck.c +1 -1
  314. data/vendor/libgit2/src/worktree.c +116 -94
  315. data/vendor/libgit2/src/worktree.h +1 -1
  316. data/vendor/libgit2/src/xdiff/git-xdiff.h +53 -0
  317. data/vendor/libgit2/src/xdiff/xdiff.h +15 -15
  318. data/vendor/libgit2/src/xdiff/xdiffi.c +134 -108
  319. data/vendor/libgit2/src/xdiff/xemit.c +23 -7
  320. data/vendor/libgit2/src/xdiff/xhistogram.c +87 -78
  321. data/vendor/libgit2/src/xdiff/xinclude.h +1 -12
  322. data/vendor/libgit2/src/xdiff/xmerge.c +104 -117
  323. data/vendor/libgit2/src/xdiff/xpatience.c +6 -17
  324. data/vendor/libgit2/src/xdiff/xprepare.c +15 -20
  325. data/vendor/libgit2/src/xdiff/xutils.c +18 -7
  326. data/vendor/libgit2/src/zstream.c +5 -5
  327. data/vendor/libgit2/src/zstream.h +4 -4
  328. metadata +25 -10
  329. data/vendor/libgit2/src/buffer.h +0 -374
@@ -7,6 +7,16 @@
7
7
 
8
8
  #include "common.h"
9
9
 
10
+ #include "pack-objects.h"
11
+ #include "refs.h"
12
+ #include "posix.h"
13
+ #include "fs_path.h"
14
+ #include "repository.h"
15
+ #include "odb.h"
16
+ #include "push.h"
17
+ #include "remote.h"
18
+ #include "proxy.h"
19
+
10
20
  #include "git2/types.h"
11
21
  #include "git2/net.h"
12
22
  #include "git2/repository.h"
@@ -18,29 +28,16 @@
18
28
  #include "git2/pack.h"
19
29
  #include "git2/commit.h"
20
30
  #include "git2/revparse.h"
21
-
22
- #include "pack-objects.h"
23
- #include "refs.h"
24
- #include "posix.h"
25
- #include "path.h"
26
- #include "buffer.h"
27
- #include "repository.h"
28
- #include "odb.h"
29
- #include "push.h"
30
- #include "remote.h"
31
- #include "proxy.h"
31
+ #include "git2/sys/remote.h"
32
32
 
33
33
  typedef struct {
34
34
  git_transport parent;
35
35
  git_remote *owner;
36
36
  char *url;
37
37
  int direction;
38
- int flags;
39
38
  git_atomic32 cancelled;
40
39
  git_repository *repo;
41
- git_transport_message_cb progress_cb;
42
- git_transport_message_cb error_cb;
43
- void *message_cb_payload;
40
+ git_remote_connect_options connect_opts;
44
41
  git_vector refs;
45
42
  unsigned connected : 1,
46
43
  have_refs : 1;
@@ -71,7 +68,7 @@ static int add_ref(transport_local *t, const char *name)
71
68
  git_remote_head *head;
72
69
  git_oid obj_id;
73
70
  git_object *obj = NULL, *target = NULL;
74
- git_buf buf = GIT_BUF_INIT;
71
+ git_str buf = GIT_STR_INIT;
75
72
  int error;
76
73
 
77
74
  if ((error = git_reference_lookup(&ref, t->repo, name)) < 0)
@@ -132,11 +129,11 @@ static int add_ref(transport_local *t, const char *name)
132
129
  head = git__calloc(1, sizeof(git_remote_head));
133
130
  GIT_ERROR_CHECK_ALLOC(head);
134
131
 
135
- if (git_buf_join(&buf, 0, name, peeled) < 0) {
132
+ if (git_str_join(&buf, 0, name, peeled) < 0) {
136
133
  free_head(head);
137
134
  return -1;
138
135
  }
139
- head->name = git_buf_detach(&buf);
136
+ head->name = git_str_detach(&buf);
140
137
 
141
138
  if (!(error = git_tag_peel(&target, (git_tag *)obj))) {
142
139
  git_oid_cpy(&head->oid, git_object_id(target));
@@ -201,41 +198,37 @@ on_error:
201
198
  static int local_connect(
202
199
  git_transport *transport,
203
200
  const char *url,
204
- git_credential_acquire_cb cred_acquire_cb,
205
- void *cred_acquire_payload,
206
- const git_proxy_options *proxy,
207
- int direction, int flags)
201
+ int direction,
202
+ const git_remote_connect_options *connect_opts)
208
203
  {
209
204
  git_repository *repo;
210
205
  int error;
211
- transport_local *t = (transport_local *) transport;
206
+ transport_local *t = (transport_local *)transport;
212
207
  const char *path;
213
- git_buf buf = GIT_BUF_INIT;
214
-
215
- GIT_UNUSED(cred_acquire_cb);
216
- GIT_UNUSED(cred_acquire_payload);
217
- GIT_UNUSED(proxy);
208
+ git_str buf = GIT_STR_INIT;
218
209
 
219
210
  if (t->connected)
220
211
  return 0;
221
212
 
213
+ if (git_remote_connect_options_normalize(&t->connect_opts, t->owner->repo, connect_opts) < 0)
214
+ return -1;
215
+
222
216
  free_heads(&t->refs);
223
217
 
224
218
  t->url = git__strdup(url);
225
219
  GIT_ERROR_CHECK_ALLOC(t->url);
226
220
  t->direction = direction;
227
- t->flags = flags;
228
221
 
229
222
  /* 'url' may be a url or path; convert to a path */
230
- if ((error = git_path_from_url_or_path(&buf, url)) < 0) {
231
- git_buf_dispose(&buf);
223
+ if ((error = git_fs_path_from_url_or_path(&buf, url)) < 0) {
224
+ git_str_dispose(&buf);
232
225
  return error;
233
226
  }
234
- path = git_buf_cstr(&buf);
227
+ path = git_str_cstr(&buf);
235
228
 
236
229
  error = git_repository_open(&repo, path);
237
230
 
238
- git_buf_dispose(&buf);
231
+ git_str_dispose(&buf);
239
232
 
240
233
  if (error < 0)
241
234
  return -1;
@@ -250,6 +243,29 @@ static int local_connect(
250
243
  return 0;
251
244
  }
252
245
 
246
+ static int local_set_connect_opts(
247
+ git_transport *transport,
248
+ const git_remote_connect_options *connect_opts)
249
+ {
250
+ transport_local *t = (transport_local *)transport;
251
+
252
+ if (!t->connected) {
253
+ git_error_set(GIT_ERROR_NET, "cannot reconfigure a transport that is not connected");
254
+ return -1;
255
+ }
256
+
257
+ return git_remote_connect_options_normalize(&t->connect_opts, t->owner->repo, connect_opts);
258
+ }
259
+
260
+ static int local_capabilities(unsigned int *capabilities, git_transport *transport)
261
+ {
262
+ GIT_UNUSED(transport);
263
+
264
+ *capabilities = GIT_REMOTE_CAPABILITY_TIP_OID |
265
+ GIT_REMOTE_CAPABILITY_REACHABLE_OID;
266
+ return 0;
267
+ }
268
+
253
269
  static int local_ls(const git_remote_head ***out, size_t *size, git_transport *transport)
254
270
  {
255
271
  transport_local *t = (transport_local *)transport;
@@ -338,30 +354,28 @@ static int transfer_to_push_transfer(const git_indexer_progress *stats, void *pa
338
354
 
339
355
  static int local_push(
340
356
  git_transport *transport,
341
- git_push *push,
342
- const git_remote_callbacks *cbs)
357
+ git_push *push)
343
358
  {
344
359
  transport_local *t = (transport_local *)transport;
360
+ git_remote_callbacks *cbs = &t->connect_opts.callbacks;
345
361
  git_repository *remote_repo = NULL;
346
362
  push_spec *spec;
347
363
  char *url = NULL;
348
364
  const char *path;
349
- git_buf buf = GIT_BUF_INIT, odb_path = GIT_BUF_INIT;
365
+ git_str buf = GIT_STR_INIT, odb_path = GIT_STR_INIT;
350
366
  int error;
351
367
  size_t j;
352
368
 
353
- GIT_UNUSED(cbs);
354
-
355
369
  /* 'push->remote->url' may be a url or path; convert to a path */
356
- if ((error = git_path_from_url_or_path(&buf, push->remote->url)) < 0) {
357
- git_buf_dispose(&buf);
370
+ if ((error = git_fs_path_from_url_or_path(&buf, push->remote->url)) < 0) {
371
+ git_str_dispose(&buf);
358
372
  return error;
359
373
  }
360
- path = git_buf_cstr(&buf);
374
+ path = git_str_cstr(&buf);
361
375
 
362
376
  error = git_repository_open(&remote_repo, path);
363
377
 
364
- git_buf_dispose(&buf);
378
+ git_str_dispose(&buf);
365
379
 
366
380
  if (error < 0)
367
381
  return error;
@@ -378,12 +392,12 @@ static int local_push(
378
392
  goto on_error;
379
393
  }
380
394
 
381
- if ((error = git_repository_item_path(&odb_path, remote_repo, GIT_REPOSITORY_ITEM_OBJECTS)) < 0
382
- || (error = git_buf_joinpath(&odb_path, odb_path.ptr, "pack")) < 0)
395
+ if ((error = git_repository__item_path(&odb_path, remote_repo, GIT_REPOSITORY_ITEM_OBJECTS)) < 0
396
+ || (error = git_str_joinpath(&odb_path, odb_path.ptr, "pack")) < 0)
383
397
  goto on_error;
384
398
 
385
399
  error = git_packbuilder_write(push->pb, odb_path.ptr, 0, transfer_to_push_transfer, (void *) cbs);
386
- git_buf_dispose(&odb_path);
400
+ git_str_dispose(&odb_path);
387
401
 
388
402
  if (error < 0)
389
403
  goto on_error;
@@ -441,12 +455,11 @@ static int local_push(
441
455
  }
442
456
 
443
457
  if (push->specs.length) {
444
- int flags = t->flags;
445
458
  url = git__strdup(t->url);
446
459
 
447
460
  if (!url || t->parent.close(&t->parent) < 0 ||
448
461
  t->parent.connect(&t->parent, url,
449
- NULL, NULL, NULL, GIT_DIRECTION_PUSH, flags))
462
+ GIT_DIRECTION_PUSH, NULL))
450
463
  goto on_error;
451
464
  }
452
465
 
@@ -479,31 +492,41 @@ static const char *compressing_objects_fmt = "Compressing objects: %.0f%% (%d/%d
479
492
 
480
493
  static int local_counting(int stage, unsigned int current, unsigned int total, void *payload)
481
494
  {
482
- git_buf progress_info = GIT_BUF_INIT;
495
+ git_str progress_info = GIT_STR_INIT;
483
496
  transport_local *t = payload;
484
497
  int error;
485
498
 
486
- if (!t->progress_cb)
499
+ if (!t->connect_opts.callbacks.sideband_progress)
487
500
  return 0;
488
501
 
489
502
  if (stage == GIT_PACKBUILDER_ADDING_OBJECTS) {
490
- git_buf_printf(&progress_info, counting_objects_fmt, current);
503
+ git_str_printf(&progress_info, counting_objects_fmt, current);
491
504
  } else if (stage == GIT_PACKBUILDER_DELTAFICATION) {
492
505
  float perc = (((float) current) / total) * 100;
493
- git_buf_printf(&progress_info, compressing_objects_fmt, perc, current, total);
506
+ git_str_printf(&progress_info, compressing_objects_fmt, perc, current, total);
494
507
  if (current == total)
495
- git_buf_printf(&progress_info, ", done\n");
508
+ git_str_printf(&progress_info, ", done\n");
496
509
  else
497
- git_buf_putc(&progress_info, '\r');
510
+ git_str_putc(&progress_info, '\r');
498
511
 
499
512
  }
500
513
 
501
- if (git_buf_oom(&progress_info))
514
+ if (git_str_oom(&progress_info))
515
+ return -1;
516
+
517
+ if (progress_info.size > INT_MAX) {
518
+ git_error_set(GIT_ERROR_NET, "remote sent overly large progress data");
519
+ git_str_dispose(&progress_info);
502
520
  return -1;
521
+ }
522
+
503
523
 
504
- error = t->progress_cb(git_buf_cstr(&progress_info), (int)git_buf_len(&progress_info), t->message_cb_payload);
505
- git_buf_dispose(&progress_info);
524
+ error = t->connect_opts.callbacks.sideband_progress(
525
+ progress_info.ptr,
526
+ (int)progress_info.size,
527
+ t->connect_opts.callbacks.payload);
506
528
 
529
+ git_str_dispose(&progress_info);
507
530
  return error;
508
531
  }
509
532
 
@@ -533,9 +556,7 @@ static int foreach_reference_cb(git_reference *reference, void *payload)
533
556
  static int local_download_pack(
534
557
  git_transport *transport,
535
558
  git_repository *repo,
536
- git_indexer_progress *stats,
537
- git_indexer_progress_cb progress_cb,
538
- void *progress_payload)
559
+ git_indexer_progress *stats)
539
560
  {
540
561
  transport_local *t = (transport_local*)transport;
541
562
  git_revwalk *walk = NULL;
@@ -545,10 +566,12 @@ static int local_download_pack(
545
566
  git_packbuilder *pack = NULL;
546
567
  git_odb_writepack *writepack = NULL;
547
568
  git_odb *odb = NULL;
548
- git_buf progress_info = GIT_BUF_INIT;
569
+ git_str progress_info = GIT_STR_INIT;
570
+ foreach_data data = {0};
549
571
 
550
572
  if ((error = git_revwalk_new(&walk, t->repo)) < 0)
551
573
  goto cleanup;
574
+
552
575
  git_revwalk_sorting(walk, GIT_SORT_TIME);
553
576
 
554
577
  if ((error = git_packbuilder_new(&pack, t->repo)) < 0)
@@ -584,73 +607,67 @@ static int local_download_pack(
584
607
  if ((error = git_packbuilder_insert_walk(pack, walk)))
585
608
  goto cleanup;
586
609
 
587
- if ((error = git_buf_printf(&progress_info, counting_objects_fmt, git_packbuilder_object_count(pack))) < 0)
588
- goto cleanup;
589
-
590
- if (t->progress_cb &&
591
- (error = t->progress_cb(git_buf_cstr(&progress_info), (int)git_buf_len(&progress_info), t->message_cb_payload)) < 0)
592
- goto cleanup;
610
+ if (t->connect_opts.callbacks.sideband_progress) {
611
+ if ((error = git_str_printf(
612
+ &progress_info,
613
+ counting_objects_fmt,
614
+ git_packbuilder_object_count(pack))) < 0 ||
615
+ (error = t->connect_opts.callbacks.sideband_progress(
616
+ progress_info.ptr,
617
+ (int)progress_info.size,
618
+ t->connect_opts.callbacks.payload)) < 0)
619
+ goto cleanup;
620
+ }
593
621
 
594
622
  /* Walk the objects, building a packfile */
595
623
  if ((error = git_repository_odb__weakptr(&odb, repo)) < 0)
596
624
  goto cleanup;
597
625
 
598
626
  /* One last one with the newline */
599
- git_buf_clear(&progress_info);
600
- git_buf_printf(&progress_info, counting_objects_fmt, git_packbuilder_object_count(pack));
601
- if ((error = git_buf_putc(&progress_info, '\n')) < 0)
602
- goto cleanup;
603
-
604
- if (t->progress_cb &&
605
- (error = t->progress_cb(git_buf_cstr(&progress_info), (int)git_buf_len(&progress_info), t->message_cb_payload)) < 0)
606
- goto cleanup;
627
+ if (t->connect_opts.callbacks.sideband_progress) {
628
+ git_str_clear(&progress_info);
629
+
630
+ if ((error = git_str_printf(
631
+ &progress_info,
632
+ counting_objects_fmt,
633
+ git_packbuilder_object_count(pack))) < 0 ||
634
+ (error = git_str_putc(&progress_info, '\n')) < 0 ||
635
+ (error = t->connect_opts.callbacks.sideband_progress(
636
+ progress_info.ptr,
637
+ (int)progress_info.size,
638
+ t->connect_opts.callbacks.payload)) < 0)
639
+ goto cleanup;
640
+ }
607
641
 
608
- if ((error = git_odb_write_pack(&writepack, odb, progress_cb, progress_payload)) != 0)
642
+ if ((error = git_odb_write_pack(
643
+ &writepack,
644
+ odb,
645
+ t->connect_opts.callbacks.transfer_progress,
646
+ t->connect_opts.callbacks.payload)) < 0)
609
647
  goto cleanup;
610
648
 
611
649
  /* Write the data to the ODB */
612
- {
613
- foreach_data data = {0};
614
- data.stats = stats;
615
- data.progress_cb = progress_cb;
616
- data.progress_payload = progress_payload;
617
- data.writepack = writepack;
650
+ data.stats = stats;
651
+ data.progress_cb = t->connect_opts.callbacks.transfer_progress;
652
+ data.progress_payload = t->connect_opts.callbacks.payload;
653
+ data.writepack = writepack;
618
654
 
619
- /* autodetect */
620
- git_packbuilder_set_threads(pack, 0);
655
+ /* autodetect */
656
+ git_packbuilder_set_threads(pack, 0);
621
657
 
622
- if ((error = git_packbuilder_foreach(pack, foreach_cb, &data)) != 0)
623
- goto cleanup;
624
- }
658
+ if ((error = git_packbuilder_foreach(pack, foreach_cb, &data)) != 0)
659
+ goto cleanup;
625
660
 
626
661
  error = writepack->commit(writepack, stats);
627
662
 
628
663
  cleanup:
629
664
  if (writepack) writepack->free(writepack);
630
- git_buf_dispose(&progress_info);
665
+ git_str_dispose(&progress_info);
631
666
  git_packbuilder_free(pack);
632
667
  git_revwalk_free(walk);
633
668
  return error;
634
669
  }
635
670
 
636
- static int local_set_callbacks(
637
- git_transport *transport,
638
- git_transport_message_cb progress_cb,
639
- git_transport_message_cb error_cb,
640
- git_transport_certificate_check_cb certificate_check_cb,
641
- void *message_cb_payload)
642
- {
643
- transport_local *t = (transport_local *)transport;
644
-
645
- GIT_UNUSED(certificate_check_cb);
646
-
647
- t->progress_cb = progress_cb;
648
- t->error_cb = error_cb;
649
- t->message_cb_payload = message_cb_payload;
650
-
651
- return 0;
652
- }
653
-
654
671
  static int local_is_connected(git_transport *transport)
655
672
  {
656
673
  transport_local *t = (transport_local *)transport;
@@ -658,15 +675,6 @@ static int local_is_connected(git_transport *transport)
658
675
  return t->connected;
659
676
  }
660
677
 
661
- static int local_read_flags(git_transport *transport, int *flags)
662
- {
663
- transport_local *t = (transport_local *)transport;
664
-
665
- *flags = t->flags;
666
-
667
- return 0;
668
- }
669
-
670
678
  static void local_cancel(git_transport *transport)
671
679
  {
672
680
  transport_local *t = (transport_local *)transport;
@@ -721,8 +729,9 @@ int git_transport_local(git_transport **out, git_remote *owner, void *param)
721
729
  GIT_ERROR_CHECK_ALLOC(t);
722
730
 
723
731
  t->parent.version = GIT_TRANSPORT_VERSION;
724
- t->parent.set_callbacks = local_set_callbacks;
725
732
  t->parent.connect = local_connect;
733
+ t->parent.set_connect_opts = local_set_connect_opts;
734
+ t->parent.capabilities = local_capabilities;
726
735
  t->parent.negotiate_fetch = local_negotiate_fetch;
727
736
  t->parent.download_pack = local_download_pack;
728
737
  t->parent.push = local_push;
@@ -730,7 +739,6 @@ int git_transport_local(git_transport **out, git_remote *owner, void *param)
730
739
  t->parent.free = local_free;
731
740
  t->parent.ls = local_ls;
732
741
  t->parent.is_connected = local_is_connected;
733
- t->parent.read_flags = local_read_flags;
734
742
  t->parent.cancel = local_cancel;
735
743
 
736
744
  if ((error = git_vector_init(&t->refs, 0, NULL)) < 0) {