rugged 1.0.0 → 1.2.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 (338) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +1 -0
  3. data/README.md +3 -3
  4. data/ext/rugged/rugged.c +7 -4
  5. data/ext/rugged/rugged_commit.c +1 -1
  6. data/ext/rugged/rugged_config.c +1 -1
  7. data/ext/rugged/rugged_object.c +1 -1
  8. data/ext/rugged/rugged_remote.c +32 -2
  9. data/ext/rugged/rugged_repo.c +13 -3
  10. data/lib/rugged/commit.rb +17 -4
  11. data/lib/rugged/repository.rb +7 -8
  12. data/lib/rugged/submodule_collection.rb +4 -4
  13. data/lib/rugged/version.rb +1 -1
  14. data/vendor/libgit2/CMakeLists.txt +41 -74
  15. data/vendor/libgit2/COPYING +109 -1
  16. data/vendor/libgit2/cmake/{Modules/AddCFlagIfSupported.cmake → AddCFlagIfSupported.cmake} +0 -0
  17. data/vendor/libgit2/cmake/{Modules/EnableWarnings.cmake → EnableWarnings.cmake} +0 -0
  18. data/vendor/libgit2/cmake/{Modules/FindCoreFoundation.cmake → FindCoreFoundation.cmake} +0 -0
  19. data/vendor/libgit2/cmake/{Modules/FindGSSAPI.cmake → FindGSSAPI.cmake} +0 -0
  20. data/vendor/libgit2/cmake/{Modules/FindGSSFramework.cmake → FindGSSFramework.cmake} +0 -0
  21. data/vendor/libgit2/cmake/{Modules/FindHTTP_Parser.cmake → FindHTTP_Parser.cmake} +0 -0
  22. data/vendor/libgit2/cmake/{Modules/FindIconv.cmake → FindIconv.cmake} +0 -0
  23. data/vendor/libgit2/cmake/{Modules/FindPCRE.cmake → FindPCRE.cmake} +0 -0
  24. data/vendor/libgit2/cmake/{Modules/FindPCRE2.cmake → FindPCRE2.cmake} +0 -0
  25. data/vendor/libgit2/cmake/{Modules/FindPkgLibraries.cmake → FindPkgLibraries.cmake} +0 -0
  26. data/vendor/libgit2/cmake/{Modules/FindSecurity.cmake → FindSecurity.cmake} +0 -0
  27. data/vendor/libgit2/cmake/{Modules/FindStatNsec.cmake → FindStatNsec.cmake} +0 -0
  28. data/vendor/libgit2/cmake/Findfutimens.cmake +14 -0
  29. data/vendor/libgit2/cmake/{Modules/FindmbedTLS.cmake → FindmbedTLS.cmake} +0 -0
  30. data/vendor/libgit2/cmake/{Modules/IdeSplitSources.cmake → IdeSplitSources.cmake} +0 -0
  31. data/vendor/libgit2/cmake/{Modules/PkgBuildConfig.cmake → PkgBuildConfig.cmake} +0 -0
  32. data/vendor/libgit2/cmake/{Modules/SanitizeBool.cmake → SanitizeBool.cmake} +0 -0
  33. data/vendor/libgit2/cmake/{Modules/SelectGSSAPI.cmake → SelectGSSAPI.cmake} +18 -26
  34. data/vendor/libgit2/cmake/{Modules/SelectHTTPSBackend.cmake → SelectHTTPSBackend.cmake} +29 -32
  35. data/vendor/libgit2/cmake/{Modules/SelectHashes.cmake → SelectHashes.cmake} +21 -28
  36. data/vendor/libgit2/deps/chromium-zlib/CMakeLists.txt +101 -0
  37. data/vendor/libgit2/deps/http-parser/CMakeLists.txt +4 -3
  38. data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +24 -10
  39. data/vendor/libgit2/deps/ntlmclient/compat.h +0 -27
  40. data/vendor/libgit2/deps/ntlmclient/crypt.h +14 -9
  41. data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.c +20 -20
  42. data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.h +3 -3
  43. data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.c +37 -36
  44. data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.h +4 -3
  45. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +178 -51
  46. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.h +74 -5
  47. data/vendor/libgit2/deps/ntlmclient/ntlm.c +164 -135
  48. data/vendor/libgit2/deps/ntlmclient/ntlm.h +13 -9
  49. data/vendor/libgit2/deps/ntlmclient/ntlmclient.h +16 -3
  50. data/vendor/libgit2/deps/ntlmclient/unicode.h +10 -4
  51. data/vendor/libgit2/deps/ntlmclient/unicode_builtin.c +16 -27
  52. data/vendor/libgit2/deps/ntlmclient/unicode_builtin.h +20 -0
  53. data/vendor/libgit2/deps/ntlmclient/unicode_iconv.c +28 -52
  54. data/vendor/libgit2/deps/ntlmclient/unicode_iconv.h +22 -0
  55. data/vendor/libgit2/deps/ntlmclient/util.c +15 -1
  56. data/vendor/libgit2/deps/ntlmclient/util.h +2 -1
  57. data/vendor/libgit2/deps/pcre/LICENCE +93 -0
  58. data/vendor/libgit2/deps/pcre/pcre.h +2 -2
  59. data/vendor/libgit2/deps/pcre/pcre_compile.c +29 -17
  60. data/vendor/libgit2/deps/pcre/pcre_jit_compile.c +4 -4
  61. data/vendor/libgit2/deps/pcre/pcreposix.c +2 -3
  62. data/vendor/libgit2/deps/zlib/CMakeLists.txt +6 -5
  63. data/vendor/libgit2/deps/zlib/deflate.c +1 -0
  64. data/vendor/libgit2/include/git2/annotated_commit.h +1 -1
  65. data/vendor/libgit2/include/git2/apply.h +2 -0
  66. data/vendor/libgit2/include/git2/attr.h +89 -0
  67. data/vendor/libgit2/include/git2/blame.h +95 -42
  68. data/vendor/libgit2/include/git2/blob.h +31 -3
  69. data/vendor/libgit2/include/git2/branch.h +25 -0
  70. data/vendor/libgit2/include/git2/cert.h +42 -5
  71. data/vendor/libgit2/include/git2/checkout.h +28 -12
  72. data/vendor/libgit2/include/git2/commit.h +35 -19
  73. data/vendor/libgit2/include/git2/common.h +33 -6
  74. data/vendor/libgit2/include/git2/config.h +1 -1
  75. data/vendor/libgit2/include/git2/deprecated.h +248 -8
  76. data/vendor/libgit2/include/git2/diff.h +35 -20
  77. data/vendor/libgit2/include/git2/errors.h +8 -7
  78. data/vendor/libgit2/include/git2/filter.h +57 -17
  79. data/vendor/libgit2/include/git2/graph.h +20 -2
  80. data/vendor/libgit2/include/git2/index.h +4 -5
  81. data/vendor/libgit2/include/git2/indexer.h +2 -1
  82. data/vendor/libgit2/include/git2/odb.h +44 -20
  83. data/vendor/libgit2/include/git2/pack.h +1 -1
  84. data/vendor/libgit2/include/git2/patch.h +8 -0
  85. data/vendor/libgit2/include/git2/rebase.h +25 -1
  86. data/vendor/libgit2/include/git2/refs.h +9 -5
  87. data/vendor/libgit2/include/git2/remote.h +59 -6
  88. data/vendor/libgit2/include/git2/repository.h +95 -52
  89. data/vendor/libgit2/include/git2/revparse.h +5 -5
  90. data/vendor/libgit2/include/git2/status.h +115 -59
  91. data/vendor/libgit2/include/git2/strarray.h +6 -10
  92. data/vendor/libgit2/include/git2/submodule.h +9 -0
  93. data/vendor/libgit2/include/git2/sys/commit_graph.h +174 -0
  94. data/vendor/libgit2/include/git2/sys/filter.h +49 -28
  95. data/vendor/libgit2/include/git2/sys/midx.h +74 -0
  96. data/vendor/libgit2/include/git2/sys/odb_backend.h +7 -0
  97. data/vendor/libgit2/include/git2/sys/transport.h +1 -0
  98. data/vendor/libgit2/include/git2/tag.h +12 -0
  99. data/vendor/libgit2/include/git2/transport.h +1 -1
  100. data/vendor/libgit2/include/git2/tree.h +2 -14
  101. data/vendor/libgit2/include/git2/types.h +9 -0
  102. data/vendor/libgit2/include/git2/version.h +3 -3
  103. data/vendor/libgit2/include/git2/worktree.h +1 -0
  104. data/vendor/libgit2/src/CMakeLists.txt +77 -44
  105. data/vendor/libgit2/src/alloc.c +21 -8
  106. data/vendor/libgit2/src/allocators/failalloc.c +92 -0
  107. data/vendor/libgit2/src/allocators/failalloc.h +23 -0
  108. data/vendor/libgit2/src/allocators/stdalloc.c +41 -10
  109. data/vendor/libgit2/src/allocators/win32_leakcheck.c +118 -0
  110. data/vendor/libgit2/src/allocators/{win32_crtdbg.h → win32_leakcheck.h} +3 -3
  111. data/vendor/libgit2/src/annotated_commit.c +21 -9
  112. data/vendor/libgit2/src/apply.c +21 -8
  113. data/vendor/libgit2/src/array.h +11 -11
  114. data/vendor/libgit2/src/assert_safe.h +58 -0
  115. data/vendor/libgit2/src/attr.c +181 -74
  116. data/vendor/libgit2/src/attr_file.c +92 -42
  117. data/vendor/libgit2/src/attr_file.h +32 -11
  118. data/vendor/libgit2/src/attrcache.c +44 -40
  119. data/vendor/libgit2/src/attrcache.h +4 -5
  120. data/vendor/libgit2/src/blame.c +28 -15
  121. data/vendor/libgit2/src/blame_git.c +6 -3
  122. data/vendor/libgit2/src/blob.c +46 -24
  123. data/vendor/libgit2/src/branch.c +87 -37
  124. data/vendor/libgit2/src/buffer.c +339 -27
  125. data/vendor/libgit2/src/buffer.h +153 -2
  126. data/vendor/libgit2/src/cache.c +3 -24
  127. data/vendor/libgit2/src/cache.h +7 -7
  128. data/vendor/libgit2/src/cc-compat.h +10 -2
  129. data/vendor/libgit2/src/checkout.c +97 -98
  130. data/vendor/libgit2/src/cherrypick.c +8 -2
  131. data/vendor/libgit2/src/clone.c +104 -29
  132. data/vendor/libgit2/src/commit.c +41 -28
  133. data/vendor/libgit2/src/commit_graph.c +1209 -0
  134. data/vendor/libgit2/src/commit_graph.h +162 -0
  135. data/vendor/libgit2/src/commit_list.c +46 -0
  136. data/vendor/libgit2/src/commit_list.h +2 -0
  137. data/vendor/libgit2/src/common.h +26 -2
  138. data/vendor/libgit2/src/config.c +40 -22
  139. data/vendor/libgit2/src/config_cache.c +9 -4
  140. data/vendor/libgit2/src/config_entries.c +35 -27
  141. data/vendor/libgit2/src/config_file.c +25 -8
  142. data/vendor/libgit2/src/config_parse.c +5 -7
  143. data/vendor/libgit2/src/config_snapshot.c +2 -1
  144. data/vendor/libgit2/src/crlf.c +16 -6
  145. data/vendor/libgit2/src/date.c +4 -3
  146. data/vendor/libgit2/src/delta.c +1 -1
  147. data/vendor/libgit2/src/describe.c +11 -4
  148. data/vendor/libgit2/src/diff.c +23 -19
  149. data/vendor/libgit2/src/diff_driver.c +21 -17
  150. data/vendor/libgit2/src/diff_file.c +5 -7
  151. data/vendor/libgit2/src/diff_generate.c +56 -28
  152. data/vendor/libgit2/src/diff_parse.c +2 -3
  153. data/vendor/libgit2/src/diff_print.c +81 -65
  154. data/vendor/libgit2/src/diff_stats.c +19 -16
  155. data/vendor/libgit2/src/diff_tform.c +13 -13
  156. data/vendor/libgit2/src/diff_xdiff.c +4 -2
  157. data/vendor/libgit2/src/diff_xdiff.h +1 -1
  158. data/vendor/libgit2/src/errors.c +26 -19
  159. data/vendor/libgit2/src/features.h.in +5 -1
  160. data/vendor/libgit2/src/fetch.c +7 -2
  161. data/vendor/libgit2/src/fetchhead.c +8 -4
  162. data/vendor/libgit2/src/filebuf.c +9 -7
  163. data/vendor/libgit2/src/filter.c +209 -113
  164. data/vendor/libgit2/src/filter.h +24 -5
  165. data/vendor/libgit2/src/futils.c +8 -8
  166. data/vendor/libgit2/src/futils.h +4 -4
  167. data/vendor/libgit2/src/graph.c +64 -9
  168. data/vendor/libgit2/src/hash/sha1/collisiondetect.c +3 -3
  169. data/vendor/libgit2/src/hash/sha1/common_crypto.c +3 -3
  170. data/vendor/libgit2/src/hash/sha1/generic.h +1 -1
  171. data/vendor/libgit2/src/hash/sha1/mbedtls.c +12 -12
  172. data/vendor/libgit2/src/hash/sha1/openssl.c +3 -3
  173. data/vendor/libgit2/src/hash/sha1/sha1dc/sha1.c +0 -2
  174. data/vendor/libgit2/src/hash/sha1/win32.c +15 -11
  175. data/vendor/libgit2/src/hash.c +16 -13
  176. data/vendor/libgit2/src/hash.h +1 -1
  177. data/vendor/libgit2/src/hashsig.c +23 -10
  178. data/vendor/libgit2/src/ident.c +13 -3
  179. data/vendor/libgit2/src/idxmap.c +0 -22
  180. data/vendor/libgit2/src/ignore.c +35 -19
  181. data/vendor/libgit2/src/index.c +126 -84
  182. data/vendor/libgit2/src/index.h +1 -1
  183. data/vendor/libgit2/src/indexer.c +60 -36
  184. data/vendor/libgit2/src/integer.h +79 -2
  185. data/vendor/libgit2/src/iterator.c +40 -28
  186. data/vendor/libgit2/src/iterator.h +1 -1
  187. data/vendor/libgit2/src/khash.h +2 -11
  188. data/vendor/libgit2/src/{settings.c → libgit2.c} +125 -49
  189. data/vendor/libgit2/src/libgit2.h +15 -0
  190. data/vendor/libgit2/src/mailmap.c +23 -10
  191. data/vendor/libgit2/src/map.h +3 -3
  192. data/vendor/libgit2/src/merge.c +108 -46
  193. data/vendor/libgit2/src/merge.h +2 -1
  194. data/vendor/libgit2/src/merge_driver.c +19 -13
  195. data/vendor/libgit2/src/merge_file.c +15 -9
  196. data/vendor/libgit2/src/message.c +3 -1
  197. data/vendor/libgit2/src/midx.c +879 -0
  198. data/vendor/libgit2/src/midx.h +110 -0
  199. data/vendor/libgit2/src/mwindow.c +214 -95
  200. data/vendor/libgit2/src/mwindow.h +3 -3
  201. data/vendor/libgit2/src/net.c +133 -4
  202. data/vendor/libgit2/src/net.h +16 -2
  203. data/vendor/libgit2/src/netops.c +6 -4
  204. data/vendor/libgit2/src/netops.h +2 -2
  205. data/vendor/libgit2/src/notes.c +10 -10
  206. data/vendor/libgit2/src/object.c +24 -15
  207. data/vendor/libgit2/src/odb.c +298 -57
  208. data/vendor/libgit2/src/odb.h +16 -2
  209. data/vendor/libgit2/src/odb_loose.c +31 -21
  210. data/vendor/libgit2/src/odb_mempack.c +3 -1
  211. data/vendor/libgit2/src/odb_pack.c +391 -114
  212. data/vendor/libgit2/src/oid.c +7 -4
  213. data/vendor/libgit2/src/pack-objects.c +83 -69
  214. data/vendor/libgit2/src/pack.c +383 -150
  215. data/vendor/libgit2/src/pack.h +44 -9
  216. data/vendor/libgit2/src/patch.c +14 -7
  217. data/vendor/libgit2/src/patch_generate.c +3 -5
  218. data/vendor/libgit2/src/patch_parse.c +6 -3
  219. data/vendor/libgit2/src/path.c +102 -57
  220. data/vendor/libgit2/src/path.h +79 -6
  221. data/vendor/libgit2/src/pathspec.c +12 -11
  222. data/vendor/libgit2/src/pool.c +34 -22
  223. data/vendor/libgit2/src/pool.h +9 -1
  224. data/vendor/libgit2/src/posix.c +43 -12
  225. data/vendor/libgit2/src/posix.h +9 -0
  226. data/vendor/libgit2/src/proxy.c +2 -0
  227. data/vendor/libgit2/src/push.c +2 -0
  228. data/vendor/libgit2/src/reader.c +10 -6
  229. data/vendor/libgit2/src/rebase.c +95 -49
  230. data/vendor/libgit2/src/refdb.c +165 -13
  231. data/vendor/libgit2/src/refdb.h +69 -0
  232. data/vendor/libgit2/src/refdb_fs.c +144 -152
  233. data/vendor/libgit2/src/reflog.c +21 -20
  234. data/vendor/libgit2/src/refs.c +151 -231
  235. data/vendor/libgit2/src/refs.h +2 -20
  236. data/vendor/libgit2/src/refspec.c +80 -44
  237. data/vendor/libgit2/src/regexp.c +2 -2
  238. data/vendor/libgit2/src/remote.c +312 -121
  239. data/vendor/libgit2/src/remote.h +2 -1
  240. data/vendor/libgit2/src/repository.c +351 -189
  241. data/vendor/libgit2/src/repository.h +23 -29
  242. data/vendor/libgit2/src/reset.c +7 -6
  243. data/vendor/libgit2/src/revert.c +8 -2
  244. data/vendor/libgit2/src/revparse.c +19 -13
  245. data/vendor/libgit2/src/revwalk.c +35 -20
  246. data/vendor/libgit2/src/runtime.c +162 -0
  247. data/vendor/libgit2/src/runtime.h +62 -0
  248. data/vendor/libgit2/src/{refdb_fs.h → settings.h} +3 -11
  249. data/vendor/libgit2/src/signature.c +6 -5
  250. data/vendor/libgit2/src/sortedcache.c +2 -3
  251. data/vendor/libgit2/src/sortedcache.h +10 -8
  252. data/vendor/libgit2/src/stash.c +7 -3
  253. data/vendor/libgit2/src/status.c +9 -4
  254. data/vendor/libgit2/src/strarray.c +64 -0
  255. data/vendor/libgit2/src/streams/mbedtls.c +14 -17
  256. data/vendor/libgit2/src/streams/mbedtls.h +1 -1
  257. data/vendor/libgit2/src/streams/openssl.c +113 -207
  258. data/vendor/libgit2/src/streams/openssl.h +9 -1
  259. data/vendor/libgit2/src/streams/openssl_dynamic.c +309 -0
  260. data/vendor/libgit2/src/streams/openssl_dynamic.h +348 -0
  261. data/vendor/libgit2/src/streams/openssl_legacy.c +203 -0
  262. data/vendor/libgit2/src/streams/openssl_legacy.h +63 -0
  263. data/vendor/libgit2/src/streams/registry.c +10 -9
  264. data/vendor/libgit2/src/streams/socket.c +6 -2
  265. data/vendor/libgit2/src/streams/stransport.c +6 -3
  266. data/vendor/libgit2/src/streams/tls.c +5 -3
  267. data/vendor/libgit2/src/submodule.c +134 -66
  268. data/vendor/libgit2/src/submodule.h +9 -9
  269. data/vendor/libgit2/src/sysdir.c +8 -26
  270. data/vendor/libgit2/src/sysdir.h +0 -11
  271. data/vendor/libgit2/src/tag.c +49 -11
  272. data/vendor/libgit2/src/thread.c +140 -0
  273. data/vendor/libgit2/src/thread.h +479 -0
  274. data/vendor/libgit2/src/threadstate.c +83 -0
  275. data/vendor/libgit2/src/threadstate.h +24 -0
  276. data/vendor/libgit2/src/trace.c +2 -2
  277. data/vendor/libgit2/src/trace.h +17 -13
  278. data/vendor/libgit2/src/transaction.c +21 -9
  279. data/vendor/libgit2/src/transport.c +3 -3
  280. data/vendor/libgit2/src/transports/auth.c +1 -1
  281. data/vendor/libgit2/src/transports/auth_negotiate.c +11 -4
  282. data/vendor/libgit2/src/transports/auth_ntlm.c +10 -6
  283. data/vendor/libgit2/src/transports/credential.c +17 -7
  284. data/vendor/libgit2/src/transports/credential_helpers.c +2 -0
  285. data/vendor/libgit2/src/transports/git.c +1 -3
  286. data/vendor/libgit2/src/transports/http.c +19 -17
  287. data/vendor/libgit2/src/transports/http.h +1 -0
  288. data/vendor/libgit2/src/transports/httpclient.c +84 -42
  289. data/vendor/libgit2/src/transports/httpclient.h +1 -1
  290. data/vendor/libgit2/src/transports/local.c +5 -5
  291. data/vendor/libgit2/src/transports/smart.c +14 -9
  292. data/vendor/libgit2/src/transports/smart.h +1 -1
  293. data/vendor/libgit2/src/transports/smart_protocol.c +11 -5
  294. data/vendor/libgit2/src/transports/ssh.c +51 -17
  295. data/vendor/libgit2/src/transports/winhttp.c +156 -88
  296. data/vendor/libgit2/src/tree.c +100 -77
  297. data/vendor/libgit2/src/tree.h +1 -0
  298. data/vendor/libgit2/src/tsort.c +0 -2
  299. data/vendor/libgit2/src/unix/map.c +3 -1
  300. data/vendor/libgit2/src/unix/posix.h +16 -1
  301. data/vendor/libgit2/src/unix/pthread.h +2 -1
  302. data/vendor/libgit2/src/utf8.c +150 -0
  303. data/vendor/libgit2/src/utf8.h +52 -0
  304. data/vendor/libgit2/src/util.c +74 -183
  305. data/vendor/libgit2/src/util.h +33 -39
  306. data/vendor/libgit2/src/vector.c +23 -19
  307. data/vendor/libgit2/src/vector.h +4 -2
  308. data/vendor/libgit2/src/win32/findfile.c +4 -2
  309. data/vendor/libgit2/src/win32/git2.rc +18 -3
  310. data/vendor/libgit2/src/win32/map.c +1 -1
  311. data/vendor/libgit2/src/win32/msvc-compat.h +9 -1
  312. data/vendor/libgit2/src/win32/path_w32.c +23 -25
  313. data/vendor/libgit2/src/win32/path_w32.h +0 -1
  314. data/vendor/libgit2/src/win32/posix_w32.c +77 -1
  315. data/vendor/libgit2/src/win32/precompiled.h +0 -1
  316. data/vendor/libgit2/src/win32/reparse.h +4 -4
  317. data/vendor/libgit2/src/win32/thread.c +24 -15
  318. data/vendor/libgit2/src/win32/thread.h +1 -1
  319. data/vendor/libgit2/src/win32/w32_buffer.c +3 -3
  320. data/vendor/libgit2/src/win32/w32_common.h +18 -9
  321. data/vendor/libgit2/src/win32/{w32_crtdbg_stacktrace.c → w32_leakcheck.c} +269 -33
  322. data/vendor/libgit2/src/win32/w32_leakcheck.h +222 -0
  323. data/vendor/libgit2/src/win32/w32_util.h +6 -6
  324. data/vendor/libgit2/src/worktree.c +37 -15
  325. data/vendor/libgit2/src/zstream.c +1 -1
  326. metadata +56 -38
  327. data/vendor/libgit2/cmake/Modules/CheckPrototypeDefinition.c.in +0 -29
  328. data/vendor/libgit2/cmake/Modules/CheckPrototypeDefinition.cmake +0 -96
  329. data/vendor/libgit2/src/allocators/win32_crtdbg.c +0 -118
  330. data/vendor/libgit2/src/buf_text.c +0 -316
  331. data/vendor/libgit2/src/buf_text.h +0 -122
  332. data/vendor/libgit2/src/global.c +0 -361
  333. data/vendor/libgit2/src/global.h +0 -41
  334. data/vendor/libgit2/src/thread-utils.c +0 -58
  335. data/vendor/libgit2/src/thread-utils.h +0 -246
  336. data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.h +0 -127
  337. data/vendor/libgit2/src/win32/w32_stack.c +0 -188
  338. data/vendor/libgit2/src/win32/w32_stack.h +0 -140
