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
@@ -1,188 +0,0 @@
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 "w32_stack.h"
9
-
10
- #if defined(GIT_MSVC_CRTDBG)
11
- #include "Windows.h"
12
- #include "Dbghelp.h"
13
- #include "win32/posix.h"
14
- #include "hash.h"
15
-
16
- static bool g_win32_stack_initialized = false;
17
- static HANDLE g_win32_stack_process = INVALID_HANDLE_VALUE;
18
- static git_win32__stack__aux_cb_alloc g_aux_cb_alloc = NULL;
19
- static git_win32__stack__aux_cb_lookup g_aux_cb_lookup = NULL;
20
-
21
- int git_win32__stack__set_aux_cb(
22
- git_win32__stack__aux_cb_alloc cb_alloc,
23
- git_win32__stack__aux_cb_lookup cb_lookup)
24
- {
25
- g_aux_cb_alloc = cb_alloc;
26
- g_aux_cb_lookup = cb_lookup;
27
-
28
- return 0;
29
- }
30
-
31
- void git_win32__stack_init(void)
32
- {
33
- if (!g_win32_stack_initialized) {
34
- g_win32_stack_process = GetCurrentProcess();
35
- SymSetOptions(SYMOPT_LOAD_LINES);
36
- SymInitialize(g_win32_stack_process, NULL, TRUE);
37
- g_win32_stack_initialized = true;
38
- }
39
- }
40
-
41
- void git_win32__stack_cleanup(void)
42
- {
43
- if (g_win32_stack_initialized) {
44
- SymCleanup(g_win32_stack_process);
45
- g_win32_stack_process = INVALID_HANDLE_VALUE;
46
- g_win32_stack_initialized = false;
47
- }
48
- }
49
-
50
- int git_win32__stack_capture(git_win32__stack__raw_data *pdata, int skip)
51
- {
52
- if (!g_win32_stack_initialized) {
53
- git_error_set(GIT_ERROR_INVALID, "git_win32_stack not initialized.");
54
- return GIT_ERROR;
55
- }
56
-
57
- memset(pdata, 0, sizeof(*pdata));
58
- pdata->nr_frames = RtlCaptureStackBackTrace(
59
- skip+1, GIT_WIN32__STACK__MAX_FRAMES, pdata->frames, NULL);
60
-
61
- /* If an "aux" data provider was registered, ask it to capture
62
- * whatever data it needs and give us an "aux_id" to it so that
63
- * we can refer to it later when reporting.
64
- */
65
- if (g_aux_cb_alloc)
66
- (g_aux_cb_alloc)(&pdata->aux_id);
67
-
68
- return 0;
69
- }
70
-
71
- int git_win32__stack_compare(
72
- git_win32__stack__raw_data *d1,
73
- git_win32__stack__raw_data *d2)
74
- {
75
- return memcmp(d1, d2, sizeof(*d1));
76
- }
77
-
78
- int git_win32__stack_format(
79
- char *pbuf, size_t buf_len,
80
- const git_win32__stack__raw_data *pdata,
81
- const char *prefix, const char *suffix)
82
- {
83
- #define MY_MAX_FILENAME 255
84
-
85
- /* SYMBOL_INFO has char FileName[1] at the end. The docs say to
86
- * to malloc it with extra space for your desired max filename.
87
- */
88
- struct {
89
- SYMBOL_INFO symbol;
90
- char extra[MY_MAX_FILENAME + 1];
91
- } s;
92
-
93
- IMAGEHLP_LINE64 line;
94
- size_t buf_used = 0;
95
- unsigned int k;
96
- char detail[MY_MAX_FILENAME * 2]; /* filename plus space for function name and formatting */
97
- size_t detail_len;
98
-
99
- if (!g_win32_stack_initialized) {
100
- git_error_set(GIT_ERROR_INVALID, "git_win32_stack not initialized.");
101
- return GIT_ERROR;
102
- }
103
-
104
- if (!prefix)
105
- prefix = "\t";
106
- if (!suffix)
107
- suffix = "\n";
108
-
109
- memset(pbuf, 0, buf_len);
110
-
111
- memset(&s, 0, sizeof(s));
112
- s.symbol.MaxNameLen = MY_MAX_FILENAME;
113
- s.symbol.SizeOfStruct = sizeof(SYMBOL_INFO);
114
-
115
- memset(&line, 0, sizeof(line));
116
- line.SizeOfStruct = sizeof(IMAGEHLP_LINE64);
117
-
118
- for (k=0; k < pdata->nr_frames; k++) {
119
- DWORD64 frame_k = (DWORD64)pdata->frames[k];
120
- DWORD dwUnused;
121
-
122
- if (SymFromAddr(g_win32_stack_process, frame_k, 0, &s.symbol) &&
123
- SymGetLineFromAddr64(g_win32_stack_process, frame_k, &dwUnused, &line)) {
124
- const char *pslash;
125
- const char *pfile;
126
-
127
- pslash = strrchr(line.FileName, '\\');
128
- pfile = ((pslash) ? (pslash+1) : line.FileName);
129
- p_snprintf(detail, sizeof(detail), "%s%s:%d> %s%s",
130
- prefix, pfile, line.LineNumber, s.symbol.Name, suffix);
131
- } else {
132
- /* This happens when we cross into another module.
133
- * For example, in CLAR tests, this is typically
134
- * the CRT startup code. Just print an unknown
135
- * frame and continue.
136
- */
137
- p_snprintf(detail, sizeof(detail), "%s??%s", prefix, suffix);
138
- }
139
- detail_len = strlen(detail);
140
-
141
- if (buf_len < (buf_used + detail_len + 1)) {
142
- /* we don't have room for this frame in the buffer, so just stop. */
143
- break;
144
- }
145
-
146
- memcpy(&pbuf[buf_used], detail, detail_len);
147
- buf_used += detail_len;
148
- }
149
-
150
- /* "aux_id" 0 is reserved to mean no aux data. This is needed to handle
151
- * allocs that occur before the aux callbacks were registered.
152
- */
153
- if (pdata->aux_id > 0) {
154
- p_snprintf(detail, sizeof(detail), "%saux_id: %d%s",
155
- prefix, pdata->aux_id, suffix);
156
- detail_len = strlen(detail);
157
- if ((buf_used + detail_len + 1) < buf_len) {
158
- memcpy(&pbuf[buf_used], detail, detail_len);
159
- buf_used += detail_len;
160
- }
161
-
162
- /* If an "aux" data provider is still registered, ask it to append its detailed
163
- * data to the end of ours using the "aux_id" it gave us when this de-duped
164
- * item was created.
165
- */
166
- if (g_aux_cb_lookup)
167
- (g_aux_cb_lookup)(pdata->aux_id, &pbuf[buf_used], (buf_len - buf_used - 1));
168
- }
169
-
170
- return GIT_OK;
171
- }
172
-
173
- int git_win32__stack(
174
- char * pbuf, size_t buf_len,
175
- int skip,
176
- const char *prefix, const char *suffix)
177
- {
178
- git_win32__stack__raw_data data;
179
- int error;
180
-
181
- if ((error = git_win32__stack_capture(&data, skip)) < 0)
182
- return error;
183
- if ((error = git_win32__stack_format(pbuf, buf_len, &data, prefix, suffix)) < 0)
184
- return error;
185
- return 0;
186
- }
187
-
188
- #endif
@@ -1,140 +0,0 @@
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_win32_w32_stack_h__
9
- #define INCLUDE_win32_w32_stack_h__
10
-
11
- #include "common.h"
12
-
13
- #if defined(GIT_MSVC_CRTDBG)
14
-
15
- /**
16
- * This type defines a callback to be used to augment a C stacktrace
17
- * with "aux" data. This can be used, for example, to allow LibGit2Sharp
18
- * (or other interpreted consumer libraries) to give us C# stacktrace
19
- * data for the PInvoke.
20
- *
21
- * This callback will be called during crtdbg-instrumented allocs.
22
- *
23
- * @param aux_id [out] A returned "aux_id" representing a unique
24
- * (de-duped at the C# layer) stacktrace. "aux_id" 0 is reserved
25
- * to mean no aux stacktrace data.
26
- */
27
- typedef void (*git_win32__stack__aux_cb_alloc)(unsigned int *aux_id);
28
-
29
- /**
30
- * This type defines a callback to be used to augment the output of
31
- * a stacktrace. This will be used to request the C# layer format
32
- * the C# stacktrace associated with "aux_id" into the provided
33
- * buffer.
34
- *
35
- * This callback will be called during leak reporting.
36
- *
37
- * @param aux_id The "aux_id" key associated with a stacktrace.
38
- * @param aux_msg A buffer where a formatted message should be written.
39
- * @param aux_msg_len The size of the buffer.
40
- */
41
- typedef void (*git_win32__stack__aux_cb_lookup)(unsigned int aux_id, char *aux_msg, size_t aux_msg_len);
42
-
43
- /**
44
- * Register an "aux" data provider to augment our C stacktrace data.
45
- *
46
- * This can be used, for example, to allow LibGit2Sharp (or other
47
- * interpreted consumer libraries) to give us the C# stacktrace of
48
- * the PInvoke.
49
- *
50
- * If you choose to use this feature, it should be registered during
51
- * initialization and not changed for the duration of the process.
52
- */
53
- GIT_EXTERN(int) git_win32__stack__set_aux_cb(
54
- git_win32__stack__aux_cb_alloc cb_alloc,
55
- git_win32__stack__aux_cb_lookup cb_lookup);
56
-
57
- /**
58
- * Maximum number of stackframes to record for a
59
- * single stacktrace.
60
- */
61
- #define GIT_WIN32__STACK__MAX_FRAMES 30
62
-
63
- /**
64
- * Wrapper containing the raw unprocessed stackframe
65
- * data for a single stacktrace and any "aux_id".
66
- *
67
- * I put the aux_id first so leaks will be sorted by it.
68
- * So, for example, if a specific callstack in C# leaks
69
- * a repo handle, all of the pointers within the associated
70
- * repo pointer will be grouped together.
71
- */
72
- typedef struct {
73
- unsigned int aux_id;
74
- unsigned int nr_frames;
75
- void *frames[GIT_WIN32__STACK__MAX_FRAMES];
76
- } git_win32__stack__raw_data;
77
-
78
-
79
- /**
80
- * Load symbol table data. This should be done in the primary
81
- * thread at startup (under a lock if there are other threads
82
- * active).
83
- */
84
- void git_win32__stack_init(void);
85
-
86
- /**
87
- * Cleanup symbol table data. This should be done in the
88
- * primary thead at shutdown (under a lock if there are other
89
- * threads active).
90
- */
91
- void git_win32__stack_cleanup(void);
92
-
93
-
94
- /**
95
- * Capture raw stack trace data for the current process/thread.
96
- *
97
- * @param skip Number of initial frames to skip. Pass 0 to
98
- * begin with the caller of this routine. Pass 1 to begin
99
- * with its caller. And so on.
100
- */
101
- int git_win32__stack_capture(git_win32__stack__raw_data *pdata, int skip);
102
-
103
- /**
104
- * Compare 2 raw stacktraces with the usual -1,0,+1 result.
105
- * This includes any "aux_id" values in the comparison, so that
106
- * our de-dup is also "aux" context relative.
107
- */
108
- int git_win32__stack_compare(
109
- git_win32__stack__raw_data *d1,
110
- git_win32__stack__raw_data *d2);
111
-
112
- /**
113
- * Format raw stacktrace data into buffer WITHOUT using any mallocs.
114
- *
115
- * @param prefix String written before each frame; defaults to "\t".
116
- * @param suffix String written after each frame; defaults to "\n".
117
- */
118
- int git_win32__stack_format(
119
- char *pbuf, size_t buf_len,
120
- const git_win32__stack__raw_data *pdata,
121
- const char *prefix, const char *suffix);
122
-
123
- /**
124
- * Convenience routine to capture and format stacktrace into
125
- * a buffer WITHOUT using any mallocs. This is primarily a
126
- * wrapper for testing.
127
- *
128
- * @param skip Number of initial frames to skip. Pass 0 to
129
- * begin with the caller of this routine. Pass 1 to begin
130
- * with its caller. And so on.
131
- * @param prefix String written before each frame; defaults to "\t".
132
- * @param suffix String written after each frame; defaults to "\n".
133
- */
134
- int git_win32__stack(
135
- char * pbuf, size_t buf_len,
136
- int skip,
137
- const char *prefix, const char *suffix);
138
-
139
- #endif /* GIT_MSVC_CRTDBG */
140
- #endif