rugged 1.7.2 → 1.9.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 (361) hide show
  1. checksums.yaml +4 -4
  2. data/lib/rugged/version.rb +1 -1
  3. data/vendor/libgit2/AUTHORS +1 -0
  4. data/vendor/libgit2/CMakeLists.txt +23 -10
  5. data/vendor/libgit2/COPYING +195 -1
  6. data/vendor/libgit2/cmake/{FindIconv.cmake → FindIntlIconv.cmake} +6 -0
  7. data/vendor/libgit2/cmake/FindLLHTTP.cmake +39 -0
  8. data/vendor/libgit2/cmake/SelectGSSAPI.cmake +1 -1
  9. data/vendor/libgit2/cmake/SelectHTTPParser.cmake +23 -8
  10. data/vendor/libgit2/cmake/SelectHTTPSBackend.cmake +17 -8
  11. data/vendor/libgit2/cmake/SelectHashes.cmake +28 -11
  12. data/vendor/libgit2/cmake/SelectRegex.cmake +6 -1
  13. data/vendor/libgit2/cmake/SelectSSH.cmake +22 -17
  14. data/vendor/libgit2/cmake/SelectZlib.cmake +4 -0
  15. data/vendor/libgit2/deps/llhttp/CMakeLists.txt +8 -0
  16. data/vendor/libgit2/deps/llhttp/LICENSE-MIT +22 -0
  17. data/vendor/libgit2/deps/llhttp/api.c +510 -0
  18. data/vendor/libgit2/deps/llhttp/http.c +170 -0
  19. data/vendor/libgit2/deps/llhttp/llhttp.c +10168 -0
  20. data/vendor/libgit2/deps/llhttp/llhttp.h +897 -0
  21. data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +1 -1
  22. data/vendor/libgit2/deps/ntlmclient/crypt_builtin_md4.c +311 -0
  23. data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.c +2 -1
  24. data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.c +0 -20
  25. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +4 -4
  26. data/vendor/libgit2/deps/ntlmclient/ntlm.c +21 -21
  27. data/vendor/libgit2/deps/ntlmclient/unicode_builtin.c +5 -4
  28. data/vendor/libgit2/deps/ntlmclient/unicode_iconv.c +2 -1
  29. data/vendor/libgit2/deps/ntlmclient/utf8.h +1176 -721
  30. data/vendor/libgit2/deps/ntlmclient/util.h +11 -0
  31. data/vendor/libgit2/deps/pcre/CMakeLists.txt +1 -0
  32. data/vendor/libgit2/deps/xdiff/xmerge.c +2 -2
  33. data/vendor/libgit2/deps/zlib/CMakeLists.txt +6 -1
  34. data/vendor/libgit2/deps/zlib/LICENSE +22 -0
  35. data/vendor/libgit2/deps/zlib/adler32.c +5 -27
  36. data/vendor/libgit2/deps/zlib/crc32.c +94 -167
  37. data/vendor/libgit2/deps/zlib/deflate.c +358 -435
  38. data/vendor/libgit2/deps/zlib/deflate.h +41 -10
  39. data/vendor/libgit2/deps/zlib/gzguts.h +13 -18
  40. data/vendor/libgit2/deps/zlib/infback.c +17 -30
  41. data/vendor/libgit2/deps/zlib/inffast.c +1 -4
  42. data/vendor/libgit2/deps/zlib/inffast.h +1 -1
  43. data/vendor/libgit2/deps/zlib/inflate.c +36 -102
  44. data/vendor/libgit2/deps/zlib/inftrees.c +6 -11
  45. data/vendor/libgit2/deps/zlib/inftrees.h +6 -6
  46. data/vendor/libgit2/deps/zlib/trees.c +287 -352
  47. data/vendor/libgit2/deps/zlib/zconf.h +23 -14
  48. data/vendor/libgit2/deps/zlib/zlib.h +202 -202
  49. data/vendor/libgit2/deps/zlib/zutil.c +18 -44
  50. data/vendor/libgit2/deps/zlib/zutil.h +13 -33
  51. data/vendor/libgit2/include/git2/annotated_commit.h +12 -5
  52. data/vendor/libgit2/include/git2/apply.h +27 -6
  53. data/vendor/libgit2/include/git2/attr.h +17 -4
  54. data/vendor/libgit2/include/git2/blame.h +133 -28
  55. data/vendor/libgit2/include/git2/blob.h +71 -28
  56. data/vendor/libgit2/include/git2/branch.h +22 -15
  57. data/vendor/libgit2/include/git2/buffer.h +6 -4
  58. data/vendor/libgit2/include/git2/cert.h +2 -1
  59. data/vendor/libgit2/include/git2/checkout.h +83 -32
  60. data/vendor/libgit2/include/git2/cherrypick.h +10 -3
  61. data/vendor/libgit2/include/git2/clone.h +25 -9
  62. data/vendor/libgit2/include/git2/commit.h +132 -3
  63. data/vendor/libgit2/include/git2/common.h +120 -63
  64. data/vendor/libgit2/include/git2/config.h +93 -23
  65. data/vendor/libgit2/include/git2/credential.h +30 -2
  66. data/vendor/libgit2/include/git2/credential_helpers.h +1 -0
  67. data/vendor/libgit2/include/git2/deprecated.h +133 -3
  68. data/vendor/libgit2/include/git2/describe.h +13 -1
  69. data/vendor/libgit2/include/git2/diff.h +38 -8
  70. data/vendor/libgit2/include/git2/email.h +9 -29
  71. data/vendor/libgit2/include/git2/errors.h +46 -73
  72. data/vendor/libgit2/include/git2/filter.h +14 -7
  73. data/vendor/libgit2/include/git2/global.h +8 -1
  74. data/vendor/libgit2/include/git2/graph.h +3 -2
  75. data/vendor/libgit2/include/git2/ignore.h +10 -0
  76. data/vendor/libgit2/include/git2/index.h +99 -14
  77. data/vendor/libgit2/include/git2/indexer.h +21 -4
  78. data/vendor/libgit2/include/git2/mailmap.h +7 -1
  79. data/vendor/libgit2/include/git2/merge.h +46 -1
  80. data/vendor/libgit2/include/git2/message.h +2 -2
  81. data/vendor/libgit2/include/git2/net.h +3 -1
  82. data/vendor/libgit2/include/git2/notes.h +9 -6
  83. data/vendor/libgit2/include/git2/object.h +9 -8
  84. data/vendor/libgit2/include/git2/odb.h +91 -49
  85. data/vendor/libgit2/include/git2/odb_backend.h +80 -52
  86. data/vendor/libgit2/include/git2/oid.h +23 -24
  87. data/vendor/libgit2/include/git2/oidarray.h +7 -1
  88. data/vendor/libgit2/include/git2/pack.h +13 -1
  89. data/vendor/libgit2/include/git2/patch.h +2 -3
  90. data/vendor/libgit2/include/git2/pathspec.h +9 -0
  91. data/vendor/libgit2/include/git2/proxy.h +10 -0
  92. data/vendor/libgit2/include/git2/rebase.h +9 -6
  93. data/vendor/libgit2/include/git2/refdb.h +2 -2
  94. data/vendor/libgit2/include/git2/reflog.h +3 -2
  95. data/vendor/libgit2/include/git2/refs.h +9 -6
  96. data/vendor/libgit2/include/git2/refspec.h +14 -4
  97. data/vendor/libgit2/include/git2/remote.h +94 -18
  98. data/vendor/libgit2/include/git2/repository.h +57 -21
  99. data/vendor/libgit2/include/git2/reset.h +16 -3
  100. data/vendor/libgit2/include/git2/revert.h +9 -4
  101. data/vendor/libgit2/include/git2/revparse.h +3 -3
  102. data/vendor/libgit2/include/git2/revwalk.h +3 -2
  103. data/vendor/libgit2/include/git2/signature.h +46 -1
  104. data/vendor/libgit2/include/git2/stash.h +17 -3
  105. data/vendor/libgit2/include/git2/status.h +10 -6
  106. data/vendor/libgit2/include/git2/stdint.h +87 -85
  107. data/vendor/libgit2/include/git2/strarray.h +2 -3
  108. data/vendor/libgit2/include/git2/submodule.h +20 -9
  109. data/vendor/libgit2/include/git2/sys/alloc.h +12 -0
  110. data/vendor/libgit2/include/git2/sys/commit.h +77 -3
  111. data/vendor/libgit2/include/git2/sys/commit_graph.h +103 -62
  112. data/vendor/libgit2/include/git2/sys/config.h +80 -4
  113. data/vendor/libgit2/include/git2/sys/credential.h +4 -3
  114. data/vendor/libgit2/include/git2/sys/diff.h +21 -1
  115. data/vendor/libgit2/include/git2/sys/email.h +7 -0
  116. data/vendor/libgit2/include/git2/sys/errors.h +76 -0
  117. data/vendor/libgit2/include/git2/sys/filter.h +66 -3
  118. data/vendor/libgit2/include/git2/sys/hashsig.h +11 -0
  119. data/vendor/libgit2/include/git2/sys/index.h +3 -2
  120. data/vendor/libgit2/include/git2/sys/mempack.h +32 -2
  121. data/vendor/libgit2/include/git2/sys/merge.h +55 -7
  122. data/vendor/libgit2/include/git2/sys/midx.h +43 -4
  123. data/vendor/libgit2/include/git2/sys/odb_backend.h +7 -3
  124. data/vendor/libgit2/include/git2/sys/openssl.h +8 -1
  125. data/vendor/libgit2/include/git2/sys/path.h +12 -1
  126. data/vendor/libgit2/include/git2/sys/refdb_backend.h +40 -36
  127. data/vendor/libgit2/include/git2/sys/refs.h +3 -2
  128. data/vendor/libgit2/include/git2/sys/remote.h +8 -1
  129. data/vendor/libgit2/include/git2/sys/repository.h +63 -3
  130. data/vendor/libgit2/include/git2/sys/stream.h +11 -2
  131. data/vendor/libgit2/include/git2/sys/transport.h +24 -3
  132. data/vendor/libgit2/include/git2/tag.h +3 -1
  133. data/vendor/libgit2/include/git2/trace.h +9 -3
  134. data/vendor/libgit2/include/git2/transaction.h +3 -2
  135. data/vendor/libgit2/include/git2/transport.h +11 -3
  136. data/vendor/libgit2/include/git2/tree.h +16 -5
  137. data/vendor/libgit2/include/git2/types.h +19 -3
  138. data/vendor/libgit2/include/git2/version.h +44 -8
  139. data/vendor/libgit2/include/git2/worktree.h +16 -6
  140. data/vendor/libgit2/src/CMakeLists.txt +6 -4
  141. data/vendor/libgit2/src/cli/CMakeLists.txt +2 -2
  142. data/vendor/libgit2/src/cli/cmd.c +1 -1
  143. data/vendor/libgit2/src/cli/cmd.h +4 -0
  144. data/vendor/libgit2/src/cli/cmd_blame.c +287 -0
  145. data/vendor/libgit2/src/cli/cmd_cat_file.c +6 -8
  146. data/vendor/libgit2/src/cli/cmd_clone.c +5 -7
  147. data/vendor/libgit2/src/cli/cmd_config.c +241 -0
  148. data/vendor/libgit2/src/cli/cmd_hash_object.c +6 -8
  149. data/vendor/libgit2/src/cli/cmd_help.c +6 -7
  150. data/vendor/libgit2/src/cli/cmd_index_pack.c +114 -0
  151. data/vendor/libgit2/src/cli/cmd_init.c +102 -0
  152. data/vendor/libgit2/src/cli/common.c +168 -0
  153. data/vendor/libgit2/src/cli/common.h +63 -0
  154. data/vendor/libgit2/src/cli/error.h +1 -1
  155. data/vendor/libgit2/src/cli/main.c +52 -24
  156. data/vendor/libgit2/src/cli/opt.c +29 -3
  157. data/vendor/libgit2/src/cli/opt.h +21 -3
  158. data/vendor/libgit2/src/cli/opt_usage.c +102 -33
  159. data/vendor/libgit2/src/cli/opt_usage.h +6 -1
  160. data/vendor/libgit2/src/cli/progress.c +51 -2
  161. data/vendor/libgit2/src/cli/progress.h +12 -0
  162. data/vendor/libgit2/src/cli/unix/sighandler.c +2 -1
  163. data/vendor/libgit2/src/cli/win32/precompiled.h +1 -1
  164. data/vendor/libgit2/src/cli/win32/sighandler.c +1 -1
  165. data/vendor/libgit2/src/libgit2/CMakeLists.txt +26 -8
  166. data/vendor/libgit2/src/libgit2/apply.c +10 -13
  167. data/vendor/libgit2/src/libgit2/attr.c +30 -13
  168. data/vendor/libgit2/src/libgit2/attr_file.c +7 -2
  169. data/vendor/libgit2/src/libgit2/attr_file.h +2 -0
  170. data/vendor/libgit2/src/libgit2/attrcache.c +69 -33
  171. data/vendor/libgit2/src/libgit2/attrcache.h +5 -9
  172. data/vendor/libgit2/src/libgit2/blame.c +130 -44
  173. data/vendor/libgit2/src/libgit2/blame.h +1 -0
  174. data/vendor/libgit2/src/libgit2/cache.c +22 -17
  175. data/vendor/libgit2/src/libgit2/cache.h +7 -9
  176. data/vendor/libgit2/src/libgit2/checkout.c +34 -24
  177. data/vendor/libgit2/src/libgit2/checkout.h +0 -2
  178. data/vendor/libgit2/src/libgit2/cherrypick.c +1 -2
  179. data/vendor/libgit2/src/libgit2/clone.c +186 -166
  180. data/vendor/libgit2/src/libgit2/clone.h +4 -1
  181. data/vendor/libgit2/src/libgit2/commit.c +92 -0
  182. data/vendor/libgit2/src/libgit2/commit_graph.c +67 -56
  183. data/vendor/libgit2/src/libgit2/commit_graph.h +1 -2
  184. data/vendor/libgit2/src/libgit2/config.c +389 -298
  185. data/vendor/libgit2/src/libgit2/config.cmake.in +3 -0
  186. data/vendor/libgit2/src/libgit2/config.h +9 -4
  187. data/vendor/libgit2/src/libgit2/config_backend.h +8 -10
  188. data/vendor/libgit2/src/libgit2/config_cache.c +4 -5
  189. data/vendor/libgit2/src/libgit2/config_file.c +99 -88
  190. data/vendor/libgit2/src/libgit2/config_list.c +285 -0
  191. data/vendor/libgit2/src/libgit2/config_list.h +32 -0
  192. data/vendor/libgit2/src/libgit2/config_mem.c +194 -40
  193. data/vendor/libgit2/src/libgit2/config_parse.c +10 -9
  194. data/vendor/libgit2/src/libgit2/config_snapshot.c +24 -31
  195. data/vendor/libgit2/src/libgit2/describe.c +24 -24
  196. data/vendor/libgit2/src/libgit2/diff.c +1 -1
  197. data/vendor/libgit2/src/libgit2/diff_driver.c +12 -19
  198. data/vendor/libgit2/src/libgit2/diff_driver.h +2 -2
  199. data/vendor/libgit2/src/libgit2/diff_generate.c +3 -3
  200. data/vendor/libgit2/src/libgit2/diff_parse.c +2 -2
  201. data/vendor/libgit2/src/libgit2/diff_print.c +65 -9
  202. data/vendor/libgit2/src/libgit2/diff_tform.c +36 -8
  203. data/vendor/libgit2/src/libgit2/email.c +1 -0
  204. data/vendor/libgit2/src/libgit2/fetch.c +5 -3
  205. data/vendor/libgit2/src/libgit2/filter.c +5 -5
  206. data/vendor/libgit2/src/libgit2/git2.rc +3 -3
  207. data/vendor/libgit2/src/libgit2/grafts.c +18 -20
  208. data/vendor/libgit2/src/libgit2/grafts.h +0 -1
  209. data/vendor/libgit2/src/libgit2/graph.c +1 -1
  210. data/vendor/libgit2/src/libgit2/hashmap_oid.h +30 -0
  211. data/vendor/libgit2/src/libgit2/ignore.c +9 -5
  212. data/vendor/libgit2/src/libgit2/index.c +68 -90
  213. data/vendor/libgit2/src/libgit2/index.h +2 -2
  214. data/vendor/libgit2/src/libgit2/index_map.c +95 -0
  215. data/vendor/libgit2/src/libgit2/index_map.h +28 -0
  216. data/vendor/libgit2/src/libgit2/indexer.c +34 -38
  217. data/vendor/libgit2/src/libgit2/iterator.c +14 -8
  218. data/vendor/libgit2/src/libgit2/libgit2.c +153 -368
  219. data/vendor/libgit2/src/libgit2/mailmap.c +1 -1
  220. data/vendor/libgit2/src/libgit2/merge.c +42 -37
  221. data/vendor/libgit2/src/libgit2/merge_driver.c +2 -2
  222. data/vendor/libgit2/src/libgit2/midx.c +28 -15
  223. data/vendor/libgit2/src/libgit2/mwindow.c +38 -45
  224. data/vendor/libgit2/src/libgit2/mwindow.h +4 -0
  225. data/vendor/libgit2/src/libgit2/object.c +6 -5
  226. data/vendor/libgit2/src/libgit2/odb.c +5 -4
  227. data/vendor/libgit2/src/libgit2/odb_mempack.c +49 -17
  228. data/vendor/libgit2/src/libgit2/odb_pack.c +13 -5
  229. data/vendor/libgit2/src/libgit2/oid.c +32 -5
  230. data/vendor/libgit2/src/libgit2/oid.h +11 -0
  231. data/vendor/libgit2/src/libgit2/pack-objects.c +58 -31
  232. data/vendor/libgit2/src/libgit2/pack-objects.h +12 -4
  233. data/vendor/libgit2/src/libgit2/pack.c +30 -24
  234. data/vendor/libgit2/src/libgit2/pack.h +15 -10
  235. data/vendor/libgit2/src/libgit2/patch_parse.c +2 -2
  236. data/vendor/libgit2/src/libgit2/path.c +1 -1
  237. data/vendor/libgit2/src/libgit2/pathspec.c +1 -1
  238. data/vendor/libgit2/src/libgit2/push.c +79 -28
  239. data/vendor/libgit2/src/libgit2/push.h +1 -0
  240. data/vendor/libgit2/src/libgit2/refdb_fs.c +128 -61
  241. data/vendor/libgit2/src/libgit2/reflog.c +1 -2
  242. data/vendor/libgit2/src/libgit2/reflog.h +2 -0
  243. data/vendor/libgit2/src/libgit2/refs.c +26 -7
  244. data/vendor/libgit2/src/libgit2/refs.h +6 -1
  245. data/vendor/libgit2/src/libgit2/refspec.c +28 -1
  246. data/vendor/libgit2/src/libgit2/refspec.h +8 -0
  247. data/vendor/libgit2/src/libgit2/remote.c +121 -61
  248. data/vendor/libgit2/src/libgit2/repository.c +231 -51
  249. data/vendor/libgit2/src/libgit2/repository.h +10 -6
  250. data/vendor/libgit2/src/libgit2/revert.c +1 -2
  251. data/vendor/libgit2/src/libgit2/revparse.c +2 -2
  252. data/vendor/libgit2/src/libgit2/revwalk.c +13 -10
  253. data/vendor/libgit2/src/libgit2/revwalk.h +3 -3
  254. data/vendor/libgit2/src/libgit2/settings.c +468 -0
  255. data/vendor/libgit2/src/libgit2/settings.h +6 -2
  256. data/vendor/libgit2/src/libgit2/signature.c +132 -15
  257. data/vendor/libgit2/src/libgit2/signature.h +0 -1
  258. data/vendor/libgit2/src/libgit2/status.c +1 -1
  259. data/vendor/libgit2/src/libgit2/streams/mbedtls.c +54 -60
  260. data/vendor/libgit2/src/libgit2/streams/openssl.c +32 -7
  261. data/vendor/libgit2/src/libgit2/streams/openssl.h +2 -0
  262. data/vendor/libgit2/src/libgit2/streams/openssl_dynamic.c +4 -0
  263. data/vendor/libgit2/src/libgit2/streams/openssl_dynamic.h +3 -0
  264. data/vendor/libgit2/src/libgit2/streams/stransport.c +39 -7
  265. data/vendor/libgit2/src/libgit2/submodule.c +106 -63
  266. data/vendor/libgit2/src/libgit2/submodule.h +6 -7
  267. data/vendor/libgit2/src/libgit2/tag.c +1 -1
  268. data/vendor/libgit2/src/libgit2/trailer.c +6 -6
  269. data/vendor/libgit2/src/libgit2/transaction.c +26 -20
  270. data/vendor/libgit2/src/libgit2/transaction.h +4 -1
  271. data/vendor/libgit2/src/libgit2/transport.c +4 -1
  272. data/vendor/libgit2/src/libgit2/transports/credential.c +1 -1
  273. data/vendor/libgit2/src/libgit2/transports/http.c +1 -2
  274. data/vendor/libgit2/src/libgit2/transports/http.h +0 -10
  275. data/vendor/libgit2/src/libgit2/transports/httpclient.c +112 -72
  276. data/vendor/libgit2/src/libgit2/transports/httpparser.c +128 -0
  277. data/vendor/libgit2/src/libgit2/transports/httpparser.h +99 -0
  278. data/vendor/libgit2/src/libgit2/transports/local.c +8 -7
  279. data/vendor/libgit2/src/libgit2/transports/smart.c +20 -8
  280. data/vendor/libgit2/src/libgit2/transports/smart.h +4 -2
  281. data/vendor/libgit2/src/libgit2/transports/smart_pkt.c +2 -2
  282. data/vendor/libgit2/src/libgit2/transports/smart_protocol.c +55 -10
  283. data/vendor/libgit2/src/libgit2/transports/ssh.c +41 -1103
  284. data/vendor/libgit2/src/libgit2/transports/ssh_exec.c +347 -0
  285. data/vendor/libgit2/src/libgit2/transports/ssh_exec.h +26 -0
  286. data/vendor/libgit2/src/libgit2/transports/ssh_libssh2.c +1126 -0
  287. data/vendor/libgit2/src/libgit2/transports/ssh_libssh2.h +28 -0
  288. data/vendor/libgit2/src/libgit2/transports/winhttp.c +35 -7
  289. data/vendor/libgit2/src/libgit2/tree.c +34 -26
  290. data/vendor/libgit2/src/libgit2/tree.h +3 -2
  291. data/vendor/libgit2/src/libgit2/worktree.c +14 -17
  292. data/vendor/libgit2/src/util/CMakeLists.txt +4 -6
  293. data/vendor/libgit2/src/util/alloc.c +4 -1
  294. data/vendor/libgit2/src/util/allocators/debugalloc.c +73 -0
  295. data/vendor/libgit2/src/{cli/cli.h → util/allocators/debugalloc.h} +6 -9
  296. data/vendor/libgit2/src/util/allocators/stdalloc.c +0 -10
  297. data/vendor/libgit2/src/util/array.h +18 -17
  298. data/vendor/libgit2/src/util/cc-compat.h +2 -0
  299. data/vendor/libgit2/src/util/ctype_compat.h +70 -0
  300. data/vendor/libgit2/src/util/date.c +22 -14
  301. data/vendor/libgit2/src/util/date.h +12 -0
  302. data/vendor/libgit2/src/util/errors.c +401 -0
  303. data/vendor/libgit2/src/{libgit2 → util}/errors.h +21 -17
  304. data/vendor/libgit2/src/util/fs_path.c +15 -4
  305. data/vendor/libgit2/src/util/fs_path.h +23 -0
  306. data/vendor/libgit2/src/util/futils.c +6 -5
  307. data/vendor/libgit2/src/util/futils.h +13 -4
  308. data/vendor/libgit2/src/util/git2_features.h.in +12 -1
  309. data/vendor/libgit2/src/util/git2_util.h +6 -0
  310. data/vendor/libgit2/src/util/hash/openssl.c +152 -0
  311. data/vendor/libgit2/src/util/hash/openssl.h +17 -1
  312. data/vendor/libgit2/src/util/hash/sha.h +4 -1
  313. data/vendor/libgit2/src/util/hashmap.h +424 -0
  314. data/vendor/libgit2/src/util/hashmap_str.h +43 -0
  315. data/vendor/libgit2/src/util/integer.h +3 -1
  316. data/vendor/libgit2/src/util/net.c +13 -7
  317. data/vendor/libgit2/src/util/net.h +2 -0
  318. data/vendor/libgit2/src/util/pool.c +1 -1
  319. data/vendor/libgit2/src/util/pool.h +5 -0
  320. data/vendor/libgit2/src/util/pqueue.h +1 -1
  321. data/vendor/libgit2/src/util/process.h +222 -0
  322. data/vendor/libgit2/src/util/rand.c +1 -7
  323. data/vendor/libgit2/src/util/regexp.c +1 -1
  324. data/vendor/libgit2/src/util/sortedcache.c +14 -13
  325. data/vendor/libgit2/src/util/sortedcache.h +3 -3
  326. data/vendor/libgit2/src/util/str.c +2 -2
  327. data/vendor/libgit2/src/util/strlist.c +108 -0
  328. data/vendor/libgit2/src/util/strlist.h +36 -0
  329. data/vendor/libgit2/src/util/unix/posix.h +0 -2
  330. data/vendor/libgit2/src/util/unix/process.c +629 -0
  331. data/vendor/libgit2/src/util/unix/realpath.c +23 -5
  332. data/vendor/libgit2/src/util/util.c +2 -2
  333. data/vendor/libgit2/src/util/util.h +4 -38
  334. data/vendor/libgit2/src/util/vector.c +3 -3
  335. data/vendor/libgit2/src/util/vector.h +2 -2
  336. data/vendor/libgit2/src/util/win32/posix_w32.c +29 -6
  337. data/vendor/libgit2/src/util/win32/process.c +506 -0
  338. metadata +45 -28
  339. data/vendor/libgit2/deps/http-parser/CMakeLists.txt +0 -6
  340. data/vendor/libgit2/deps/http-parser/COPYING +0 -23
  341. data/vendor/libgit2/deps/http-parser/http_parser.c +0 -2182
  342. data/vendor/libgit2/deps/http-parser/http_parser.h +0 -305
  343. data/vendor/libgit2/deps/zlib/COPYING +0 -27
  344. data/vendor/libgit2/include/git2/sys/reflog.h +0 -21
  345. data/vendor/libgit2/src/libgit2/config_entries.c +0 -237
  346. data/vendor/libgit2/src/libgit2/config_entries.h +0 -24
  347. data/vendor/libgit2/src/libgit2/errors.c +0 -293
  348. data/vendor/libgit2/src/libgit2/idxmap.c +0 -157
  349. data/vendor/libgit2/src/libgit2/idxmap.h +0 -177
  350. data/vendor/libgit2/src/libgit2/libgit2.h +0 -15
  351. data/vendor/libgit2/src/libgit2/offmap.c +0 -101
  352. data/vendor/libgit2/src/libgit2/offmap.h +0 -133
  353. data/vendor/libgit2/src/libgit2/oidmap.c +0 -107
  354. data/vendor/libgit2/src/libgit2/oidmap.h +0 -128
  355. data/vendor/libgit2/src/libgit2/threadstate.c +0 -97
  356. data/vendor/libgit2/src/libgit2/threadstate.h +0 -22
  357. data/vendor/libgit2/src/libgit2/transports/ssh.h +0 -14
  358. data/vendor/libgit2/src/util/khash.h +0 -615
  359. data/vendor/libgit2/src/util/strmap.c +0 -100
  360. data/vendor/libgit2/src/util/strmap.h +0 -131
  361. /data/vendor/libgit2/cmake/{FindHTTPParser.cmake → FindHTTP_Parser.cmake} +0 -0
