rugged 0.28.5 → 0.99.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 (379) hide show
  1. checksums.yaml +4 -4
  2. data/ext/rugged/extconf.rb +3 -1
  3. data/ext/rugged/rugged.c +35 -31
  4. data/ext/rugged/rugged.h +13 -0
  5. data/ext/rugged/rugged_blob.c +11 -9
  6. data/ext/rugged/rugged_commit.c +17 -15
  7. data/ext/rugged/rugged_diff.c +4 -26
  8. data/ext/rugged/rugged_index.c +4 -2
  9. data/ext/rugged/rugged_note.c +5 -3
  10. data/ext/rugged/rugged_object.c +57 -10
  11. data/ext/rugged/rugged_rebase.c +3 -1
  12. data/ext/rugged/rugged_remote.c +0 -6
  13. data/ext/rugged/rugged_repo.c +222 -17
  14. data/ext/rugged/rugged_tag.c +8 -6
  15. data/ext/rugged/rugged_tree.c +18 -16
  16. data/lib/rugged/version.rb +1 -1
  17. data/vendor/libgit2/CMakeLists.txt +38 -19
  18. data/vendor/libgit2/COPYING +28 -0
  19. data/vendor/libgit2/cmake/Modules/EnableWarnings.cmake +5 -1
  20. data/vendor/libgit2/cmake/Modules/FindCoreFoundation.cmake +2 -2
  21. data/vendor/libgit2/cmake/Modules/FindGSSAPI.cmake +1 -1
  22. data/vendor/libgit2/cmake/Modules/FindGSSFramework.cmake +28 -0
  23. data/vendor/libgit2/cmake/Modules/FindPCRE.cmake +38 -0
  24. data/vendor/libgit2/cmake/Modules/FindPCRE2.cmake +37 -0
  25. data/vendor/libgit2/cmake/Modules/FindSecurity.cmake +2 -2
  26. data/vendor/libgit2/cmake/Modules/FindStatNsec.cmake +6 -0
  27. data/vendor/libgit2/cmake/Modules/PkgBuildConfig.cmake +110 -0
  28. data/vendor/libgit2/cmake/Modules/SelectGSSAPI.cmake +53 -0
  29. data/vendor/libgit2/cmake/Modules/SelectHTTPSBackend.cmake +124 -0
  30. data/vendor/libgit2/cmake/Modules/SelectHashes.cmake +66 -0
  31. data/vendor/libgit2/deps/http-parser/http_parser.c +11 -6
  32. data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +21 -0
  33. data/vendor/libgit2/deps/ntlmclient/compat.h +33 -0
  34. data/vendor/libgit2/deps/ntlmclient/crypt.h +64 -0
  35. data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.c +120 -0
  36. data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.h +18 -0
  37. data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.c +145 -0
  38. data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.h +18 -0
  39. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +130 -0
  40. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.h +21 -0
  41. data/vendor/libgit2/deps/ntlmclient/ntlm.c +1422 -0
  42. data/vendor/libgit2/deps/ntlmclient/ntlm.h +174 -0
  43. data/vendor/libgit2/deps/ntlmclient/ntlmclient.h +320 -0
  44. data/vendor/libgit2/deps/ntlmclient/unicode.h +36 -0
  45. data/vendor/libgit2/deps/ntlmclient/unicode_builtin.c +445 -0
  46. data/vendor/libgit2/deps/ntlmclient/unicode_iconv.c +201 -0
  47. data/vendor/libgit2/deps/ntlmclient/utf8.h +1257 -0
  48. data/vendor/libgit2/deps/ntlmclient/util.c +21 -0
  49. data/vendor/libgit2/deps/ntlmclient/util.h +14 -0
  50. data/vendor/libgit2/deps/pcre/CMakeLists.txt +140 -0
  51. data/vendor/libgit2/deps/pcre/COPYING +5 -0
  52. data/vendor/libgit2/deps/pcre/cmake/COPYING-CMAKE-SCRIPTS +22 -0
  53. data/vendor/libgit2/deps/pcre/cmake/FindEditline.cmake +17 -0
  54. data/vendor/libgit2/deps/pcre/cmake/FindPackageHandleStandardArgs.cmake +58 -0
  55. data/vendor/libgit2/deps/pcre/cmake/FindReadline.cmake +29 -0
  56. data/vendor/libgit2/deps/pcre/config.h.in +57 -0
  57. data/vendor/libgit2/deps/pcre/pcre.h +641 -0
  58. data/vendor/libgit2/deps/pcre/pcre_byte_order.c +319 -0
  59. data/vendor/libgit2/deps/pcre/pcre_chartables.c +198 -0
  60. data/vendor/libgit2/deps/pcre/pcre_compile.c +9800 -0
  61. data/vendor/libgit2/deps/pcre/pcre_config.c +190 -0
  62. data/vendor/libgit2/deps/pcre/pcre_dfa_exec.c +3676 -0
  63. data/vendor/libgit2/deps/pcre/pcre_exec.c +7173 -0
  64. data/vendor/libgit2/deps/pcre/pcre_fullinfo.c +245 -0
  65. data/vendor/libgit2/deps/pcre/pcre_get.c +669 -0
  66. data/vendor/libgit2/deps/pcre/pcre_globals.c +86 -0
  67. data/vendor/libgit2/deps/pcre/pcre_internal.h +2787 -0
  68. data/vendor/libgit2/deps/pcre/pcre_jit_compile.c +11913 -0
  69. data/vendor/libgit2/deps/pcre/pcre_maketables.c +156 -0
  70. data/vendor/libgit2/deps/pcre/pcre_newline.c +210 -0
  71. data/vendor/libgit2/deps/pcre/pcre_ord2utf8.c +94 -0
  72. data/vendor/libgit2/deps/pcre/pcre_printint.c +834 -0
  73. data/vendor/libgit2/deps/pcre/pcre_refcount.c +92 -0
  74. data/vendor/libgit2/deps/pcre/pcre_string_utils.c +211 -0
  75. data/vendor/libgit2/deps/pcre/pcre_study.c +1686 -0
  76. data/vendor/libgit2/deps/pcre/pcre_tables.c +727 -0
  77. data/vendor/libgit2/deps/pcre/pcre_ucd.c +3644 -0
  78. data/vendor/libgit2/deps/pcre/pcre_valid_utf8.c +301 -0
  79. data/vendor/libgit2/deps/pcre/pcre_version.c +98 -0
  80. data/vendor/libgit2/deps/pcre/pcre_xclass.c +268 -0
  81. data/vendor/libgit2/deps/pcre/pcreposix.c +421 -0
  82. data/vendor/libgit2/deps/pcre/pcreposix.h +117 -0
  83. data/vendor/libgit2/deps/pcre/ucp.h +224 -0
  84. data/vendor/libgit2/deps/zlib/adler32.c +0 -7
  85. data/vendor/libgit2/deps/zlib/crc32.c +0 -7
  86. data/vendor/libgit2/include/git2.h +2 -0
  87. data/vendor/libgit2/include/git2/apply.h +22 -2
  88. data/vendor/libgit2/include/git2/attr.h +23 -13
  89. data/vendor/libgit2/include/git2/blame.h +2 -2
  90. data/vendor/libgit2/include/git2/blob.h +44 -12
  91. data/vendor/libgit2/include/git2/branch.h +74 -57
  92. data/vendor/libgit2/include/git2/buffer.h +20 -14
  93. data/vendor/libgit2/include/git2/cert.h +135 -0
  94. data/vendor/libgit2/include/git2/checkout.h +46 -14
  95. data/vendor/libgit2/include/git2/cherrypick.h +3 -3
  96. data/vendor/libgit2/include/git2/clone.h +2 -2
  97. data/vendor/libgit2/include/git2/commit.h +23 -1
  98. data/vendor/libgit2/include/git2/common.h +15 -6
  99. data/vendor/libgit2/include/git2/config.h +12 -12
  100. data/vendor/libgit2/include/git2/cred_helpers.h +4 -42
  101. data/vendor/libgit2/include/git2/credential.h +314 -0
  102. data/vendor/libgit2/include/git2/credential_helpers.h +52 -0
  103. data/vendor/libgit2/include/git2/deprecated.h +314 -3
  104. data/vendor/libgit2/include/git2/describe.h +4 -4
  105. data/vendor/libgit2/include/git2/diff.h +16 -14
  106. data/vendor/libgit2/include/git2/errors.h +4 -2
  107. data/vendor/libgit2/include/git2/filter.h +8 -0
  108. data/vendor/libgit2/include/git2/index.h +2 -1
  109. data/vendor/libgit2/include/git2/indexer.h +48 -4
  110. data/vendor/libgit2/include/git2/merge.h +6 -10
  111. data/vendor/libgit2/include/git2/net.h +0 -5
  112. data/vendor/libgit2/include/git2/object.h +2 -14
  113. data/vendor/libgit2/include/git2/odb.h +3 -2
  114. data/vendor/libgit2/include/git2/odb_backend.h +5 -4
  115. data/vendor/libgit2/include/git2/oid.h +11 -6
  116. data/vendor/libgit2/include/git2/pack.h +12 -1
  117. data/vendor/libgit2/include/git2/proxy.h +6 -4
  118. data/vendor/libgit2/include/git2/rebase.h +46 -2
  119. data/vendor/libgit2/include/git2/refs.h +19 -0
  120. data/vendor/libgit2/include/git2/remote.h +40 -15
  121. data/vendor/libgit2/include/git2/repository.h +24 -2
  122. data/vendor/libgit2/include/git2/revert.h +1 -1
  123. data/vendor/libgit2/include/git2/revwalk.h +7 -3
  124. data/vendor/libgit2/include/git2/stash.h +4 -4
  125. data/vendor/libgit2/include/git2/status.h +25 -16
  126. data/vendor/libgit2/include/git2/submodule.h +20 -3
  127. data/vendor/libgit2/include/git2/sys/alloc.h +9 -9
  128. data/vendor/libgit2/include/git2/sys/cred.h +15 -0
  129. data/vendor/libgit2/include/git2/sys/credential.h +90 -0
  130. data/vendor/libgit2/include/git2/sys/index.h +4 -2
  131. data/vendor/libgit2/include/git2/sys/mempack.h +2 -1
  132. data/vendor/libgit2/include/git2/sys/merge.h +1 -1
  133. data/vendor/libgit2/include/git2/sys/odb_backend.h +48 -4
  134. data/vendor/libgit2/include/git2/sys/refdb_backend.h +57 -21
  135. data/vendor/libgit2/include/git2/sys/repository.h +17 -6
  136. data/vendor/libgit2/include/git2/sys/transport.h +4 -4
  137. data/vendor/libgit2/include/git2/tag.h +11 -2
  138. data/vendor/libgit2/include/git2/trace.h +2 -2
  139. data/vendor/libgit2/include/git2/transport.h +11 -340
  140. data/vendor/libgit2/include/git2/tree.h +5 -3
  141. data/vendor/libgit2/include/git2/types.h +4 -89
  142. data/vendor/libgit2/include/git2/version.h +4 -4
  143. data/vendor/libgit2/include/git2/worktree.h +5 -5
  144. data/vendor/libgit2/src/CMakeLists.txt +89 -224
  145. data/vendor/libgit2/src/alloc.c +2 -14
  146. data/vendor/libgit2/src/{stdalloc.c → allocators/stdalloc.c} +3 -4
  147. data/vendor/libgit2/src/{stdalloc.h → allocators/stdalloc.h} +4 -4
  148. data/vendor/libgit2/src/allocators/win32_crtdbg.c +118 -0
  149. data/vendor/libgit2/src/{transports/cred.h → allocators/win32_crtdbg.h} +5 -4
  150. data/vendor/libgit2/src/apply.c +31 -15
  151. data/vendor/libgit2/src/attr.c +70 -64
  152. data/vendor/libgit2/src/attr_file.c +189 -96
  153. data/vendor/libgit2/src/attr_file.h +9 -9
  154. data/vendor/libgit2/src/attrcache.c +47 -47
  155. data/vendor/libgit2/src/attrcache.h +2 -1
  156. data/vendor/libgit2/src/blame.c +17 -5
  157. data/vendor/libgit2/src/blame.h +1 -1
  158. data/vendor/libgit2/src/blame_git.c +21 -7
  159. data/vendor/libgit2/src/blob.c +81 -17
  160. data/vendor/libgit2/src/blob.h +2 -2
  161. data/vendor/libgit2/src/branch.c +60 -32
  162. data/vendor/libgit2/src/buffer.c +5 -0
  163. data/vendor/libgit2/src/buffer.h +1 -0
  164. data/vendor/libgit2/src/cache.c +26 -33
  165. data/vendor/libgit2/src/cache.h +1 -1
  166. data/vendor/libgit2/src/cc-compat.h +5 -0
  167. data/vendor/libgit2/src/checkout.c +26 -16
  168. data/vendor/libgit2/src/cherrypick.c +7 -1
  169. data/vendor/libgit2/src/clone.c +29 -7
  170. data/vendor/libgit2/src/clone.h +4 -0
  171. data/vendor/libgit2/src/commit.c +70 -22
  172. data/vendor/libgit2/src/commit.h +6 -0
  173. data/vendor/libgit2/src/commit_list.c +28 -76
  174. data/vendor/libgit2/src/commit_list.h +2 -2
  175. data/vendor/libgit2/src/common.h +3 -75
  176. data/vendor/libgit2/src/config.c +31 -40
  177. data/vendor/libgit2/src/config.h +7 -6
  178. data/vendor/libgit2/src/config_backend.h +12 -0
  179. data/vendor/libgit2/src/config_cache.c +39 -39
  180. data/vendor/libgit2/src/config_entries.c +69 -99
  181. data/vendor/libgit2/src/config_entries.h +1 -0
  182. data/vendor/libgit2/src/config_file.c +337 -380
  183. data/vendor/libgit2/src/config_mem.c +12 -16
  184. data/vendor/libgit2/src/config_parse.c +49 -29
  185. data/vendor/libgit2/src/config_parse.h +13 -12
  186. data/vendor/libgit2/src/config_snapshot.c +206 -0
  187. data/vendor/libgit2/src/crlf.c +14 -14
  188. data/vendor/libgit2/src/describe.c +21 -20
  189. data/vendor/libgit2/src/diff.c +43 -66
  190. data/vendor/libgit2/src/diff.h +4 -3
  191. data/vendor/libgit2/src/diff_driver.c +37 -38
  192. data/vendor/libgit2/src/diff_file.c +12 -10
  193. data/vendor/libgit2/src/diff_file.h +2 -2
  194. data/vendor/libgit2/src/diff_generate.c +26 -26
  195. data/vendor/libgit2/src/diff_generate.h +2 -2
  196. data/vendor/libgit2/src/diff_parse.c +1 -1
  197. data/vendor/libgit2/src/diff_print.c +25 -13
  198. data/vendor/libgit2/src/diff_stats.c +1 -1
  199. data/vendor/libgit2/src/diff_tform.c +11 -11
  200. data/vendor/libgit2/src/errors.c +21 -25
  201. data/vendor/libgit2/src/errors.h +81 -0
  202. data/vendor/libgit2/src/features.h.in +9 -2
  203. data/vendor/libgit2/src/fetch.c +7 -2
  204. data/vendor/libgit2/src/fetchhead.c +9 -9
  205. data/vendor/libgit2/src/filebuf.c +1 -1
  206. data/vendor/libgit2/src/filebuf.h +1 -1
  207. data/vendor/libgit2/src/filter.c +16 -8
  208. data/vendor/libgit2/src/{fileops.c → futils.c} +20 -17
  209. data/vendor/libgit2/src/{fileops.h → futils.h} +5 -5
  210. data/vendor/libgit2/src/hash.c +61 -0
  211. data/vendor/libgit2/src/hash.h +19 -21
  212. data/vendor/libgit2/src/hash/sha1.h +38 -0
  213. data/vendor/libgit2/src/hash/{hash_collisiondetect.h → sha1/collisiondetect.c} +14 -17
  214. data/vendor/libgit2/src/hash/sha1/collisiondetect.h +19 -0
  215. data/vendor/libgit2/src/hash/{hash_common_crypto.h → sha1/common_crypto.c} +15 -19
  216. data/vendor/libgit2/src/hash/sha1/common_crypto.h +19 -0
  217. data/vendor/libgit2/src/hash/{hash_generic.c → sha1/generic.c} +22 -10
  218. data/vendor/libgit2/src/hash/{hash_generic.h → sha1/generic.h} +4 -14
  219. data/vendor/libgit2/src/hash/{hash_mbedtls.c → sha1/mbedtls.c} +15 -7
  220. data/vendor/libgit2/src/hash/{hash_mbedtls.h → sha1/mbedtls.h} +6 -11
  221. data/vendor/libgit2/src/hash/{hash_openssl.h → sha1/openssl.c} +14 -18
  222. data/vendor/libgit2/src/hash/sha1/openssl.h +19 -0
  223. data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/sha1.c +14 -3
  224. data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/sha1.h +0 -0
  225. data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/ubc_check.c +0 -0
  226. data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/ubc_check.h +0 -0
  227. data/vendor/libgit2/src/hash/{hash_win32.c → sha1/win32.c} +34 -24
  228. data/vendor/libgit2/src/hash/{hash_win32.h → sha1/win32.h} +6 -19
  229. data/vendor/libgit2/src/hashsig.c +1 -1
  230. data/vendor/libgit2/src/idxmap.c +91 -65
  231. data/vendor/libgit2/src/idxmap.h +151 -15
  232. data/vendor/libgit2/src/ignore.c +26 -35
  233. data/vendor/libgit2/src/index.c +103 -81
  234. data/vendor/libgit2/src/index.h +1 -1
  235. data/vendor/libgit2/src/indexer.c +69 -70
  236. data/vendor/libgit2/src/integer.h +11 -4
  237. data/vendor/libgit2/src/iterator.c +32 -28
  238. data/vendor/libgit2/src/iterator.h +8 -8
  239. data/vendor/libgit2/src/map.h +1 -1
  240. data/vendor/libgit2/src/merge.c +55 -41
  241. data/vendor/libgit2/src/merge.h +2 -2
  242. data/vendor/libgit2/src/merge_driver.c +5 -5
  243. data/vendor/libgit2/src/merge_file.c +1 -1
  244. data/vendor/libgit2/src/mwindow.c +18 -23
  245. data/vendor/libgit2/src/mwindow.h +4 -4
  246. data/vendor/libgit2/src/net.c +411 -0
  247. data/vendor/libgit2/src/net.h +57 -0
  248. data/vendor/libgit2/src/netops.c +6 -222
  249. data/vendor/libgit2/src/netops.h +1 -37
  250. data/vendor/libgit2/src/notes.c +2 -2
  251. data/vendor/libgit2/src/object.c +3 -3
  252. data/vendor/libgit2/src/object.h +2 -0
  253. data/vendor/libgit2/src/odb.c +41 -23
  254. data/vendor/libgit2/src/odb.h +3 -2
  255. data/vendor/libgit2/src/odb_loose.c +17 -10
  256. data/vendor/libgit2/src/odb_mempack.c +13 -24
  257. data/vendor/libgit2/src/odb_pack.c +4 -4
  258. data/vendor/libgit2/src/offmap.c +43 -55
  259. data/vendor/libgit2/src/offmap.h +102 -24
  260. data/vendor/libgit2/src/oid.c +19 -8
  261. data/vendor/libgit2/src/oidmap.c +39 -57
  262. data/vendor/libgit2/src/oidmap.h +99 -19
  263. data/vendor/libgit2/src/pack-objects.c +25 -32
  264. data/vendor/libgit2/src/pack-objects.h +1 -1
  265. data/vendor/libgit2/src/pack.c +97 -129
  266. data/vendor/libgit2/src/pack.h +15 -18
  267. data/vendor/libgit2/src/parse.c +10 -0
  268. data/vendor/libgit2/src/parse.h +3 -3
  269. data/vendor/libgit2/src/patch.c +1 -1
  270. data/vendor/libgit2/src/patch_generate.c +1 -1
  271. data/vendor/libgit2/src/patch_parse.c +30 -9
  272. data/vendor/libgit2/src/path.c +43 -6
  273. data/vendor/libgit2/src/path.h +2 -0
  274. data/vendor/libgit2/src/pathspec.c +14 -14
  275. data/vendor/libgit2/src/pool.c +26 -22
  276. data/vendor/libgit2/src/pool.h +7 -7
  277. data/vendor/libgit2/src/posix.c +7 -7
  278. data/vendor/libgit2/src/posix.h +12 -1
  279. data/vendor/libgit2/src/proxy.c +7 -2
  280. data/vendor/libgit2/src/push.c +10 -5
  281. data/vendor/libgit2/src/reader.c +2 -2
  282. data/vendor/libgit2/src/rebase.c +87 -28
  283. data/vendor/libgit2/src/refdb.c +12 -0
  284. data/vendor/libgit2/src/refdb_fs.c +215 -169
  285. data/vendor/libgit2/src/reflog.c +11 -13
  286. data/vendor/libgit2/src/refs.c +34 -23
  287. data/vendor/libgit2/src/refs.h +8 -1
  288. data/vendor/libgit2/src/refspec.c +9 -16
  289. data/vendor/libgit2/src/regexp.c +221 -0
  290. data/vendor/libgit2/src/regexp.h +97 -0
  291. data/vendor/libgit2/src/remote.c +57 -55
  292. data/vendor/libgit2/src/remote.h +2 -2
  293. data/vendor/libgit2/src/repository.c +120 -103
  294. data/vendor/libgit2/src/repository.h +49 -40
  295. data/vendor/libgit2/src/revert.c +6 -1
  296. data/vendor/libgit2/src/revparse.c +18 -19
  297. data/vendor/libgit2/src/revwalk.c +71 -33
  298. data/vendor/libgit2/src/revwalk.h +20 -0
  299. data/vendor/libgit2/src/settings.c +13 -1
  300. data/vendor/libgit2/src/sortedcache.c +12 -26
  301. data/vendor/libgit2/src/sortedcache.h +1 -1
  302. data/vendor/libgit2/src/stash.c +45 -65
  303. data/vendor/libgit2/src/status.c +17 -11
  304. data/vendor/libgit2/src/streams/openssl.c +53 -1
  305. data/vendor/libgit2/src/streams/socket.c +2 -2
  306. data/vendor/libgit2/src/strmap.c +37 -84
  307. data/vendor/libgit2/src/strmap.h +105 -33
  308. data/vendor/libgit2/src/submodule.c +151 -126
  309. data/vendor/libgit2/src/submodule.h +1 -1
  310. data/vendor/libgit2/src/tag.c +10 -2
  311. data/vendor/libgit2/src/trace.c +1 -1
  312. data/vendor/libgit2/src/trace.h +3 -3
  313. data/vendor/libgit2/src/trailer.c +46 -32
  314. data/vendor/libgit2/src/transaction.c +3 -8
  315. data/vendor/libgit2/src/transports/auth.c +16 -15
  316. data/vendor/libgit2/src/transports/auth.h +18 -11
  317. data/vendor/libgit2/src/transports/auth_negotiate.c +64 -33
  318. data/vendor/libgit2/src/transports/auth_negotiate.h +2 -2
  319. data/vendor/libgit2/src/transports/auth_ntlm.c +223 -0
  320. data/vendor/libgit2/src/transports/auth_ntlm.h +38 -0
  321. data/vendor/libgit2/src/transports/credential.c +476 -0
  322. data/vendor/libgit2/src/transports/{cred_helpers.c → credential_helpers.c} +21 -8
  323. data/vendor/libgit2/src/transports/git.c +11 -16
  324. data/vendor/libgit2/src/transports/http.c +488 -1248
  325. data/vendor/libgit2/src/transports/http.h +4 -1
  326. data/vendor/libgit2/src/transports/httpclient.c +1526 -0
  327. data/vendor/libgit2/src/transports/httpclient.h +190 -0
  328. data/vendor/libgit2/src/transports/local.c +10 -10
  329. data/vendor/libgit2/src/transports/smart.c +19 -19
  330. data/vendor/libgit2/src/transports/smart.h +3 -3
  331. data/vendor/libgit2/src/transports/smart_protocol.c +40 -64
  332. data/vendor/libgit2/src/transports/ssh.c +77 -59
  333. data/vendor/libgit2/src/transports/winhttp.c +266 -241
  334. data/vendor/libgit2/src/tree-cache.c +14 -7
  335. data/vendor/libgit2/src/tree.c +16 -26
  336. data/vendor/libgit2/src/unix/map.c +1 -1
  337. data/vendor/libgit2/src/unix/posix.h +2 -12
  338. data/vendor/libgit2/src/userdiff.h +3 -1
  339. data/vendor/libgit2/src/util.c +51 -53
  340. data/vendor/libgit2/src/util.h +16 -21
  341. data/vendor/libgit2/src/wildmatch.c +320 -0
  342. data/vendor/libgit2/src/wildmatch.h +23 -0
  343. data/vendor/libgit2/src/win32/map.c +3 -5
  344. data/vendor/libgit2/src/win32/path_w32.c +12 -2
  345. data/vendor/libgit2/src/win32/path_w32.h +0 -29
  346. data/vendor/libgit2/src/win32/posix.h +1 -4
  347. data/vendor/libgit2/src/win32/posix_w32.c +48 -5
  348. data/vendor/libgit2/src/win32/precompiled.h +0 -2
  349. data/vendor/libgit2/src/win32/thread.c +5 -5
  350. data/vendor/libgit2/src/win32/w32_buffer.c +7 -3
  351. data/vendor/libgit2/src/win32/w32_common.h +39 -0
  352. data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.c +0 -93
  353. data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.h +0 -2
  354. data/vendor/libgit2/src/win32/w32_stack.c +4 -9
  355. data/vendor/libgit2/src/win32/w32_stack.h +3 -3
  356. data/vendor/libgit2/src/win32/w32_util.c +31 -0
  357. data/vendor/libgit2/src/win32/w32_util.h +6 -32
  358. data/vendor/libgit2/src/worktree.c +36 -22
  359. data/vendor/libgit2/src/xdiff/xdiffi.c +1 -1
  360. data/vendor/libgit2/src/xdiff/xmerge.c +12 -0
  361. data/vendor/libgit2/src/xdiff/xpatience.c +3 -0
  362. data/vendor/libgit2/src/zstream.c +5 -0
  363. data/vendor/libgit2/src/zstream.h +1 -0
  364. metadata +108 -38
  365. data/vendor/libgit2/deps/regex/CMakeLists.txt +0 -2
  366. data/vendor/libgit2/deps/regex/COPYING +0 -502
  367. data/vendor/libgit2/deps/regex/config.h +0 -7
  368. data/vendor/libgit2/deps/regex/regcomp.c +0 -3857
  369. data/vendor/libgit2/deps/regex/regex.c +0 -92
  370. data/vendor/libgit2/deps/regex/regex.h +0 -582
  371. data/vendor/libgit2/deps/regex/regex_internal.c +0 -1744
  372. data/vendor/libgit2/deps/regex/regex_internal.h +0 -819
  373. data/vendor/libgit2/deps/regex/regexec.c +0 -4369
  374. data/vendor/libgit2/include/git2/inttypes.h +0 -309
  375. data/vendor/libgit2/include/git2/sys/time.h +0 -31
  376. data/vendor/libgit2/libgit2.pc.in +0 -13
  377. data/vendor/libgit2/src/fnmatch.c +0 -248
  378. data/vendor/libgit2/src/fnmatch.h +0 -48
  379. data/vendor/libgit2/src/transports/cred.c +0 -390
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9a520ac9fb1ac94fe6c890408004acaca2aacc597ae9b1ba5be720c09ef7aa65
4
- data.tar.gz: 208ae60e1ad7b01bcfb2317a81267b5139e8874496c9a46f5410e1b87b2801f9
3
+ metadata.gz: e8136792c4494de83faedb8da795ec5356393d10b254add7812e534ee767d3d6
4
+ data.tar.gz: 2e8fa727f59eee5d2577858c871d6c318c114885b634af12805973dc922e012d
5
5
  SHA512:
6
- metadata.gz: 0b9ec4638789d9cccab65aba6208c6fe713dd289a228b050f4fc1887897930247f43daa64f43adcdf5955b77095b60b95d3bd70b846c69df119a7a1be46bab92
7
- data.tar.gz: 10fb00b82a494e72e704eb1e2ab2eae9545ba972c98f5dfabcb523d5c7fdb523d7cb16d8c97dfb2bc428100c47e98a76a52ce366e1fb6a0a842b571b68c37e65
6
+ metadata.gz: 5e847c19dfae444ad2b094bff6a3940ae19bd08882533884ebde749343d6f8379ff68d278db86005f0ebc160e997dc209c937145f8e4c3ad283f36c617f9a7ac
7
+ data.tar.gz: ec949f43aa473570bcb60c94b66d2ee75af7794b3f4eb78d3eec075afe52f097a150513af674348097336a094feb313c3ca47eb9607c2ea7e3567331142a6d26
@@ -14,6 +14,7 @@ $CFLAGS << " -O3" unless $CFLAGS[/-O\d/]
14
14
  $CFLAGS << " -Wall -Wno-comment"
15
15
 
16
16
  cmake_flags = [ ENV["CMAKE_FLAGS"] ]
17
+ cmake_flags << "-DREGEX_BACKEND=builtin"
17
18
  cmake_flags << "-DUSE_SHA1DC=ON" if with_config("sha1dc")
