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
@@ -86,6 +86,7 @@ static struct map_data _configmaps[] = {
86
86
  {"core.protecthfs", NULL, 0, GIT_PROTECTHFS_DEFAULT },
87
87
  {"core.protectntfs", NULL, 0, GIT_PROTECTNTFS_DEFAULT },
88
88
  {"core.fsyncobjectfiles", NULL, 0, GIT_FSYNCOBJECTFILES_DEFAULT },
89
+ {"core.longpaths", NULL, 0, GIT_LONGPATHS_DEFAULT },
89
90
  };
90
91
 
91
92
  int git_config__configmap_lookup(int *out, git_config *config, git_configmap_item item)
@@ -111,17 +112,21 @@ int git_config__configmap_lookup(int *out, git_config *config, git_configmap_ite
111
112
 
112
113
  int git_repository__configmap_lookup(int *out, git_repository *repo, git_configmap_item item)
113
114
  {
114
- *out = repo->configmap_cache[(int)item];
115
+ intptr_t value = (intptr_t)git_atomic_load(repo->configmap_cache[(int)item]);
115
116
 
116
- if (*out == GIT_CONFIGMAP_NOT_CACHED) {
117
- int error;
117
+ *out = (int)value;
118
+
119
+ if (value == GIT_CONFIGMAP_NOT_CACHED) {
118
120
  git_config *config;
121
+ intptr_t oldval = value;
122
+ int error;
119
123
 
120
124
  if ((error = git_repository_config__weakptr(&config, repo)) < 0 ||
121
125
  (error = git_config__configmap_lookup(out, config, item)) < 0)
122
126
  return error;
123
127
 
124
- repo->configmap_cache[(int)item] = *out;
128
+ value = *out;
129
+ git_atomic_compare_and_swap(&repo->configmap_cache[(int)item], (void *)oldval, (void *)value);
125
130
  }
126
131
 
127
132
  return 0;
@@ -11,9 +11,13 @@ typedef struct config_entry_list {
11
11
  struct config_entry_list *next;
12
12
  struct config_entry_list *last;
13
13
  git_config_entry *entry;
14
- bool first;
15
14
  } config_entry_list;
16
15
 
16
+ typedef struct {
17
+ git_config_entry *entry;
18
+ bool multivar;
19
+ } config_entry_map_head;
20
+
17
21
  typedef struct config_entries_iterator {
18
22
  git_config_iterator parent;
19
23
  git_config_entries *entries;
@@ -102,14 +106,16 @@ void git_config_entries_incref(git_config_entries *entries)
102
106
  static void config_entries_free(git_config_entries *entries)
103
107
  {
104
108
  config_entry_list *list = NULL, *next;
109
+ config_entry_map_head *head;
105
110
 
111
+ git_strmap_foreach_value(entries->map, head,
112
+ git__free((char *) head->entry->name); git__free(head)
113
+ );
106
114
  git_strmap_free(entries->map);
107
115
 
108
116
  list = entries->list;
109
117
  while (list != NULL) {
110
118
  next = list->next;
111
- if (list->first)
112
- git__free((char *) list->entry->name);
113
119
  git__free((char *) list->entry->value);
114
120
  git__free(list->entry);
115
121
  git__free(list);
@@ -127,40 +133,42 @@ void git_config_entries_free(git_config_entries *entries)
127
133
 
128
134
  int git_config_entries_append(git_config_entries *entries, git_config_entry *entry)
129
135
  {
130
- config_entry_list *existing, *head;
131
-
132
- head = git__calloc(1, sizeof(config_entry_list));
133
- GIT_ERROR_CHECK_ALLOC(head);
134
- head->entry = entry;
135
-
136
- /*
137
- * This is a micro-optimization for configuration files
138
- * with a lot of same keys. As for multivars the entry's
139
- * key will be the same for all entries, we can just free
140
- * all except the first entry's name and just re-use it.
141
- */
142
- if ((existing = git_strmap_get(entries->map, entry->name)) != NULL) {
136
+ config_entry_list *list_head;
137
+ config_entry_map_head *map_head;
138
+
139
+ if ((map_head = git_strmap_get(entries->map, entry->name)) != NULL) {
140
+ map_head->multivar = true;
141
+ /*
142
+ * This is a micro-optimization for configuration files
143
+ * with a lot of same keys. As for multivars the entry's
144
+ * key will be the same for all entries, we can just free
145
+ * all except the first entry's name and just re-use it.
146
+ */
143
147
  git__free((char *) entry->name);
144
- entry->name = existing->entry->name;
148
+ entry->name = map_head->entry->name;
145
149
  } else {
146
- head->first = 1;
150
+ map_head = git__calloc(1, sizeof(*map_head));
151
+ if ((git_strmap_set(entries->map, entry->name, map_head)) < 0)
152
+ return -1;
147
153
  }
154
+ map_head->entry = entry;
155
+
156
+ list_head = git__calloc(1, sizeof(config_entry_list));
157
+ GIT_ERROR_CHECK_ALLOC(list_head);
158
+ list_head->entry = entry;
148
159
 
149
160
  if (entries->list)
150
- entries->list->last->next = head;
161
+ entries->list->last->next = list_head;
151
162
  else
152
- entries->list = head;
153
- entries->list->last = head;
154
-
155
- if (git_strmap_set(entries->map, entry->name, head) < 0)
156
- return -1;
163
+ entries->list = list_head;
164
+ entries->list->last = list_head;
157
165
 
158
166
  return 0;
159
167
  }
160
168
 
161
169
  int git_config_entries_get(git_config_entry **out, git_config_entries *entries, const char *key)
162
170
  {
163
- config_entry_list *entry;
171
+ config_entry_map_head *entry;
164
172
  if ((entry = git_strmap_get(entries->map, key)) == NULL)
165
173
  return GIT_ENOTFOUND;
166
174
  *out = entry->entry;
@@ -169,12 +177,12 @@ int git_config_entries_get(git_config_entry **out, git_config_entries *entries,
169
177
 
170
178
  int git_config_entries_get_unique(git_config_entry **out, git_config_entries *entries, const char *key)
171
179
  {
172
- config_entry_list *entry;
180
+ config_entry_map_head *entry;
173
181
 
174
182
  if ((entry = git_strmap_get(entries->map, key)) == NULL)
175
183
  return GIT_ENOTFOUND;
176
184
 
177
- if (!entry->first) {
185
+ if (entry->multivar) {
178
186
  git_error_set(GIT_ERROR_CONFIG, "entry is not unique due to being a multivar");
179
187
  return -1;
180
188
  }
@@ -111,6 +111,15 @@ static int config_file_open(git_config_backend *cfg, git_config_level_t level, c
111
111
  if (!git_path_exists(b->file.path))
112
112
  return 0;
113
113
 
114
+ /*
115
+ * git silently ignores configuration files that are not
116
+ * readable. We emulate that behavior. This is particularly
117
+ * important for sandboxed applications on macOS where the
118
+ * git configuration files may not be readable.
119
+ */
120
+ if (p_access(b->file.path, R_OK) < 0)
121
+ return GIT_ENOTFOUND;
122
+
114
123
  if (res < 0 || (res = config_file_read(b->entries, repo, &b->file, level, 0)) < 0) {
115
124
  git_config_entries_free(b->entries);
116
125
  b->entries = NULL;
@@ -155,23 +164,27 @@ out:
155
164
  return error;
156
165
  }
157
166
 
167
+ static void config_file_clear_includes(config_file_backend* cfg)
168
+ {
169
+ config_file *include;
170
+ uint32_t i;
171
+
172
+ git_array_foreach(cfg->file.includes, i, include)
173
+ config_file_clear(include);
174
+ git_array_clear(cfg->file.includes);
175
+ }
176
+
158
177
  static int config_file_set_entries(git_config_backend *cfg, git_config_entries *entries)
159
178
  {
160
179
  config_file_backend *b = GIT_CONTAINER_OF(cfg, config_file_backend, parent);
161
180
  git_config_entries *old = NULL;
162
- config_file *include;
163
181
  int error;
164
- uint32_t i;
165
182
 
166
183
  if (b->parent.readonly) {
167
184
  git_error_set(GIT_ERROR_CONFIG, "this backend is read-only");
168
185
  return -1;
169
186
  }
170
187
 
171
- git_array_foreach(b->file.includes, i, include)
172
- config_file_clear(include);
173
- git_array_clear(b->file.includes);
174
-
175
188
  if ((error = git_mutex_lock(&b->values_mutex)) < 0) {
176
189
  git_error_set(GIT_ERROR_OS, "failed to lock config backend");
177
190
  goto out;
@@ -193,6 +206,8 @@ static int config_file_refresh_from_buffer(git_config_backend *cfg, const char *
193
206
  git_config_entries *entries = NULL;
194
207
  int error;
195
208
 
209
+ config_file_clear_includes(b);
210
+
196
211
  if ((error = git_config_entries_new(&entries)) < 0 ||
197
212
  (error = config_file_read_buffer(entries, b->repo, &b->file,
198
213
  b->level, 0, buf, buflen)) < 0 ||
@@ -220,6 +235,8 @@ static int config_file_refresh(git_config_backend *cfg)
220
235
  if (!modified)
221
236
  return 0;
222
237
 
238
+ config_file_clear_includes(b);
239
+
223
240
  if ((error = git_config_entries_new(&entries)) < 0 ||
224
241
  (error = config_file_read(entries, b->repo, &b->file, b->level, 0)) < 0 ||
225
242
  (error = config_file_set_entries(cfg, entries)) < 0)
@@ -356,7 +373,7 @@ static int config_file_set_multivar(
356
373
  int result;
357
374
  char *key;
358
375
 
359
- assert(regexp);
376
+ GIT_ASSERT_ARG(regexp);
360
377
 
361
378
  if ((result = git_config__normalize_name(name, &key)) < 0)
362
379
  return result;
@@ -522,7 +539,7 @@ static char *escape_value(const char *ptr)
522
539
  size_t len;
523
540
  const char *esc;
524
541
 
525
- assert(ptr);
542
+ GIT_ASSERT_ARG_WITH_RETVAL(ptr, NULL);
526
543
 
527
544
  len = strlen(ptr);
528
545
  if (!len)
@@ -7,8 +7,6 @@
7
7
 
8
8
  #include "config_parse.h"
9
9
 
10
- #include "buf_text.h"
11
-
12
10
  #include <ctype.h>
13
11
 
14
12
  const char *git_config_escapes = "ntb\"\\";
@@ -187,7 +185,7 @@ static int parse_section_header(git_config_parser *reader, char **section_out)
187
185
 
188
186
  /* Make sure we were given a section header */
189
187
  c = line[pos++];
190
- assert(c == '[');
188
+ GIT_ASSERT(c == '[');
191
189
 
192
190
  c = line[pos++];
193
191
 
@@ -230,10 +228,10 @@ fail_parse:
230
228
  static int skip_bom(git_parse_ctx *parser)
231
229
  {
232
230
  git_buf buf = GIT_BUF_INIT_CONST(parser->content, parser->content_len);
233
- git_bom_t bom;
234
- int bom_offset = git_buf_text_detect_bom(&bom, &buf);
231
+ git_buf_bom_t bom;
232
+ int bom_offset = git_buf_detect_bom(&bom, &buf);
235
233
 
236
- if (bom == GIT_BOM_UTF8)
234
+ if (bom == GIT_BUF_BOM_UTF8)
237
235
  git_parse_advance_chars(parser, bom_offset);
238
236
 
239
237
  /* TODO: reference implementation is pretty stupid with BoM */
@@ -451,7 +449,7 @@ static int parse_variable(git_config_parser *reader, char **var_name, char **var
451
449
  git_buf_attach(&multi_value, value, 0);
452
450
  value = NULL;
453
451
 
454
- if (parse_multiline_variable(reader, &multi_value, quote_count) < 0 ||
452
+ if (parse_multiline_variable(reader, &multi_value, quote_count % 2) < 0 ||
455
453
  git_buf_oom(&multi_value)) {
456
454
  error = -1;
457
455
  git_buf_dispose(&multi_value);
@@ -5,8 +5,9 @@
5
5
  * a Linking Exception. For full terms see the included COPYING file.
6
6
  */
7
7
 
8
- #include "config.h"
8
+ #include "config_backend.h"
9
9
 
10
+ #include "config.h"
10
11
  #include "config_entries.h"
11
12
 
12
13
  typedef struct {
@@ -15,7 +15,6 @@
15
15
  #include "futils.h"
16
16
  #include "hash.h"
17
17
  #include "filter.h"
18
- #include "buf_text.h"
19
18
  #include "repository.h"
20
19
 
21
20
  typedef enum {
@@ -219,7 +218,7 @@ static int crlf_apply_to_odb(
219
218
  if (ca->crlf_action == GIT_CRLF_BINARY || !git_buf_len(from))
220
219
  return GIT_PASSTHROUGH;
221
220
 
222
- is_binary = git_buf_text_gather_stats(&stats, from, false);
221
+ is_binary = git_buf_gather_text_stats(&stats, from, false);
223
222
 
224
223
  /* Heuristics to see if we can skip the conversion.
225
224
  * Straight from Core Git.
@@ -247,7 +246,7 @@ static int crlf_apply_to_odb(
247
246
  return GIT_PASSTHROUGH;
248
247
 
249
248
  /* Actually drop the carriage returns */
250
- return git_buf_text_crlf_to_lf(to, from);
249
+ return git_buf_crlf_to_lf(to, from);
251
250
  }
252
251
 
253
252
  static int crlf_apply_to_workdir(
@@ -262,7 +261,7 @@ static int crlf_apply_to_workdir(
262
261
  if (git_buf_len(from) == 0 || output_eol(ca) != GIT_EOL_CRLF)
263
262
  return GIT_PASSTHROUGH;
264
263
 
265
- is_binary = git_buf_text_gather_stats(&stats, from, false);
264
+ is_binary = git_buf_gather_text_stats(&stats, from, false);
266
265
 
267
266
  /* If there are no LFs, or all LFs are part of a CRLF, nothing to do */
268
267
  if (stats.lf == 0 || stats.lf == stats.crlf)
@@ -281,7 +280,7 @@ static int crlf_apply_to_workdir(
281
280
  return GIT_PASSTHROUGH;
282
281
  }
283
282
 
284
- return git_buf_text_lf_to_crlf(to, from);
283
+ return git_buf_lf_to_crlf(to, from);
285
284
  }
286
285
 
287
286
  static int convert_attrs(
@@ -387,6 +386,17 @@ static int crlf_apply(
387
386
  return crlf_apply_to_odb(*payload, to, from, src);
388
387
  }
389
388
 
389
+ static int crlf_stream(
390
+ git_writestream **out,
391
+ git_filter *self,
392
+ void **payload,
393
+ const git_filter_source *src,
394
+ git_writestream *next)
395
+ {
396
+ return git_filter_buffered_stream_new(out,
397
+ self, crlf_apply, NULL, payload, src, next);
398
+ }
399
+
390
400
  static void crlf_cleanup(
391
401
  git_filter *self,
392
402
  void *payload)
@@ -406,7 +416,7 @@ git_filter *git_crlf_filter_new(void)
406
416
  f->f.initialize = NULL;
407
417
  f->f.shutdown = git_filter_free;
408
418
  f->f.check = crlf_check;
409
- f->f.apply = crlf_apply;
419
+ f->f.stream = crlf_stream;
410
420
  f->f.cleanup = crlf_cleanup;
411
421
 
412
422
  return (git_filter *)f;
@@ -204,7 +204,7 @@ static int is_date(int year, int month, int day, struct tm *now_tm, time_t now,
204
204
  if (month > 0 && month < 13 && day > 0 && day < 32) {
205
205
  struct tm check = *tm;
206
206
  struct tm *r = (now_tm ? &check : tm);
207
- time_t specified;
207
+ git_time_t specified;
208
208
 
209
209
  r->tm_mon = month - 1;
210
210
  r->tm_mday = day;
@@ -722,7 +722,7 @@ static const char *approxidate_alpha(const char *date, struct tm *tm, struct tm
722
722
  while (tl->type) {
723
723
  size_t len = strlen(tl->type);
724
724
  if (match_string(date, tl->type) >= len-1) {
725
- update_tm(tm, now, tl->length * *num);
725
+ update_tm(tm, now, tl->length * (unsigned long)*num);
726
726
  *num = 0;
727
727
  *touched = 1;
728
728
  return end;
@@ -881,7 +881,8 @@ int git__date_rfc2822_fmt(char *out, size_t len, const git_time *date)
881
881
  struct tm gmt;
882
882
  time_t t;
883
883
 
884
- assert(out && date);
884
+ GIT_ASSERT_ARG(out);
885
+ GIT_ASSERT_ARG(date);
885
886
 
886
887
  t = (time_t) (date->time + date->offset * 60);
887
888
 
@@ -256,7 +256,7 @@ void git_delta_index_free(git_delta_index *index)
256
256
 
257
257
  size_t git_delta_index_size(git_delta_index *index)
258
258
  {
259
- assert(index);
259
+ GIT_ASSERT_ARG(index);
260
260
 
261
261
  return index->memsize;
262
262
  }
@@ -655,7 +655,8 @@ int git_describe_commit(
655
655
  int error = -1;
656
656
  git_describe_options normalized;
657
657
 
658
- assert(committish);
658
+ GIT_ASSERT_ARG(result);
659
+ GIT_ASSERT_ARG(committish);
659
660
 
660
661
  data.result = git__calloc(1, sizeof(git_describe_result));
661
662
  GIT_ERROR_CHECK_ALLOC(data.result);
@@ -685,7 +686,7 @@ int git_describe_commit(
685
686
  get_name, &data)) < 0)
686
687
  goto cleanup;
687
688
 
688
- if (git_oidmap_size(data.names) == 0 && !opts->show_commit_oid_as_fallback) {
689
+ if (git_oidmap_size(data.names) == 0 && !normalized.show_commit_oid_as_fallback) {
689
690
  git_error_set(GIT_ERROR_DESCRIBE, "cannot describe - "
690
691
  "no reference found, cannot describe anything.");
691
692
  error = -1;
@@ -775,12 +776,14 @@ int git_describe_format(git_buf *out, const git_describe_result *result, const g
775
776
  struct commit_name *name;
776
777
  git_describe_format_options opts;
777
778
 
778
- assert(out && result);
779
+ GIT_ASSERT_ARG(out);
780
+ GIT_ASSERT_ARG(result);
779
781
 
780
782
  GIT_ERROR_CHECK_VERSION(given, GIT_DESCRIBE_FORMAT_OPTIONS_VERSION, "git_describe_format_options");
781
783
  normalize_format_options(&opts, given);
782
784
 
783
- git_buf_sanitize(out);
785
+ if ((error = git_buf_sanitize(out)) < 0)
786
+ return error;
784
787
 
785
788
 
786
789
  if (opts.always_use_long_format && opts.abbreviated_size == 0) {
@@ -876,10 +879,12 @@ int git_describe_options_init(git_describe_options *opts, unsigned int version)
876
879
  return 0;
877
880
  }
878
881
 
882
+ #ifndef GIT_DEPRECATE_HARD
879
883
  int git_describe_init_options(git_describe_options *opts, unsigned int version)
880
884
  {
881
885
  return git_describe_options_init(opts, version);
882
886
  }
887
+ #endif
883
888
 
884
889
  int git_describe_format_options_init(git_describe_format_options *opts, unsigned int version)
885
890
  {
@@ -888,7 +893,9 @@ int git_describe_format_options_init(git_describe_format_options *opts, unsigned
888
893
  return 0;
889
894
  }
890
895
 
896
+ #ifndef GIT_DEPRECATE_HARD
891
897
  int git_describe_init_format_options(git_describe_format_options *opts, unsigned int version)
892
898
  {
893
899
  return git_describe_format_options_init(opts, version);
894
900
  }
901
+ #endif