@@ -22,6 +22,7 @@ typedef struct git_mwindow {
22
22
  } git_mwindow;
23
23
 
24
24
  typedef struct git_mwindow_file {
25
+ git_mutex lock; /* protects updates to fd */
25
26
  git_mwindow *windows;
26
27
  int fd;
27
28
  off64_t size;
@@ -38,8 +39,7 @@ typedef struct git_mwindow_ctl {
38
39
  } git_mwindow_ctl;
39
40
 
40
41
  int git_mwindow_contains(git_mwindow *win, off64_t offset);
41
- void git_mwindow_free_all(git_mwindow_file *mwf); /* locks */
42
- void git_mwindow_free_all_locked(git_mwindow_file *mwf); /* run under lock */
42
+ int git_mwindow_free_all(git_mwindow_file *mwf); /* locks */
43
43
  unsigned char *git_mwindow_open(git_mwindow_file *mwf, git_mwindow **cursor, off64_t offset, size_t extra, unsigned int *left);
44
44
  int git_mwindow_file_register(git_mwindow_file *mwf);
45
45
  void git_mwindow_file_deregister(git_mwindow_file *mwf);
@@ -49,6 +49,6 @@ extern int git_mwindow_global_init(void);
49
49
 
50
50
  struct git_pack_file; /* just declaration to avoid cyclical includes */
51
51
  int git_mwindow_get_pack(struct git_pack_file **out, const char *path);
52
- void git_mwindow_put_pack(struct git_pack_file *pack);
52
+ int git_mwindow_put_pack(struct git_pack_file *pack);
53
53
 
54
54
  #endif
@@ -14,7 +14,7 @@
14
14
  #include "posix.h"
15
15
  #include "buffer.h"
16
16
  #include "http_parser.h"
17
- #include "global.h"
17
+ #include "runtime.h"
18
18
 
19
19
  #define DEFAULT_PORT_HTTP "80"
20
20
  #define DEFAULT_PORT_HTTPS "443"
@@ -35,6 +35,46 @@ static const char *default_port_for_scheme(const char *scheme)
35
35
  return NULL;
36
36
  }