18
19
 
19
20
  def sys(cmd)
@@ -30,7 +31,8 @@ end
30
31
 
31
32
  def self.run_cmake(timeout, args)
32
33
  # Set to process group so we can kill it and its children
33
- pid = Process.spawn("cmake #{args}", pgroup: true)
34
+ pgroup = Gem.win_platform? ? :new_pgroup : :pgroup
35
+ pid = Process.spawn("cmake #{args}", pgroup => true)
34
36
 
35
37
  Timeout.timeout(timeout) do
36
38
  Process.waitpid(pid)
@@ -8,37 +8,41 @@
8
8
  #include "rugged.h"
9
9
 
10
10
  const char *RUGGED_ERROR_NAMES[] = {
11
- "None", /* GITERR_NONE */
12
- "NoMemError", /* GITERR_NOMEMORY */
13
- "OSError", /* GITERR_OS */
14
- "InvalidError", /* GITERR_INVALID */
15
- "ReferenceError", /* GITERR_REFERENCE */
16
- "ZlibError", /* GITERR_ZLIB */
17
- "RepositoryError", /* GITERR_REPOSITORY */
18
- "ConfigError", /* GITERR_CONFIG */
19
- "RegexError", /* GITERR_REGEX */
20
- "OdbError", /* GITERR_ODB */
21
- "IndexError", /* GITERR_INDEX */
22
- "ObjectError", /* GITERR_OBJECT */
23
- "NetworkError", /* GITERR_NET */
24
- "TagError", /* GITERR_TAG */
25
- "TreeError", /* GITERR_TREE */
26
- "IndexerError", /* GITERR_INDEXER */
27
- "SslError", /* GITERR_SSL */
28
- "SubmoduleError", /* GITERR_SUBMODULE */
29
- "ThreadError", /* GITERR_THREAD */
30
- "StashError", /* GITERR_STASH */
31
- "CheckoutError", /* GITERR_CHECKOUT */
32
- "FetchheadError", /* GITERR_FETCHHEAD */
33
- "MergeError", /* GITERR_MERGE */
34
- "SshError", /* GITERR_SSH */
35
- "FilterError", /* GITERR_FILTER */
36
- "RevertError", /* GITERR_REVERT */
37
- "CallbackError", /* GITERR_CALLBACK */
38
- "CherrypickError", /* GITERR_CHERRYPICK */
39
- "DescribeError", /* GITERR_DESCRIBE */
40
- "RebaseError", /* GITERR_REBASE */
41
- "FilesystemError", /* GITERR_FILESYSTEM */
11
+ "None", /* GIT_ERROR_NONE */
12
+ "NoMemError", /* GIT_ERROR_NOMEMORY */
13
+ "OSError", /* GIT_ERROR_OS */
14
+ "InvalidError", /* GIT_ERROR_INVALID */
15
+ "ReferenceError", /* GIT_ERROR_REFERENCE */
16
+ "ZlibError", /* GIT_ERROR_ZLIB */
17
+ "RepositoryError", /* GIT_ERROR_REPOSITORY */
18
+ "ConfigError", /* GIT_ERROR_CONFIG */
19
+ "RegexError", /* GIT_ERROR_REGEX */
20
+ "OdbError", /* GIT_ERROR_ODB */
21
+ "IndexError", /* GIT_ERROR_INDEX */
22
+ "ObjectError", /* GIT_ERROR_OBJECT */
23
+ "NetworkError", /* GIT_ERROR_NET */
24
+ "TagError", /* GIT_ERROR_TAG */
25
+ "TreeError", /* GIT_ERROR_TREE */
26
+ "IndexerError", /* GIT_ERROR_INDEXER */
27
+ "SslError", /* GIT_ERROR_SSL */
28
+ "SubmoduleError", /* GIT_ERROR_SUBMODULE */
29
+ "ThreadError", /* GIT_ERROR_THREAD */
30
+ "StashError", /* GIT_ERROR_STASH */
31
+ "CheckoutError", /* GIT_ERROR_CHECKOUT */
32
+ "FetchheadError", /* GIT_ERROR_FETCHHEAD */
33
+ "MergeError", /* GIT_ERROR_MERGE */
34
+ "SshError", /* GIT_ERROR_SSH */
35
+ "FilterError", /* GIT_ERROR_FILTER */
36
+ "RevertError", /* GIT_ERROR_REVERT */
37
+ "CallbackError", /* GIT_ERROR_CALLBACK */
38
+ "CherrypickError", /* GIT_ERROR_CHERRYPICK */
39
+ "DescribeError", /* GIT_ERROR_DESCRIBE */
40
+ "RebaseError", /* GIT_ERROR_REBASE */
41
+ "FilesystemError", /* GIT_ERROR_FILESYSTEM */
42
+ "PathError", /* GIT_ERROR_PATCH */
43
+ "WorktreeError", /* GIT_ERROR_WORKTREE */
44
+ "SHA1Error", /* GIT_ERROR_SHA1 */
45
+ "HTTPError", /* GIT_ERROR_HTTP */
42
46
  };