@@ -5,67 +5,32 @@
5
5
  * a Linking Exception. For full terms see the included COPYING file.
6
6
  */
7
7
 
8
- #include "libgit2.h"
9
-
10
8
  #include <git2.h>
11
9
  #include "alloc.h"
12
10
  #include "buf.h"
13
- #include "cache.h"
14
11
  #include "common.h"
15
12
  #include "filter.h"
16
- #include "grafts.h"
17
13
  #include "hash.h"
18
- #include "index.h"
19
14
  #include "merge_driver.h"
20
15
  #include "pool.h"
21
16
  #include "mwindow.h"
22
- #include "object.h"
23
- #include "odb.h"
17
+ #include "oid.h"
24
18
  #include "rand.h"
25
- #include "refs.h"
26
19
  #include "runtime.h"
20
+ #include "settings.h"
27
21
  #include "sysdir.h"
28
22
  #include "thread.h"
29
- #include "threadstate.h"
30
23
  #include "git2/global.h"
31
24
  #include "streams/registry.h"
32
25
  #include "streams/mbedtls.h"
33
26
  #include "streams/openssl.h"
34
27
  #include "streams/socket.h"
35
- #include "transports/smart.h"
36
- #include "transports/http.h"
37
- #include "transports/ssh.h"
28
+ #include "transports/ssh_libssh2.h"
38
29
 
