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
@@ -0,0 +1,23 @@
1
+ /*
2
+ * Copyright (C) the libgit2 contributors. All rights reserved.
3
+ *
4
+ * This file is part of libgit2, distributed under the GNU GPL v2 with
5
+ * a Linking Exception. For full terms see the included COPYING file.
6
+ */
7
+
8
+ #ifndef INCLUDE_allocators_failalloc_h__
9
+ #define INCLUDE_allocators_failalloc_h__
10
+
11
+ #include "common.h"
12
+
13
+ extern void *git_failalloc_malloc(size_t len, const char *file, int line);
14
+ extern void *git_failalloc_calloc(size_t nelem, size_t elsize, const char *file, int line);
15
+ extern char *git_failalloc_strdup(const char *str, const char *file, int line);
16
+ extern char *git_failalloc_strndup(const char *str, size_t n, const char *file, int line);
17
+ extern char *git_failalloc_substrdup(const char *start, size_t n, const char *file, int line);
18
+ extern void *git_failalloc_realloc(void *ptr, size_t size, const char *file, int line);
19
+ extern void *git_failalloc_reallocarray(void *ptr, size_t nelem, size_t elsize, const char *file, int line);
20
+ extern void *git_failalloc_mallocarray(size_t nelem, size_t elsize, const char *file, int line);
21
+ extern void git_failalloc_free(void *ptr);
22
+
23
+ #endif
@@ -9,34 +9,56 @@
9
9
 
10
10
  static void *stdalloc__malloc(size_t len, const char *file, int line)
11
11
  {
12
- void *ptr = malloc(len);
12
+ void *ptr;
13
13
 
14
14
  GIT_UNUSED(file);
15
15
  GIT_UNUSED(line);
16
16
 
17
- if (!ptr) git_error_set_oom();
17
+ #ifdef GIT_DEBUG_STRICT_ALLOC
18
+ if (!len)
19
+ return NULL;
20
+ #endif
21
+
22
+ ptr = malloc(len);
23
+
24
+ if (!ptr)
25
+ git_error_set_oom();
26
+
18
27
  return ptr;
19
28
  }
20
29
 
21
30
  static void *stdalloc__calloc(size_t nelem, size_t elsize, const char *file, int line)
22
31
  {
23
- void *ptr = calloc(nelem, elsize);
32
+ void *ptr;
24
33
 
25
34
  GIT_UNUSED(file);
26
35
  GIT_UNUSED(line);
27
36
 
28
- if (!ptr) git_error_set_oom();
37
+ #ifdef GIT_DEBUG_STRICT_ALLOC
38
+ if (!elsize || !nelem)
39
+ return NULL;
40
+ #endif
41
+
42
+ ptr = calloc(nelem, elsize);
43
+
44
+ if (!ptr)
45
+ git_error_set_oom();
46
+
29
47
  return ptr;
30
48
  }
31
49
 
32
50
  static char *stdalloc__strdup(const char *str, const char *file, int line)
33
51
  {
34
- char *ptr = strdup(str);
52
+ char *ptr;
35
53
 
36
54
  GIT_UNUSED(file);
37
55
  GIT_UNUSED(line);
38
56
 
39
- if (!ptr) git_error_set_oom();
57
+ ptr = strdup(str);
58
+
59
+ if (!ptr)
60
+ git_error_set_oom();
61
+
40
62
  return ptr;
41
63
  }
42
64
 
@@ -48,7 +70,7 @@ static char *stdalloc__strndup(const char *str, size_t n, const char *file, int
48
70
  length = p_strnlen(str, n);
49
71
 
50
72
  if (GIT_ADD_SIZET_OVERFLOW(&alloclength, length, 1) ||
51
- !(ptr = stdalloc__malloc(alloclength, file, line)))
73
+ !(ptr = stdalloc__malloc(alloclength, file, line)))
52
74
  return NULL;
53
75
 
54
76
  if (length)
@@ -65,7 +87,7 @@ static char *stdalloc__substrdup(const char *start, size_t n, const char *file,
65
87
  size_t alloclen;
66
88
 
67
89
  if (GIT_ADD_SIZET_OVERFLOW(&alloclen, n, 1) ||
68
- !(ptr = stdalloc__malloc(alloclen, file, line)))
90
+ !(ptr = stdalloc__malloc(alloclen, file, line)))
69
91
  return NULL;