43
47
 
44
48
  #define RUGGED_ERROR_COUNT (int)((sizeof(RUGGED_ERROR_NAMES)/sizeof(RUGGED_ERROR_NAMES[0])))
@@ -104,6 +104,12 @@ VALUE rugged_signature_from_buffer(const char *buffer, const char *encoding_name
104
104
  void rugged_rb_ary_to_strarray(VALUE rb_array, git_strarray *str_array);
105
105
  VALUE rugged_strarray_to_rb_ary(git_strarray *str_array);
106
106
 
107
+ #define CALLABLE_OR_RAISE(ret, name) \
108
+ do { \
109
+ if (!rb_respond_to(ret, rb_intern("call"))) \
110
+ rb_raise(rb_eArgError, "Expected a Proc or an object that responds to #call (:" name " )."); \
111
+ } while (0);
112
+
107
113
  static inline void rugged_set_owner(VALUE object, VALUE owner)
108
114
  {
109
115
  rb_iv_set(object, "@owner", owner);
@@ -134,6 +140,13 @@ extern VALUE rb_cRuggedRepo;
134
140
 
135
141
  VALUE rugged__block_yield_splat(VALUE args);
136
142
 
143
+ struct rugged_apply_cb_payload
144
+ {
145
+ VALUE delta_cb;
146
+ VALUE hunk_cb;
147
+ int exception;
148
+ };
149
+
137
150
  struct rugged_cb_payload
138
151
  {
139
152
  VALUE rb_data;
@@ -17,6 +17,8 @@ static ID id_read;
17
17
  VALUE rb_cRuggedBlob;
18
18
  VALUE rb_cRuggedBlobSig;
19
19
 
20
+ extern const rb_data_type_t rugged_object_type;
21
+
20
22
  /*
21
23
  * call-seq:
22
24
  * blob.text(max_lines = -1, encoding = Encoding.default_external) -> string
@@ -38,7 +40,7 @@ static VALUE rb_git_blob_text_GET(int argc, VALUE *argv, VALUE self)
38
40
  const char *content;
39
41
  VALUE rb_max_lines, rb_encoding;
40
42
 
41
- Data_Get_Struct(self, git_blob, blob);
43
+ TypedData_Get_Struct(self, git_blob, &rugged_object_type, blob);
42
44
  rb_scan_args(argc, argv, "02", &rb_max_lines, &rb_encoding);
43
45
 
44
46
  content = git_blob_rawcontent(blob);
@@ -85,7 +87,7 @@ static VALUE rb_git_blob_content_GET(int argc, VALUE *argv, VALUE self)
85
87
  const char *content;
86
88
  VALUE rb_max_bytes;
87
89
 
88
- Data_Get_Struct(self, git_blob, blob);
90
+ TypedData_Get_Struct(self, git_blob, &rugged_object_type, blob);
89
91
  rb_scan_args(argc, argv, "01", &rb_max_bytes);
90
92
 
91
93
  content = git_blob_rawcontent(blob);
@@ -119,7 +121,7 @@ static VALUE rb_git_blob_content_GET(int argc, VALUE *argv, VALUE self)
119
121
  static VALUE rb_git_blob_rawsize(VALUE self)
120
122
  {
121
123
  git_blob *blob;
122
- Data_Get_Struct(self, git_blob, blob);
124
+ TypedData_Get_Struct(self, git_blob, &rugged_object_type, blob);
123
125
 
124
126
  return INT2FIX(git_blob_rawsize(blob));
125
127
  }
@@ -304,7 +306,7 @@ static VALUE rb_git_blob_loc(VALUE self)
304
306
  const char *data, *data_end;
305
307
  size_t loc = 0;
306
308
 
307
- Data_Get_Struct(self, git_blob, blob);
309
+ TypedData_Get_Struct(self, git_blob, &rugged_object_type, blob);
308
310
 
309
311
  data = git_blob_rawcontent(blob);
310
312
  data_end = data + git_blob_rawsize(blob);
@@ -343,7 +345,7 @@ static VALUE rb_git_blob_sloc(VALUE self)
343
345
  const char *data, *data_end;
344
346
  size_t sloc = 0;
345
347
 
346
- Data_Get_Struct(self, git_blob, blob);
348
+ TypedData_Get_Struct(self, git_blob, &rugged_object_type, blob);
347
349
 
348
350
  data = git_blob_rawcontent(blob);
349
351
  data_end = data + git_blob_rawsize(blob);
@@ -383,7 +385,7 @@ static VALUE rb_git_blob_sloc(VALUE self)
383
385
  static VALUE rb_git_blob_is_binary(VALUE self)
384
386
  {
385
387
  git_blob *blob;
386
- Data_Get_Struct(self, git_blob, blob);
388
+ TypedData_Get_Struct(self, git_blob, &rugged_object_type, blob);
387
389
  return git_blob_is_binary(blob) ? Qtrue : Qfalse;
388
390
  }
389
391
 
@@ -467,14 +469,14 @@ static VALUE rb_git_blob_diff(int argc, VALUE *argv, VALUE self)
467
469
  rugged_parse_diff_options(&opts, rb_options);
468
470
  }
469
471
 
470
- Data_Get_Struct(self, git_blob, blob);
472
+ TypedData_Get_Struct(self, git_blob, &rugged_object_type, blob);
471
473
 
472
474
  if (NIL_P(rb_other)) {
473
475
  error = git_patch_from_blobs(&patch, blob, old_path, NULL, new_path, &opts);
474
476
  } else if (rb_obj_is_kind_of(rb_other, rb_cRuggedBlob)) {
475
477
  git_blob *other_blob;
476
478
 
477
- Data_Get_Struct(rb_other, git_blob, other_blob);
479
+ TypedData_Get_Struct(rb_other, git_blob, &rugged_object_type, other_blob);
478
480
 
479
481
  error = git_patch_from_blobs(&patch, blob, old_path, other_blob, new_path, &opts);
480
482
  } else if (TYPE(rb_other) == T_STRING) {
@@ -649,7 +651,7 @@ static VALUE rb_git_blob_sig_new(int argc, VALUE *argv, VALUE klass)
649
651
 
650
652
  if (rb_obj_is_kind_of(rb_blob, rb_cRuggedBlob)) {
651
653
  git_blob *blob;
652
- Data_Get_Struct(rb_blob, git_blob, blob);
654
+ TypedData_Get_Struct(rb_blob, git_blob, &rugged_object_type, blob);
653
655
 
654
656
  error = git_hashsig_create(&sig,
655
657
  git_blob_rawcontent(blob),
@@ -15,6 +15,8 @@ extern VALUE rb_cRuggedRepo;
15
15
  extern VALUE rb_cRuggedSignature;
16
16
  VALUE rb_cRuggedCommit;
17
17
 
18
+ extern const rb_data_type_t rugged_object_type;
19
+
18
20
  /*
19
21
  * call-seq:
20
22
  * commit.message -> msg
@@ -35,7 +37,7 @@ static VALUE rb_git_commit_message_GET(VALUE self)
35
37
  const char *encoding_name;
36
38
  const char *message;
37
39
 
38
- Data_Get_Struct(self, git_commit, commit);
40
+ TypedData_Get_Struct(self, git_commit, &rugged_object_type, commit);
39
41
 
40
42
  message = git_commit_message(commit);
41
43
  encoding_name = git_commit_message_encoding(commit);
@@ -68,7 +70,7 @@ static VALUE rb_git_commit_trailers_GET(VALUE self)
68
70
  int error;
69
71
  size_t i;
70
72
 
71
- Data_Get_Struct(self, git_commit, commit);
73
+ TypedData_Get_Struct(self, git_commit, &rugged_object_type, commit);
72
74
 
73
75
  encoding_name = git_commit_message_encoding(commit);
74
76
  if (encoding_name != NULL)
@@ -118,7 +120,7 @@ static VALUE rb_git_commit_summary_GET(VALUE self)
118
120
  const char *encoding_name;
119
121
  const char *summary;
120
122
 
121
- Data_Get_Struct(self, git_commit, commit);
123
+ TypedData_Get_Struct(self, git_commit, &rugged_object_type, commit);
122
124
 
123
125
  summary = git_commit_summary(commit);
124
126
  encoding_name = git_commit_message_encoding(commit);
@@ -147,7 +149,7 @@ static VALUE rb_git_commit_summary_GET(VALUE self)
147
149
  static VALUE rb_git_commit_committer_GET(VALUE self)
148
150
  {
149
151
  git_commit *commit;
150
- Data_Get_Struct(self, git_commit, commit);
152
+ TypedData_Get_Struct(self, git_commit, &rugged_object_type, commit);
151
153
 
152
154
  return rugged_signature_new(
153
155
  git_commit_committer(commit),
@@ -172,7 +174,7 @@ static VALUE rb_git_commit_committer_GET(VALUE self)
172
174
  static VALUE rb_git_commit_author_GET(VALUE self)
173
175
  {
174
176
  git_commit *commit;
175
- Data_Get_Struct(self, git_commit, commit);
177
+ TypedData_Get_Struct(self, git_commit, &rugged_object_type, commit);
176
178
 
177
179
  return rugged_signature_new(
178
180
  git_commit_author(commit),
@@ -192,7 +194,7 @@ static VALUE rb_git_commit_author_GET(VALUE self)
192
194
  static VALUE rb_git_commit_epoch_time_GET(VALUE self)
193
195
  {
194
196
  git_commit *commit;
195
- Data_Get_Struct(self, git_commit, commit);
197
+ TypedData_Get_Struct(self, git_commit, &rugged_object_type, commit);
196
198
 
197
199
  return ULONG2NUM(git_commit_time(commit));
198
200
  }
@@ -213,7 +215,7 @@ static VALUE rb_git_commit_tree_GET(VALUE self)
213
215
  VALUE owner;
214
216
  int error;
215
217
 
216
- Data_Get_Struct(self, git_commit, commit);
218
+ TypedData_Get_Struct(self, git_commit, &rugged_object_type, commit);
217
219
  owner = rugged_owner(self);
218
220
 
219
221
  error = git_commit_tree(&tree, commit);
@@ -236,7 +238,7 @@ static VALUE rb_git_commit_tree_id_GET(VALUE self)
236
238
  git_commit *commit;
237
239
  const git_oid *tree_id;
238
240
 
239
- Data_Get_Struct(self, git_commit, commit);
241
+ TypedData_Get_Struct(self, git_commit, &rugged_object_type, commit);
240
242
 
241
243
  tree_id = git_commit_tree_id(commit);
242
244
 
@@ -262,7 +264,7 @@ static VALUE rb_git_commit_parents_GET(VALUE self)
262
264
  VALUE ret_arr, owner;
263
265
  int error;
264
266
 
265
- Data_Get_Struct(self, git_commit, commit);
267
+ TypedData_Get_Struct(self, git_commit, &rugged_object_type, commit);
266
268
  owner = rugged_owner(self);
267
269
 
268
270
  parent_count = git_commit_parentcount(commit);
@@ -295,7 +297,7 @@ static VALUE rb_git_commit_parent_ids_GET(VALUE self)
295
297
  unsigned int n, parent_count;
296
298
  VALUE ret_arr;
297
299
 
298
- Data_Get_Struct(self, git_commit, commit);
300
+ TypedData_Get_Struct(self, git_commit, &rugged_object_type, commit);
299
301
 
300
302
  parent_count = git_commit_parentcount(commit);
301
303
  ret_arr = rb_ary_new2((long)parent_count);
@@ -352,7 +354,7 @@ static VALUE rb_git_commit_amend(VALUE self, VALUE rb_data)
352
354
 
353
355
  Check_Type(rb_data, T_HASH);
354
356
 
355
- Data_Get_Struct(self, git_commit, commit_to_amend);
357
+ TypedData_Get_Struct(self, git_commit, &rugged_object_type, commit_to_amend);
356
358
 
357
359
  owner = rugged_owner(self);
358
360
  Data_Get_Struct(owner, git_repository, repo);
@@ -474,7 +476,7 @@ static VALUE parse_commit_options(struct commit_data *out, git_repository *repo,
474
476
  if (error < GIT_OK)
475
477
  goto out;
476
478
  } else if (rb_obj_is_kind_of(p, rb_cRuggedCommit)) {
477
- Data_Get_Struct(p, git_commit, tmp);
479
+ TypedData_Get_Struct(p, git_commit, &rugged_object_type, tmp);
478
480
  if ((error = git_object_dup((git_object **) &parent, (git_object *) tmp)) < 0)
479
481
  goto out;
480
482
  } else {
@@ -614,7 +616,7 @@ static VALUE rb_git_commit_to_mbox(int argc, VALUE *argv, VALUE self)
614
616
  rugged_check_repo(rb_repo);
615
617
  Data_Get_Struct(rb_repo, git_repository, repo);
616
618
 
617
- Data_Get_Struct(self, git_commit, commit);
619
+ TypedData_Get_Struct(self, git_commit, &rugged_object_type, commit);
618
620
 
619
621
  if (!NIL_P(rb_options)) {
620
622
  Check_Type(rb_options, T_HASH);
@@ -673,7 +675,7 @@ static VALUE rb_git_commit_header_field(VALUE self, VALUE rb_field)
673
675
  int error;
674
676
 
675
677
  Check_Type(rb_field, T_STRING);
676
- Data_Get_Struct(self, git_commit, commit);
678
+ TypedData_Get_Struct(self, git_commit, &rugged_object_type, commit);
677
679
 
678
680
  error = git_commit_header_field(&header_field, commit, StringValueCStr(rb_field));
679
681
 
@@ -704,7 +706,7 @@ static VALUE rb_git_commit_header(VALUE self)
704
706
  git_commit *commit;
705
707
  const char *raw_header;
706
708
 
707
- Data_Get_Struct(self, git_commit, commit);
709
+ TypedData_Get_Struct(self, git_commit, &rugged_object_type, commit);
708
710
 
709
711
  raw_header = git_commit_raw_header(commit);
710
712
  return rb_str_new_utf8(raw_header);
@@ -6,7 +6,6 @@
6
6
  */
7
7
 
8
8
  #include "rugged.h"
9
- #include <ruby/thread.h>
10
9
 
11
10
  extern VALUE rb_mRugged;
12
11
  VALUE rb_cRuggedDiff;
@@ -198,22 +197,6 @@ static int diff_print_cb(
198
197
  return GIT_OK;
199
198
  }
200
199
 
201
- struct nogvl_diff_patch_args {
202
- git_diff * diff;
203
- git_diff_format_t format;
204
- VALUE rb_str;
205
- };
206
-
207
- static void * rb_git_diff_patch_nogvl(void * _args)
208
- {
209
- struct nogvl_diff_patch_args * args;
210
-
211
- args = (struct nogvl_diff_patch_args *)_args;
212
- git_diff_print(args->diff, args->format, diff_print_cb, (void*) args->rb_str);
213
-
214
- return NULL;
215
- }
216
-
217
200
  /*
218
201
  * call-seq:
219
202
  * diff.patch -> patch
@@ -226,8 +209,6 @@ static VALUE rb_git_diff_patch(int argc, VALUE *argv, VALUE self)
226
209
  git_diff *diff;
227
210
  VALUE rb_str = rb_str_new(NULL, 0);
228
211
  VALUE rb_opts;
229
- struct nogvl_diff_patch_args args;
230
- git_diff_format_t format = GIT_DIFF_FORMAT_PATCH;
231
212
 
232
213
  rb_scan_args(argc, argv, "00:", &rb_opts);
233
214
 
@@ -235,16 +216,13 @@ static VALUE rb_git_diff_patch(int argc, VALUE *argv, VALUE self)
235
216
 
236
217
  if (!NIL_P(rb_opts)) {
237
218
  if (rb_hash_aref(rb_opts, CSTR2SYM("compact")) == Qtrue)
238
- format = GIT_DIFF_FORMAT_NAME_STATUS;
219
+ git_diff_print(diff, GIT_DIFF_FORMAT_NAME_STATUS, diff_print_cb, (void*)rb_str);
239
220
  else
240
- format = GIT_DIFF_FORMAT_PATCH;
221
+ git_diff_print(diff, GIT_DIFF_FORMAT_PATCH, diff_print_cb, (void*)rb_str);
222
+ } else {
223
+ git_diff_print(diff, GIT_DIFF_FORMAT_PATCH, diff_print_cb, (void*)rb_str);
241
224
  }
242
225
 
243
- args.diff = diff;
244
- args.format = format;
245
- args.rb_str = rb_str;
246
- rb_thread_call_without_gvl(rb_git_diff_patch_nogvl, &args, RUBY_UBF_PROCESS, NULL);
247
-
248
226
  return rb_str;
249
227
  }
250
228
 
@@ -13,6 +13,8 @@ extern VALUE rb_cRuggedCommit;
13
13
  extern VALUE rb_cRuggedDiff;
14
14
  extern VALUE rb_cRuggedTree;
15
15
 
16
+ extern const rb_data_type_t rugged_object_type;
17
+
16
18
  static void rb_git_indexentry_toC(git_index_entry *entry, VALUE rb_entry);
17
19
  static VALUE rb_git_indexentry_fromC(const git_index_entry *entry);
18
20
 
@@ -658,7 +660,7 @@ static VALUE rb_git_index_readtree(VALUE self, VALUE rb_tree)
658
660
  int error;
659
661
 
660
662
  Data_Get_Struct(self, git_index, index);
661
- Data_Get_Struct(rb_tree, git_tree, tree);
663
+ TypedData_Get_Struct(rb_tree, git_tree, &rugged_object_type, tree);
662
664
 
663
665
  if (!rb_obj_is_kind_of(rb_tree, rb_cRuggedTree)) {
664
666
  rb_raise(rb_eTypeError, "A Rugged::Tree instance is required");
@@ -690,7 +692,7 @@ static VALUE rb_git_diff_tree_to_index(VALUE self, VALUE rb_other, VALUE rb_opti
690
692
  // the "old file" side of the diff.
691
693
  opts.flags ^= GIT_DIFF_REVERSE;
692
694
 
693
- Data_Get_Struct(rb_other, git_tree, other_tree);
695
+ TypedData_Get_Struct(rb_other, git_tree, &rugged_object_type, other_tree);
694
696
  error = git_diff_tree_to_index(&diff, repo, other_tree, index, &opts);
695
697
 
696
698
  xfree(opts.pathspec.strings);
@@ -10,6 +10,8 @@
10
10
  extern VALUE rb_cRuggedRepo;
11
11
  extern VALUE rb_cRuggedObject;
12
12
 
13
+ extern const rb_data_type_t rugged_object_type;
14
+
13
15
  static VALUE rugged_git_note_message(const git_note *note)
14
16
  {
15
17
  const char *message;
@@ -59,7 +61,7 @@ static VALUE rb_git_note_lookup(int argc, VALUE *argv, VALUE self)
59
61
  notes_ref = StringValueCStr(rb_notes_ref);
60
62
  }
61
63
 
62
- Data_Get_Struct(self, git_object, object);
64
+ TypedData_Get_Struct(self, git_object, &rugged_object_type, object);
63
65
 
64
66
  owner = rugged_owner(self);
65
67
  Data_Get_Struct(owner, git_repository, repo);
@@ -124,7 +126,7 @@ static VALUE rb_git_note_create(VALUE self, VALUE rb_data)
124
126
 
125
127
  Check_Type(rb_data, T_HASH);
126
128
 
127
- Data_Get_Struct(self, git_object, target);
129
+ TypedData_Get_Struct(self, git_object, &rugged_object_type, target);
128
130
 
129
131
  owner = rugged_owner(self);
130
132
  Data_Get_Struct(owner, git_repository, repo);
@@ -207,7 +209,7 @@ static VALUE rb_git_note_remove(int argc, VALUE *argv, VALUE self)
207
209
  VALUE rb_committer = Qnil;
208
210
  VALUE owner;
209
211
 
210
- Data_Get_Struct(self, git_object, target);
212
+ TypedData_Get_Struct(self, git_object, &rugged_object_type, target);
211
213
 
212
214
  owner = rugged_owner(self);
213
215
  Data_Get_Struct(owner, git_repository, repo);