39
30
  #ifdef GIT_WIN32
40
31
  # include "win32/w32_leakcheck.h"
41
32
  #endif
42
33
 
43
- /* Declarations for tuneable settings */
44
- extern size_t git_mwindow__window_size;
45
- extern size_t git_mwindow__mapped_limit;
46
- extern size_t git_mwindow__file_limit;
47
- extern size_t git_indexer__max_objects;
48
- extern bool git_disable_pack_keep_file_checks;
49
- extern int git_odb__packed_priority;
50
- extern int git_odb__loose_priority;
51
- extern int git_socket_stream__connect_timeout;
52
- extern int git_socket_stream__timeout;
53
-
54
- char *git__user_agent;
55
- char *git__ssl_ciphers;
56
-
57
- static void libgit2_settings_global_shutdown(void)
58
- {
59
- git__free(git__user_agent);
60
- git__free(git__ssl_ciphers);
61
- git_repository__free_extensions();
62
- }
63
-
64
- static int git_libgit2_settings_global_init(void)
65
- {
66
- return git_runtime_shutdown_register(libgit2_settings_global_shutdown);
67
- }
68
-
69
34
  int git_libgit2_init(void)
70
35
  {
71
36
  static git_runtime_init_fn init_fns[] = {
@@ -73,31 +38,27 @@ int git_libgit2_init(void)
73
38
  git_win32_leakcheck_global_init,
74
39
  #endif
75
40
  git_allocator_global_init,
76
- git_threadstate_global_init,
41
+ git_error_global_init,
77
42
  git_threads_global_init,
43
+ git_oid_global_init,
78
44
  git_rand_global_init,
79
45
  git_hash_global_init,
80
46
  git_sysdir_global_init,
81
47
  git_filter_global_init,
82
48
  git_merge_driver_global_init,
83
- git_transport_ssh_global_init,
49
+ git_transport_ssh_libssh2_global_init,
84
50
  git_stream_registry_global_init,
85
51
  git_socket_stream_global_init,
86
52
  git_openssl_stream_global_init,
87
53
  git_mbedtls_stream_global_init,
88
54
  git_mwindow_global_init,
89
55
  git_pool_global_init,
90
- git_libgit2_settings_global_init
56
+ git_settings_global_init
91
57
  };
92
58
 
93
59
  return git_runtime_init(init_fns, ARRAY_SIZE(init_fns));
94
60
  }
