rugged 0.27.7 → 0.27.10

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 (409) 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 +99 -51
  5. data/vendor/libgit2/COPYING +28 -0
  6. data/vendor/libgit2/cmake/Modules/AddCFlagIfSupported.cmake +15 -1
  7. data/vendor/libgit2/cmake/Modules/CheckPrototypeDefinition.c.in +29 -0
  8. data/vendor/libgit2/cmake/Modules/CheckPrototypeDefinition.cmake +96 -0
  9. data/vendor/libgit2/cmake/Modules/EnableWarnings.cmake +9 -8
  10. data/vendor/libgit2/cmake/Modules/FindCoreFoundation.cmake +2 -2
  11. data/vendor/libgit2/cmake/Modules/FindGSSAPI.cmake +1 -1
  12. data/vendor/libgit2/cmake/Modules/FindGSSFramework.cmake +28 -0
  13. data/vendor/libgit2/cmake/Modules/FindIconv.cmake +11 -6
  14. data/vendor/libgit2/cmake/Modules/FindPCRE.cmake +38 -0
  15. data/vendor/libgit2/cmake/Modules/FindPCRE2.cmake +37 -0
  16. data/vendor/libgit2/cmake/Modules/FindSecurity.cmake +2 -2
  17. data/vendor/libgit2/cmake/Modules/FindStatNsec.cmake +6 -0
  18. data/vendor/libgit2/cmake/Modules/PkgBuildConfig.cmake +110 -0
  19. data/vendor/libgit2/cmake/Modules/SelectGSSAPI.cmake +53 -0
  20. data/vendor/libgit2/cmake/Modules/SelectHTTPSBackend.cmake +124 -0
  21. data/vendor/libgit2/cmake/Modules/SelectHashes.cmake +66 -0
  22. data/vendor/libgit2/deps/http-parser/http_parser.c +11 -6
  23. data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +21 -0
  24. data/vendor/libgit2/deps/ntlmclient/compat.h +33 -0
  25. data/vendor/libgit2/deps/ntlmclient/crypt.h +64 -0
  26. data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.c +120 -0
  27. data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.h +18 -0
  28. data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.c +145 -0
  29. data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.h +18 -0
  30. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +130 -0
  31. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.h +21 -0
  32. data/vendor/libgit2/deps/ntlmclient/ntlm.c +1420 -0
  33. data/vendor/libgit2/deps/ntlmclient/ntlm.h +174 -0
  34. data/vendor/libgit2/deps/ntlmclient/ntlmclient.h +320 -0
  35. data/vendor/libgit2/deps/ntlmclient/unicode.h +36 -0
  36. data/vendor/libgit2/deps/ntlmclient/unicode_builtin.c +445 -0
  37. data/vendor/libgit2/deps/ntlmclient/unicode_iconv.c +201 -0
  38. data/vendor/libgit2/deps/ntlmclient/utf8.h +1257 -0
  39. data/vendor/libgit2/deps/ntlmclient/util.c +21 -0
  40. data/vendor/libgit2/deps/ntlmclient/util.h +14 -0
  41. data/vendor/libgit2/deps/pcre/CMakeLists.txt +140 -0
  42. data/vendor/libgit2/deps/pcre/COPYING +5 -0
  43. data/vendor/libgit2/deps/pcre/cmake/COPYING-CMAKE-SCRIPTS +22 -0
  44. data/vendor/libgit2/deps/pcre/cmake/FindEditline.cmake +17 -0
  45. data/vendor/libgit2/deps/pcre/cmake/FindPackageHandleStandardArgs.cmake +58 -0
  46. data/vendor/libgit2/deps/pcre/cmake/FindReadline.cmake +29 -0
  47. data/vendor/libgit2/deps/pcre/config.h.in +57 -0
  48. data/vendor/libgit2/deps/pcre/pcre.h +641 -0
  49. data/vendor/libgit2/deps/pcre/pcre_byte_order.c +319 -0
  50. data/vendor/libgit2/deps/pcre/pcre_chartables.c +198 -0
  51. data/vendor/libgit2/deps/pcre/pcre_compile.c +9800 -0
  52. data/vendor/libgit2/deps/pcre/pcre_config.c +190 -0
  53. data/vendor/libgit2/deps/pcre/pcre_dfa_exec.c +3676 -0
  54. data/vendor/libgit2/deps/pcre/pcre_exec.c +7173 -0
  55. data/vendor/libgit2/deps/pcre/pcre_fullinfo.c +245 -0
  56. data/vendor/libgit2/deps/pcre/pcre_get.c +669 -0
  57. data/vendor/libgit2/deps/pcre/pcre_globals.c +86 -0
  58. data/vendor/libgit2/deps/pcre/pcre_internal.h +2787 -0
  59. data/vendor/libgit2/deps/pcre/pcre_jit_compile.c +11913 -0
  60. data/vendor/libgit2/deps/pcre/pcre_maketables.c +156 -0
  61. data/vendor/libgit2/deps/pcre/pcre_newline.c +210 -0
  62. data/vendor/libgit2/deps/pcre/pcre_ord2utf8.c +94 -0
  63. data/vendor/libgit2/deps/pcre/pcre_printint.c +834 -0
  64. data/vendor/libgit2/deps/pcre/pcre_refcount.c +92 -0
  65. data/vendor/libgit2/deps/pcre/pcre_string_utils.c +211 -0
  66. data/vendor/libgit2/deps/pcre/pcre_study.c +1686 -0
  67. data/vendor/libgit2/deps/pcre/pcre_tables.c +727 -0
  68. data/vendor/libgit2/deps/pcre/pcre_ucd.c +3644 -0
  69. data/vendor/libgit2/deps/pcre/pcre_valid_utf8.c +301 -0
  70. data/vendor/libgit2/deps/pcre/pcre_version.c +98 -0
  71. data/vendor/libgit2/deps/pcre/pcre_xclass.c +268 -0
  72. data/vendor/libgit2/deps/pcre/pcreposix.c +421 -0
  73. data/vendor/libgit2/deps/pcre/pcreposix.h +117 -0
  74. data/vendor/libgit2/deps/pcre/ucp.h +224 -0
  75. data/vendor/libgit2/deps/winhttp/COPYING.GPL +993 -0
  76. data/vendor/libgit2/deps/winhttp/COPYING.LGPL +502 -0
  77. data/vendor/libgit2/deps/zlib/CMakeLists.txt +1 -0
  78. data/vendor/libgit2/deps/zlib/COPYING +27 -0
  79. data/vendor/libgit2/deps/zlib/adler32.c +0 -7
  80. data/vendor/libgit2/deps/zlib/crc32.c +0 -7
  81. data/vendor/libgit2/include/git2/annotated_commit.h +9 -0
  82. data/vendor/libgit2/include/git2/apply.h +149 -0
  83. data/vendor/libgit2/include/git2/attr.h +20 -13
  84. data/vendor/libgit2/include/git2/blame.h +4 -4
  85. data/vendor/libgit2/include/git2/blob.h +44 -12
  86. data/vendor/libgit2/include/git2/buffer.h +20 -26
  87. data/vendor/libgit2/include/git2/cert.h +135 -0
  88. data/vendor/libgit2/include/git2/checkout.h +53 -21
  89. data/vendor/libgit2/include/git2/cherrypick.h +3 -3
  90. data/vendor/libgit2/include/git2/clone.h +5 -5
  91. data/vendor/libgit2/include/git2/commit.h +25 -3
  92. data/vendor/libgit2/include/git2/common.h +35 -10
  93. data/vendor/libgit2/include/git2/config.h +29 -19
  94. data/vendor/libgit2/include/git2/cred.h +308 -0
  95. data/vendor/libgit2/include/git2/deprecated.h +493 -0
  96. data/vendor/libgit2/include/git2/describe.h +4 -4
  97. data/vendor/libgit2/include/git2/diff.h +177 -135
  98. data/vendor/libgit2/include/git2/errors.h +53 -46
  99. data/vendor/libgit2/include/git2/filter.h +8 -0
  100. data/vendor/libgit2/include/git2/index.h +74 -52
  101. data/vendor/libgit2/include/git2/indexer.h +76 -6
  102. data/vendor/libgit2/include/git2/merge.h +25 -10
  103. data/vendor/libgit2/include/git2/net.h +0 -5
  104. data/vendor/libgit2/include/git2/notes.h +1 -1
  105. data/vendor/libgit2/include/git2/object.h +17 -29
  106. data/vendor/libgit2/include/git2/odb.h +12 -11
  107. data/vendor/libgit2/include/git2/odb_backend.h +10 -9
  108. data/vendor/libgit2/include/git2/oid.h +2 -2
  109. data/vendor/libgit2/include/git2/pack.h +14 -3
  110. data/vendor/libgit2/include/git2/proxy.h +5 -3
  111. data/vendor/libgit2/include/git2/rebase.h +46 -2
  112. data/vendor/libgit2/include/git2/refs.h +34 -16
  113. data/vendor/libgit2/include/git2/remote.h +111 -14
  114. data/vendor/libgit2/include/git2/repository.h +69 -34
  115. data/vendor/libgit2/include/git2/revert.h +1 -1
  116. data/vendor/libgit2/include/git2/revwalk.h +7 -7
  117. data/vendor/libgit2/include/git2/signature.h +2 -2
  118. data/vendor/libgit2/include/git2/stash.h +5 -5
  119. data/vendor/libgit2/include/git2/status.h +26 -17
  120. data/vendor/libgit2/include/git2/submodule.h +23 -6
  121. data/vendor/libgit2/include/git2/sys/alloc.h +18 -18
  122. data/vendor/libgit2/include/git2/sys/commit.h +1 -1
  123. data/vendor/libgit2/include/git2/sys/config.h +13 -13
  124. data/vendor/libgit2/include/git2/sys/cred.h +90 -0
  125. data/vendor/libgit2/include/git2/sys/filter.h +6 -6
  126. data/vendor/libgit2/include/git2/sys/merge.h +3 -3
  127. data/vendor/libgit2/include/git2/sys/odb_backend.h +66 -22
  128. data/vendor/libgit2/include/git2/sys/path.h +14 -5
  129. data/vendor/libgit2/include/git2/sys/refdb_backend.h +76 -40
  130. data/vendor/libgit2/include/git2/sys/repository.h +5 -1
  131. data/vendor/libgit2/include/git2/sys/stream.h +92 -12
  132. data/vendor/libgit2/include/git2/sys/transport.h +129 -83
  133. data/vendor/libgit2/include/git2/tag.h +13 -4
  134. data/vendor/libgit2/include/git2/trace.h +2 -2
  135. data/vendor/libgit2/include/git2/transport.h +11 -311
  136. data/vendor/libgit2/include/git2/tree.h +4 -4
  137. data/vendor/libgit2/include/git2/types.h +25 -106
  138. data/vendor/libgit2/include/git2/version.h +3 -3
  139. data/vendor/libgit2/include/git2/worktree.h +5 -5
  140. data/vendor/libgit2/include/git2.h +4 -0
  141. data/vendor/libgit2/src/CMakeLists.txt +104 -235
  142. data/vendor/libgit2/src/alloc.c +14 -18
  143. data/vendor/libgit2/src/{stdalloc.c → allocators/stdalloc.c} +7 -8
  144. data/vendor/libgit2/src/{stdalloc.h → allocators/stdalloc.h} +4 -4
  145. data/vendor/libgit2/src/allocators/win32_crtdbg.c +118 -0
  146. data/vendor/libgit2/src/{transports/cred.h → allocators/win32_crtdbg.h} +5 -4
  147. data/vendor/libgit2/src/annotated_commit.c +18 -11
  148. data/vendor/libgit2/src/apply.c +535 -28
  149. data/vendor/libgit2/src/apply.h +3 -1
  150. data/vendor/libgit2/src/array.h +2 -2
  151. data/vendor/libgit2/src/attr.c +77 -71
  152. data/vendor/libgit2/src/attr_file.c +203 -117
  153. data/vendor/libgit2/src/attr_file.h +9 -9
  154. data/vendor/libgit2/src/attrcache.c +49 -51
  155. data/vendor/libgit2/src/attrcache.h +2 -1
  156. data/vendor/libgit2/src/blame.c +38 -18
  157. data/vendor/libgit2/src/blame.h +1 -1
  158. data/vendor/libgit2/src/blame_git.c +29 -15
  159. data/vendor/libgit2/src/blob.c +123 -37
  160. data/vendor/libgit2/src/blob.h +19 -2
  161. data/vendor/libgit2/src/branch.c +47 -23
  162. data/vendor/libgit2/src/buf_text.c +7 -6
  163. data/vendor/libgit2/src/buffer.c +60 -53
  164. data/vendor/libgit2/src/cache.c +38 -45
  165. data/vendor/libgit2/src/cache.h +3 -3
  166. data/vendor/libgit2/src/cc-compat.h +20 -3
  167. data/vendor/libgit2/src/checkout.c +77 -67
  168. data/vendor/libgit2/src/cherrypick.c +12 -6
  169. data/vendor/libgit2/src/clone.c +36 -14
  170. data/vendor/libgit2/src/clone.h +4 -0
  171. data/vendor/libgit2/src/commit.c +103 -48
  172. data/vendor/libgit2/src/commit.h +7 -0
  173. data/vendor/libgit2/src/commit_list.c +36 -78
  174. data/vendor/libgit2/src/commit_list.h +2 -2
  175. data/vendor/libgit2/src/common.h +24 -90
  176. data/vendor/libgit2/src/config.c +203 -176
  177. data/vendor/libgit2/src/config.h +8 -20
  178. data/vendor/libgit2/src/config_backend.h +96 -0
  179. data/vendor/libgit2/src/config_cache.c +41 -35
  180. data/vendor/libgit2/src/config_entries.c +229 -0
  181. data/vendor/libgit2/src/config_entries.h +24 -0
  182. data/vendor/libgit2/src/config_file.c +422 -680
  183. data/vendor/libgit2/src/config_mem.c +220 -0
  184. data/vendor/libgit2/src/config_parse.c +96 -68
  185. data/vendor/libgit2/src/config_parse.h +15 -14
  186. data/vendor/libgit2/src/config_snapshot.c +206 -0
  187. data/vendor/libgit2/src/crlf.c +219 -196
  188. data/vendor/libgit2/src/delta.c +25 -18
  189. data/vendor/libgit2/src/describe.c +42 -41
  190. data/vendor/libgit2/src/diff.c +52 -67
  191. data/vendor/libgit2/src/diff.h +2 -1
  192. data/vendor/libgit2/src/diff_driver.c +44 -46
  193. data/vendor/libgit2/src/diff_file.c +16 -14
  194. data/vendor/libgit2/src/diff_file.h +1 -1
  195. data/vendor/libgit2/src/diff_generate.c +158 -103
  196. data/vendor/libgit2/src/diff_generate.h +3 -3
  197. data/vendor/libgit2/src/diff_parse.c +4 -4
  198. data/vendor/libgit2/src/diff_print.c +34 -22
  199. data/vendor/libgit2/src/diff_stats.c +22 -7
  200. data/vendor/libgit2/src/diff_tform.c +18 -16
  201. data/vendor/libgit2/src/diff_xdiff.c +3 -3
  202. data/vendor/libgit2/src/errors.c +51 -39
  203. data/vendor/libgit2/src/errors.h +81 -0
  204. data/vendor/libgit2/src/features.h.in +9 -3
  205. data/vendor/libgit2/src/fetch.c +8 -3
  206. data/vendor/libgit2/src/fetchhead.c +12 -12
  207. data/vendor/libgit2/src/filebuf.c +28 -32
  208. data/vendor/libgit2/src/filebuf.h +2 -2
  209. data/vendor/libgit2/src/filter.c +47 -33
  210. data/vendor/libgit2/src/filter.h +0 -10
  211. data/vendor/libgit2/src/{fileops.c → futils.c} +70 -63
  212. data/vendor/libgit2/src/{fileops.h → futils.h} +6 -6
  213. data/vendor/libgit2/src/global.c +35 -55
  214. data/vendor/libgit2/src/global.h +0 -2
  215. data/vendor/libgit2/src/hash/sha1/collisiondetect.c +48 -0
  216. data/vendor/libgit2/src/hash/sha1/collisiondetect.h +19 -0
  217. data/vendor/libgit2/src/hash/{hash_common_crypto.h → sha1/common_crypto.c} +17 -17
  218. data/vendor/libgit2/src/hash/sha1/common_crypto.h +19 -0
  219. data/vendor/libgit2/src/hash/{hash_generic.c → sha1/generic.c} +22 -10
  220. data/vendor/libgit2/src/hash/{hash_generic.h → sha1/generic.h} +4 -10
  221. data/vendor/libgit2/src/hash/{hash_mbedtls.c → sha1/mbedtls.c} +15 -7
  222. data/vendor/libgit2/src/hash/{hash_mbedtls.h → sha1/mbedtls.h} +6 -7
  223. data/vendor/libgit2/src/hash/sha1/openssl.c +59 -0
  224. data/vendor/libgit2/src/hash/sha1/openssl.h +19 -0
  225. data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/sha1.c +14 -3
  226. data/vendor/libgit2/src/hash/{hash_win32.c → sha1/win32.c} +47 -37
  227. data/vendor/libgit2/src/hash/{hash_win32.h → sha1/win32.h} +6 -19
  228. data/vendor/libgit2/src/hash/sha1.h +38 -0
  229. data/vendor/libgit2/src/hash.c +61 -0
  230. data/vendor/libgit2/src/hash.h +20 -21
  231. data/vendor/libgit2/src/hashsig.c +5 -5
  232. data/vendor/libgit2/src/idxmap.c +107 -61
  233. data/vendor/libgit2/src/idxmap.h +153 -31
  234. data/vendor/libgit2/src/ignore.c +38 -42
  235. data/vendor/libgit2/src/index.c +264 -199
  236. data/vendor/libgit2/src/index.h +7 -1
  237. data/vendor/libgit2/src/indexer.c +338 -167
  238. data/vendor/libgit2/src/integer.h +71 -26
  239. data/vendor/libgit2/src/iterator.c +134 -62
  240. data/vendor/libgit2/src/iterator.h +15 -0
  241. data/vendor/libgit2/src/mailmap.c +8 -8
  242. data/vendor/libgit2/src/map.h +1 -1
  243. data/vendor/libgit2/src/merge.c +137 -93
  244. data/vendor/libgit2/src/merge_driver.c +11 -11
  245. data/vendor/libgit2/src/merge_file.c +2 -2
  246. data/vendor/libgit2/src/mwindow.c +24 -29
  247. data/vendor/libgit2/src/mwindow.h +4 -4
  248. data/vendor/libgit2/src/net.c +184 -0
  249. data/vendor/libgit2/src/net.h +36 -0
  250. data/vendor/libgit2/src/netops.c +55 -156
  251. data/vendor/libgit2/src/netops.h +3 -23
  252. data/vendor/libgit2/src/notes.c +14 -9
  253. data/vendor/libgit2/src/object.c +120 -69
  254. data/vendor/libgit2/src/object.h +22 -9
  255. data/vendor/libgit2/src/object_api.c +8 -8
  256. data/vendor/libgit2/src/odb.c +111 -88
  257. data/vendor/libgit2/src/odb.h +8 -7
  258. data/vendor/libgit2/src/odb_loose.c +58 -47
  259. data/vendor/libgit2/src/odb_mempack.c +21 -34
  260. data/vendor/libgit2/src/odb_pack.c +17 -13
  261. data/vendor/libgit2/src/offmap.c +53 -35
  262. data/vendor/libgit2/src/offmap.h +108 -21
  263. data/vendor/libgit2/src/oid.c +12 -7
  264. data/vendor/libgit2/src/oidmap.c +49 -47
  265. data/vendor/libgit2/src/oidmap.h +101 -24
  266. data/vendor/libgit2/src/pack-objects.c +87 -86
  267. data/vendor/libgit2/src/pack-objects.h +2 -8
  268. data/vendor/libgit2/src/pack.c +94 -96
  269. data/vendor/libgit2/src/pack.h +16 -18
  270. data/vendor/libgit2/src/parse.c +17 -4
  271. data/vendor/libgit2/src/parse.h +3 -3
  272. data/vendor/libgit2/src/patch.c +3 -3
  273. data/vendor/libgit2/src/patch_generate.c +18 -18
  274. data/vendor/libgit2/src/patch_parse.c +147 -79
  275. data/vendor/libgit2/src/path.c +207 -62
  276. data/vendor/libgit2/src/path.h +14 -0
  277. data/vendor/libgit2/src/pathspec.c +18 -18
  278. data/vendor/libgit2/src/pool.c +26 -22
  279. data/vendor/libgit2/src/pool.h +7 -7
  280. data/vendor/libgit2/src/posix.c +10 -10
  281. data/vendor/libgit2/src/posix.h +12 -1
  282. data/vendor/libgit2/src/proxy.c +8 -3
  283. data/vendor/libgit2/src/push.c +35 -29
  284. data/vendor/libgit2/src/push.h +2 -1
  285. data/vendor/libgit2/src/reader.c +265 -0
  286. data/vendor/libgit2/src/reader.h +107 -0
  287. data/vendor/libgit2/src/rebase.c +97 -38
  288. data/vendor/libgit2/src/refdb.c +15 -3
  289. data/vendor/libgit2/src/refdb_fs.c +318 -222
  290. data/vendor/libgit2/src/reflog.c +13 -15
  291. data/vendor/libgit2/src/refs.c +122 -89
  292. data/vendor/libgit2/src/refs.h +5 -3
  293. data/vendor/libgit2/src/refspec.c +27 -33
  294. data/vendor/libgit2/src/regexp.c +221 -0
  295. data/vendor/libgit2/src/regexp.h +97 -0
  296. data/vendor/libgit2/src/remote.c +229 -178
  297. data/vendor/libgit2/src/remote.h +11 -2
  298. data/vendor/libgit2/src/repository.c +227 -172
  299. data/vendor/libgit2/src/repository.h +52 -40
  300. data/vendor/libgit2/src/reset.c +7 -7
  301. data/vendor/libgit2/src/revert.c +11 -6
  302. data/vendor/libgit2/src/revparse.c +46 -46
  303. data/vendor/libgit2/src/revwalk.c +89 -54
  304. data/vendor/libgit2/src/revwalk.h +20 -0
  305. data/vendor/libgit2/src/settings.c +22 -9
  306. data/vendor/libgit2/src/signature.c +15 -13
  307. data/vendor/libgit2/src/sortedcache.c +22 -36
  308. data/vendor/libgit2/src/sortedcache.h +1 -1
  309. data/vendor/libgit2/src/stash.c +56 -76
  310. data/vendor/libgit2/src/status.c +27 -21
  311. data/vendor/libgit2/src/stream.h +17 -2
  312. data/vendor/libgit2/src/streams/mbedtls.c +100 -80
  313. data/vendor/libgit2/src/streams/mbedtls.h +5 -2
  314. data/vendor/libgit2/src/streams/openssl.c +93 -81
  315. data/vendor/libgit2/src/streams/openssl.h +5 -2
  316. data/vendor/libgit2/src/streams/registry.c +118 -0
  317. data/vendor/libgit2/src/streams/registry.h +19 -0
  318. data/vendor/libgit2/src/streams/socket.c +55 -30
  319. data/vendor/libgit2/src/streams/stransport.c +57 -32
  320. data/vendor/libgit2/src/streams/stransport.h +5 -0
  321. data/vendor/libgit2/src/streams/tls.c +48 -20
  322. data/vendor/libgit2/src/streams/tls.h +12 -4
  323. data/vendor/libgit2/src/strmap.c +47 -74
  324. data/vendor/libgit2/src/strmap.h +108 -33
  325. data/vendor/libgit2/src/submodule.c +190 -169
  326. data/vendor/libgit2/src/submodule.h +1 -1
  327. data/vendor/libgit2/src/sysdir.c +25 -15
  328. data/vendor/libgit2/src/tag.c +39 -26
  329. data/vendor/libgit2/src/tag.h +2 -1
  330. data/vendor/libgit2/src/trace.c +2 -2
  331. data/vendor/libgit2/src/trace.h +2 -2
  332. data/vendor/libgit2/src/trailer.c +46 -32
  333. data/vendor/libgit2/src/transaction.c +30 -29
  334. data/vendor/libgit2/src/transport.c +3 -3
  335. data/vendor/libgit2/src/transports/auth.c +14 -10
  336. data/vendor/libgit2/src/transports/auth.h +10 -3
  337. data/vendor/libgit2/src/transports/auth_negotiate.c +31 -16
  338. data/vendor/libgit2/src/transports/auth_negotiate.h +2 -2
  339. data/vendor/libgit2/src/transports/auth_ntlm.c +223 -0
  340. data/vendor/libgit2/src/transports/auth_ntlm.h +35 -0
  341. data/vendor/libgit2/src/transports/cred.c +24 -24
  342. data/vendor/libgit2/src/transports/git.c +25 -30
  343. data/vendor/libgit2/src/transports/http.c +871 -335
  344. data/vendor/libgit2/src/transports/http.h +2 -0
  345. data/vendor/libgit2/src/transports/local.c +28 -28
  346. data/vendor/libgit2/src/transports/smart.c +64 -46
  347. data/vendor/libgit2/src/transports/smart.h +5 -6
  348. data/vendor/libgit2/src/transports/smart_pkt.c +162 -151
  349. data/vendor/libgit2/src/transports/smart_protocol.c +64 -94
  350. data/vendor/libgit2/src/transports/ssh.c +76 -65
  351. data/vendor/libgit2/src/transports/winhttp.c +328 -319
  352. data/vendor/libgit2/src/tree-cache.c +21 -14
  353. data/vendor/libgit2/src/tree.c +119 -112
  354. data/vendor/libgit2/src/tree.h +1 -0
  355. data/vendor/libgit2/src/unix/map.c +3 -3
  356. data/vendor/libgit2/src/unix/posix.h +1 -11
  357. data/vendor/libgit2/src/userdiff.h +3 -1
  358. data/vendor/libgit2/src/util.c +154 -93
  359. data/vendor/libgit2/src/util.h +19 -23
  360. data/vendor/libgit2/src/vector.c +15 -10
  361. data/vendor/libgit2/src/wildmatch.c +320 -0
  362. data/vendor/libgit2/src/wildmatch.h +23 -0
  363. data/vendor/libgit2/src/win32/dir.c +3 -3
  364. data/vendor/libgit2/src/win32/findfile.c +1 -1
  365. data/vendor/libgit2/src/win32/map.c +9 -11
  366. data/vendor/libgit2/src/win32/msvc-compat.h +6 -0
  367. data/vendor/libgit2/src/win32/path_w32.c +113 -9
  368. data/vendor/libgit2/src/win32/path_w32.h +18 -29
  369. data/vendor/libgit2/src/win32/posix.h +1 -4
  370. data/vendor/libgit2/src/win32/posix_w32.c +69 -44
  371. data/vendor/libgit2/src/win32/precompiled.h +0 -2
  372. data/vendor/libgit2/src/win32/thread.c +5 -10
  373. data/vendor/libgit2/src/win32/w32_buffer.c +9 -5
  374. data/vendor/libgit2/src/win32/w32_common.h +39 -0
  375. data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.c +2 -95
  376. data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.h +0 -2
  377. data/vendor/libgit2/src/win32/w32_stack.c +6 -11
  378. data/vendor/libgit2/src/win32/w32_stack.h +3 -3
  379. data/vendor/libgit2/src/win32/w32_util.c +27 -64
  380. data/vendor/libgit2/src/win32/w32_util.h +5 -49
  381. data/vendor/libgit2/src/worktree.c +44 -30
  382. data/vendor/libgit2/src/xdiff/xdiffi.c +5 -5
  383. data/vendor/libgit2/src/xdiff/xhistogram.c +1 -1
  384. data/vendor/libgit2/src/xdiff/xmerge.c +27 -15
  385. data/vendor/libgit2/src/xdiff/xpatience.c +3 -0
  386. data/vendor/libgit2/src/zstream.c +4 -4
  387. metadata +115 -38
  388. data/vendor/libgit2/deps/regex/CMakeLists.txt +0 -2
  389. data/vendor/libgit2/deps/regex/config.h +0 -7
  390. data/vendor/libgit2/deps/regex/regcomp.c +0 -3857
  391. data/vendor/libgit2/deps/regex/regex.c +0 -92
  392. data/vendor/libgit2/deps/regex/regex.h +0 -582
  393. data/vendor/libgit2/deps/regex/regex_internal.c +0 -1744
  394. data/vendor/libgit2/deps/regex/regex_internal.h +0 -819
  395. data/vendor/libgit2/deps/regex/regexec.c +0 -4369
  396. data/vendor/libgit2/include/git2/inttypes.h +0 -309
  397. data/vendor/libgit2/include/git2/sys/time.h +0 -31
  398. data/vendor/libgit2/libgit2.pc.in +0 -13
  399. data/vendor/libgit2/src/config_file.h +0 -73
  400. data/vendor/libgit2/src/fnmatch.c +0 -248
  401. data/vendor/libgit2/src/fnmatch.h +0 -48
  402. data/vendor/libgit2/src/hash/hash_collisiondetect.h +0 -47
  403. data/vendor/libgit2/src/hash/hash_openssl.h +0 -59
  404. data/vendor/libgit2/src/streams/curl.c +0 -385
  405. data/vendor/libgit2/src/streams/curl.h +0 -17
  406. /data/vendor/libgit2/deps/http-parser/{LICENSE-MIT → COPYING} +0 -0
  407. /data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/sha1.h +0 -0
  408. /data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/ubc_check.c +0 -0
  409. /data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/ubc_check.h +0 -0
