rugged 1.7.2 → 1.9.6

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 (477) hide show
  1. checksums.yaml +4 -4
  2. data/ext/rugged/extconf.rb +4 -4
  3. data/ext/rugged/rugged.c +12 -1
  4. data/ext/rugged/rugged_blame.c +22 -6
  5. data/ext/rugged/rugged_blob.c +24 -9
  6. data/ext/rugged/rugged_branch.c +10 -7
  7. data/ext/rugged/rugged_branch_collection.c +8 -6
  8. data/ext/rugged/rugged_commit.c +7 -6
  9. data/ext/rugged/rugged_config.c +20 -11
  10. data/ext/rugged/rugged_diff.c +26 -12
  11. data/ext/rugged/rugged_diff_hunk.c +2 -1
  12. data/ext/rugged/rugged_index.c +39 -29
  13. data/ext/rugged/rugged_note.c +7 -6
  14. data/ext/rugged/rugged_object.c +3 -2
  15. data/ext/rugged/rugged_patch.c +23 -9
  16. data/ext/rugged/rugged_rebase.c +22 -10
  17. data/ext/rugged/rugged_reference.c +22 -13
  18. data/ext/rugged/rugged_reference_collection.c +9 -7
  19. data/ext/rugged/rugged_remote.c +23 -12
  20. data/ext/rugged/rugged_remote_collection.c +11 -9
  21. data/ext/rugged/rugged_repo.c +60 -45
  22. data/ext/rugged/rugged_revwalk.c +22 -12
  23. data/ext/rugged/rugged_submodule.c +23 -20
  24. data/ext/rugged/rugged_submodule_collection.c +20 -9
  25. data/ext/rugged/rugged_tag.c +6 -4
  26. data/ext/rugged/rugged_tag_collection.c +7 -5
  27. data/ext/rugged/rugged_tree.c +27 -15
  28. data/lib/rugged/version.rb +1 -1
  29. data/vendor/libgit2/AUTHORS +3 -0
  30. data/vendor/libgit2/CMakeLists.txt +23 -10
  31. data/vendor/libgit2/COPYING +278 -12
  32. data/vendor/libgit2/cmake/DefaultCFlags.cmake +8 -3
  33. data/vendor/libgit2/cmake/{FindIconv.cmake → FindIntlIconv.cmake} +6 -0
  34. data/vendor/libgit2/cmake/FindLLHTTP.cmake +39 -0
  35. data/vendor/libgit2/cmake/SelectGSSAPI.cmake +1 -1
  36. data/vendor/libgit2/cmake/SelectHTTPParser.cmake +23 -8
  37. data/vendor/libgit2/cmake/SelectHTTPSBackend.cmake +17 -8
  38. data/vendor/libgit2/cmake/SelectHashes.cmake +28 -11
  39. data/vendor/libgit2/cmake/SelectRegex.cmake +14 -4
  40. data/vendor/libgit2/cmake/SelectSSH.cmake +30 -19
  41. data/vendor/libgit2/cmake/SelectZlib.cmake +4 -0
  42. data/vendor/libgit2/deps/llhttp/CMakeLists.txt +8 -0
  43. data/vendor/libgit2/deps/llhttp/LICENSE-MIT +22 -0
  44. data/vendor/libgit2/deps/llhttp/api.c +510 -0
  45. data/vendor/libgit2/deps/llhttp/http.c +170 -0
  46. data/vendor/libgit2/deps/llhttp/llhttp.c +10168 -0
  47. data/vendor/libgit2/deps/llhttp/llhttp.h +897 -0
  48. data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +1 -1
  49. data/vendor/libgit2/deps/ntlmclient/crypt_builtin_md4.c +311 -0
  50. data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.c +2 -1
  51. data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.c +0 -20
  52. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +4 -4
  53. data/vendor/libgit2/deps/ntlmclient/ntlm.c +21 -21
  54. data/vendor/libgit2/deps/ntlmclient/unicode_builtin.c +5 -4
  55. data/vendor/libgit2/deps/ntlmclient/unicode_iconv.c +2 -1
  56. data/vendor/libgit2/deps/ntlmclient/utf8.h +1176 -721
  57. data/vendor/libgit2/deps/ntlmclient/util.h +11 -0
  58. data/vendor/libgit2/deps/pcre2/CMakeLists.txt +110 -0
  59. data/vendor/libgit2/deps/pcre2/LICENCE.md +104 -0
  60. data/vendor/libgit2/deps/pcre2/config.h.in +54 -0
  61. data/vendor/libgit2/deps/pcre2/pcre2.h +1079 -0
  62. data/vendor/libgit2/deps/pcre2/pcre2_auto_possess.c +1416 -0
  63. data/vendor/libgit2/deps/{pcre/pcre_chartables.c → pcre2/pcre2_chartables.c} +41 -47
  64. data/vendor/libgit2/deps/{pcre/pcre_ord2utf8.c → pcre2/pcre2_chkdint.c} +36 -36
  65. data/vendor/libgit2/deps/pcre2/pcre2_compile.c +11345 -0
  66. data/vendor/libgit2/deps/pcre2/pcre2_compile.h +356 -0
  67. data/vendor/libgit2/deps/pcre2/pcre2_compile_cgroup.c +632 -0
  68. data/vendor/libgit2/deps/pcre2/pcre2_compile_class.c +2777 -0
  69. data/vendor/libgit2/deps/pcre2/pcre2_config.c +250 -0
  70. data/vendor/libgit2/deps/pcre2/pcre2_context.c +557 -0
  71. data/vendor/libgit2/deps/pcre2/pcre2_convert.c +1263 -0
  72. data/vendor/libgit2/deps/{pcre/pcre_dfa_exec.c → pcre2/pcre2_dfa_match.c} +1402 -943
  73. data/vendor/libgit2/deps/pcre2/pcre2_error.c +384 -0
  74. data/vendor/libgit2/deps/pcre2/pcre2_extuni.c +159 -0
  75. data/vendor/libgit2/deps/pcre2/pcre2_find_bracket.c +217 -0
  76. data/vendor/libgit2/deps/pcre2/pcre2_fuzzsupport.c +844 -0
  77. data/vendor/libgit2/deps/pcre2/pcre2_internal.h +2353 -0
  78. data/vendor/libgit2/deps/pcre2/pcre2_intmodedep.h +1044 -0
  79. data/vendor/libgit2/deps/pcre2/pcre2_maketables.c +177 -0
  80. data/vendor/libgit2/deps/pcre2/pcre2_match.c +8244 -0
  81. data/vendor/libgit2/deps/pcre2/pcre2_match_data.c +184 -0
  82. data/vendor/libgit2/deps/pcre2/pcre2_match_next.c +171 -0
  83. data/vendor/libgit2/deps/{pcre/pcre_newline.c → pcre2/pcre2_newline.c} +92 -63
  84. data/vendor/libgit2/deps/{pcre/pcre_refcount.c → pcre2/pcre2_ord2utf.c} +64 -38
  85. data/vendor/libgit2/deps/pcre2/pcre2_pattern_info.c +430 -0
  86. data/vendor/libgit2/deps/pcre2/pcre2_printint_inc.h +1098 -0
  87. data/vendor/libgit2/deps/pcre2/pcre2_script_run.c +344 -0
  88. data/vendor/libgit2/deps/pcre2/pcre2_serialize.c +284 -0
  89. data/vendor/libgit2/deps/pcre2/pcre2_string_utils.c +199 -0
  90. data/vendor/libgit2/deps/pcre2/pcre2_study.c +2087 -0
  91. data/vendor/libgit2/deps/pcre2/pcre2_substitute.c +1761 -0
  92. data/vendor/libgit2/deps/pcre2/pcre2_substring.c +553 -0
  93. data/vendor/libgit2/deps/pcre2/pcre2_tables.c +310 -0
  94. data/vendor/libgit2/deps/pcre2/pcre2_ucd.c +5805 -0
  95. data/vendor/libgit2/deps/pcre2/pcre2_ucp.h +408 -0
  96. data/vendor/libgit2/deps/pcre2/pcre2_ucptables_inc.h +1596 -0
  97. data/vendor/libgit2/deps/pcre2/pcre2_util.h +179 -0
  98. data/vendor/libgit2/deps/pcre2/pcre2_valid_utf.c +397 -0
  99. data/vendor/libgit2/deps/pcre2/pcre2_xclass.c +547 -0
  100. data/vendor/libgit2/deps/xdiff/CMakeLists.txt +1 -1
  101. data/vendor/libgit2/deps/xdiff/xmerge.c +16 -12
  102. data/vendor/libgit2/deps/zlib/CMakeLists.txt +6 -1
  103. data/vendor/libgit2/deps/zlib/LICENSE +22 -0
  104. data/vendor/libgit2/deps/zlib/adler32.c +5 -27
  105. data/vendor/libgit2/deps/zlib/crc32.c +94 -167
  106. data/vendor/libgit2/deps/zlib/deflate.c +358 -435
  107. data/vendor/libgit2/deps/zlib/deflate.h +41 -10
  108. data/vendor/libgit2/deps/zlib/gzguts.h +13 -18
  109. data/vendor/libgit2/deps/zlib/infback.c +17 -30
  110. data/vendor/libgit2/deps/zlib/inffast.c +1 -4
  111. data/vendor/libgit2/deps/zlib/inffast.h +1 -1
  112. data/vendor/libgit2/deps/zlib/inflate.c +36 -102
  113. data/vendor/libgit2/deps/zlib/inftrees.c +6 -11
  114. data/vendor/libgit2/deps/zlib/inftrees.h +6 -6
  115. data/vendor/libgit2/deps/zlib/trees.c +287 -352
  116. data/vendor/libgit2/deps/zlib/zconf.h +23 -14
  117. data/vendor/libgit2/deps/zlib/zlib.h +202 -202
  118. data/vendor/libgit2/deps/zlib/zutil.c +18 -44
  119. data/vendor/libgit2/deps/zlib/zutil.h +13 -33
  120. data/vendor/libgit2/include/git2/annotated_commit.h +12 -5
  121. data/vendor/libgit2/include/git2/apply.h +27 -6
  122. data/vendor/libgit2/include/git2/attr.h +17 -4
  123. data/vendor/libgit2/include/git2/blame.h +133 -28
  124. data/vendor/libgit2/include/git2/blob.h +71 -28
  125. data/vendor/libgit2/include/git2/branch.h +22 -15
  126. data/vendor/libgit2/include/git2/buffer.h +6 -4
  127. data/vendor/libgit2/include/git2/cert.h +2 -1
  128. data/vendor/libgit2/include/git2/checkout.h +83 -32
  129. data/vendor/libgit2/include/git2/cherrypick.h +10 -3
  130. data/vendor/libgit2/include/git2/clone.h +25 -9
  131. data/vendor/libgit2/include/git2/commit.h +132 -3
  132. data/vendor/libgit2/include/git2/common.h +132 -63
  133. data/vendor/libgit2/include/git2/config.h +93 -23
  134. data/vendor/libgit2/include/git2/credential.h +30 -2
  135. data/vendor/libgit2/include/git2/credential_helpers.h +1 -0
  136. data/vendor/libgit2/include/git2/deprecated.h +134 -4
  137. data/vendor/libgit2/include/git2/describe.h +13 -1
  138. data/vendor/libgit2/include/git2/diff.h +38 -8
  139. data/vendor/libgit2/include/git2/email.h +9 -29
  140. data/vendor/libgit2/include/git2/errors.h +46 -73
  141. data/vendor/libgit2/include/git2/filter.h +14 -7
  142. data/vendor/libgit2/include/git2/global.h +8 -1
  143. data/vendor/libgit2/include/git2/graph.h +3 -2
  144. data/vendor/libgit2/include/git2/ignore.h +10 -0
  145. data/vendor/libgit2/include/git2/index.h +100 -15
  146. data/vendor/libgit2/include/git2/indexer.h +21 -4
  147. data/vendor/libgit2/include/git2/mailmap.h +7 -1
  148. data/vendor/libgit2/include/git2/merge.h +50 -3
  149. data/vendor/libgit2/include/git2/message.h +2 -2
  150. data/vendor/libgit2/include/git2/net.h +3 -1
  151. data/vendor/libgit2/include/git2/notes.h +9 -6
  152. data/vendor/libgit2/include/git2/object.h +9 -8
  153. data/vendor/libgit2/include/git2/odb.h +91 -49
  154. data/vendor/libgit2/include/git2/odb_backend.h +80 -52
  155. data/vendor/libgit2/include/git2/oid.h +23 -25
  156. data/vendor/libgit2/include/git2/oidarray.h +7 -1
  157. data/vendor/libgit2/include/git2/pack.h +13 -1
  158. data/vendor/libgit2/include/git2/patch.h +2 -3
  159. data/vendor/libgit2/include/git2/pathspec.h +9 -0
  160. data/vendor/libgit2/include/git2/proxy.h +12 -3
  161. data/vendor/libgit2/include/git2/rebase.h +9 -6
  162. data/vendor/libgit2/include/git2/refdb.h +2 -2
  163. data/vendor/libgit2/include/git2/reflog.h +3 -2
  164. data/vendor/libgit2/include/git2/refs.h +9 -6
  165. data/vendor/libgit2/include/git2/refspec.h +14 -4
  166. data/vendor/libgit2/include/git2/remote.h +113 -25
  167. data/vendor/libgit2/include/git2/repository.h +57 -21
  168. data/vendor/libgit2/include/git2/reset.h +16 -3
  169. data/vendor/libgit2/include/git2/revert.h +9 -4
  170. data/vendor/libgit2/include/git2/revparse.h +3 -3
  171. data/vendor/libgit2/include/git2/revwalk.h +3 -2
  172. data/vendor/libgit2/include/git2/signature.h +46 -1
  173. data/vendor/libgit2/include/git2/stash.h +17 -3
  174. data/vendor/libgit2/include/git2/status.h +10 -6
  175. data/vendor/libgit2/include/git2/stdint.h +87 -85
  176. data/vendor/libgit2/include/git2/strarray.h +2 -3
  177. data/vendor/libgit2/include/git2/submodule.h +20 -9
  178. data/vendor/libgit2/include/git2/sys/alloc.h +12 -0
  179. data/vendor/libgit2/include/git2/sys/commit.h +77 -3
  180. data/vendor/libgit2/include/git2/sys/commit_graph.h +103 -62
  181. data/vendor/libgit2/include/git2/sys/config.h +80 -4
  182. data/vendor/libgit2/include/git2/sys/credential.h +4 -3
  183. data/vendor/libgit2/include/git2/sys/diff.h +21 -1
  184. data/vendor/libgit2/include/git2/sys/email.h +7 -0
  185. data/vendor/libgit2/include/git2/sys/errors.h +76 -0
  186. data/vendor/libgit2/include/git2/sys/filter.h +66 -3
  187. data/vendor/libgit2/include/git2/sys/hashsig.h +11 -0
  188. data/vendor/libgit2/include/git2/sys/index.h +3 -2
  189. data/vendor/libgit2/include/git2/sys/mempack.h +32 -2
  190. data/vendor/libgit2/include/git2/sys/merge.h +55 -7
  191. data/vendor/libgit2/include/git2/sys/midx.h +43 -4
  192. data/vendor/libgit2/include/git2/sys/odb_backend.h +7 -3
  193. data/vendor/libgit2/include/git2/sys/openssl.h +8 -1
  194. data/vendor/libgit2/include/git2/sys/path.h +12 -1
  195. data/vendor/libgit2/include/git2/sys/refdb_backend.h +40 -36
  196. data/vendor/libgit2/include/git2/sys/refs.h +3 -2
  197. data/vendor/libgit2/include/git2/sys/remote.h +8 -1
  198. data/vendor/libgit2/include/git2/sys/repository.h +63 -3
  199. data/vendor/libgit2/include/git2/sys/stream.h +11 -2
  200. data/vendor/libgit2/include/git2/sys/transport.h +25 -4
  201. data/vendor/libgit2/include/git2/tag.h +3 -1
  202. data/vendor/libgit2/include/git2/trace.h +9 -3
  203. data/vendor/libgit2/include/git2/transaction.h +3 -2
  204. data/vendor/libgit2/include/git2/transport.h +11 -3
  205. data/vendor/libgit2/include/git2/tree.h +16 -5
  206. data/vendor/libgit2/include/git2/types.h +19 -3
  207. data/vendor/libgit2/include/git2/version.h +46 -8
  208. data/vendor/libgit2/include/git2/worktree.h +16 -6
  209. data/vendor/libgit2/src/CMakeLists.txt +6 -4
  210. data/vendor/libgit2/src/cli/CMakeLists.txt +3 -4
  211. data/vendor/libgit2/src/cli/cmd.c +1 -1
  212. data/vendor/libgit2/src/cli/cmd.h +4 -0
  213. data/vendor/libgit2/src/cli/cmd_blame.c +287 -0
  214. data/vendor/libgit2/src/cli/cmd_cat_file.c +6 -8
  215. data/vendor/libgit2/src/cli/cmd_clone.c +5 -7
  216. data/vendor/libgit2/src/cli/cmd_config.c +241 -0
  217. data/vendor/libgit2/src/cli/cmd_hash_object.c +6 -8
  218. data/vendor/libgit2/src/cli/cmd_help.c +6 -7
  219. data/vendor/libgit2/src/cli/cmd_index_pack.c +114 -0
  220. data/vendor/libgit2/src/cli/cmd_init.c +102 -0
  221. data/vendor/libgit2/src/cli/common.c +168 -0
  222. data/vendor/libgit2/src/cli/common.h +63 -0
  223. data/vendor/libgit2/src/cli/error.h +1 -1
  224. data/vendor/libgit2/src/cli/main.c +52 -24
  225. data/vendor/libgit2/src/cli/opt.c +31 -5
  226. data/vendor/libgit2/src/cli/opt.h +21 -3
  227. data/vendor/libgit2/src/cli/opt_usage.c +102 -33
  228. data/vendor/libgit2/src/cli/opt_usage.h +6 -1
  229. data/vendor/libgit2/src/cli/progress.c +51 -2
  230. data/vendor/libgit2/src/cli/progress.h +12 -0
  231. data/vendor/libgit2/src/cli/unix/sighandler.c +2 -1
  232. data/vendor/libgit2/src/cli/win32/precompiled.h +1 -1
  233. data/vendor/libgit2/src/cli/win32/sighandler.c +1 -1
  234. data/vendor/libgit2/src/libgit2/CMakeLists.txt +55 -21
  235. data/vendor/libgit2/src/libgit2/apply.c +10 -13
  236. data/vendor/libgit2/src/libgit2/attr.c +30 -13
  237. data/vendor/libgit2/src/libgit2/attr_file.c +17 -5
  238. data/vendor/libgit2/src/libgit2/attr_file.h +2 -0
  239. data/vendor/libgit2/src/libgit2/attrcache.c +69 -33
  240. data/vendor/libgit2/src/libgit2/attrcache.h +5 -9
  241. data/vendor/libgit2/src/libgit2/blame.c +135 -43
  242. data/vendor/libgit2/src/libgit2/blame.h +1 -0
  243. data/vendor/libgit2/src/libgit2/cache.c +22 -17
  244. data/vendor/libgit2/src/libgit2/cache.h +7 -9
  245. data/vendor/libgit2/src/libgit2/checkout.c +34 -24
  246. data/vendor/libgit2/src/libgit2/checkout.h +0 -2
  247. data/vendor/libgit2/src/libgit2/cherrypick.c +1 -2
  248. data/vendor/libgit2/src/libgit2/clone.c +192 -166
  249. data/vendor/libgit2/src/libgit2/clone.h +4 -1
  250. data/vendor/libgit2/src/libgit2/commit.c +93 -1
  251. data/vendor/libgit2/src/libgit2/commit_graph.c +68 -58
  252. data/vendor/libgit2/src/libgit2/commit_graph.h +1 -2
  253. data/vendor/libgit2/src/libgit2/config.c +390 -299
  254. data/vendor/libgit2/src/libgit2/config.cmake.in +3 -0
  255. data/vendor/libgit2/src/libgit2/config.h +9 -4
  256. data/vendor/libgit2/src/libgit2/config_backend.h +8 -10
  257. data/vendor/libgit2/src/libgit2/config_cache.c +4 -5
  258. data/vendor/libgit2/src/libgit2/config_file.c +101 -89
  259. data/vendor/libgit2/src/libgit2/config_list.c +285 -0
  260. data/vendor/libgit2/src/libgit2/config_list.h +32 -0
  261. data/vendor/libgit2/src/libgit2/config_mem.c +195 -40
  262. data/vendor/libgit2/src/libgit2/config_parse.c +12 -10
  263. data/vendor/libgit2/src/libgit2/config_snapshot.c +24 -31
  264. data/vendor/libgit2/src/libgit2/delta.c +13 -1
  265. data/vendor/libgit2/src/libgit2/describe.c +24 -24
  266. data/vendor/libgit2/src/libgit2/diff.c +1 -1
  267. data/vendor/libgit2/src/libgit2/diff_driver.c +13 -20
  268. data/vendor/libgit2/src/libgit2/diff_driver.h +2 -2
  269. data/vendor/libgit2/src/libgit2/diff_generate.c +3 -3
  270. data/vendor/libgit2/src/libgit2/diff_parse.c +2 -2
  271. data/vendor/libgit2/src/libgit2/diff_print.c +65 -9
  272. data/vendor/libgit2/src/libgit2/diff_stats.c +19 -12
  273. data/vendor/libgit2/src/libgit2/diff_tform.c +36 -8
  274. data/vendor/libgit2/src/libgit2/email.c +1 -0
  275. data/vendor/libgit2/src/libgit2/fetch.c +5 -3
  276. data/vendor/libgit2/src/libgit2/fetchhead.c +1 -1
  277. data/vendor/libgit2/src/libgit2/filter.c +5 -5
  278. data/vendor/libgit2/src/libgit2/git2.rc +3 -3
  279. data/vendor/libgit2/src/libgit2/grafts.c +18 -20
  280. data/vendor/libgit2/src/libgit2/grafts.h +0 -1
  281. data/vendor/libgit2/src/libgit2/graph.c +1 -1
  282. data/vendor/libgit2/src/libgit2/hashmap_oid.h +30 -0
  283. data/vendor/libgit2/src/libgit2/ignore.c +9 -5
  284. data/vendor/libgit2/src/libgit2/index.c +76 -98
  285. data/vendor/libgit2/src/libgit2/index.h +5 -2
  286. data/vendor/libgit2/src/libgit2/index_map.c +95 -0
  287. data/vendor/libgit2/src/libgit2/index_map.h +28 -0
  288. data/vendor/libgit2/src/libgit2/indexer.c +38 -41
  289. data/vendor/libgit2/src/libgit2/iterator.c +14 -8
  290. data/vendor/libgit2/src/libgit2/libgit2.c +153 -368
  291. data/vendor/libgit2/src/libgit2/mailmap.c +1 -1
  292. data/vendor/libgit2/src/libgit2/merge.c +43 -38
  293. data/vendor/libgit2/src/libgit2/merge.h +4 -0
  294. data/vendor/libgit2/src/libgit2/merge_driver.c +2 -2
  295. data/vendor/libgit2/src/libgit2/merge_file.c +43 -30
  296. data/vendor/libgit2/src/libgit2/message.c +1 -1
  297. data/vendor/libgit2/src/libgit2/midx.c +30 -18
  298. data/vendor/libgit2/src/libgit2/mwindow.c +38 -45
  299. data/vendor/libgit2/src/libgit2/mwindow.h +4 -0
  300. data/vendor/libgit2/src/libgit2/object.c +6 -5
  301. data/vendor/libgit2/src/libgit2/odb.c +7 -10
  302. data/vendor/libgit2/src/libgit2/odb_loose.c +24 -14
  303. data/vendor/libgit2/src/libgit2/odb_mempack.c +49 -17
  304. data/vendor/libgit2/src/libgit2/odb_pack.c +13 -5
  305. data/vendor/libgit2/src/libgit2/oid.c +36 -10
  306. data/vendor/libgit2/src/libgit2/oid.h +11 -0
  307. data/vendor/libgit2/src/libgit2/pack-objects.c +59 -34
  308. data/vendor/libgit2/src/libgit2/pack-objects.h +12 -4
  309. data/vendor/libgit2/src/libgit2/pack.c +33 -24
  310. data/vendor/libgit2/src/libgit2/pack.h +15 -10
  311. data/vendor/libgit2/src/libgit2/patch_parse.c +2 -2
  312. data/vendor/libgit2/src/libgit2/path.c +1 -1
  313. data/vendor/libgit2/src/libgit2/pathspec.c +1 -1
  314. data/vendor/libgit2/src/libgit2/push.c +79 -28
  315. data/vendor/libgit2/src/libgit2/push.h +1 -0
  316. data/vendor/libgit2/src/libgit2/refdb_fs.c +128 -61
  317. data/vendor/libgit2/src/libgit2/reflog.c +1 -2
  318. data/vendor/libgit2/src/libgit2/reflog.h +2 -0
  319. data/vendor/libgit2/src/libgit2/refs.c +41 -13
  320. data/vendor/libgit2/src/libgit2/refs.h +6 -1
  321. data/vendor/libgit2/src/libgit2/refspec.c +28 -1
  322. data/vendor/libgit2/src/libgit2/refspec.h +8 -0
  323. data/vendor/libgit2/src/libgit2/remote.c +125 -62
  324. data/vendor/libgit2/src/libgit2/remote.h +0 -1
  325. data/vendor/libgit2/src/libgit2/repository.c +235 -54
  326. data/vendor/libgit2/src/libgit2/repository.h +10 -6
  327. data/vendor/libgit2/src/libgit2/revert.c +1 -2
  328. data/vendor/libgit2/src/libgit2/revparse.c +2 -2
  329. data/vendor/libgit2/src/libgit2/revwalk.c +13 -10
  330. data/vendor/libgit2/src/libgit2/revwalk.h +3 -3
  331. data/vendor/libgit2/src/libgit2/settings.c +477 -0
  332. data/vendor/libgit2/src/libgit2/settings.h +6 -2
  333. data/vendor/libgit2/src/libgit2/signature.c +132 -15
  334. data/vendor/libgit2/src/libgit2/signature.h +0 -1
  335. data/vendor/libgit2/src/libgit2/status.c +1 -1
  336. data/vendor/libgit2/src/libgit2/streams/mbedtls.c +54 -60
  337. data/vendor/libgit2/src/libgit2/streams/openssl.c +36 -8
  338. data/vendor/libgit2/src/libgit2/streams/openssl.h +2 -0
  339. data/vendor/libgit2/src/libgit2/streams/openssl_dynamic.c +4 -0
  340. data/vendor/libgit2/src/libgit2/streams/openssl_dynamic.h +3 -0
  341. data/vendor/libgit2/src/libgit2/streams/socket.c +30 -0
  342. data/vendor/libgit2/src/libgit2/streams/stransport.c +39 -7
  343. data/vendor/libgit2/src/libgit2/submodule.c +195 -80
  344. data/vendor/libgit2/src/libgit2/submodule.h +6 -7
  345. data/vendor/libgit2/src/libgit2/tag.c +4 -2
  346. data/vendor/libgit2/src/libgit2/trailer.c +6 -6
  347. data/vendor/libgit2/src/libgit2/transaction.c +26 -20
  348. data/vendor/libgit2/src/libgit2/transaction.h +4 -1
  349. data/vendor/libgit2/src/libgit2/transport.c +4 -1
  350. data/vendor/libgit2/src/libgit2/transports/auth_sspi.c +2 -0
  351. data/vendor/libgit2/src/libgit2/transports/credential.c +2 -2
  352. data/vendor/libgit2/src/libgit2/transports/git.c +1 -1
  353. data/vendor/libgit2/src/libgit2/transports/http.c +5 -6
  354. data/vendor/libgit2/src/libgit2/transports/http.h +0 -10
  355. data/vendor/libgit2/src/libgit2/transports/httpclient.c +124 -81
  356. data/vendor/libgit2/src/libgit2/transports/httpparser.c +128 -0
  357. data/vendor/libgit2/src/libgit2/transports/httpparser.h +99 -0
  358. data/vendor/libgit2/src/libgit2/transports/local.c +16 -8
  359. data/vendor/libgit2/src/libgit2/transports/smart.c +25 -13
  360. data/vendor/libgit2/src/libgit2/transports/smart.h +4 -2
  361. data/vendor/libgit2/src/libgit2/transports/smart_pkt.c +7 -6
  362. data/vendor/libgit2/src/libgit2/transports/smart_protocol.c +55 -10
  363. data/vendor/libgit2/src/libgit2/transports/ssh.c +41 -1103
  364. data/vendor/libgit2/src/libgit2/transports/ssh_exec.c +386 -0
  365. data/vendor/libgit2/src/libgit2/transports/ssh_exec.h +26 -0
  366. data/vendor/libgit2/src/libgit2/transports/ssh_libssh2.c +1132 -0
  367. data/vendor/libgit2/src/libgit2/transports/ssh_libssh2.h +28 -0
  368. data/vendor/libgit2/src/libgit2/transports/winhttp.c +35 -7
  369. data/vendor/libgit2/src/libgit2/tree.c +34 -26
  370. data/vendor/libgit2/src/libgit2/tree.h +3 -2
  371. data/vendor/libgit2/src/libgit2/worktree.c +14 -17
  372. data/vendor/libgit2/src/util/CMakeLists.txt +7 -10
  373. data/vendor/libgit2/src/util/alloc.c +4 -1
  374. data/vendor/libgit2/src/util/allocators/debugalloc.c +73 -0
  375. data/vendor/libgit2/src/{cli/cli.h → util/allocators/debugalloc.h} +6 -9
  376. data/vendor/libgit2/src/util/allocators/stdalloc.c +0 -10
  377. data/vendor/libgit2/src/util/array.h +18 -17
  378. data/vendor/libgit2/src/util/cc-compat.h +2 -0
  379. data/vendor/libgit2/src/util/ctype_compat.h +70 -0
  380. data/vendor/libgit2/src/util/date.c +22 -14
  381. data/vendor/libgit2/src/util/date.h +12 -0
  382. data/vendor/libgit2/src/util/errors.c +401 -0
  383. data/vendor/libgit2/src/{libgit2 → util}/errors.h +21 -17
  384. data/vendor/libgit2/src/util/fs_path.c +81 -10
  385. data/vendor/libgit2/src/util/fs_path.h +39 -10
  386. data/vendor/libgit2/src/util/futils.c +6 -5
  387. data/vendor/libgit2/src/util/futils.h +24 -7
  388. data/vendor/libgit2/src/util/git2_features.h.in +12 -1
  389. data/vendor/libgit2/src/util/git2_util.h +6 -0
  390. data/vendor/libgit2/src/util/hash/builtin.c +14 -4
  391. data/vendor/libgit2/src/util/hash/openssl.c +148 -0
  392. data/vendor/libgit2/src/util/hash/openssl.h +17 -1
  393. data/vendor/libgit2/src/util/hash/rfc6234/sha224-256.c +8 -6
  394. data/vendor/libgit2/src/util/hash/sha.h +4 -1
  395. data/vendor/libgit2/src/util/hashmap.h +425 -0
  396. data/vendor/libgit2/src/util/hashmap_str.h +43 -0
  397. data/vendor/libgit2/src/util/integer.h +3 -1
  398. data/vendor/libgit2/src/util/net.c +17 -11
  399. data/vendor/libgit2/src/util/net.h +2 -0
  400. data/vendor/libgit2/src/util/pool.c +1 -1
  401. data/vendor/libgit2/src/util/pool.h +5 -0
  402. data/vendor/libgit2/src/util/pqueue.h +1 -1
  403. data/vendor/libgit2/src/util/process.h +223 -0
  404. data/vendor/libgit2/src/util/rand.c +1 -7
  405. data/vendor/libgit2/src/util/regexp.c +28 -13
  406. data/vendor/libgit2/src/util/regexp.h +7 -2
  407. data/vendor/libgit2/src/util/runtime.c +2 -2
  408. data/vendor/libgit2/src/util/sortedcache.c +14 -13
  409. data/vendor/libgit2/src/util/sortedcache.h +3 -3
  410. data/vendor/libgit2/src/util/str.c +20 -8
  411. data/vendor/libgit2/src/util/str.h +5 -3
  412. data/vendor/libgit2/src/util/strlist.c +108 -0
  413. data/vendor/libgit2/src/util/strlist.h +36 -0
  414. data/vendor/libgit2/src/util/unix/posix.h +0 -2
  415. data/vendor/libgit2/src/util/unix/process.c +706 -0
  416. data/vendor/libgit2/src/util/unix/realpath.c +23 -5
  417. data/vendor/libgit2/src/util/util.c +18 -5
  418. data/vendor/libgit2/src/util/util.h +5 -38
  419. data/vendor/libgit2/src/util/vector.c +3 -3
  420. data/vendor/libgit2/src/util/vector.h +2 -2
  421. data/vendor/libgit2/src/util/win32/path_w32.c +81 -5
  422. data/vendor/libgit2/src/util/win32/posix_w32.c +29 -6
  423. data/vendor/libgit2/src/util/win32/process.c +522 -0
  424. metadata +102 -67
  425. data/vendor/libgit2/deps/http-parser/CMakeLists.txt +0 -6
  426. data/vendor/libgit2/deps/http-parser/COPYING +0 -23
  427. data/vendor/libgit2/deps/http-parser/http_parser.c +0 -2182
  428. data/vendor/libgit2/deps/http-parser/http_parser.h +0 -305
  429. data/vendor/libgit2/deps/pcre/CMakeLists.txt +0 -140
  430. data/vendor/libgit2/deps/pcre/COPYING +0 -5
  431. data/vendor/libgit2/deps/pcre/LICENCE +0 -93
  432. data/vendor/libgit2/deps/pcre/cmake/COPYING-CMAKE-SCRIPTS +0 -22
  433. data/vendor/libgit2/deps/pcre/cmake/FindEditline.cmake +0 -17
  434. data/vendor/libgit2/deps/pcre/cmake/FindPackageHandleStandardArgs.cmake +0 -58
  435. data/vendor/libgit2/deps/pcre/cmake/FindReadline.cmake +0 -29
  436. data/vendor/libgit2/deps/pcre/config.h.in +0 -57
  437. data/vendor/libgit2/deps/pcre/pcre.h +0 -641
  438. data/vendor/libgit2/deps/pcre/pcre_byte_order.c +0 -319
  439. data/vendor/libgit2/deps/pcre/pcre_compile.c +0 -9815
  440. data/vendor/libgit2/deps/pcre/pcre_config.c +0 -190
  441. data/vendor/libgit2/deps/pcre/pcre_exec.c +0 -7173
  442. data/vendor/libgit2/deps/pcre/pcre_fullinfo.c +0 -245
  443. data/vendor/libgit2/deps/pcre/pcre_get.c +0 -669
  444. data/vendor/libgit2/deps/pcre/pcre_globals.c +0 -86
  445. data/vendor/libgit2/deps/pcre/pcre_internal.h +0 -2787
  446. data/vendor/libgit2/deps/pcre/pcre_jit_compile.c +0 -11913
  447. data/vendor/libgit2/deps/pcre/pcre_maketables.c +0 -156
  448. data/vendor/libgit2/deps/pcre/pcre_printint.c +0 -834
  449. data/vendor/libgit2/deps/pcre/pcre_string_utils.c +0 -211
  450. data/vendor/libgit2/deps/pcre/pcre_study.c +0 -1686
  451. data/vendor/libgit2/deps/pcre/pcre_tables.c +0 -727
  452. data/vendor/libgit2/deps/pcre/pcre_ucd.c +0 -3644
  453. data/vendor/libgit2/deps/pcre/pcre_valid_utf8.c +0 -301
  454. data/vendor/libgit2/deps/pcre/pcre_version.c +0 -98
  455. data/vendor/libgit2/deps/pcre/pcre_xclass.c +0 -268
  456. data/vendor/libgit2/deps/pcre/pcreposix.c +0 -420
  457. data/vendor/libgit2/deps/pcre/pcreposix.h +0 -117
  458. data/vendor/libgit2/deps/pcre/ucp.h +0 -224
  459. data/vendor/libgit2/deps/zlib/COPYING +0 -27
  460. data/vendor/libgit2/include/git2/sys/reflog.h +0 -21
  461. data/vendor/libgit2/src/libgit2/config_entries.c +0 -237
  462. data/vendor/libgit2/src/libgit2/config_entries.h +0 -24
  463. data/vendor/libgit2/src/libgit2/errors.c +0 -293
  464. data/vendor/libgit2/src/libgit2/idxmap.c +0 -157
  465. data/vendor/libgit2/src/libgit2/idxmap.h +0 -177
  466. data/vendor/libgit2/src/libgit2/libgit2.h +0 -15
  467. data/vendor/libgit2/src/libgit2/offmap.c +0 -101
  468. data/vendor/libgit2/src/libgit2/offmap.h +0 -133
  469. data/vendor/libgit2/src/libgit2/oidmap.c +0 -107
  470. data/vendor/libgit2/src/libgit2/oidmap.h +0 -128
  471. data/vendor/libgit2/src/libgit2/threadstate.c +0 -97
  472. data/vendor/libgit2/src/libgit2/threadstate.h +0 -22
  473. data/vendor/libgit2/src/libgit2/transports/ssh.h +0 -14
  474. data/vendor/libgit2/src/util/khash.h +0 -615
  475. data/vendor/libgit2/src/util/strmap.c +0 -100
  476. data/vendor/libgit2/src/util/strmap.h +0 -131
  477. /data/vendor/libgit2/cmake/{FindHTTPParser.cmake → FindHTTP_Parser.cmake} +0 -0