70
92
 
71
93
  memcpy(ptr, start, n);
@@ -75,12 +97,21 @@ static char *stdalloc__substrdup(const char *start, size_t n, const char *file,
75
97
 
76
98
  static void *stdalloc__realloc(void *ptr, size_t size, const char *file, int line)
77
99
  {
78
- void *new_ptr = realloc(ptr, size);
100
+ void *new_ptr;
79
101
 
80
102
  GIT_UNUSED(file);
81
103
  GIT_UNUSED(line);
82
104
 
83
- if (!new_ptr) git_error_set_oom();
105
+ #ifdef GIT_DEBUG_STRICT_ALLOC
106
+ if (!size)
107
+ return NULL;
108
+ #endif
109
+
110
+ new_ptr = realloc(ptr, size);
111
+
112
+ if (!new_ptr)
113
+ git_error_set_oom();
114
+
84
115
  return new_ptr;
85
116
  }
86
117
 
@@ -0,0 +1,118 @@
1
+ /*
2
+ * Copyright (C) the libgit2 contributors. All rights reserved.
3
+ *
4
+ * This file is part of libgit2, distributed under the GNU GPL v2 with
5
+ * a Linking Exception. For full terms see the included COPYING file.
6
+ */
7
+
8
+ #include "win32_leakcheck.h"
9
+
10
+ #if defined(GIT_WIN32_LEAKCHECK)
11
+
12
+ #include "win32/w32_leakcheck.h"
13
+
14
+ static void *leakcheck_malloc(size_t len, const char *file, int line)
15
+ {
16
+ void *ptr = _malloc_dbg(len, _NORMAL_BLOCK, git_win32_leakcheck_stacktrace(1,file), line);
17
+ if (!ptr) git_error_set_oom();
18
+ return ptr;
19
+ }
20
+
21
+ static void *leakcheck_calloc(size_t nelem, size_t elsize, const char *file, int line)
22
+ {
23
+ void *ptr = _calloc_dbg(nelem, elsize, _NORMAL_BLOCK, git_win32_leakcheck_stacktrace(1,file), line);
24
+ if (!ptr) git_error_set_oom();
25
+ return ptr;
26
+ }
27
+
28
+ static char *leakcheck_strdup(const char *str, const char *file, int line)
29
+ {
30
+ char *ptr = _strdup_dbg(str, _NORMAL_BLOCK, git_win32_leakcheck_stacktrace(1,file), line);
31
+ if (!ptr) git_error_set_oom();
32
+ return ptr;
33
+ }
34
+
35
+ static char *leakcheck_strndup(const char *str, size_t n, const char *file, int line)
36
+ {
37
+ size_t length = 0, alloclength;
38
+ char *ptr;
39
+
40
+ length = p_strnlen(str, n);
41
+
42
+ if (GIT_ADD_SIZET_OVERFLOW(&alloclength, length, 1) ||
43
+ !(ptr = leakcheck_malloc(alloclength, file, line)))
44
+ return NULL;
45
+
46
+ if (length)
47
+ memcpy(ptr, str, length);
48
+
49
+ ptr[length] = '\0';
50
+
51
+ return ptr;
52
+ }
53
+
54
+ static char *leakcheck_substrdup(const char *start, size_t n, const char *file, int line)
55
+ {
56
+ char *ptr;
57
+ size_t alloclen;
58
+
59
+ if (GIT_ADD_SIZET_OVERFLOW(&alloclen, n, 1) ||
60
+ !(ptr = leakcheck_malloc(alloclen, file, line)))
61
+ return NULL;
62
+
63
+ memcpy(ptr, start, n);
64
+ ptr[n] = '\0';
65
+ return ptr;
66
+ }
67
+
68
+ static void *leakcheck_realloc(void *ptr, size_t size, const char *file, int line)
69
+ {
70
+ void *new_ptr = _realloc_dbg(ptr, size, _NORMAL_BLOCK, git_win32_leakcheck_stacktrace(1,file), line);
71
+ if (!new_ptr) git_error_set_oom();
72
+ return new_ptr;
73
+ }
74
+
75
+ static void *leakcheck_reallocarray(void *ptr, size_t nelem, size_t elsize, const char *file, int line)
76
+ {
77
+ size_t newsize;
78
+
79
+ if (GIT_MULTIPLY_SIZET_OVERFLOW(&newsize, nelem, elsize))
80
+ return NULL;
81
+
82
+ return leakcheck_realloc(ptr, newsize, file, line);
83
+ }
84
+
85
+ static void *leakcheck_mallocarray(size_t nelem, size_t elsize, const char *file, int line)
86
+ {
87
+ return leakcheck_reallocarray(NULL, nelem, elsize, file, line);
88
+ }
89
+
90
+ static void leakcheck_free(void *ptr)
91
+ {
92
+ free(ptr);
93
+ }
94
+
95
+ int git_win32_leakcheck_init_allocator(git_allocator *allocator)
96
+ {
97
+ allocator->gmalloc = leakcheck_malloc;
98
+ allocator->gcalloc = leakcheck_calloc;
99
+ allocator->gstrdup = leakcheck_strdup;
100
+ allocator->gstrndup = leakcheck_strndup;
101
+ allocator->gsubstrdup = leakcheck_substrdup;
102
+ allocator->grealloc = leakcheck_realloc;
103
+ allocator->greallocarray = leakcheck_reallocarray;
104
+ allocator->gmallocarray = leakcheck_mallocarray;
105
+ allocator->gfree = leakcheck_free;
106
+ return 0;
107
+ }
108
+
109
+ #else
110
+
111
+ int git_win32_leakcheck_init_allocator(git_allocator *allocator)
112
+ {
113
+ GIT_UNUSED(allocator);
114
+ git_error_set(GIT_EINVALID, "leakcheck memory allocator not available");
115
+ return -1;
116
+ }
117
+
118
+ #endif
@@ -5,13 +5,13 @@
5
5
  * a Linking Exception. For full terms see the included COPYING file.
6
6
  */
7
7
 
8
- #ifndef INCLUDE_allocators_crtdbg_h
9
- #define INCLUDE_allocators_crtdbg_h
8
+ #ifndef INCLUDE_allocators_win32_leakcheck_h
9
+ #define INCLUDE_allocators_win32_leakcheck_h
10
10
 
11
11
  #include "common.h"
12
12
 
13
13
  #include "alloc.h"
14
14
 
15
- int git_win32_crtdbg_init_allocator(git_allocator *allocator);
15
+ int git_win32_leakcheck_init_allocator(git_allocator *allocator);
16
16
 
17
17
  #endif
@@ -26,7 +26,8 @@ static int annotated_commit_init(
26
26
  git_annotated_commit *annotated_commit;
27
27
  int error = 0;
28
28
 
29
- assert(out && commit);
29
+ GIT_ASSERT_ARG(out);
30
+ GIT_ASSERT_ARG(commit);
30
31
 
31
32
  *out = NULL;
32
33
 
@@ -63,7 +64,9 @@ static int annotated_commit_init_from_id(
63
64
  git_commit *commit = NULL;
64
65
  int error = 0;
65
66
 
66
- assert(out && repo && id);
67
+ GIT_ASSERT_ARG(out);
68
+ GIT_ASSERT_ARG(repo);
69
+ GIT_ASSERT_ARG(id);
67
70
 
68
71
  *out = NULL;
69
72
 
@@ -100,7 +103,9 @@ int git_annotated_commit_from_revspec(
100
103
  git_object *obj, *commit;
101
104
  int error;
102
105
 
103
- assert(out && repo && revspec);
106
+ GIT_ASSERT_ARG(out);
107
+ GIT_ASSERT_ARG(repo);
108
+ GIT_ASSERT_ARG(revspec);
104
109
 
105
110
  if ((error = git_revparse_single(&obj, repo, revspec)) < 0)
106
111
  return error;
@@ -126,7 +131,9 @@ int git_annotated_commit_from_ref(
126
131
  git_object *peeled;
127
132
  int error = 0;
128
133
 
129
- assert(out && repo && ref);
134
+ GIT_ASSERT_ARG(out);
135
+ GIT_ASSERT_ARG(repo);
136
+ GIT_ASSERT_ARG(ref);
130
137
 
131
138
  *out = NULL;
132
139
 
@@ -154,11 +161,12 @@ int git_annotated_commit_from_head(
154
161
  git_reference *head;
155
162
  int error;
156
163
 
157
- assert(out && repo);
164
+ GIT_ASSERT_ARG(out);
165
+ GIT_ASSERT_ARG(repo);
158
166
 
159
167
  *out = NULL;
160
168
 
161
- if ((error = git_reference_lookup(&head, repo, GIT_HEAD_FILE)) < 0)
169
+ if ((error = git_reference_lookup(&head, repo, GIT_HEAD_FILE)) < 0)
162
170
  return -1;
163
171
 
164
172
  error = git_annotated_commit_from_ref(out, repo, head);
@@ -174,7 +182,11 @@ int git_annotated_commit_from_fetchhead(
174
182
  const char *remote_url,
175
183
  const git_oid *id)
176
184
  {
177
- assert(repo && id && branch_name && remote_url);
185
+ GIT_ASSERT_ARG(out);
186
+ GIT_ASSERT_ARG(repo);
187
+ GIT_ASSERT_ARG(branch_name);
188
+ GIT_ASSERT_ARG(remote_url);
189
+ GIT_ASSERT_ARG(id);
178
190
 
179
191
  if (annotated_commit_init_from_id(out, repo, id, branch_name) < 0)
180
192
  return -1;
@@ -192,14 +204,14 @@ int git_annotated_commit_from_fetchhead(
192
204
  const git_oid *git_annotated_commit_id(
193
205
  const git_annotated_commit *annotated_commit)
194
206
  {
195
- assert(annotated_commit);
207
+ GIT_ASSERT_ARG_WITH_RETVAL(annotated_commit, NULL);
196
208
  return git_commit_id(annotated_commit->commit);
197
209
  }
198
210
 
199
211
  const char *git_annotated_commit_ref(
200
212
  const git_annotated_commit *annotated_commit)
201
213
  {
202
- assert(annotated_commit);
214
+ GIT_ASSERT_ARG_WITH_RETVAL(annotated_commit, NULL);
203
215
  return annotated_commit->ref_name;
204
216
  }
205
217
 
@@ -5,8 +5,6 @@
5
5
  * a Linking Exception. For full terms see the included COPYING file.
6
6
  */
7
7
 
8
- #include "apply.h"
9
-
10
8
  #include "git2/apply.h"
11
9
  #include "git2/patch.h"
12
10
  #include "git2/filter.h"
@@ -21,6 +19,7 @@
21
19
  #include "zstream.h"
22
20
  #include "reader.h"
23
21
  #include "index.h"
22
+ #include "apply.h"
24
23
 
25
24
  typedef struct {
26
25
  /* The lines that we allocate ourself are allocated out of the pool.
@@ -63,7 +62,11 @@ static int patch_image_init_fromstr(
63
62
 
64
63
  memset(out, 0x0, sizeof(patch_image));
65
64
 
66
- git_pool_init(&out->pool, sizeof(git_diff_line));
65
+ if (git_pool_init(&out->pool, sizeof(git_diff_line)) < 0)
66
+ return -1;
67
+
68
+ if (!in_len)
69
+ return 0;
67
70
 
68
71
  for (start = in; start < in + in_len; start = end) {
69
72
  end = memchr(start, '\n', in_len - (start - in));
@@ -395,7 +398,11 @@ int git_apply__patch(
395
398
  unsigned int mode = 0;
396
399
  int error = 0;
397
400
 
398
- assert(contents_out && filename_out && mode_out && (source || !source_len) && patch);
401
+ GIT_ASSERT_ARG(contents_out);
402
+ GIT_ASSERT_ARG(filename_out);
403
+ GIT_ASSERT_ARG(mode_out);
404
+ GIT_ASSERT_ARG(source || !source_len);
405
+ GIT_ASSERT_ARG(patch);
399
406
 
400
407
  if (given_opts)
401
408
  memcpy(&ctx.opts, given_opts, sizeof(git_apply_options));
@@ -620,7 +627,10 @@ int git_apply_to_tree(
620
627
  size_t i;
621
628
  int error = 0;
622
629
 
623
- assert(out && repo && preimage && diff);
630
+ GIT_ASSERT_ARG(out);
631
+ GIT_ASSERT_ARG(repo);
632
+ GIT_ASSERT_ARG(preimage);
633
+ GIT_ASSERT_ARG(diff);
624
634
 
625
635
  *out = NULL;
626
636
 
@@ -768,6 +778,8 @@ done:
768
778
 
769
779
  int git_apply_options_init(git_apply_options *opts, unsigned int version)
770
780
  {
781
+ GIT_ASSERT_ARG(opts);
782
+
771
783
  GIT_INIT_STRUCTURE_FROM_TEMPLATE(
772
784
  opts, version, git_apply_options, GIT_APPLY_OPTIONS_INIT);
773
785
  return 0;
@@ -801,7 +813,8 @@ int git_apply(
801
813
  git_apply_options opts = GIT_APPLY_OPTIONS_INIT;
802
814
  int error = GIT_EINVALID;
803
815
 
804
- assert(repo && diff);
816
+ GIT_ASSERT_ARG(repo);
817
+ GIT_ASSERT_ARG(diff);
805
818
 
806
819
  GIT_ERROR_CHECK_VERSION(
807
820
  given_opts, GIT_APPLY_OPTIONS_VERSION, "git_apply_options");
@@ -825,7 +838,7 @@ int git_apply(
825
838
  error = git_reader_for_workdir(&pre_reader, repo, false);
826
839
  break;
827
840
  default:
828
- assert(false);
841
+ GIT_ASSERT(false);
829
842
  }
830
843
 
831
844
  if (error < 0)
@@ -865,7 +878,7 @@ int git_apply(
865
878
  error = git_apply__to_workdir(repo, diff, preimage, postimage, location, &opts);
866
879
  break;
867
880
  default:
868
- assert(false);
881
+ GIT_ASSERT(false);
869
882
  }
870
883
 
871
884
  if (error < 0)
@@ -41,8 +41,8 @@
41
41
 
42
42
  typedef git_array_t(char) git_array_generic_t;
43
43
 
44
- /* use a generic array for growth so this can return the new item */
45
- GIT_INLINE(void *) git_array_grow(void *_a, size_t item_size)
44
+ /* use a generic array for growth, return 0 on success */
45
+ GIT_INLINE(int) git_array_grow(void *_a, size_t item_size)
46
46
  {
47
47
  volatile git_array_generic_t *a = _a;
48
48
  size_t new_size;
@@ -59,24 +59,24 @@ GIT_INLINE(void *) git_array_grow(void *_a, size_t item_size)
59
59
  if ((new_array = git__reallocarray(a->ptr, new_size, item_size)) == NULL)
60
60
  goto on_oom;
61
61
 
62
- a->ptr = new_array; a->asize = new_size; a->size++;
63
- return a->ptr + (a->size - 1) * item_size;
62
+ a->ptr = new_array;
63
+ a->asize = new_size;
64
+ return 0;
64
65
 
65
66
  on_oom:
66
67
  git_array_clear(*a);
67
- return NULL;
68
+ return -1;
68
69
  }
69
70
 
70
71
  #define git_array_alloc(a) \
71
- (((a).size >= (a).asize) ? \
72
- git_array_grow(&(a), sizeof(*(a).ptr)) : \
73
- ((a).ptr ? &(a).ptr[(a).size++] : NULL))
72
+ (((a).size < (a).asize || git_array_grow(&(a), sizeof(*(a).ptr)) == 0) ? \
73
+ &(a).ptr[(a).size++] : (void *)NULL)
74
74
 
75
- #define git_array_last(a) ((a).size ? &(a).ptr[(a).size - 1] : NULL)
75
+ #define git_array_last(a) ((a).size ? &(a).ptr[(a).size - 1] : (void *)NULL)
76
76
 
77
- #define git_array_pop(a) ((a).size ? &(a).ptr[--(a).size] : NULL)
77
+ #define git_array_pop(a) ((a).size ? &(a).ptr[--(a).size] : (void *)NULL)
78
78
 
79
- #define git_array_get(a, i) (((i) < (a).size) ? &(a).ptr[(i)] : NULL)
79
+ #define git_array_get(a, i) (((i) < (a).size) ? &(a).ptr[(i)] : (void *)NULL)
80
80
 
81
81
  #define git_array_size(a) (a).size
82
82