95
61
 
96
- int git_libgit2_init_count(void)
97
- {
98
- return git_runtime_init_count();
99
- }
100
-
101
62
  int git_libgit2_shutdown(void)
102
63
  {
103
64
  return git_runtime_shutdown();
@@ -105,16 +66,16 @@ int git_libgit2_shutdown(void)
105
66
 
106
67
  int git_libgit2_version(int *major, int *minor, int *rev)
107
68
  {
108
- *major = LIBGIT2_VER_MAJOR;
109
- *minor = LIBGIT2_VER_MINOR;
110
- *rev = LIBGIT2_VER_REVISION;
69
+ *major = LIBGIT2_VERSION_MAJOR;
70
+ *minor = LIBGIT2_VERSION_MINOR;
71
+ *rev = LIBGIT2_VERSION_REVISION;
111
72
 
112
73
  return 0;
113
74
  }
114
75
 
115
76
  const char *git_libgit2_prerelease(void)
116
77
  {
117
- return LIBGIT2_VER_PRERELEASE;
78
+ return LIBGIT2_VERSION_PRERELEASE;
118
79
  }
119
80
 
120
81
  int git_libgit2_features(void)
@@ -126,358 +87,182 @@ int git_libgit2_features(void)
126
87
  #ifdef GIT_HTTPS
127
88
  | GIT_FEATURE_HTTPS
128
89
  #endif
129
- #if defined(GIT_SSH)
90
+ #ifdef GIT_SSH
130
91
  | GIT_FEATURE_SSH
131
92
  #endif
132
- #if defined(GIT_USE_NSEC)
93
+ #ifdef GIT_USE_NSEC
133
94
  | GIT_FEATURE_NSEC
95
+ #endif
96
+ | GIT_FEATURE_HTTP_PARSER
97
+ | GIT_FEATURE_REGEX
98
+ #ifdef GIT_USE_ICONV
99
+ | GIT_FEATURE_I18N
100
+ #endif
101
+ #if defined(GIT_NTLM) || defined(GIT_WIN32)
102
+ | GIT_FEATURE_AUTH_NTLM
103
+ #endif
104
+ #if defined(GIT_GSSAPI) || defined(GIT_GSSFRAMEWORK) || defined(GIT_WIN32)
105
+ | GIT_FEATURE_AUTH_NEGOTIATE
106
+ #endif
107
+ | GIT_FEATURE_COMPRESSION
108
+ | GIT_FEATURE_SHA1
109
+ #ifdef GIT_EXPERIMENTAL_SHA256
110
+ | GIT_FEATURE_SHA256
134
111
  #endif
135
112
  ;
136
113
  }