@@ -28,7 +28,6 @@ struct git_diff_stats {
28
28
  size_t files_changed;
29
29
  size_t insertions;
30
30
  size_t deletions;
31
- size_t renames;
32
31
 
33
32
  size_t max_name;
34
33
  size_t max_filestat;
@@ -68,17 +67,19 @@ static int diff_file_stats_full_to_buf(
68
67
  size_t common_dirlen;
69
68
  int error;
70
69
 
71
- padding = stats->max_name - strlen(old_path) - strlen(new_path);
72
-
73
70
  if ((common_dirlen = git_fs_path_common_dirlen(old_path, new_path)) &&
74
71
  common_dirlen <= INT_MAX) {
75
72
  error = git_str_printf(out, " %.*s{%s"DIFF_RENAME_FILE_SEPARATOR"%s}",
76
73
  (int) common_dirlen, old_path,
77
74
  old_path + common_dirlen,
78
75
  new_path + common_dirlen);
76
+ padding = stats->max_name + common_dirlen - strlen(old_path)
77
+ - strlen(new_path) - 2 - strlen(DIFF_RENAME_FILE_SEPARATOR);
79
78
  } else {
80
79
  error = git_str_printf(out, " %s" DIFF_RENAME_FILE_SEPARATOR "%s",
81
80
  old_path, new_path);
81
+ padding = stats->max_name - strlen(old_path)
82
+ - strlen(new_path) - strlen(DIFF_RENAME_FILE_SEPARATOR);
82
83
  }
83
84
 
84
85
  if (error < 0)
@@ -89,9 +90,6 @@ static int diff_file_stats_full_to_buf(
89
90
  goto on_error;
90
91
 
91
92
  padding = stats->max_name - strlen(adddel_path);
92
-
93
- if (stats->renames > 0)
94
- padding += strlen(DIFF_RENAME_FILE_SEPARATOR);
95
93
  }
96
94
 
97
95
  if (git_str_putcn(out, ' ', padding) < 0 ||
@@ -210,14 +208,23 @@ int git_diff_get_stats(
210
208
  if ((error = git_patch_from_diff(&patch, diff, i)) < 0)
211
209
  break;
212
210
 
213
- /* keep a count of renames because it will affect formatting */
211
+ /* Length calculation for renames mirrors the actual presentation format
212
+ * generated in diff_file_stats_full_to_buf; namelen is the full length of
213
+ * what will be printed, taking into account renames and common prefixes.
214
+ */
214
215
  delta = patch->delta;
215
-
216
- /* TODO ugh */
217
216
  namelen = strlen(delta->new_file.path);
218
- if (delta->old_file.path && strcmp(delta->old_file.path, delta->new_file.path) != 0) {
219
- namelen += strlen(delta->old_file.path);
220
- stats->renames++;
217
+ if (delta->old_file.path &&
218
+ strcmp(delta->old_file.path, delta->new_file.path) != 0) {
219
+ size_t common_dirlen;
220
+ if ((common_dirlen = git_fs_path_common_dirlen(delta->old_file.path, delta->new_file.path)) &&
221
+ common_dirlen <= INT_MAX) {
222
+ namelen += strlen(delta->old_file.path) + 2 +
223
+ strlen(DIFF_RENAME_FILE_SEPARATOR) - common_dirlen;
224
+ } else {
225
+ namelen += strlen(delta->old_file.path) +
226
+ strlen(DIFF_RENAME_FILE_SEPARATOR);
227
+ }
221
228
  }
222
229
 
223
230
  /* and, of course, count the line stats */
@@ -190,7 +190,7 @@ int git_diff__merge(
190
190
  git_pool_strdup_safe(&onto->pool, onto->opts.new_prefix);
191
191
  }
192
192
 
193
- git_vector_free_deep(&onto_new);
193
+ git_vector_dispose_deep(&onto_new);
194
194
  git_pool_clear(&onto_pool);
195
195
 
196
196
  return error;
@@ -424,13 +424,13 @@ static int apply_splits_and_deletes(
424
424
 
425
425
  /* swap new delta list into place */
426
426
  git_vector_swap(&diff->deltas, &onto);
427
- git_vector_free(&onto);
427
+ git_vector_dispose(&onto);
428
428
  git_vector_sort(&diff->deltas);
429
429
 
430
430
  return 0;
431
431
 
432
432
  on_error:
433
- git_vector_free_deep(&onto);
433
+ git_vector_dispose_deep(&onto);
434
434
 
435
435
  return -1;
436
436
  }
@@ -653,6 +653,23 @@ static int calc_self_similarity(
653
653
  return 0;
654
654
  }
655
655
 
656
+ static void handle_non_blob(
657
+ git_diff *diff,
658
+ const git_diff_find_options *opts,
659
+ size_t delta_idx)
660
+ {
661
+ git_diff_delta *delta = GIT_VECTOR_GET(&diff->deltas, delta_idx);
662
+
663
+ /* skip things that are blobs */
664
+ if (GIT_MODE_ISBLOB(delta->old_file.mode))
665
+ return;
666
+
667
+ /* honor "remove unmodified" flag for non-blobs (eg submodules) */
668
+ if (delta->status == GIT_DELTA_UNMODIFIED &&
669
+ FLAG_SET(opts, GIT_DIFF_FIND_REMOVE_UNMODIFIED))
670
+ delta->flags |= GIT_DIFF_FLAG__TO_DELETE;
671
+ }
672
+
656
673
  static bool is_rename_target(
657
674
  git_diff *diff,
658
675
  const git_diff_find_options *opts,
@@ -810,7 +827,8 @@ int git_diff_find_similar(
810
827
  git_diff_find_options opts = GIT_DIFF_FIND_OPTIONS_INIT;
811
828
  size_t num_deltas, num_srcs = 0, num_tgts = 0;
812
829
  size_t tried_srcs = 0, tried_tgts = 0;
813
- size_t num_rewrites = 0, num_updates = 0, num_bumped = 0;
830
+ size_t num_rewrites = 0, num_updates = 0, num_bumped = 0,
831
+ num_to_delete = 0;
814
832
  size_t sigcache_size;
815
833
  void **sigcache = NULL; /* cache of similarity metric file signatures */
816
834
  diff_find_match *tgt2src = NULL;
@@ -844,6 +862,8 @@ int git_diff_find_similar(
844
862
  * mark them for splitting if break-rewrites is enabled
845
863
  */
846
864
  git_vector_foreach(&diff->deltas, t, tgt) {
865
+ handle_non_blob(diff, &opts, t);
866
+
847
867
  if (is_rename_source(diff, &opts, t, sigcache))
848
868
  ++num_srcs;
849
869
 
@@ -852,11 +872,14 @@ int git_diff_find_similar(
852
872
 
853
873
  if ((tgt->flags & GIT_DIFF_FLAG__TO_SPLIT) != 0)
854
874
  num_rewrites++;
875
+
876
+ if ((tgt->flags & GIT_DIFF_FLAG__TO_DELETE) != 0)
877
+ num_to_delete++;
855
878
  }
856
879
 
857
- /* if there are no candidate srcs or tgts, we're done */
880
+ /* If there are no candidate srcs or tgts, no need to find matches */
858
881
  if (!num_srcs || !num_tgts)
859
- goto cleanup;
882
+ goto split_and_delete;
860
883
 
861
884
  src2tgt = git__calloc(num_deltas, sizeof(diff_find_match));
862
885
  GIT_ERROR_CHECK_ALLOC(src2tgt);
@@ -1093,15 +1116,20 @@ find_best_matches:
1093
1116
  }
1094
1117
  }
1095
1118
 
1119
+ split_and_delete:
1096
1120
  /*
1097
1121
  * Actually split and delete entries as needed
1098
1122
  */
1099
1123
 
1100
- if (num_rewrites > 0 || num_updates > 0)
1124
+ if (num_rewrites > 0 || num_updates > 0 || num_to_delete > 0) {
1125
+ size_t apply_len = diff->deltas.length -
1126
+ num_rewrites - num_to_delete;
1127
+
1101
1128
  error = apply_splits_and_deletes(
1102
- diff, diff->deltas.length - num_rewrites,
1129
+ diff, apply_len,
1103
1130
  FLAG_SET(&opts, GIT_DIFF_BREAK_REWRITES) &&
1104
1131
  !FLAG_SET(&opts, GIT_DIFF_BREAK_REWRITES_FOR_RENAMES_ONLY));
1132
+ }
1105
1133
 
1106
1134
  cleanup:
1107
1135
  git__free(tgt2src);
@@ -16,6 +16,7 @@
16
16
 
17
17
  #include "git2/email.h"
18
18
  #include "git2/patch.h"
19
+ #include "git2/sys/email.h"
19
20
  #include "git2/version.h"
20
21
 
21
22
  /*
@@ -60,9 +60,11 @@ static int mark_local(git_remote *remote)
60
60
 
61
61
  git_vector_foreach(&remote->refs, i, head) {
62
62
  /* If we have the object, mark it so we don't ask for it.
63
- However if we are unshallowing, we need to ask for it
64
- even though the head exists locally. */
65
- if (remote->nego.depth != INT_MAX && git_odb_exists(odb, &head->oid))
63
+ However if we are unshallowing or changing history
64
+ depth, we need to ask for it even though the head
65
+ exists locally. */
66
+ if (remote->nego.depth == GIT_FETCH_DEPTH_FULL &&
67
+ git_odb_exists(odb, &head->oid))
66
68
  head->local = 1;
67
69
  else
68
70
  remote->need_pack = 1;
@@ -106,7 +106,7 @@ static int fetchhead_ref_write(
106
106
  git_fetchhead_ref *fetchhead_ref)
107
107
  {
108
108
  char oid[GIT_OID_MAX_HEXSIZE + 1];
109
- const char *type, *name;
109
+ const char *type = NULL, *name = NULL;
110
110
  int head = 0;
111
111
 
112
112
  GIT_ASSERT_ARG(file);
@@ -239,7 +239,7 @@ static void git_filter_global_shutdown(void)
239
239
  git__free(fdef);
240
240
  }
241
241
 
242
- git_vector_free(&filter_registry.filters);
242
+ git_vector_dispose(&filter_registry.filters);
243
243
 
244
244
  git_rwlock_wrunlock(&filter_registry.lock);
245
245
  git_rwlock_free(&filter_registry.lock);
@@ -908,7 +908,7 @@ static int buffered_stream_close(git_writestream *s)
908
908
  {
909
909
  struct buffered_stream *buffered_stream = (struct buffered_stream *)s;
910
910
  git_str *writebuf;
911
- git_error_state error_state = {0};
911
+ git_error *last_error;
912
912
  int error;
913
913
 
914
914
  GIT_ASSERT_ARG(buffered_stream);
@@ -946,9 +946,9 @@ static int buffered_stream_close(git_writestream *s)
946
946
  } else {
947
947
  /* close stream before erroring out taking care
948
948
  * to preserve the original error */
949
- git_error_state_capture(&error_state, error);
949
+ git_error_save(&last_error);
950
950
  buffered_stream->target->close(buffered_stream->target);
951
- git_error_state_restore(&error_state);
951
+ git_error_restore(last_error);
952
952
  return error;
953
953
  }
954
954
 
@@ -1106,7 +1106,7 @@ static void filter_streams_free(git_vector *streams)
1106
1106
 
1107
1107
  git_vector_foreach(streams, i, stream)
1108
1108
  stream->free(stream);
1109
- git_vector_free(streams);
1109
+ git_vector_dispose(streams);
1110
1110
  }
1111
1111
 
1112
1112
  int git_filter_list_stream_file(
@@ -10,7 +10,7 @@
10
10
  #endif
11
11
 
12
12
  #ifndef LIBGIT2_COMMENTS
13
- # define LIBGIT2_COMMENTS "For more information visit http://libgit2.github.com/"
13
+ # define LIBGIT2_COMMENTS "For more information visit https://libgit2.org/"
14
14
  #endif
15
15
 
16
16
  #ifdef __GNUC__
@@ -25,8 +25,8 @@ VS_VERSION_INFO VERSIONINFO
25
25
  #else
26
26
  VS_VERSION_INFO VERSIONINFO MOVEABLE IMPURE LOADONCALL DISCARDABLE
27
27
  #endif
28
- FILEVERSION LIBGIT2_VER_MAJOR,LIBGIT2_VER_MINOR,LIBGIT2_VER_REVISION,LIBGIT2_VER_PATCH
29
- PRODUCTVERSION LIBGIT2_VER_MAJOR,LIBGIT2_VER_MINOR,LIBGIT2_VER_REVISION,LIBGIT2_VER_PATCH
28
+ FILEVERSION LIBGIT2_VERSION_MAJOR,LIBGIT2_VERSION_MINOR,LIBGIT2_VERSION_REVISION,LIBGIT2_VERSION_PATCH
29
+ PRODUCTVERSION LIBGIT2_VERSION_MAJOR,LIBGIT2_VERSION_MINOR,LIBGIT2_VERSION_REVISION,LIBGIT2_VERSION_PATCH
30
30
  FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
31
31
  #ifdef _DEBUG
32
32
  FILEFLAGS VS_FF_DEBUG
@@ -11,10 +11,13 @@
11
11
  #include "oid.h"
12
12
  #include "oidarray.h"
13
13
  #include "parse.h"
14
+ #include "hashmap_oid.h"
15
+
16
+ GIT_HASHMAP_OID_SETUP(git_grafts_oidmap, git_commit_graft *);
14
17
 
15
18
  struct git_grafts {
16
19
  /* Map of `git_commit_graft`s */
17
- git_oidmap *commits;
20
+ git_grafts_oidmap commits;
18
21
 
19
22
  /* Type of object IDs */
20
23
  git_oid_t oid_type;
@@ -33,11 +36,6 @@ int git_grafts_new(git_grafts **out, git_oid_t oid_type)
33
36
  grafts = git__calloc(1, sizeof(*grafts));
34
37
  GIT_ERROR_CHECK_ALLOC(grafts);
35
38
 
36
- if ((git_oidmap_new(&grafts->commits)) < 0) {
37
- git__free(grafts);
38
- return -1;
39
- }
40
-
41
39
  grafts->oid_type = oid_type;
42
40
 
43
41
  *out = grafts;
@@ -88,23 +86,24 @@ void git_grafts_free(git_grafts *grafts)
88
86
  return;
89
87
  git__free(grafts->path);
90
88
  git_grafts_clear(grafts);
91
- git_oidmap_free(grafts->commits);
89
+ git_grafts_oidmap_dispose(&grafts->commits);
92
90
  git__free(grafts);
93
91
  }
94
92
 
95
93
  void git_grafts_clear(git_grafts *grafts)
96
94
  {
95
+ git_hashmap_iter_t iter = GIT_HASHMAP_ITER_INIT;
97
96
  git_commit_graft *graft;
98
97
 
99
98
  if (!grafts)
100
99
  return;
101
100
 
102
- git_oidmap_foreach_value(grafts->commits, graft, {
101
+ while (git_grafts_oidmap_iterate(&iter, NULL, &graft, &grafts->commits) == 0) {
103
102
  git__free(graft->parents.ptr);
104
103
  git__free(graft);
105
- });
104
+ }
106
105
 
107
- git_oidmap_clear(grafts->commits);
106
+ git_grafts_oidmap_clear(&grafts->commits);
108
107
  }
109
108
 
110
109
  int git_grafts_refresh(git_grafts *grafts)
@@ -205,7 +204,7 @@ int git_grafts_add(git_grafts *grafts, const git_oid *oid, git_array_oid_t paren
205
204
  if ((error = git_grafts_remove(grafts, &graft->oid)) < 0 && error != GIT_ENOTFOUND)
206
205
  goto cleanup;
207
206
 
208
- if ((error = git_oidmap_set(grafts->commits, &graft->oid, graft)) < 0)
207
+ if ((error = git_grafts_oidmap_put(&grafts->commits, &graft->oid, graft)) < 0)
209
208
  goto cleanup;
210
209
 
211
210
  return 0;
@@ -223,10 +222,10 @@ int git_grafts_remove(git_grafts *grafts, const git_oid *oid)
223
222
 
224
223
  GIT_ASSERT_ARG(grafts && oid);
225
224
 
226
- if ((graft = git_oidmap_get(grafts->commits, oid)) == NULL)
225
+ if (git_grafts_oidmap_get(&graft, &grafts->commits, oid) != 0)
227
226
  return GIT_ENOTFOUND;
228
227
 
229
- if ((error = git_oidmap_delete(grafts->commits, oid)) < 0)
228
+ if ((error = git_grafts_oidmap_remove(&grafts->commits, oid)) < 0)
230
229
  return error;
231
230
 
232
231
  git__free(graft->parents.ptr);
@@ -238,23 +237,22 @@ int git_grafts_remove(git_grafts *grafts, const git_oid *oid)
238
237
  int git_grafts_get(git_commit_graft **out, git_grafts *grafts, const git_oid *oid)
239
238
  {
240
239
  GIT_ASSERT_ARG(out && grafts && oid);
241
- if ((*out = git_oidmap_get(grafts->commits, oid)) == NULL)
242
- return GIT_ENOTFOUND;
243
- return 0;
240
+ return git_grafts_oidmap_get(out, &grafts->commits, oid);
244
241
  }
245
242
 
246
243
  int git_grafts_oids(git_oid **out, size_t *out_len, git_grafts *grafts)
247
244
  {
245
+ git_hashmap_iter_t iter = GIT_HASHMAP_ITER_INIT;
248
246
  git_array_oid_t array = GIT_ARRAY_INIT;
249
247
  const git_oid *oid;
250
- size_t existing, i = 0;
248
+ size_t existing;
251
249
 
252
250
  GIT_ASSERT_ARG(out && grafts);
253
251
 
254
- if ((existing = git_oidmap_size(grafts->commits)) > 0)
252
+ if ((existing = git_grafts_oidmap_size(&grafts->commits)) > 0)
255
253
  git_array_init_to_size(array, existing);
256
254
 
257
- while (git_oidmap_iterate(NULL, grafts->commits, &i, &oid) == 0) {
255
+ while (git_grafts_oidmap_iterate(&iter, &oid, NULL, &grafts->commits) == 0) {
258
256
  git_oid *cpy = git_array_alloc(array);
259
257
  GIT_ERROR_CHECK_ALLOC(cpy);
260
258
  git_oid_cpy(cpy, oid);
@@ -268,5 +266,5 @@ int git_grafts_oids(git_oid **out, size_t *out_len, git_grafts *grafts)
268
266
 
269
267
  size_t git_grafts_size(git_grafts *grafts)
270
268
  {
271
- return git_oidmap_size(grafts->commits);
269
+ return git_grafts_oidmap_size(&grafts->commits);
272
270
  }
@@ -9,7 +9,6 @@
9
9
 
10
10
  #include "common.h"
11
11
  #include "oidarray.h"
12
- #include "oidmap.h"
13
12
 
14
13
  /** graft commit */
15
14
  typedef struct {
@@ -243,7 +243,7 @@ int git_graph_reachable_from_any(
243
243
 
244
244
  done:
245
245
  git_commit_list_free(&result);
246
- git_vector_free(&list);
246
+ git_vector_dispose(&list);
247
247
  git_revwalk_free(walk);
248
248
  return error;
249
249
  }
@@ -0,0 +1,30 @@
1
+ /*
2
+ * Copyright (C) the libgit2 contributors. All rights reserved.
3
+ *
4
+ * This file is part of libgit2, distributed under the GNU GPL v2 with
5
+ * a Linking Exception. For full terms see the included COPYING file.
6
+ */
7
+ #ifndef INCLUDE_hashmap_oid_h__
8
+ #define INCLUDE_hashmap_oid_h__
9
+
10
+ #include "hashmap.h"
11
+
12
+ GIT_INLINE(uint32_t) git_hashmap_oid_hashcode(const git_oid *oid)
13
+ {
14
+ uint32_t hash;
15
+ memcpy(&hash, oid->id, sizeof(uint32_t));
16
+ return hash;
17
+ }
18
+
19
+ #define GIT_HASHMAP_OID_STRUCT(name, val_t) \
20
+ GIT_HASHMAP_STRUCT(name, const git_oid *, val_t)
21
+ #define GIT_HASHMAP_OID_PROTOTYPES(name, val_t) \
22
+ GIT_HASHMAP_PROTOTYPES(name, const git_oid *, val_t)
23
+ #define GIT_HASHMAP_OID_FUNCTIONS(name, scope, val_t) \
24
+ GIT_HASHMAP_FUNCTIONS(name, scope, const git_oid *, val_t, git_hashmap_oid_hashcode, git_oid_equal)
25
+
26
+ #define GIT_HASHMAP_OID_SETUP(name, val_t) \
27
+ GIT_HASHMAP_OID_STRUCT(name, val_t) \
28
+ GIT_HASHMAP_OID_FUNCTIONS(name, GIT_HASHMAP_INLINE, val_t)
29
+
30
+ #endif
@@ -296,6 +296,8 @@ int git_ignore__for_path(
296
296
  {
297
297
  int error = 0;
298
298
  const char *workdir = git_repository_workdir(repo);
299
+ git_attr_cache *attrcache;
300
+ const char *excludes_file = NULL;
299
301
  git_str infopath = GIT_STR_INIT;
300
302
 
301
303
  GIT_ASSERT_ARG(repo);
@@ -358,10 +360,12 @@ int git_ignore__for_path(
358
360
  }
359
361
 
360
362
  /* load core.excludesfile */
361
- if (git_repository_attr_cache(repo)->cfg_excl_file != NULL)
363
+ attrcache = git_repository_attr_cache(repo);
364
+ excludes_file = git_attr_cache_excludesfile(attrcache);
365
+
366
+ if (excludes_file != NULL)
362
367
  error = push_ignore_file(
363
- ignores, &ignores->ign_global, NULL,
364
- git_repository_attr_cache(repo)->cfg_excl_file);
368
+ ignores, &ignores->ign_global, NULL, excludes_file);
365
369
 
366
370
  cleanup:
367
371
  git_str_dispose(&infopath);
@@ -428,13 +432,13 @@ void git_ignore__free(git_ignores *ignores)
428
432
  git_attr_file__free(file);
429
433
  ignores->ign_path.contents[i] = NULL;
430
434
  }
431
- git_vector_free(&ignores->ign_path);
435
+ git_vector_dispose(&ignores->ign_path);
432
436
 
433
437
  git_vector_foreach(&ignores->ign_global, i, file) {
434
438
  git_attr_file__free(file);
435
439
  ignores->ign_global.contents[i] = NULL;
436
440
  }
437
- git_vector_free(&ignores->ign_global);
441
+ git_vector_dispose(&ignores->ign_global);
438
442
 
439
443
  git_str_dispose(&ignores->dir);
440
444
  }