37
37
 
38
+ int git_net_url_dup(git_net_url *out, git_net_url *in)
39
+ {
40
+ if (in->scheme) {
41
+ out->scheme = git__strdup(in->scheme);
42
+ GIT_ERROR_CHECK_ALLOC(out->scheme);
43
+ }
44
+
45
+ if (in->host) {
46
+ out->host = git__strdup(in->host);
47
+ GIT_ERROR_CHECK_ALLOC(out->host);
48
+ }
49
+
50
+ if (in->port) {
51
+ out->port = git__strdup(in->port);
52
+ GIT_ERROR_CHECK_ALLOC(out->port);
53
+ }
54
+
55
+ if (in->path) {
56
+ out->path = git__strdup(in->path);
57
+ GIT_ERROR_CHECK_ALLOC(out->path);
58
+ }
59
+
60
+ if (in->query) {
61
+ out->query = git__strdup(in->query);
62
+ GIT_ERROR_CHECK_ALLOC(out->query);
63
+ }
64
+
65
+ if (in->username) {
66
+ out->username = git__strdup(in->username);
67
+ GIT_ERROR_CHECK_ALLOC(out->username);
68
+ }
69
+
70
+ if (in->password) {
71
+ out->password = git__strdup(in->password);
72
+ GIT_ERROR_CHECK_ALLOC(out->password);
73
+ }
74
+
75
+ return 0;
76
+ }
77
+
38
78
  int git_net_url_parse(git_net_url *url, const char *given)
