rugged 1.7.2 → 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 (361) hide show
  1. checksums.yaml +4 -4
  2. data/lib/rugged/version.rb +1 -1
  3. data/vendor/libgit2/AUTHORS +1 -0
  4. data/vendor/libgit2/CMakeLists.txt +23 -10
  5. data/vendor/libgit2/COPYING +195 -1
  6. data/vendor/libgit2/cmake/{FindIconv.cmake → FindIntlIconv.cmake} +6 -0
  7. data/vendor/libgit2/cmake/FindLLHTTP.cmake +39 -0
  8. data/vendor/libgit2/cmake/SelectGSSAPI.cmake +1 -1
  9. data/vendor/libgit2/cmake/SelectHTTPParser.cmake +23 -8
  10. data/vendor/libgit2/cmake/SelectHTTPSBackend.cmake +17 -8
  11. data/vendor/libgit2/cmake/SelectHashes.cmake +28 -11
  12. data/vendor/libgit2/cmake/SelectRegex.cmake +6 -1
  13. data/vendor/libgit2/cmake/SelectSSH.cmake +22 -17
  14. data/vendor/libgit2/cmake/SelectZlib.cmake +4 -0
  15. data/vendor/libgit2/deps/llhttp/CMakeLists.txt +8 -0
  16. data/vendor/libgit2/deps/llhttp/LICENSE-MIT +22 -0
  17. data/vendor/libgit2/deps/llhttp/api.c +510 -0
  18. data/vendor/libgit2/deps/llhttp/http.c +170 -0
  19. data/vendor/libgit2/deps/llhttp/llhttp.c +10168 -0
  20. data/vendor/libgit2/deps/llhttp/llhttp.h +897 -0
  21. data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +1 -1
  22. data/vendor/libgit2/deps/ntlmclient/crypt_builtin_md4.c +311 -0
  23. data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.c +2 -1
  24. data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.c +0 -20
  25. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +4 -4
  26. data/vendor/libgit2/deps/ntlmclient/ntlm.c +21 -21
  27. data/vendor/libgit2/deps/ntlmclient/unicode_builtin.c +5 -4
  28. data/vendor/libgit2/deps/ntlmclient/unicode_iconv.c +2 -1
  29. data/vendor/libgit2/deps/ntlmclient/utf8.h +1176 -721
  30. data/vendor/libgit2/deps/ntlmclient/util.h +11 -0
  31. data/vendor/libgit2/deps/pcre/CMakeLists.txt +1 -0
  32. data/vendor/libgit2/deps/xdiff/xmerge.c +2 -2
  33. data/vendor/libgit2/deps/zlib/CMakeLists.txt +6 -1
  34. data/vendor/libgit2/deps/zlib/LICENSE +22 -0
  35. data/vendor/libgit2/deps/zlib/adler32.c +5 -27
  36. data/vendor/libgit2/deps/zlib/crc32.c +94 -167
  37. data/vendor/libgit2/deps/zlib/deflate.c +358 -435
  38. data/vendor/libgit2/deps/zlib/deflate.h +41 -10
  39. data/vendor/libgit2/deps/zlib/gzguts.h +13 -18
  40. data/vendor/libgit2/deps/zlib/infback.c +17 -30
  41. data/vendor/libgit2/deps/zlib/inffast.c +1 -4
  42. data/vendor/libgit2/deps/zlib/inffast.h +1 -1
  43. data/vendor/libgit2/deps/zlib/inflate.c +36 -102
  44. data/vendor/libgit2/deps/zlib/inftrees.c +6 -11
  45. data/vendor/libgit2/deps/zlib/inftrees.h +6 -6
  46. data/vendor/libgit2/deps/zlib/trees.c +287 -352
  47. data/vendor/libgit2/deps/zlib/zconf.h +23 -14
  48. data/vendor/libgit2/deps/zlib/zlib.h +202 -202
  49. data/vendor/libgit2/deps/zlib/zutil.c +18 -44
  50. data/vendor/libgit2/deps/zlib/zutil.h +13 -33
  51. data/vendor/libgit2/include/git2/annotated_commit.h +12 -5
  52. data/vendor/libgit2/include/git2/apply.h +27 -6
  53. data/vendor/libgit2/include/git2/attr.h +17 -4
  54. data/vendor/libgit2/include/git2/blame.h +133 -28
  55. data/vendor/libgit2/include/git2/blob.h +71 -28
  56. data/vendor/libgit2/include/git2/branch.h +22 -15
  57. data/vendor/libgit2/include/git2/buffer.h +6 -4
  58. data/vendor/libgit2/include/git2/cert.h +2 -1
  59. data/vendor/libgit2/include/git2/checkout.h +83 -32
  60. data/vendor/libgit2/include/git2/cherrypick.h +10 -3
  61. data/vendor/libgit2/include/git2/clone.h +25 -9
  62. data/vendor/libgit2/include/git2/commit.h +132 -3
  63. data/vendor/libgit2/include/git2/common.h +120 -63
  64. data/vendor/libgit2/include/git2/config.h +93 -23
  65. data/vendor/libgit2/include/git2/credential.h +30 -2
  66. data/vendor/libgit2/include/git2/credential_helpers.h +1 -0
  67. data/vendor/libgit2/include/git2/deprecated.h +133 -3
  68. data/vendor/libgit2/include/git2/describe.h +13 -1
  69. data/vendor/libgit2/include/git2/diff.h +38 -8
  70. data/vendor/libgit2/include/git2/email.h +9 -29
  71. data/vendor/libgit2/include/git2/errors.h +46 -73
  72. data/vendor/libgit2/include/git2/filter.h +14 -7
  73. data/vendor/libgit2/include/git2/global.h +8 -1
  74. data/vendor/libgit2/include/git2/graph.h +3 -2
  75. data/vendor/libgit2/include/git2/ignore.h +10 -0
  76. data/vendor/libgit2/include/git2/index.h +99 -14
  77. data/vendor/libgit2/include/git2/indexer.h +21 -4
  78. data/vendor/libgit2/include/git2/mailmap.h +7 -1
  79. data/vendor/libgit2/include/git2/merge.h +46 -1
  80. data/vendor/libgit2/include/git2/message.h +2 -2
  81. data/vendor/libgit2/include/git2/net.h +3 -1
  82. data/vendor/libgit2/include/git2/notes.h +9 -6
  83. data/vendor/libgit2/include/git2/object.h +9 -8
  84. data/vendor/libgit2/include/git2/odb.h +91 -49
  85. data/vendor/libgit2/include/git2/odb_backend.h +80 -52
  86. data/vendor/libgit2/include/git2/oid.h +23 -24
  87. data/vendor/libgit2/include/git2/oidarray.h +7 -1
  88. data/vendor/libgit2/include/git2/pack.h +13 -1
  89. data/vendor/libgit2/include/git2/patch.h +2 -3
  90. data/vendor/libgit2/include/git2/pathspec.h +9 -0
  91. data/vendor/libgit2/include/git2/proxy.h +10 -0
  92. data/vendor/libgit2/include/git2/rebase.h +9 -6
  93. data/vendor/libgit2/include/git2/refdb.h +2 -2
  94. data/vendor/libgit2/include/git2/reflog.h +3 -2
  95. data/vendor/libgit2/include/git2/refs.h +9 -6
  96. data/vendor/libgit2/include/git2/refspec.h +14 -4
  97. data/vendor/libgit2/include/git2/remote.h +94 -18
  98. data/vendor/libgit2/include/git2/repository.h +57 -21
  99. data/vendor/libgit2/include/git2/reset.h +16 -3
  100. data/vendor/libgit2/include/git2/revert.h +9 -4
  101. data/vendor/libgit2/include/git2/revparse.h +3 -3
  102. data/vendor/libgit2/include/git2/revwalk.h +3 -2
  103. data/vendor/libgit2/include/git2/signature.h +46 -1
  104. data/vendor/libgit2/include/git2/stash.h +17 -3
  105. data/vendor/libgit2/include/git2/status.h +10 -6
  106. data/vendor/libgit2/include/git2/stdint.h +87 -85
  107. data/vendor/libgit2/include/git2/strarray.h +2 -3
  108. data/vendor/libgit2/include/git2/submodule.h +20 -9
  109. data/vendor/libgit2/include/git2/sys/alloc.h +12 -0
  110. data/vendor/libgit2/include/git2/sys/commit.h +77 -3
  111. data/vendor/libgit2/include/git2/sys/commit_graph.h +103 -62
  112. data/vendor/libgit2/include/git2/sys/config.h +80 -4
  113. data/vendor/libgit2/include/git2/sys/credential.h +4 -3
  114. data/vendor/libgit2/include/git2/sys/diff.h +21 -1
  115. data/vendor/libgit2/include/git2/sys/email.h +7 -0
  116. data/vendor/libgit2/include/git2/sys/errors.h +76 -0
  117. data/vendor/libgit2/include/git2/sys/filter.h +66 -3
  118. data/vendor/libgit2/include/git2/sys/hashsig.h +11 -0
  119. data/vendor/libgit2/include/git2/sys/index.h +3 -2
  120. data/vendor/libgit2/include/git2/sys/mempack.h +32 -2
  121. data/vendor/libgit2/include/git2/sys/merge.h +55 -7
  122. data/vendor/libgit2/include/git2/sys/midx.h +43 -4
  123. data/vendor/libgit2/include/git2/sys/odb_backend.h +7 -3
  124. data/vendor/libgit2/include/git2/sys/openssl.h +8 -1
  125. data/vendor/libgit2/include/git2/sys/path.h +12 -1
  126. data/vendor/libgit2/include/git2/sys/refdb_backend.h +40 -36
  127. data/vendor/libgit2/include/git2/sys/refs.h +3 -2
  128. data/vendor/libgit2/include/git2/sys/remote.h +8 -1
  129. data/vendor/libgit2/include/git2/sys/repository.h +63 -3
  130. data/vendor/libgit2/include/git2/sys/stream.h +11 -2
  131. data/vendor/libgit2/include/git2/sys/transport.h +24 -3
  132. data/vendor/libgit2/include/git2/tag.h +3 -1
  133. data/vendor/libgit2/include/git2/trace.h +9 -3
  134. data/vendor/libgit2/include/git2/transaction.h +3 -2
  135. data/vendor/libgit2/include/git2/transport.h +11 -3
  136. data/vendor/libgit2/include/git2/tree.h +16 -5
  137. data/vendor/libgit2/include/git2/types.h +19 -3
  138. data/vendor/libgit2/include/git2/version.h +44 -8
  139. data/vendor/libgit2/include/git2/worktree.h +16 -6
  140. data/vendor/libgit2/src/CMakeLists.txt +6 -4
  141. data/vendor/libgit2/src/cli/CMakeLists.txt +2 -2
  142. data/vendor/libgit2/src/cli/cmd.c +1 -1
  143. data/vendor/libgit2/src/cli/cmd.h +4 -0
  144. data/vendor/libgit2/src/cli/cmd_blame.c +287 -0
  145. data/vendor/libgit2/src/cli/cmd_cat_file.c +6 -8
  146. data/vendor/libgit2/src/cli/cmd_clone.c +5 -7
  147. data/vendor/libgit2/src/cli/cmd_config.c +241 -0
  148. data/vendor/libgit2/src/cli/cmd_hash_object.c +6 -8
  149. data/vendor/libgit2/src/cli/cmd_help.c +6 -7
  150. data/vendor/libgit2/src/cli/cmd_index_pack.c +114 -0
  151. data/vendor/libgit2/src/cli/cmd_init.c +102 -0
  152. data/vendor/libgit2/src/cli/common.c +168 -0
  153. data/vendor/libgit2/src/cli/common.h +63 -0
  154. data/vendor/libgit2/src/cli/error.h +1 -1
  155. data/vendor/libgit2/src/cli/main.c +52 -24
  156. data/vendor/libgit2/src/cli/opt.c +29 -3
  157. data/vendor/libgit2/src/cli/opt.h +21 -3
  158. data/vendor/libgit2/src/cli/opt_usage.c +102 -33
  159. data/vendor/libgit2/src/cli/opt_usage.h +6 -1
  160. data/vendor/libgit2/src/cli/progress.c +51 -2
  161. data/vendor/libgit2/src/cli/progress.h +12 -0
  162. data/vendor/libgit2/src/cli/unix/sighandler.c +2 -1
  163. data/vendor/libgit2/src/cli/win32/precompiled.h +1 -1
  164. data/vendor/libgit2/src/cli/win32/sighandler.c +1 -1
  165. data/vendor/libgit2/src/libgit2/CMakeLists.txt +26 -8
  166. data/vendor/libgit2/src/libgit2/apply.c +10 -13
  167. data/vendor/libgit2/src/libgit2/attr.c +30 -13
  168. data/vendor/libgit2/src/libgit2/attr_file.c +7 -2
  169. data/vendor/libgit2/src/libgit2/attr_file.h +2 -0
  170. data/vendor/libgit2/src/libgit2/attrcache.c +69 -33
  171. data/vendor/libgit2/src/libgit2/attrcache.h +5 -9
  172. data/vendor/libgit2/src/libgit2/blame.c +130 -44
  173. data/vendor/libgit2/src/libgit2/blame.h +1 -0
  174. data/vendor/libgit2/src/libgit2/cache.c +22 -17
  175. data/vendor/libgit2/src/libgit2/cache.h +7 -9
  176. data/vendor/libgit2/src/libgit2/checkout.c +34 -24
  177. data/vendor/libgit2/src/libgit2/checkout.h +0 -2
  178. data/vendor/libgit2/src/libgit2/cherrypick.c +1 -2
  179. data/vendor/libgit2/src/libgit2/clone.c +186 -166
  180. data/vendor/libgit2/src/libgit2/clone.h +4 -1
  181. data/vendor/libgit2/src/libgit2/commit.c +92 -0
  182. data/vendor/libgit2/src/libgit2/commit_graph.c +67 -56
  183. data/vendor/libgit2/src/libgit2/commit_graph.h +1 -2
  184. data/vendor/libgit2/src/libgit2/config.c +389 -298
  185. data/vendor/libgit2/src/libgit2/config.cmake.in +3 -0
  186. data/vendor/libgit2/src/libgit2/config.h +9 -4
  187. data/vendor/libgit2/src/libgit2/config_backend.h +8 -10
  188. data/vendor/libgit2/src/libgit2/config_cache.c +4 -5
  189. data/vendor/libgit2/src/libgit2/config_file.c +99 -88
  190. data/vendor/libgit2/src/libgit2/config_list.c +285 -0
  191. data/vendor/libgit2/src/libgit2/config_list.h +32 -0
  192. data/vendor/libgit2/src/libgit2/config_mem.c +194 -40
  193. data/vendor/libgit2/src/libgit2/config_parse.c +10 -9
  194. data/vendor/libgit2/src/libgit2/config_snapshot.c +24 -31
  195. data/vendor/libgit2/src/libgit2/describe.c +24 -24
  196. data/vendor/libgit2/src/libgit2/diff.c +1 -1
  197. data/vendor/libgit2/src/libgit2/diff_driver.c +12 -19
  198. data/vendor/libgit2/src/libgit2/diff_driver.h +2 -2
  199. data/vendor/libgit2/src/libgit2/diff_generate.c +3 -3
  200. data/vendor/libgit2/src/libgit2/diff_parse.c +2 -2
  201. data/vendor/libgit2/src/libgit2/diff_print.c +65 -9
  202. data/vendor/libgit2/src/libgit2/diff_tform.c +36 -8
  203. data/vendor/libgit2/src/libgit2/email.c +1 -0
  204. data/vendor/libgit2/src/libgit2/fetch.c +5 -3
  205. data/vendor/libgit2/src/libgit2/filter.c +5 -5
  206. data/vendor/libgit2/src/libgit2/git2.rc +3 -3
  207. data/vendor/libgit2/src/libgit2/grafts.c +18 -20
  208. data/vendor/libgit2/src/libgit2/grafts.h +0 -1
  209. data/vendor/libgit2/src/libgit2/graph.c +1 -1
  210. data/vendor/libgit2/src/libgit2/hashmap_oid.h +30 -0
  211. data/vendor/libgit2/src/libgit2/ignore.c +9 -5
  212. data/vendor/libgit2/src/libgit2/index.c +68 -90
  213. data/vendor/libgit2/src/libgit2/index.h +2 -2
  214. data/vendor/libgit2/src/libgit2/index_map.c +95 -0
  215. data/vendor/libgit2/src/libgit2/index_map.h +28 -0
  216. data/vendor/libgit2/src/libgit2/indexer.c +34 -38
  217. data/vendor/libgit2/src/libgit2/iterator.c +14 -8
  218. data/vendor/libgit2/src/libgit2/libgit2.c +153 -368
  219. data/vendor/libgit2/src/libgit2/mailmap.c +1 -1
  220. data/vendor/libgit2/src/libgit2/merge.c +42 -37
  221. data/vendor/libgit2/src/libgit2/merge_driver.c +2 -2
  222. data/vendor/libgit2/src/libgit2/midx.c +28 -15
  223. data/vendor/libgit2/src/libgit2/mwindow.c +38 -45
  224. data/vendor/libgit2/src/libgit2/mwindow.h +4 -0
  225. data/vendor/libgit2/src/libgit2/object.c +6 -5
  226. data/vendor/libgit2/src/libgit2/odb.c +5 -4
  227. data/vendor/libgit2/src/libgit2/odb_mempack.c +49 -17
  228. data/vendor/libgit2/src/libgit2/odb_pack.c +13 -5
  229. data/vendor/libgit2/src/libgit2/oid.c +32 -5
  230. data/vendor/libgit2/src/libgit2/oid.h +11 -0
  231. data/vendor/libgit2/src/libgit2/pack-objects.c +58 -31
  232. data/vendor/libgit2/src/libgit2/pack-objects.h +12 -4
  233. data/vendor/libgit2/src/libgit2/pack.c +30 -24
  234. data/vendor/libgit2/src/libgit2/pack.h +15 -10
  235. data/vendor/libgit2/src/libgit2/patch_parse.c +2 -2
  236. data/vendor/libgit2/src/libgit2/path.c +1 -1
  237. data/vendor/libgit2/src/libgit2/pathspec.c +1 -1
  238. data/vendor/libgit2/src/libgit2/push.c +79 -28
  239. data/vendor/libgit2/src/libgit2/push.h +1 -0
  240. data/vendor/libgit2/src/libgit2/refdb_fs.c +128 -61
  241. data/vendor/libgit2/src/libgit2/reflog.c +1 -2
  242. data/vendor/libgit2/src/libgit2/reflog.h +2 -0
  243. data/vendor/libgit2/src/libgit2/refs.c +26 -7
  244. data/vendor/libgit2/src/libgit2/refs.h +6 -1
  245. data/vendor/libgit2/src/libgit2/refspec.c +28 -1
  246. data/vendor/libgit2/src/libgit2/refspec.h +8 -0
  247. data/vendor/libgit2/src/libgit2/remote.c +121 -61
  248. data/vendor/libgit2/src/libgit2/repository.c +231 -51
  249. data/vendor/libgit2/src/libgit2/repository.h +10 -6
  250. data/vendor/libgit2/src/libgit2/revert.c +1 -2
  251. data/vendor/libgit2/src/libgit2/revparse.c +2 -2
  252. data/vendor/libgit2/src/libgit2/revwalk.c +13 -10
  253. data/vendor/libgit2/src/libgit2/revwalk.h +3 -3
  254. data/vendor/libgit2/src/libgit2/settings.c +468 -0
  255. data/vendor/libgit2/src/libgit2/settings.h +6 -2
  256. data/vendor/libgit2/src/libgit2/signature.c +132 -15
  257. data/vendor/libgit2/src/libgit2/signature.h +0 -1
  258. data/vendor/libgit2/src/libgit2/status.c +1 -1
  259. data/vendor/libgit2/src/libgit2/streams/mbedtls.c +54 -60
  260. data/vendor/libgit2/src/libgit2/streams/openssl.c +32 -7
  261. data/vendor/libgit2/src/libgit2/streams/openssl.h +2 -0
  262. data/vendor/libgit2/src/libgit2/streams/openssl_dynamic.c +4 -0
  263. data/vendor/libgit2/src/libgit2/streams/openssl_dynamic.h +3 -0
  264. data/vendor/libgit2/src/libgit2/streams/stransport.c +39 -7
  265. data/vendor/libgit2/src/libgit2/submodule.c +106 -63
  266. data/vendor/libgit2/src/libgit2/submodule.h +6 -7
  267. data/vendor/libgit2/src/libgit2/tag.c +1 -1
  268. data/vendor/libgit2/src/libgit2/trailer.c +6 -6
  269. data/vendor/libgit2/src/libgit2/transaction.c +26 -20
  270. data/vendor/libgit2/src/libgit2/transaction.h +4 -1
  271. data/vendor/libgit2/src/libgit2/transport.c +4 -1
  272. data/vendor/libgit2/src/libgit2/transports/credential.c +1 -1
  273. data/vendor/libgit2/src/libgit2/transports/http.c +1 -2
  274. data/vendor/libgit2/src/libgit2/transports/http.h +0 -10
  275. data/vendor/libgit2/src/libgit2/transports/httpclient.c +112 -72
  276. data/vendor/libgit2/src/libgit2/transports/httpparser.c +128 -0
  277. data/vendor/libgit2/src/libgit2/transports/httpparser.h +99 -0
  278. data/vendor/libgit2/src/libgit2/transports/local.c +8 -7
  279. data/vendor/libgit2/src/libgit2/transports/smart.c +20 -8
  280. data/vendor/libgit2/src/libgit2/transports/smart.h +4 -2
  281. data/vendor/libgit2/src/libgit2/transports/smart_pkt.c +2 -2
  282. data/vendor/libgit2/src/libgit2/transports/smart_protocol.c +55 -10
  283. data/vendor/libgit2/src/libgit2/transports/ssh.c +41 -1103
  284. data/vendor/libgit2/src/libgit2/transports/ssh_exec.c +347 -0
  285. data/vendor/libgit2/src/libgit2/transports/ssh_exec.h +26 -0
  286. data/vendor/libgit2/src/libgit2/transports/ssh_libssh2.c +1126 -0
  287. data/vendor/libgit2/src/libgit2/transports/ssh_libssh2.h +28 -0
  288. data/vendor/libgit2/src/libgit2/transports/winhttp.c +35 -7
  289. data/vendor/libgit2/src/libgit2/tree.c +34 -26
  290. data/vendor/libgit2/src/libgit2/tree.h +3 -2
  291. data/vendor/libgit2/src/libgit2/worktree.c +14 -17
  292. data/vendor/libgit2/src/util/CMakeLists.txt +4 -6
  293. data/vendor/libgit2/src/util/alloc.c +4 -1
  294. data/vendor/libgit2/src/util/allocators/debugalloc.c +73 -0
  295. data/vendor/libgit2/src/{cli/cli.h → util/allocators/debugalloc.h} +6 -9
  296. data/vendor/libgit2/src/util/allocators/stdalloc.c +0 -10
  297. data/vendor/libgit2/src/util/array.h +18 -17
  298. data/vendor/libgit2/src/util/cc-compat.h +2 -0
  299. data/vendor/libgit2/src/util/ctype_compat.h +70 -0
  300. data/vendor/libgit2/src/util/date.c +22 -14
  301. data/vendor/libgit2/src/util/date.h +12 -0
  302. data/vendor/libgit2/src/util/errors.c +401 -0
  303. data/vendor/libgit2/src/{libgit2 → util}/errors.h +21 -17
  304. data/vendor/libgit2/src/util/fs_path.c +15 -4
  305. data/vendor/libgit2/src/util/fs_path.h +23 -0
  306. data/vendor/libgit2/src/util/futils.c +6 -5
  307. data/vendor/libgit2/src/util/futils.h +13 -4
  308. data/vendor/libgit2/src/util/git2_features.h.in +12 -1
  309. data/vendor/libgit2/src/util/git2_util.h +6 -0
  310. data/vendor/libgit2/src/util/hash/openssl.c +152 -0
  311. data/vendor/libgit2/src/util/hash/openssl.h +17 -1
  312. data/vendor/libgit2/src/util/hash/sha.h +4 -1
  313. data/vendor/libgit2/src/util/hashmap.h +424 -0
  314. data/vendor/libgit2/src/util/hashmap_str.h +43 -0
  315. data/vendor/libgit2/src/util/integer.h +3 -1
  316. data/vendor/libgit2/src/util/net.c +13 -7
  317. data/vendor/libgit2/src/util/net.h +2 -0
  318. data/vendor/libgit2/src/util/pool.c +1 -1
  319. data/vendor/libgit2/src/util/pool.h +5 -0
  320. data/vendor/libgit2/src/util/pqueue.h +1 -1
  321. data/vendor/libgit2/src/util/process.h +222 -0
  322. data/vendor/libgit2/src/util/rand.c +1 -7
  323. data/vendor/libgit2/src/util/regexp.c +1 -1
  324. data/vendor/libgit2/src/util/sortedcache.c +14 -13
  325. data/vendor/libgit2/src/util/sortedcache.h +3 -3
  326. data/vendor/libgit2/src/util/str.c +2 -2
  327. data/vendor/libgit2/src/util/strlist.c +108 -0
  328. data/vendor/libgit2/src/util/strlist.h +36 -0
  329. data/vendor/libgit2/src/util/unix/posix.h +0 -2
  330. data/vendor/libgit2/src/util/unix/process.c +629 -0
  331. data/vendor/libgit2/src/util/unix/realpath.c +23 -5
  332. data/vendor/libgit2/src/util/util.c +2 -2
  333. data/vendor/libgit2/src/util/util.h +4 -38
  334. data/vendor/libgit2/src/util/vector.c +3 -3
  335. data/vendor/libgit2/src/util/vector.h +2 -2
  336. data/vendor/libgit2/src/util/win32/posix_w32.c +29 -6
  337. data/vendor/libgit2/src/util/win32/process.c +506 -0
  338. metadata +45 -28
  339. data/vendor/libgit2/deps/http-parser/CMakeLists.txt +0 -6
  340. data/vendor/libgit2/deps/http-parser/COPYING +0 -23
  341. data/vendor/libgit2/deps/http-parser/http_parser.c +0 -2182
  342. data/vendor/libgit2/deps/http-parser/http_parser.h +0 -305
  343. data/vendor/libgit2/deps/zlib/COPYING +0 -27
  344. data/vendor/libgit2/include/git2/sys/reflog.h +0 -21
  345. data/vendor/libgit2/src/libgit2/config_entries.c +0 -237
  346. data/vendor/libgit2/src/libgit2/config_entries.h +0 -24
  347. data/vendor/libgit2/src/libgit2/errors.c +0 -293
  348. data/vendor/libgit2/src/libgit2/idxmap.c +0 -157
  349. data/vendor/libgit2/src/libgit2/idxmap.h +0 -177
  350. data/vendor/libgit2/src/libgit2/libgit2.h +0 -15
  351. data/vendor/libgit2/src/libgit2/offmap.c +0 -101
  352. data/vendor/libgit2/src/libgit2/offmap.h +0 -133
  353. data/vendor/libgit2/src/libgit2/oidmap.c +0 -107
  354. data/vendor/libgit2/src/libgit2/oidmap.h +0 -128
  355. data/vendor/libgit2/src/libgit2/threadstate.c +0 -97
  356. data/vendor/libgit2/src/libgit2/threadstate.h +0 -22
  357. data/vendor/libgit2/src/libgit2/transports/ssh.h +0 -14
  358. data/vendor/libgit2/src/util/khash.h +0 -615
  359. data/vendor/libgit2/src/util/strmap.c +0 -100
  360. data/vendor/libgit2/src/util/strmap.h +0 -131
  361. /data/vendor/libgit2/cmake/{FindHTTPParser.cmake → FindHTTP_Parser.cmake} +0 -0