@@ -37,14 +37,17 @@ void gitno_buffer_setup_callback(
37
37
  static int recv_stream(gitno_buffer *buf)
38
38
  {
39
39
  git_stream *io = (git_stream *) buf->cb_data;
40
- int ret;
40
+ size_t readlen = buf->len - buf->offset;
41
+ ssize_t ret;
41
42
 
42
- ret = git_stream_read(io, buf->data + buf->offset, buf->len - buf->offset);
43
+ readlen = min(readlen, INT_MAX);
44
+
45
+ ret = git_stream_read(io, buf->data + buf->offset, (int)readlen);
43
46
  if (ret < 0)
44
47
  return -1;
45
48
 
46
49
  buf->offset += ret;
47
- return ret;
50
+ return (int)ret;
48
51
  }
49
52
 
50
53
  void gitno_buffer_setup_fromstream(git_stream *st, gitno_buffer *buf, char *data, size_t len)
@@ -119,183 +122,79 @@ int gitno__match_host(const char *pattern, const char *host)
119
122
  return -1;
120
123
  }
121
124
 
122
- static const char *prefix_http = "http://";
123
- static const char *prefix_https = "https://";
124
-
125
- int gitno_connection_data_from_url(
126
- gitno_connection_data *data,
127
- const char *url,
125
+ int gitno_connection_data_handle_redirect(
126
+ git_net_url *url,
127
+ const char *redirect_str,
128
128
  const char *service_suffix)
129
129
  {
130
- int error = -1;
131
- const char *default_port = NULL, *path_search_start = NULL;
132
- char *original_host = NULL;
133
-
134
- /* service_suffix is optional */
135
- assert(data && url);
130
+ git_net_url tmp = GIT_NET_URL_INIT;
131
+ int error = 0;
136
132
 
137
- /* Save these for comparison later */
138
- original_host = data->host;
139
- data->host = NULL;
140
- gitno_connection_data_free_ptrs(data);
133
+ assert(url && redirect_str);
141
134
 
142
- if (!git__prefixcmp(url, prefix_http)) {
143
- path_search_start = url + strlen(prefix_http);
144
- default_port = "80";
135
+ if (redirect_str[0] == '/') {
136
+ git__free(url->path);
145
137
 
146
- if (data->use_ssl) {
147
- giterr_set(GITERR_NET, "redirect from HTTPS to HTTP is not allowed");
148
- goto cleanup;
138
+ if ((url->path = git__strdup(redirect_str)) == NULL) {
139
+ error = -1;
140
+ goto done;
149
141
  }
150
- } else if (!git__prefixcmp(url, prefix_https)) {
151
- path_search_start = url + strlen(prefix_https);
152
- default_port = "443";
153
- data->use_ssl = true;
154
- } else if (url[0] == '/')
155
- default_port = data->use_ssl ? "443" : "80";
156
-
157
- if (!default_port) {
158
- giterr_set(GITERR_NET, "unrecognized URL prefix");
159
- goto cleanup;
160
- }
142
+ } else {
143
+ git_net_url *original = url;
161
144
 
162
- error = gitno_extract_url_parts(
163
- &data->host, &data->port, &data->path, &data->user, &data->pass,
164
- url, default_port);
145
+ if ((error = git_net_url_parse(&tmp, redirect_str)) < 0)
146
+ goto done;
165
147
 
166
- if (url[0] == '/') {
167
- /* Relative redirect; reuse original host name and port */
168
- path_search_start = url;
169
- git__free(data->host);
170
- data->host = original_host;
171
- original_host = NULL;
172
- }
148
+ /* Validate that this is a legal redirection */
173
149
 
174
- if (!error) {
175
- const char *path = strchr(path_search_start, '/');
176
- size_t pathlen = strlen(path);
177
- size_t suffixlen = service_suffix ? strlen(service_suffix) : 0;
178
-
179
- if (suffixlen &&
180
- !memcmp(path + pathlen - suffixlen, service_suffix, suffixlen)) {
181
- git__free(data->path);
182
- data->path = git__strndup(path, pathlen - suffixlen);
183
- } else {
184
- git__free(data->path);
185
- data->path = git__strdup(path);
186
- }
150
+ if (original->scheme &&
151
+ strcmp(original->scheme, tmp.scheme) != 0 &&
152
+ strcmp(tmp.scheme, "https") != 0) {
153
+ git_error_set(GIT_ERROR_NET, "cannot redirect from '%s' to '%s'",
154
+ original->scheme, tmp.scheme);
187
155
 
188
- /* Check for errors in the resulting data */
189
- if (original_host && url[0] != '/' && strcmp(original_host, data->host)) {
190
- giterr_set(GITERR_NET, "cross host redirect not allowed");
191
156
  error = -1;
157
+ goto done;
192
158
  }
193
- }
194
159
 
195
- cleanup:
196
- if (original_host) git__free(original_host);
197
- return error;
198
- }
199
-
200
- void gitno_connection_data_free_ptrs(gitno_connection_data *d)
201
- {
202
- git__free(d->host); d->host = NULL;
203
- git__free(d->port); d->port = NULL;
204
- git__free(d->path); d->path = NULL;
205
- git__free(d->user); d->user = NULL;
206
- git__free(d->pass); d->pass = NULL;
207
- }
160
+ if (original->host &&
161
+ git__strcasecmp(original->host, tmp.host) != 0) {
162
+ git_error_set(GIT_ERROR_NET, "cannot redirect from '%s' to '%s'",
163
+ original->host, tmp.host);
208
164
 
209
- int gitno_extract_url_parts(
210
- char **host_out,
211
- char **port_out,
212
- char **path_out,
213
- char **username_out,
214
- char **password_out,
215
- const char *url,
216
- const char *default_port)
217
- {
218
- struct http_parser_url u = {0};
219
- bool has_host, has_port, has_path, has_userinfo;
220
- git_buf host = GIT_BUF_INIT,
221
- port = GIT_BUF_INIT,
222
- path = GIT_BUF_INIT,
223
- username = GIT_BUF_INIT,
224
- password = GIT_BUF_INIT;
225
- int error = 0;
165
+ error = -1;
166
+ goto done;
167
+ }
226
168
 
227
- if (http_parser_parse_url(url, strlen(url), false, &u)) {
228
- giterr_set(GITERR_NET, "malformed URL '%s'", url);
229
- error = GIT_EINVALIDSPEC;
230
- goto done;
169
+ git_net_url_swap(url, &tmp);
231
170
  }
232
171
 
233
- has_host = !!(u.field_set & (1 << UF_HOST));
234
- has_port = !!(u.field_set & (1 << UF_PORT));
235
- has_path = !!(u.field_set & (1 << UF_PATH));
236
- has_userinfo = !!(u.field_set & (1 << UF_USERINFO));
172
+ /* Remove the service suffix if it was given to us */
173
+ if (service_suffix) {
174
+ const char *service_query = strchr(service_suffix, '?');
175
+ size_t suffix_len = service_query ?
176
+ (size_t)(service_query - service_suffix) : strlen(service_suffix);
177
+ size_t path_len = strlen(url->path);
237
178
 
238
- if (has_host) {
239
- const char *url_host = url + u.field_data[UF_HOST].off;
240
- size_t url_host_len = u.field_data[UF_HOST].len;
241
- git_buf_decode_percent(&host, url_host, url_host_len);
242
- }
179
+ if (suffix_len && path_len >= suffix_len) {
180
+ size_t suffix_offset = path_len - suffix_len;
243
181
 
244
- if (has_port) {
245
- const char *url_port = url + u.field_data[UF_PORT].off;
246
- size_t url_port_len = u.field_data[UF_PORT].len;
247
- git_buf_put(&port, url_port, url_port_len);
248
- } else {
249
- git_buf_puts(&port, default_port);
250
- }
182
+ if (git__strncmp(url->path + suffix_offset, service_suffix, suffix_len) == 0 &&
183
+ (!service_query || git__strcmp(url->query, service_query + 1) == 0)) {
184
+ /* Ensure we leave a minimum of '/' as the path */
185
+ if (suffix_offset == 0)
186
+ suffix_offset++;
251
187
 
252
- if (has_path && path_out) {
253
- const char *url_path = url + u.field_data[UF_PATH].off;
254
- size_t url_path_len = u.field_data[UF_PATH].len;
255
- git_buf_decode_percent(&path, url_path, url_path_len);
256
- } else if (path_out) {
257
- giterr_set(GITERR_NET, "invalid url, missing path");
258
- error = GIT_EINVALIDSPEC;
259
- goto done;
260
- }
188
+ url->path[suffix_offset] = '\0';
261
189
 
262
- if (has_userinfo) {
263
- const char *url_userinfo = url + u.field_data[UF_USERINFO].off;
264
- size_t url_userinfo_len = u.field_data[UF_USERINFO].len;
265
- const char *colon = memchr(url_userinfo, ':', url_userinfo_len);
266
-
267
- if (colon) {
268
- const char *url_username = url_userinfo;
269
- size_t url_username_len = colon - url_userinfo;
270
- const char *url_password = colon + 1;
271
- size_t url_password_len = url_userinfo_len - (url_username_len + 1);
272
-
273
- git_buf_decode_percent(&username, url_username, url_username_len);
274
- git_buf_decode_percent(&password, url_password, url_password_len);
275
- } else {
276
- git_buf_decode_percent(&username, url_userinfo, url_userinfo_len);
190
+ git__free(url->query);
191
+ url->query = NULL;
192
+ }
277
193
  }
278
194
  }
279
195
 
280
- if (git_buf_oom(&host) ||
281
- git_buf_oom(&port) ||
282
- git_buf_oom(&path) ||
283
- git_buf_oom(&username) ||
284
- git_buf_oom(&password))
285
- return -1;
286
-
287
- *host_out = git_buf_detach(&host);
288
- *port_out = git_buf_detach(&port);
289
- if (path_out)
290
- *path_out = git_buf_detach(&path);
291
- *username_out = git_buf_detach(&username);
292
- *password_out = git_buf_detach(&password);
293
-
294
196
  done:
295
- git_buf_dispose(&host);
296
- git_buf_dispose(&port);
297
- git_buf_dispose(&path);
298
- git_buf_dispose(&username);
299
- git_buf_dispose(&password);
197
+ git_net_url_dispose(&tmp);
300
198
  return error;
301
199
  }
200
+
@@ -11,6 +11,7 @@
11
11
 
12
12
  #include "posix.h"
13
13
  #include "stream.h"
14
+ #include "net.h"
14
15
 
15
16
  #ifdef GIT_OPENSSL
16
17
  # include <openssl/ssl.h>
@@ -64,36 +65,15 @@ int gitno_recv(gitno_buffer *buf);
64
65
  void gitno_consume(gitno_buffer *buf, const char *ptr);
65
66
  void gitno_consume_n(gitno_buffer *buf, size_t cons);
66
67
 
67
- typedef struct gitno_connection_data {
68
- char *host;
69
- char *port;
70
- char *path;
71
- char *user;
72
- char *pass;
73
- bool use_ssl;
74
- } gitno_connection_data;
75
-
76
68
  /*
77
69
  * This replaces all the pointers in `data` with freshly-allocated strings,
78
70
  * that the caller is responsible for freeing.
79
71
  * `gitno_connection_data_free_ptrs` is good for this.
80
72
  */
81
73
 
82
- int gitno_connection_data_from_url(
83
- gitno_connection_data *data,
74
+ int gitno_connection_data_handle_redirect(
75
+ git_net_url *data,
84
76
  const char *url,
85
77
  const char *service_suffix);
86
78
 
87
- /* This frees all the pointers IN the struct, but not the struct itself. */
88
- void gitno_connection_data_free_ptrs(gitno_connection_data *data);
89
-
90
- int gitno_extract_url_parts(
91
- char **host,
92
- char **port,
93
- char **path,
94
- char **username,
95
- char **password,
96
- const char *url,
97
- const char *default_port);
98
-
99
79
  #endif
@@ -12,10 +12,11 @@
12
12
  #include "config.h"
13
13
  #include "iterator.h"
14
14
  #include "signature.h"
15
+ #include "blob.h"
15
16
 
16
17
  static int note_error_notfound(void)
17
18
  {
18
- giterr_set(GITERR_INVALID, "note could not be found");
19
+ git_error_set(GIT_ERROR_INVALID, "note could not be found");
19
20
  return GIT_ENOTFOUND;
20
21
  }
21
22
 
@@ -226,7 +227,7 @@ static int remove_note_in_tree_enotfound_cb(
226
227
  GIT_UNUSED(note_oid);
227
228
  GIT_UNUSED(fanout);
228
229
 
229
- giterr_set(GITERR_REPOSITORY, "object '%s' has no note", annotated_object_sha);
230
+ git_error_set(GIT_ERROR_REPOSITORY, "object '%s' has no note", annotated_object_sha);
230
231
  return current_error;
231
232
  }
232
233
 
@@ -244,7 +245,7 @@ static int insert_note_in_tree_eexists_cb(git_tree **out,
244
245
  GIT_UNUSED(note_oid);
245
246
  GIT_UNUSED(fanout);
246
247
 
247
- giterr_set(GITERR_REPOSITORY, "note for '%s' exists already", annotated_object_sha);
248
+ git_error_set(GIT_ERROR_REPOSITORY, "note for '%s' exists already", annotated_object_sha);
248
249
  return current_error;
249
250
  }
250
251
 
@@ -287,7 +288,7 @@ static int note_write(
287
288
 
288
289
  /* TODO: should we apply filters? */
289
290
  /* create note object */
290
- if ((error = git_blob_create_frombuffer(&oid, repo, note, strlen(note))) < 0)
291
+ if ((error = git_blob_create_from_buffer(&oid, repo, note, strlen(note))) < 0)
291
292
  goto cleanup;
292
293
 
293
294
  if ((error = manipulate_note_in_tree_r(
@@ -319,9 +320,10 @@ static int note_new(
319
320
  git_blob *blob)
320
321
  {
321
322
  git_note *note = NULL;
323
+ git_object_size_t blobsize;
322
324
 
323
325
  note = git__malloc(sizeof(git_note));
324
- GITERR_CHECK_ALLOC(note);
326
+ GIT_ERROR_CHECK_ALLOC(note);
325
327
 
326
328
  git_oid_cpy(&note->id, note_oid);
327
329
 
@@ -329,8 +331,11 @@ static int note_new(
329
331
  git_signature_dup(&note->committer, git_commit_committer(commit)) < 0)
330
332
  return -1;
331
333
 
332
- note->message = git__strndup(git_blob_rawcontent(blob), git_blob_rawsize(blob));
333
- GITERR_CHECK_ALLOC(note->message);
334
+ blobsize = git_blob_rawsize(blob);
335
+ GIT_ERROR_CHECK_BLOBSIZE(blobsize);
336
+
337
+ note->message = git__strndup(git_blob_rawcontent(blob), (size_t)blobsize);
338
+ GIT_ERROR_CHECK_ALLOC(note->message);
334
339
 
335
340
  *out = note;
336
341
  return 0;
@@ -417,7 +422,7 @@ static int normalize_namespace(char **out, git_repository *repo, const char *not
417
422
  {
418
423
  if (notes_ref) {
419
424
  *out = git__strdup(notes_ref);
420
- GITERR_CHECK_ALLOC(*out);
425
+ GIT_ERROR_CHECK_ALLOC(*out);
421
426
  return 0;
422
427
  }
423
428
 
@@ -729,7 +734,7 @@ int git_note_foreach(
729
734
 
730
735
  while (!(error = git_note_next(&note_id, &annotated_id, iter))) {
731
736
  if ((error = note_cb(&note_id, &annotated_id, payload)) != 0) {
732
- giterr_set_after_callback(error);
737
+ git_error_set_after_callback(error);
733
738
  break;
734
739
  }
735
740
  }