39
79
  {
40
80
  struct http_parser_url u = {0};
@@ -281,7 +321,8 @@ int git_net_url_apply_redirect(
281
321
  git_net_url tmp = GIT_NET_URL_INIT;
282
322
  int error = 0;
283
323
 
284
- assert(url && redirect_location);
324
+ GIT_ASSERT(url);
325
+ GIT_ASSERT(redirect_location);
285
326
 
286
327
  if (redirect_location[0] == '/') {
287
328
  git__free(url->path);
@@ -334,9 +375,19 @@ bool git_net_url_valid(git_net_url *url)
334
375
  return (url->host && url->port && url->path);
335
376
  }
336
377
 
337
- int git_net_url_is_default_port(git_net_url *url)
378
+ bool git_net_url_is_default_port(git_net_url *url)
338
379
  {
339
- return (strcmp(url->port, default_port_for_scheme(url->scheme)) == 0);
380
+ const char *default_port;
381
+
382
+ if ((default_port = default_port_for_scheme(url->scheme)) != NULL)
383
+ return (strcmp(url->port, default_port) == 0);
384
+ else
385
+ return false;
386
+ }
387
+
388
+ bool git_net_url_is_ipv6(git_net_url *url)
389
+ {
390
+ return (strchr(url->host, ':') != NULL);
340
391
  }
341
392
 
342
393
  void git_net_url_swap(git_net_url *a, git_net_url *b)
@@ -350,6 +401,10 @@ void git_net_url_swap(git_net_url *a, git_net_url *b)
350
401
 
351
402
  int git_net_url_fmt(git_buf *buf, git_net_url *url)
352
403
  {
404
+ GIT_ASSERT_ARG(url);
405
+ GIT_ASSERT_ARG(url->scheme);
406
+ GIT_ASSERT_ARG(url->host);
407
+
353
408
  git_buf_puts(buf, url->scheme);
354
409
  git_buf_puts(buf, "://");
355
410
 
@@ -393,6 +448,80 @@ int git_net_url_fmt_path(git_buf *buf, git_net_url *url)
393
448
  return git_buf_oom(buf) ? -1 : 0;
394
449
  }
395
450
 
451
+ static bool matches_pattern(
452
+ git_net_url *url,
453
+ const char *pattern,
454
+ size_t pattern_len)
455
+ {
456
+ const char *domain, *port = NULL, *colon;
457
+ size_t host_len, domain_len, port_len = 0, wildcard = 0;
458
+
459
+ GIT_UNUSED(url);
460
+ GIT_UNUSED(pattern);
461
+
462
+ if (!pattern_len)
463
+ return false;
464
+ else if (pattern_len == 1 && pattern[0] == '*')
465
+ return true;
466
+ else if (pattern_len > 1 && pattern[0] == '*' && pattern[1] == '.')
467
+ wildcard = 2;
468
+ else if (pattern[0] == '.')
469
+ wildcard = 1;
470
+
471
+ domain = pattern + wildcard;
472
+ domain_len = pattern_len - wildcard;
473
+
474
+ if ((colon = memchr(domain, ':', domain_len)) != NULL) {
475
+ domain_len = colon - domain;
476
+ port = colon + 1;
477
+ port_len = pattern_len - wildcard - domain_len - 1;
478
+ }
479
+
480
+ /* A pattern's port *must* match if it's specified */
481
+ if (port_len && git__strlcmp(url->port, port, port_len) != 0)
482
+ return false;
483
+
484
+ /* No wildcard? Host must match exactly. */
485
+ if (!wildcard)
486
+ return !git__strlcmp(url->host, domain, domain_len);
487
+
488
+ /* Wildcard: ensure there's (at least) a suffix match */
489
+ if ((host_len = strlen(url->host)) < domain_len ||
490
+ memcmp(url->host + (host_len - domain_len), domain, domain_len))
491
+ return false;
492
+
493
+ /* The pattern is *.domain and the host is simply domain */
494
+ if (host_len == domain_len)
495
+ return true;
496
+
497
+ /* The pattern is *.domain and the host is foo.domain */
498
+ return (url->host[host_len - domain_len - 1] == '.');
499
+ }
500
+
501
+ bool git_net_url_matches_pattern(git_net_url *url, const char *pattern)
502
+ {
503
+ return matches_pattern(url, pattern, strlen(pattern));
504
+ }
505
+
506
+ bool git_net_url_matches_pattern_list(
507
+ git_net_url *url,
508
+ const char *pattern_list)
509
+ {
510
+ const char *pattern, *pattern_end, *sep;
511
+
512
+ for (pattern = pattern_list;
513
+ pattern && *pattern;
514
+ pattern = sep ? sep + 1 : NULL) {
515
+ sep = strchr(pattern, ',');
516
+ pattern_end = sep ? sep : strchr(pattern, '\0');
517
+
518
+ if (matches_pattern(url, pattern, (pattern_end - pattern)))
519
+ return true;
520
+ }
521
+
522
+ return false;
523
+ }
524
+
396
525
  void git_net_url_dispose(git_net_url *url)
397
526
  {
398
527
  if (url->username)
@@ -21,6 +21,9 @@ typedef struct git_net_url {
21
21
 
22
22
  #define GIT_NET_URL_INIT { NULL }
23
23
 
24
+ /** Duplicate a URL */
25
+ extern int git_net_url_dup(git_net_url *out, git_net_url *in);
26
+
24
27
  /** Parses a string containing a URL into a structure. */
25
28
  extern int git_net_url_parse(git_net_url *url, const char *str);
26
29
 
@@ -33,8 +36,11 @@ extern int git_net_url_joinpath(
33
36
  /** Ensures that a URL is minimally valid (contains a host, port and path) */
34
37
  extern bool git_net_url_valid(git_net_url *url);
35
38
 
36
- /** Returns nonzero if the URL is on the default port. */
37
- extern int git_net_url_is_default_port(git_net_url *url);
39
+ /** Returns true if the URL is on the default port. */
40
+ extern bool git_net_url_is_default_port(git_net_url *url);
41
+
42
+ /** Returns true if the host portion of the URL is an ipv6 address. */
43
+ extern bool git_net_url_is_ipv6(git_net_url *url);
38
44
 
39
45
  /* Applies a redirect to the URL with a git-aware service suffix. */
40
46
  extern int git_net_url_apply_redirect(
@@ -51,6 +57,14 @@ extern int git_net_url_fmt(git_buf *out, git_net_url *url);
51
57
  /** Place the path and query string into the given buffer. */
52
58
  extern int git_net_url_fmt_path(git_buf *buf, git_net_url *url);
53
59
 
60
+ /** Determines if the url matches given pattern or pattern list */
61
+ extern bool git_net_url_matches_pattern(
62
+ git_net_url *url,
63
+ const char *pattern);
64
+ extern bool git_net_url_matches_pattern_list(
65
+ git_net_url *url,
66
+ const char *pattern_list);
67
+
54
68
  /** Disposes the contents of the structure. */
55
69
  extern void git_net_url_dispose(git_net_url *url);
56
70
 
@@ -13,7 +13,7 @@
13
13
  #include "posix.h"
14
14
  #include "buffer.h"
15
15
  #include "http_parser.h"
16
- #include "global.h"
16
+ #include "runtime.h"
17
17
 
18
18
  int gitno_recv(gitno_buffer *buf)
19
19
  {
@@ -61,18 +61,20 @@ void gitno_buffer_setup_fromstream(git_stream *st, gitno_buffer *buf, char *data
61
61
  }
62
62
 
63
63
  /* Consume up to ptr and move the rest of the buffer to the beginning */
64
- void gitno_consume(gitno_buffer *buf, const char *ptr)
64
+ int gitno_consume(gitno_buffer *buf, const char *ptr)
65
65
  {
66
66
  size_t consumed;
67
67
 
68
- assert(ptr - buf->data >= 0);
69
- assert(ptr - buf->data <= (int) buf->len);
68
+ GIT_ASSERT(ptr - buf->data >= 0);
69
+ GIT_ASSERT(ptr - buf->data <= (int) buf->len);
70
70
 
71
71
  consumed = ptr - buf->data;
72
72
 
73
73
  memmove(buf->data, ptr, buf->offset - consumed);
74
74
  memset(buf->data + buf->offset, 0x0, buf->len - buf->offset);
75
75
  buf->offset -= consumed;
76
+
77
+ return 0;
76
78
  }
77
79
 
78
80
  /* Consume const bytes and move the rest of the buffer to the beginning */
@@ -14,7 +14,7 @@
14
14
  #include "net.h"
15
15
 
16
16
  #ifdef GIT_OPENSSL
17
- # include <openssl/ssl.h>
17
+ # include "streams/openssl.h"
18
18
  #endif
19
19
 
20
20
  typedef struct gitno_ssl {
@@ -62,7 +62,7 @@ void gitno_buffer_setup_fromstream(git_stream *st, gitno_buffer *buf, char *data
62
62
  void gitno_buffer_setup_callback(gitno_buffer *buf, char *data, size_t len, int (*recv)(gitno_buffer *buf), void *cb_data);
63
63
  int gitno_recv(gitno_buffer *buf);
64
64
 
65
- void gitno_consume(gitno_buffer *buf, const char *ptr);
65
+ int gitno_consume(gitno_buffer *buf, const char *ptr);
66
66
  void gitno_consume_n(gitno_buffer *buf, size_t cons);
67
67
 
68
68
  #endif
@@ -627,11 +627,11 @@ int git_note_default_ref(git_buf *out, git_repository *repo)
627
627
  char *default_ref;
628
628
  int error;
629
629
 
630
- assert(out && repo);
630
+ GIT_ASSERT_ARG(out);
631
+ GIT_ASSERT_ARG(repo);
631
632
 
632
- git_buf_sanitize(out);
633
-
634
- if ((error = note_get_default_ref(&default_ref, repo)) < 0)
633
+ if ((error = git_buf_sanitize(out)) < 0 ||
634
+ (error = note_get_default_ref(&default_ref, repo)) < 0)
635
635
  return error;
636
636
 
637
637
  git_buf_attach(out, default_ref, strlen(default_ref));
@@ -640,25 +640,25 @@ int git_note_default_ref(git_buf *out, git_repository *repo)
640
640
 
641
641
  const git_signature *git_note_committer(const git_note *note)
642
642
  {
643
- assert(note);
643
+ GIT_ASSERT_ARG_WITH_RETVAL(note, NULL);
644
644
  return note->committer;
645
645
  }
646
646
 
647
647
  const git_signature *git_note_author(const git_note *note)
648
648
  {
649
- assert(note);
649
+ GIT_ASSERT_ARG_WITH_RETVAL(note, NULL);
650
650
  return note->author;
651
651
  }
652
652
 
653
- const char * git_note_message(const git_note *note)
653
+ const char *git_note_message(const git_note *note)
654
654
  {
655
- assert(note);
655
+ GIT_ASSERT_ARG_WITH_RETVAL(note, NULL);
656
656
  return note->message;
657
657
  }
658
658
 
659
- const git_oid * git_note_id(const git_note *note)
659
+ const git_oid *git_note_id(const git_note *note)
660
660
  {
661
- assert(note);
661
+ GIT_ASSERT_ARG_WITH_RETVAL(note, NULL);
662
662
  return &note->id;
663
663
  }
664
664
 
@@ -67,7 +67,7 @@ int git_object__from_raw(
67
67
  size_t object_size;
68
68
  int error;
69
69
 
70
- assert(object_out);
70
+ GIT_ASSERT_ARG(object_out);
71
71
  *object_out = NULL;
72
72
 
73
73
  /* Validate type match */
@@ -86,11 +86,12 @@ int git_object__from_raw(
86
86
  GIT_ERROR_CHECK_ALLOC(object);
87
87
  object->cached.flags = GIT_CACHE_STORE_PARSED;
88
88
  object->cached.type = type;
89
- git_odb_hash(&object->cached.oid, data, size, type);
89
+ if ((error = git_odb_hash(&object->cached.oid, data, size, type)) < 0)
90
+ return error;
90
91
 
91
92
  /* Parse raw object data */
92
93
  def = &git_objects_table[type];
93
- assert(def->free && def->parse_raw);
94
+ GIT_ASSERT(def->free && def->parse_raw);
94
95
 
95
96
  if ((error = def->parse_raw(object, data, size)) < 0) {
96
97
  def->free(object);
@@ -114,7 +115,7 @@ int git_object__from_odb_object(
114
115
  git_object_def *def;
115
116
  git_object *object = NULL;
116
117
 
117
- assert(object_out);
118
+ GIT_ASSERT_ARG(object_out);
118
119
  *object_out = NULL;
119
120
 
120
121
  /* Validate type match */
@@ -140,7 +141,7 @@ int git_object__from_odb_object(
140
141
 
141
142
  /* Parse raw object data */
142
143
  def = &git_objects_table[odb_obj->cached.type];
143
- assert(def->free && def->parse);
144
+ GIT_ASSERT(def->free && def->parse);
144
145
 
145
146
  if ((error = def->parse(object, odb_obj)) < 0)
146
147
  def->free(object);
@@ -173,7 +174,9 @@ int git_object_lookup_prefix(
173
174
  git_odb_object *odb_obj = NULL;
174
175
  int error = 0;
175
176
 
176
- assert(repo && object_out && id);
177
+ GIT_ASSERT_ARG(repo);
178
+ GIT_ASSERT_ARG(object_out);
179
+ GIT_ASSERT_ARG(id);
177
180
 
178
181
  if (len < GIT_OID_MINPREFIXLEN) {
179
182
  git_error_set(GIT_ERROR_OBJECT, "ambiguous lookup - OID prefix is too short");
@@ -210,7 +213,7 @@ int git_object_lookup_prefix(
210
213
  } else if (cached->flags == GIT_CACHE_STORE_RAW) {
211
214
  odb_obj = (git_odb_object *)cached;
212
215
  } else {
213
- assert(!"Wrong caching type in the global object cache");
216
+ GIT_ASSERT(!"Wrong caching type in the global object cache");
214
217
  }
215
218
  } else {
216
219
  /* Object was not found in the cache, let's explore the backends.
@@ -262,19 +265,19 @@ void git_object_free(git_object *object)
262
265
 
263
266
  const git_oid *git_object_id(const git_object *obj)
264
267
  {
265
- assert(obj);
268
+ GIT_ASSERT_ARG_WITH_RETVAL(obj, NULL);
266
269
  return &obj->cached.oid;
267
270
  }
268
271
 
269
272
  git_object_t git_object_type(const git_object *obj)
270
273
  {
271
- assert(obj);
274
+ GIT_ASSERT_ARG_WITH_RETVAL(obj, GIT_OBJECT_INVALID);
272
275
  return obj->cached.type;
273
276
  }
274
277
 
275
278
  git_repository *git_object_owner(const git_object *obj)
276
279
  {
277
- assert(obj);
280
+ GIT_ASSERT_ARG_WITH_RETVAL(obj, NULL);
278
281
  return obj->repo;
279
282
  }
280
283
 
@@ -395,9 +398,10 @@ int git_object_peel(
395
398
  git_object *source, *deref = NULL;
396
399
  int error;
397
400
 
398
- assert(object && peeled);
401
+ GIT_ASSERT_ARG(object);
402
+ GIT_ASSERT_ARG(peeled);
399
403
 
400
- assert(target_type == GIT_OBJECT_TAG ||
404
+ GIT_ASSERT_ARG(target_type == GIT_OBJECT_TAG ||
401
405
  target_type == GIT_OBJECT_COMMIT ||
402
406
  target_type == GIT_OBJECT_TREE ||
403
407
  target_type == GIT_OBJECT_BLOB ||
@@ -460,7 +464,9 @@ int git_object_lookup_bypath(
460
464
  git_tree *tree = NULL;
461
465
  git_tree_entry *entry = NULL;
462
466
 
463
- assert(out && treeish && path);
467
+ GIT_ASSERT_ARG(out);
468
+ GIT_ASSERT_ARG(treeish);
469
+ GIT_ASSERT_ARG(path);
464
470
 
465
471
  if ((error = git_object_peel((git_object**)&tree, treeish, GIT_OBJECT_TREE)) < 0 ||
466
472
  (error = git_tree_entry_bypath(&entry, tree, path)) < 0)
@@ -492,9 +498,12 @@ int git_object_short_id(git_buf *out, const git_object *obj)
492
498
  git_oid id = {{0}};
493
499
  git_odb *odb;
494
500
 
495
- assert(out && obj);
501
+ GIT_ASSERT_ARG(out);
502
+ GIT_ASSERT_ARG(obj);
503
+
504
+ if ((error = git_buf_sanitize(out)) < 0)
505
+ return error;
496
506
 
497
- git_buf_sanitize(out);
498
507
  repo = git_object_owner(obj);
499
508
 
500
509
  if ((error = git_repository__configmap_lookup(&len, repo, GIT_CONFIGMAP_ABBREV)) < 0)