@@ -58,7 +58,7 @@ static void free_heads(git_vector *heads)
58
58
  git_vector_foreach(heads, i, head)
59
59
  free_head(head);
60
60
 
61
- git_vector_free(heads);
61
+ git_vector_dispose(heads);
62
62
  }
63
63
 
64
64
  static int add_ref(transport_local *t, const char *name)
@@ -108,10 +108,6 @@ static int add_ref(transport_local *t, const char *name)
108
108
  return error;
109
109
  }
110
110
 
111
- /* If it's not a tag, we don't need to try to peel it */
112
- if (git__prefixcmp(name, GIT_REFS_TAGS_DIR))
113
- return 0;
114
-
115
111
  if ((error = git_object_lookup(&obj, t->repo, &head->oid, GIT_OBJECT_ANY)) < 0)
116
112
  return error;
117
113
 
@@ -186,7 +182,7 @@ static int store_refs(transport_local *t)
186
182
  return 0;
187
183
 
188
184
  on_error:
189
- git_vector_free(&t->refs);
185
+ git_vector_dispose(&t->refs);
190
186
  git_strarray_dispose(&ref_names);
191
187
  return -1;
192
188
  }
@@ -303,6 +299,11 @@ static int local_negotiate_fetch(
303
299
 
304
300
  GIT_UNUSED(wants);
305
301
 
302
+ if (wants->depth) {
303
+ git_error_set(GIT_ERROR_NET, "shallow fetch is not supported by the local transport");
304
+ return GIT_ENOTSUPPORTED;
305
+ }
306
+
306
307
  /* Fill in the loids */
307
308
  git_vector_foreach(&t->refs, i, rhead) {
308
309
  git_object *obj;
@@ -453,7 +454,7 @@ static int local_push(
453
454
  default:
454
455
  last = git_error_last();
455
456
 
456
- if (last && last->message)
457
+ if (last->klass != GIT_ERROR_NONE)
457
458
  status->msg = git__strdup(last->message);
458
459
  else
459
460
  status->msg = git__strdup("Unspecified error encountered");
@@ -124,7 +124,7 @@ static void free_symrefs(git_vector *symrefs)
124
124
  git__free(spec);
125
125
  }
126
126
 
127
- git_vector_free(symrefs);
127
+ git_vector_dispose(symrefs);
128
128
  }
129
129
 
130
130
  static int git_smart__connect(
@@ -249,6 +249,9 @@ static int git_smart__capabilities(unsigned int *capabilities, git_transport *tr
249
249
 
250
250
  *capabilities = 0;
251
251
 
252
+ if (t->caps.push_options)
253
+ *capabilities |= GIT_REMOTE_CAPABILITY_PUSH_OPTIONS;
254
+
252
255
  if (t->caps.want_tip_sha1)
253
256
  *capabilities |= GIT_REMOTE_CAPABILITY_TIP_OID;
254
257
 
@@ -370,17 +373,27 @@ static int git_smart__close(git_transport *transport)
370
373
  git_vector *common = &t->common;
371
374
  unsigned int i;
372
375
  git_pkt *p;
376
+ git_smart_service_t service;
373
377
  int ret;
374
378
  git_smart_subtransport_stream *stream;
375
379
  const char flush[] = "0000";
376
380
 
381
+ if (t->direction == GIT_DIRECTION_FETCH) {
382
+ service = GIT_SERVICE_UPLOADPACK;
383
+ } else if (t->direction == GIT_DIRECTION_PUSH) {
384
+ service = GIT_SERVICE_RECEIVEPACK;
385
+ } else {
386
+ git_error_set(GIT_ERROR_NET, "invalid direction");
387
+ return -1;
388
+ }
389
+
377
390
  /*
378
391
  * If we're still connected at this point and not using RPC,
379
392
  * we should say goodbye by sending a flush, or git-daemon
380
393
  * will complain that we disconnected unexpectedly.
381
394
  */
382
395
  if (t->connected && !t->rpc &&
383
- !t->wrapped->action(&stream, t->wrapped, t->url, GIT_SERVICE_UPLOADPACK)) {
396
+ !t->wrapped->action(&stream, t->wrapped, t->url, service)) {
384
397
  t->current_stream->write(t->current_stream, flush, 4);
385
398
  }
386
399
 
@@ -389,7 +402,7 @@ static int git_smart__close(git_transport *transport)
389
402
  git_vector_foreach(common, i, p)
390
403
  git_pkt_free(p);
391
404
 
392
- git_vector_free(common);
405
+ git_vector_dispose(common);
393
406
 
394
407
  if (t->url) {
395
408
  git__free(t->url);
@@ -414,11 +427,11 @@ static void git_smart__free(git_transport *transport)
414
427
  /* Free the subtransport */
415
428
  t->wrapped->free(t->wrapped);
416
429
 
417
- git_vector_free(&t->heads);
430
+ git_vector_dispose(&t->heads);
418
431
  git_vector_foreach(refs, i, p)
419
432
  git_pkt_free(p);
420
433
 
421
- git_vector_free(refs);
434
+ git_vector_dispose(refs);
422
435
 
423
436
  git_remote_connect_options_dispose(&t->connect_opts);
424
437
 
@@ -511,9 +524,8 @@ int git_transport_smart(git_transport **out, git_remote *owner, void *param)
511
524
  if (git_vector_init(&t->refs, 16, ref_name_cmp) < 0 ||
512
525
  git_vector_init(&t->heads, 16, ref_name_cmp) < 0 ||
513
526
  definition->callback(&t->wrapped, &t->parent, definition->param) < 0) {
514
- git_vector_free(&t->refs);
515
- git_vector_free(&t->heads);
516
- t->wrapped->free(t->wrapped);
527
+ git_vector_dispose(&t->refs);
528
+ git_vector_dispose(&t->heads);
517
529
  git__free(t);
518
530
  return -1;
519
531
  }
@@ -38,6 +38,7 @@
38
38
  #define GIT_CAP_SHALLOW "shallow"
39
39
  #define GIT_CAP_OBJECT_FORMAT "object-format="
40
40
  #define GIT_CAP_AGENT "agent="
41
+ #define GIT_CAP_PUSH_OPTIONS "push-options"
41
42
 
42
43
  extern bool git_smart__ofs_delta_enabled;
43
44
 
@@ -146,7 +147,8 @@ typedef struct transport_smart_caps {
146
147
  thin_pack:1,
147
148
  want_tip_sha1:1,
148
149
  want_reachable_sha1:1,
149
- shallow:1;
150
+ shallow:1,
151
+ push_options:1;
150
152
  char *object_format;
151
153
  char *agent;
152
154
  } transport_smart_caps;
@@ -203,7 +205,7 @@ int git_smart__update_heads(transport_smart *t, git_vector *symrefs);
203
205
  /* smart_pkt.c */
204
206
  typedef struct {
205
207
  git_oid_t oid_type;
206
- int seen_capabilities: 1;
208
+ unsigned int seen_capabilities: 1;
207
209
  } git_pkt_parse_data;
208
210
 
209
211
  int git_pkt_parse_line(git_pkt **head, const char **endptr, const char *line, size_t linelen, git_pkt_parse_data *data);
@@ -536,10 +536,10 @@ static int parse_len(size_t *out, const char *line, size_t linelen)
536
536
  num[PKT_LEN_SIZE] = '\0';
537
537
 
538
538
  for (i = 0; i < PKT_LEN_SIZE; ++i) {
539
- if (!isxdigit(num[i])) {
539
+ if (!git__isxdigit(num[i])) {
540
540
  /* Make sure there are no special characters before passing to error message */
541
541
  for (k = 0; k < PKT_LEN_SIZE; ++k) {
542
- if(!isprint(num[k])) {
542
+ if(!git__isprint(num[k])) {
543
543
  num[k] = '.';
544
544
  }
545
545
  }
@@ -59,7 +59,7 @@ int git_smart__store_refs(transport_smart *t, int flushes)
59
59
  return recvd;
60
60
 
61
61
  if (recvd == 0) {
62
- git_error_set(GIT_ERROR_NET, "early EOF");
62
+ git_error_set(GIT_ERROR_NET, "could not read refs from remote repository");
63
63
  return GIT_EEOF;
64
64
  }
65
65
 
@@ -194,6 +194,12 @@ int git_smart__detect_caps(
194
194
  continue;
195
195
  }
196
196
 
197
+ if (!git__prefixcmp(ptr, GIT_CAP_PUSH_OPTIONS)) {
198
+ caps->common = caps->push_options = 1;
199
+ ptr += strlen(GIT_CAP_PUSH_OPTIONS);
200
+ continue;
201
+ }
202
+
197
203
  if (!git__prefixcmp(ptr, GIT_CAP_THIN_PACK)) {
198
204
  caps->common = caps->thin_pack = 1;
199
205
  ptr += strlen(GIT_CAP_THIN_PACK);
@@ -285,7 +291,7 @@ static int recv_pkt(
285
291
  if ((ret = git_smart__recv(t)) < 0) {
286
292
  return ret;
287
293
  } else if (ret == 0) {
288
- git_error_set(GIT_ERROR_NET, "early EOF");
294
+ git_error_set(GIT_ERROR_NET, "could not read from remote repository");
289
295
  return GIT_EEOF;
290
296
  }
291
297
  } while (error);
@@ -311,6 +317,13 @@ static int store_common(transport_smart *t)
311
317
  if ((error = recv_pkt(&pkt, NULL, t)) < 0)
312
318
  return error;
313
319
 
320
+ if (t->rpc && (pkt->type == GIT_PKT_SHALLOW ||
321
+ pkt->type == GIT_PKT_UNSHALLOW ||
322
+ pkt->type == GIT_PKT_FLUSH)) {
323
+ git__free(pkt);
324
+ continue;
325
+ }
326
+
314
327
  if (pkt->type != GIT_PKT_ACK) {
315
328
  git__free(pkt);
316
329
  return 0;
@@ -388,6 +401,7 @@ static int setup_shallow_roots(
388
401
 
389
402
  memcpy(out->ptr, wants->shallow_roots,
390
403
  sizeof(git_oid) * wants->shallow_roots_len);
404
+ out->size = wants->shallow_roots_len;
391
405
  }
392
406
 
393
407
  return 0;
@@ -427,6 +441,9 @@ int git_smart__negotiate_fetch(
427
441
  if ((error = git_smart__negotiation_step(&t->parent, data.ptr, data.size)) < 0)
428
442
  goto on_error;
429
443
 
444
+ if (!t->rpc)
445
+ git_str_clear(&data);
446
+
430
447
  while ((error = recv_pkt((git_pkt **)&pkt, NULL, t)) == 0) {
431
448
  bool complete = false;
432
449
 
@@ -778,33 +795,54 @@ done:
778
795
  static int gen_pktline(git_str *buf, git_push *push)
779
796
  {
780
797
  push_spec *spec;
798
+ char *option;
781
799
  size_t i, len;
782
- char old_id[GIT_OID_SHA1_HEXSIZE+1], new_id[GIT_OID_SHA1_HEXSIZE+1];
783
-
784
- old_id[GIT_OID_SHA1_HEXSIZE] = '\0'; new_id[GIT_OID_SHA1_HEXSIZE] = '\0';
800
+ char old_id[GIT_OID_MAX_HEXSIZE + 1], new_id[GIT_OID_MAX_HEXSIZE + 1];
801
+ size_t old_id_len, new_id_len;
785
802
 
786
803
  git_vector_foreach(&push->specs, i, spec) {
787
- len = 2*GIT_OID_SHA1_HEXSIZE + 7 + strlen(spec->refspec.dst);
804
+ len = strlen(spec->refspec.dst) + 7;
788
805
 
789
806
  if (i == 0) {
790
- ++len; /* '\0' */
807
+ /* Need a leading \0 */
808
+ ++len;
809
+
791
810
  if (push->report_status)
792
811
  len += strlen(GIT_CAP_REPORT_STATUS) + 1;
812
+
813
+ if (git_vector_length(&push->remote_push_options) > 0)
814
+ len += strlen(GIT_CAP_PUSH_OPTIONS) + 1;
815
+
793
816
  len += strlen(GIT_CAP_SIDE_BAND_64K) + 1;
794
817
  }
795
818
 
819
+ old_id_len = git_oid_hexsize(git_oid_type(&spec->roid));
820
+ new_id_len = git_oid_hexsize(git_oid_type(&spec->loid));
821
+
822
+ len += (old_id_len + new_id_len);
823
+
796
824
  git_oid_fmt(old_id, &spec->roid);
825
+ old_id[old_id_len] = '\0';
826
+
797
827
  git_oid_fmt(new_id, &spec->loid);
828
+ new_id[new_id_len] = '\0';
798
829
 
799
- git_str_printf(buf, "%04"PRIxZ"%s %s %s", len, old_id, new_id, spec->refspec.dst);
830
+ git_str_printf(buf, "%04"PRIxZ"%.*s %.*s %s", len,
831
+ (int)old_id_len, old_id, (int)new_id_len, new_id,
832
+ spec->refspec.dst);
800
833
 
801
834
  if (i == 0) {
802
835
  git_str_putc(buf, '\0');
836
+
803
837
  /* Core git always starts their capabilities string with a space */
804
838
  if (push->report_status) {
805
839
  git_str_putc(buf, ' ');
806
840
  git_str_printf(buf, GIT_CAP_REPORT_STATUS);
807
841
  }
842
+ if (git_vector_length(&push->remote_push_options) > 0) {
843
+ git_str_putc(buf, ' ');
844
+ git_str_printf(buf, GIT_CAP_PUSH_OPTIONS);
845
+ }
808
846
  git_str_putc(buf, ' ');
809
847
  git_str_printf(buf, GIT_CAP_SIDE_BAND_64K);
810
848
  }
@@ -812,6 +850,13 @@ static int gen_pktline(git_str *buf, git_push *push)
812
850
  git_str_putc(buf, '\n');
813
851
  }
814
852
 
853
+ if (git_vector_length(&push->remote_push_options) > 0) {
854
+ git_str_printf(buf, "0000");
855
+ git_vector_foreach(&push->remote_push_options, i, option) {
856
+ git_str_printf(buf, "%04"PRIxZ"%s", strlen(option) + 4 , option);
857
+ }
858
+ }
859
+
815
860
  git_str_puts(buf, "0000");
816
861
  return git_str_oom(buf) ? -1 : 0;
817
862
  }
@@ -940,7 +985,7 @@ static int parse_report(transport_smart *transport, git_push *push)
940
985
  }
941
986
 
942
987
  if (recvd == 0) {
943
- git_error_set(GIT_ERROR_NET, "early EOF");
988
+ git_error_set(GIT_ERROR_NET, "could not read report from remote repository");
944
989
  error = GIT_EEOF;
945
990
  goto done;
946
991
  }
@@ -1157,7 +1202,7 @@ int git_smart__push(git_transport *transport, git_push *push)
1157
1202
  #ifdef PUSH_DEBUG
1158
1203
  {
1159
1204
  git_remote_head *head;
1160
- char hex[GIT_OID_SHA1_HEXSIZE+1]; hex[GIT_OID_SHA1_HEXSIZE] = '\0';
1205
+ char hex[GIT_OID_MAX_HEXSIZE+1], hex[GIT_OID_MAX_HEXSIZE] = '\0';
1161
1206
 
1162
1207
  git_vector_foreach(&push->remote->refs, i, head) {
1163
1208
  git_oid_fmt(hex, &head->oid);