rugged 1.7.1 → 1.9.0

Sign up to get free protection for your applications and to get access to all the features.
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 +73 -92
  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 +6 -3
  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 +4 -3
  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