137
114
 
138
- static int config_level_to_sysdir(int *out, int config_level)
139
- {
140
- switch (config_level) {
141
- case GIT_CONFIG_LEVEL_SYSTEM:
142
- *out = GIT_SYSDIR_SYSTEM;
143
- return 0;
144
- case GIT_CONFIG_LEVEL_XDG:
145
- *out = GIT_SYSDIR_XDG;
146
- return 0;
147
- case GIT_CONFIG_LEVEL_GLOBAL:
148
- *out = GIT_SYSDIR_GLOBAL;
149
- return 0;
150
- case GIT_CONFIG_LEVEL_PROGRAMDATA:
151
- *out = GIT_SYSDIR_PROGRAMDATA;
152
- return 0;
153
- default:
154
- break;
155
- }
156
-
157
- git_error_set(
158
- GIT_ERROR_INVALID, "invalid config path selector %d", config_level);
159
- return -1;
160
- }
161
-
162
- const char *git_libgit2__user_agent(void)
115
+ const char *git_libgit2_feature_backend(git_feature_t feature)
163
116
  {
164
- return git__user_agent;
165
- }
166
-
167
- const char *git_libgit2__ssl_ciphers(void)
168
- {
169
- return git__ssl_ciphers;
170
- }
171
-
172
- int git_libgit2_opts(int key, ...)
173
- {
174
- int error = 0;
175
- va_list ap;
176
-
177
- va_start(ap, key);
178
-
179
- switch (key) {
180
- case GIT_OPT_SET_MWINDOW_SIZE:
181
- git_mwindow__window_size = va_arg(ap, size_t);
182
- break;
183
-
184
- case GIT_OPT_GET_MWINDOW_SIZE:
185
- *(va_arg(ap, size_t *)) = git_mwindow__window_size;
186
- break;
187
-
188
- case GIT_OPT_SET_MWINDOW_MAPPED_LIMIT:
189
- git_mwindow__mapped_limit = va_arg(ap, size_t);
190
- break;
191
-
192
- case GIT_OPT_GET_MWINDOW_MAPPED_LIMIT:
193
- *(va_arg(ap, size_t *)) = git_mwindow__mapped_limit;
194
- break;
195
-
196
- case GIT_OPT_SET_MWINDOW_FILE_LIMIT:
197
- git_mwindow__file_limit = va_arg(ap, size_t);
198
- break;
199
-
200
- case GIT_OPT_GET_MWINDOW_FILE_LIMIT:
201
- *(va_arg(ap, size_t *)) = git_mwindow__file_limit;
202
- break;
203
-
204
- case GIT_OPT_GET_SEARCH_PATH:
205
- {
206
- int sysdir = va_arg(ap, int);
207
- git_buf *out = va_arg(ap, git_buf *);
208
- git_str str = GIT_STR_INIT;
209
- const git_str *tmp;
210
- int level;
211
-
212
- if ((error = git_buf_tostr(&str, out)) < 0 ||
213
- (error = config_level_to_sysdir(&level, sysdir)) < 0 ||
214
- (error = git_sysdir_get(&tmp, level)) < 0 ||
215
- (error = git_str_put(&str, tmp->ptr, tmp->size)) < 0)
216
- break;
217
-
218
- error = git_buf_fromstr(out, &str);
219
- }
220
- break;
221
-
222
- case GIT_OPT_SET_SEARCH_PATH:
223
- {
224
- int level;
225
-
226
- if ((error = config_level_to_sysdir(&level, va_arg(ap, int))) >= 0)
227
- error = git_sysdir_set(level, va_arg(ap, const char *));
228
- }
229
- break;
230
-
231
- case GIT_OPT_SET_CACHE_OBJECT_LIMIT:
232
- {
233
- git_object_t type = (git_object_t)va_arg(ap, int);
234
- size_t size = va_arg(ap, size_t);
235
- error = git_cache_set_max_object_size(type, size);
236
- break;
237
- }
238
-
239
- case GIT_OPT_SET_CACHE_MAX_SIZE:
240
- git_cache__max_storage = va_arg(ap, ssize_t);
241
- break;
242
-
243
- case GIT_OPT_ENABLE_CACHING:
244
- git_cache__enabled = (va_arg(ap, int) != 0);
117
+ switch (feature) {
118
+ case GIT_FEATURE_THREADS:
119
+ #if defined(GIT_THREADS) && defined(GIT_WIN32)
120
+ return "win32";
121
+ #elif defined(GIT_THREADS)
122
+ return "pthread";
123
+ #endif
245
124
  break;
246
125
 
247
- case GIT_OPT_GET_CACHED_MEMORY:
248
- *(va_arg(ap, ssize_t *)) = git_cache__current_storage.val;
249
- *(va_arg(ap, ssize_t *)) = git_cache__max_storage;
126
+ case GIT_FEATURE_HTTPS:
127
+ #if defined(GIT_HTTPS) && defined(GIT_OPENSSL)
128
+ return "openssl";
129
+ #elif defined(GIT_HTTPS) && defined(GIT_OPENSSL_DYNAMIC)
130
+ return "openssl-dynamic";
131
+ #elif defined(GIT_HTTPS) && defined(GIT_MBEDTLS)
132
+ return "mbedtls";
133
+ #elif defined(GIT_HTTPS) && defined(GIT_SECURE_TRANSPORT)
134
+ return "securetransport";
135
+ #elif defined(GIT_HTTPS) && defined(GIT_SCHANNEL)
136
+ return "schannel";
137
+ #elif defined(GIT_HTTPS) && defined(GIT_WINHTTP)
138
+ return "winhttp";
139
+ #elif defined(GIT_HTTPS)
140
+ GIT_ASSERT_WITH_RETVAL(!"Unknown HTTPS backend", NULL);
141
+ #endif
250
142
  break;
251
143
 
252
- case GIT_OPT_GET_TEMPLATE_PATH:
253
- {
254
- git_buf *out = va_arg(ap, git_buf *);
255
- git_str str = GIT_STR_INIT;
256
- const git_str *tmp;
257
-
258
- if ((error = git_buf_tostr(&str, out)) < 0 ||
259
- (error = git_sysdir_get(&tmp, GIT_SYSDIR_TEMPLATE)) < 0 ||
260
- (error = git_str_put(&str, tmp->ptr, tmp->size)) < 0)
261
- break;
262
-
263
- error = git_buf_fromstr(out, &str);
264
- }
144
+ case GIT_FEATURE_SSH:
145
+ #if defined(GIT_SSH_EXEC)
146
+ return "exec";
147
+ #elif defined(GIT_SSH_LIBSSH2)
148
+ return "libssh2";
149
+ #elif defined(GIT_SSH)
150
+ GIT_ASSERT_WITH_RETVAL(!"Unknown SSH backend", NULL);
151
+ #endif
265
152
  break;
266
153
 
267
- case GIT_OPT_SET_TEMPLATE_PATH:
268
- error = git_sysdir_set(GIT_SYSDIR_TEMPLATE, va_arg(ap, const char *));
154
+ case GIT_FEATURE_NSEC:
155
+ #if defined(GIT_USE_NSEC) && defined(GIT_USE_STAT_MTIMESPEC)
156
+ return "mtimespec";
157
+ #elif defined(GIT_USE_NSEC) && defined(GIT_USE_STAT_MTIM)
158
+ return "mtim";
159
+ #elif defined(GIT_USE_NSEC) && defined(GIT_USE_STAT_MTIME_NSEC)
160
+ return "mtime";
161
+ #elif defined(GIT_USE_NSEC) && defined(GIT_WIN32)
162
+ return "win32";
163
+ #elif defined(GIT_USE_NSEC)
164
+ GIT_ASSERT_WITH_RETVAL(!"Unknown high-resolution time backend", NULL);
165
+ #endif
269
166
  break;
270
167
 
271
- case GIT_OPT_SET_SSL_CERT_LOCATIONS:
272
- #ifdef GIT_OPENSSL
273
- {
274
- const char *file = va_arg(ap, const char *);
275
- const char *path = va_arg(ap, const char *);
276
- error = git_openssl__set_cert_location(file, path);
277
- }
278
- #elif defined(GIT_MBEDTLS)
279
- {
280
- const char *file = va_arg(ap, const char *);
281
- const char *path = va_arg(ap, const char *);
282
- error = git_mbedtls__set_cert_location(file, path);
283
- }
284
- #else
285
- git_error_set(GIT_ERROR_SSL, "TLS backend doesn't support certificate locations");
286
- error = -1;
168
+ case GIT_FEATURE_HTTP_PARSER:
169
+ #if defined(GIT_HTTPPARSER_HTTPPARSER)
170
+ return "httpparser";
171
+ #elif defined(GIT_HTTPPARSER_LLHTTP)
172
+ return "llhttp";
173
+ #elif defined(GIT_HTTPPARSER_BUILTIN)
174
+ return "builtin";
175
+ #endif
176
+ GIT_ASSERT_WITH_RETVAL(!"Unknown HTTP parser backend", NULL);
177
+ break;
178
+
179
+ case GIT_FEATURE_REGEX:
180
+ #if defined(GIT_REGEX_REGCOMP_L)
181
+ return "regcomp_l";
182
+ #elif defined(GIT_REGEX_REGCOMP)
183
+ return "regcomp";
184
+ #elif defined(GIT_REGEX_PCRE)
185
+ return "pcre";
186
+ #elif defined(GIT_REGEX_PCRE2)
187
+ return "pcre2";
188
+ #elif defined(GIT_REGEX_BUILTIN)
189
+ return "builtin";
287
190
  #endif
191
+ GIT_ASSERT_WITH_RETVAL(!"Unknown regular expression backend", NULL);
288
192
  break;
289
- case GIT_OPT_SET_USER_AGENT:
290
- git__free(git__user_agent);
291
- git__user_agent = git__strdup(va_arg(ap, const char *));
292
- if (!git__user_agent) {
293
- git_error_set_oom();
294
- error = -1;
295
- }
296
193
 
194
+ case GIT_FEATURE_I18N:
195
+ #if defined(GIT_USE_ICONV)
196
+ return "iconv";
197
+ #endif
297
198
  break;
298
199
 
299
- case GIT_OPT_ENABLE_STRICT_OBJECT_CREATION:
300
- git_object__strict_input_validation = (va_arg(ap, int) != 0);
200
+ case GIT_FEATURE_AUTH_NTLM:
201
+ #if defined(GIT_NTLM)
202
+ return "ntlmclient";
203
+ #elif defined(GIT_WIN32)
204
+ return "sspi";
205
+ #endif
301
206
  break;
302
207
 
303
- case GIT_OPT_ENABLE_STRICT_SYMBOLIC_REF_CREATION:
304
- git_reference__enable_symbolic_ref_target_validation = (va_arg(ap, int) != 0);
208
+ case GIT_FEATURE_AUTH_NEGOTIATE:
209
+ #if defined(GIT_GSSAPI)
210
+ return "gssapi";
211
+ #elif defined(GIT_WIN32)
212
+ return "sspi";
213
+ #endif
305
214
  break;
306
215
 
307
- case GIT_OPT_SET_SSL_CIPHERS:
308
- #if (GIT_OPENSSL || GIT_MBEDTLS)
309
- {
310
- git__free(git__ssl_ciphers);
311
- git__ssl_ciphers = git__strdup(va_arg(ap, const char *));
312
- if (!git__ssl_ciphers) {
313
- git_error_set_oom();
314
- error = -1;
315
- }
316
- }
216
+ case GIT_FEATURE_COMPRESSION:
217
+ #if defined(GIT_COMPRESSION_ZLIB)
218
+ return "zlib";
219
+ #elif defined(GIT_COMPRESSION_BUILTIN)
220
+ return "builtin";
317
221
  #else
318
- git_error_set(GIT_ERROR_SSL, "TLS backend doesn't support custom ciphers");
319
- error = -1;
222
+ GIT_ASSERT_WITH_RETVAL(!"Unknown compression backend", NULL);
320
223
  #endif
321
224
  break;
322
225
 
323
- case GIT_OPT_GET_USER_AGENT:
324
- {
325
- git_buf *out = va_arg(ap, git_buf *);
326
- git_str str = GIT_STR_INIT;
327
-
328
- if ((error = git_buf_tostr(&str, out)) < 0 ||
329
- (error = git_str_puts(&str, git__user_agent)) < 0)
330
- break;
331
-
332
- error = git_buf_fromstr(out, &str);
333
- }
334
- break;
335
-
336
- case GIT_OPT_ENABLE_OFS_DELTA:
337
- git_smart__ofs_delta_enabled = (va_arg(ap, int) != 0);
338
- break;
339
-
340
- case GIT_OPT_ENABLE_FSYNC_GITDIR:
341
- git_repository__fsync_gitdir = (va_arg(ap, int) != 0);
342
- break;
343
-
344
- case GIT_OPT_GET_WINDOWS_SHAREMODE:
345
- #ifdef GIT_WIN32
346
- *(va_arg(ap, unsigned long *)) = git_win32__createfile_sharemode;
226
+ case GIT_FEATURE_SHA1:
227
+ #if defined(GIT_SHA1_COLLISIONDETECT)
228
+ return "builtin";
229
+ #elif defined(GIT_SHA1_OPENSSL)
230
+ return "openssl";
231
+ #elif defined(GIT_SHA1_OPENSSL_FIPS)
232
+ return "openssl-fips";
233
+ #elif defined(GIT_SHA1_OPENSSL_DYNAMIC)
234
+ return "openssl-dynamic";
235
+ #elif defined(GIT_SHA1_MBEDTLS)
236
+ return "mbedtls";
237
+ #elif defined(GIT_SHA1_COMMON_CRYPTO)
238
+ return "commoncrypto";
239
+ #elif defined(GIT_SHA1_WIN32)
240
+ return "win32";
241
+ #else
242
+ GIT_ASSERT_WITH_RETVAL(!"Unknown SHA1 backend", NULL);
347
243
  #endif
348
244
  break;
349
245
 
350
- case GIT_OPT_SET_WINDOWS_SHAREMODE:
351
- #ifdef GIT_WIN32
352
- git_win32__createfile_sharemode = va_arg(ap, unsigned long);
246
+ case GIT_FEATURE_SHA256:
247
+ #if defined(GIT_EXPERIMENTAL_SHA256) && defined(GIT_SHA256_BUILTIN)
248
+ return "builtin";
249
+ #elif defined(GIT_EXPERIMENTAL_SHA256) && defined(GIT_SHA256_OPENSSL)
250
+ return "openssl";
251
+ #elif defined(GIT_EXPERIMENTAL_SHA256) && defined(GIT_SHA256_OPENSSL_FIPS)
252
+ return "openssl-fips";
253
+ #elif defined(GIT_EXPERIMENTAL_SHA256) && defined(GIT_SHA256_OPENSSL_DYNAMIC)
254
+ return "openssl-dynamic";
255
+ #elif defined(GIT_EXPERIMENTAL_SHA256) && defined(GIT_SHA256_MBEDTLS)
256
+ return "mbedtls";
257
+ #elif defined(GIT_EXPERIMENTAL_SHA256) && defined(GIT_SHA256_COMMON_CRYPTO)
258
+ return "commoncrypto";
259
+ #elif defined(GIT_EXPERIMENTAL_SHA256) && defined(GIT_SHA256_WIN32)
260
+ return "win32";
261
+ #elif defined(GIT_EXPERIMENTAL_SHA256)
262
+ GIT_ASSERT_WITH_RETVAL(!"Unknown SHA256 backend", NULL);
353
263
  #endif
354
264
  break;
355
-
356
- case GIT_OPT_ENABLE_STRICT_HASH_VERIFICATION:
357
- git_odb__strict_hash_verification = (va_arg(ap, int) != 0);
358
- break;
359
-
360
- case GIT_OPT_SET_ALLOCATOR:
361
- error = git_allocator_setup(va_arg(ap, git_allocator *));
362
- break;
363
-
364
- case GIT_OPT_ENABLE_UNSAVED_INDEX_SAFETY:
365
- git_index__enforce_unsaved_safety = (va_arg(ap, int) != 0);
366
- break;
367
-
368
- case GIT_OPT_SET_PACK_MAX_OBJECTS:
369
- git_indexer__max_objects = va_arg(ap, size_t);
370
- break;
371
-
372
- case GIT_OPT_GET_PACK_MAX_OBJECTS:
373
- *(va_arg(ap, size_t *)) = git_indexer__max_objects;
374
- break;
375
-
376
- case GIT_OPT_DISABLE_PACK_KEEP_FILE_CHECKS:
377
- git_disable_pack_keep_file_checks = (va_arg(ap, int) != 0);
378
- break;
379
-
380
- case GIT_OPT_ENABLE_HTTP_EXPECT_CONTINUE:
381
- git_http__expect_continue = (va_arg(ap, int) != 0);
382
- break;
383
-
384
- case GIT_OPT_SET_ODB_PACKED_PRIORITY:
385
- git_odb__packed_priority = va_arg(ap, int);
386
- break;
387
-
388
- case GIT_OPT_SET_ODB_LOOSE_PRIORITY:
389
- git_odb__loose_priority = va_arg(ap, int);
390
- break;
391
-
392
- case GIT_OPT_SET_EXTENSIONS:
393
- {
394
- const char **extensions = va_arg(ap, const char **);
395
- size_t len = va_arg(ap, size_t);
396
- error = git_repository__set_extensions(extensions, len);
397
- }
398
- break;
399
-
400
- case GIT_OPT_GET_EXTENSIONS:
401
- {
402
- git_strarray *out = va_arg(ap, git_strarray *);
403
- char **extensions;
404
- size_t len;
405
-
406
- if ((error = git_repository__extensions(&extensions, &len)) < 0)
407
- break;
408
-
409
- out->strings = extensions;
410
- out->count = len;
411
- }
412
- break;
413
-
414
- case GIT_OPT_GET_OWNER_VALIDATION:
415
- *(va_arg(ap, int *)) = git_repository__validate_ownership;
416
- break;
417
-
418
- case GIT_OPT_SET_OWNER_VALIDATION:
419
- git_repository__validate_ownership = (va_arg(ap, int) != 0);
420
- break;
421
-
422
- case GIT_OPT_GET_HOMEDIR:
423
- {
424
- git_buf *out = va_arg(ap, git_buf *);
425
- git_str str = GIT_STR_INIT;
426
- const git_str *tmp;
427
-
428
- if ((error = git_buf_tostr(&str, out)) < 0 ||
429
- (error = git_sysdir_get(&tmp, GIT_SYSDIR_HOME)) < 0 ||
430
- (error = git_str_put(&str, tmp->ptr, tmp->size)) < 0)
431
- break;
432
-
433
- error = git_buf_fromstr(out, &str);
434
- }
435
- break;
436
-
437
- case GIT_OPT_SET_HOMEDIR:
438
- error = git_sysdir_set(GIT_SYSDIR_HOME, va_arg(ap, const char *));
439
- break;
440
-
441
- case GIT_OPT_GET_SERVER_CONNECT_TIMEOUT:
442
- *(va_arg(ap, int *)) = git_socket_stream__connect_timeout;
443
- break;
444
-
445
- case GIT_OPT_SET_SERVER_CONNECT_TIMEOUT:
446
- {
447
- int timeout = va_arg(ap, int);
448
-
449
- if (timeout < 0) {
450
- git_error_set(GIT_ERROR_INVALID, "invalid connect timeout");
451
- error = -1;
452
- } else {
453
- git_socket_stream__connect_timeout = timeout;
454
- }
455
- }
456
- break;
457
-
458
- case GIT_OPT_GET_SERVER_TIMEOUT:
459
- *(va_arg(ap, int *)) = git_socket_stream__timeout;
460
- break;
461
-
462
- case GIT_OPT_SET_SERVER_TIMEOUT:
463
- {
464
- int timeout = va_arg(ap, int);
465
-
466
- if (timeout < 0) {
467
- git_error_set(GIT_ERROR_INVALID, "invalid timeout");
468
- error = -1;
469
- } else {
470
- git_socket_stream__timeout = timeout;
471
- }
472
- }
473
- break;
474
-
475
- default:
476
- git_error_set(GIT_ERROR_INVALID, "invalid option key");
477
- error = -1;
478
265
  }
479
266
 
480
- va_end(ap);
481
-
482
- return error;
267
+ return NULL;
483
268
  }
@@ -173,7 +173,7 @@ void git_mailmap_free(git_mailmap *mm)
173
173
  git_vector_foreach(&mm->entries, idx, entry)
174
174
  mailmap_entry_free(entry);
175
175
 
176
- git_vector_free(&mm->entries);
176
+ git_vector_dispose(&mm->entries);
177
177
  git__free(mm);
178
178
  }
179
179