rugged 1.6.3 → 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 (443) hide show
  1. checksums.yaml +4 -4
  2. data/ext/rugged/rugged_allocator.c +0 -54
  3. data/lib/rugged/version.rb +1 -1
  4. data/vendor/libgit2/AUTHORS +1 -0
  5. data/vendor/libgit2/CMakeLists.txt +25 -17
  6. data/vendor/libgit2/COPYING +195 -1
  7. data/vendor/libgit2/cmake/CheckPrototypeDefinitionSafe.cmake +16 -0
  8. data/vendor/libgit2/cmake/{FindIconv.cmake → FindIntlIconv.cmake} +6 -0
  9. data/vendor/libgit2/cmake/FindLLHTTP.cmake +39 -0
  10. data/vendor/libgit2/cmake/SelectGSSAPI.cmake +4 -4
  11. data/vendor/libgit2/cmake/SelectHTTPParser.cmake +23 -8
  12. data/vendor/libgit2/cmake/SelectHTTPSBackend.cmake +34 -6
  13. data/vendor/libgit2/cmake/SelectHashes.cmake +32 -11
  14. data/vendor/libgit2/cmake/SelectRegex.cmake +6 -1
  15. data/vendor/libgit2/cmake/SelectSSH.cmake +22 -17
  16. data/vendor/libgit2/cmake/SelectXdiff.cmake +9 -0
  17. data/vendor/libgit2/cmake/SelectZlib.cmake +4 -0
  18. data/vendor/libgit2/deps/llhttp/CMakeLists.txt +8 -0
  19. data/vendor/libgit2/deps/llhttp/LICENSE-MIT +22 -0
  20. data/vendor/libgit2/deps/llhttp/api.c +510 -0
  21. data/vendor/libgit2/deps/llhttp/http.c +170 -0
  22. data/vendor/libgit2/deps/llhttp/llhttp.c +10168 -0
  23. data/vendor/libgit2/deps/llhttp/llhttp.h +897 -0
  24. data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +1 -1
  25. data/vendor/libgit2/deps/ntlmclient/crypt_builtin_md4.c +311 -0
  26. data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.c +2 -1
  27. data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.c +0 -20
  28. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +4 -4
  29. data/vendor/libgit2/deps/ntlmclient/ntlm.c +21 -21
  30. data/vendor/libgit2/deps/ntlmclient/unicode_builtin.c +5 -4
  31. data/vendor/libgit2/deps/ntlmclient/unicode_iconv.c +2 -1
  32. data/vendor/libgit2/deps/ntlmclient/utf8.h +1176 -721
  33. data/vendor/libgit2/deps/ntlmclient/util.h +11 -0
  34. data/vendor/libgit2/deps/pcre/CMakeLists.txt +1 -0
  35. data/vendor/libgit2/deps/pcre/LICENCE +5 -5
  36. data/vendor/libgit2/deps/pcre/pcre.h +2 -2
  37. data/vendor/libgit2/deps/pcre/pcre_compile.c +6 -3
  38. data/vendor/libgit2/deps/pcre/pcre_exec.c +2 -2
  39. data/vendor/libgit2/deps/xdiff/CMakeLists.txt +28 -0
  40. data/vendor/libgit2/{src/libgit2 → deps}/xdiff/git-xdiff.h +4 -1
  41. data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xdiffi.c +19 -18
  42. data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xdiffi.h +2 -4
  43. data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xemit.c +3 -3
  44. data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xhistogram.c +7 -18
  45. data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xmacros.h +18 -1
  46. data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xmerge.c +22 -20
  47. data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xpatience.c +21 -30
  48. data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xprepare.c +13 -30
  49. data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xutils.c +18 -1
  50. data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xutils.h +2 -1
  51. data/vendor/libgit2/deps/zlib/CMakeLists.txt +6 -1
  52. data/vendor/libgit2/deps/zlib/LICENSE +22 -0
  53. data/vendor/libgit2/deps/zlib/adler32.c +5 -27
  54. data/vendor/libgit2/deps/zlib/crc32.c +94 -167
  55. data/vendor/libgit2/deps/zlib/deflate.c +358 -435
  56. data/vendor/libgit2/deps/zlib/deflate.h +41 -10
  57. data/vendor/libgit2/deps/zlib/gzguts.h +13 -18
  58. data/vendor/libgit2/deps/zlib/infback.c +17 -30
  59. data/vendor/libgit2/deps/zlib/inffast.c +1 -4
  60. data/vendor/libgit2/deps/zlib/inffast.h +1 -1
  61. data/vendor/libgit2/deps/zlib/inflate.c +36 -102
  62. data/vendor/libgit2/deps/zlib/inftrees.c +6 -11
  63. data/vendor/libgit2/deps/zlib/inftrees.h +6 -6
  64. data/vendor/libgit2/deps/zlib/trees.c +287 -352
  65. data/vendor/libgit2/deps/zlib/zconf.h +23 -14
  66. data/vendor/libgit2/deps/zlib/zlib.h +202 -202
  67. data/vendor/libgit2/deps/zlib/zutil.c +18 -44
  68. data/vendor/libgit2/deps/zlib/zutil.h +13 -33
  69. data/vendor/libgit2/include/git2/annotated_commit.h +12 -5
  70. data/vendor/libgit2/include/git2/apply.h +27 -6
  71. data/vendor/libgit2/include/git2/attr.h +17 -4
  72. data/vendor/libgit2/include/git2/blame.h +133 -28
  73. data/vendor/libgit2/include/git2/blob.h +71 -28
  74. data/vendor/libgit2/include/git2/branch.h +22 -15
  75. data/vendor/libgit2/include/git2/buffer.h +6 -4
  76. data/vendor/libgit2/include/git2/cert.h +2 -1
  77. data/vendor/libgit2/include/git2/checkout.h +83 -32
  78. data/vendor/libgit2/include/git2/cherrypick.h +10 -3
  79. data/vendor/libgit2/include/git2/clone.h +25 -9
  80. data/vendor/libgit2/include/git2/commit.h +132 -3
  81. data/vendor/libgit2/include/git2/common.h +138 -56
  82. data/vendor/libgit2/include/git2/config.h +93 -23
  83. data/vendor/libgit2/include/git2/credential.h +30 -2
  84. data/vendor/libgit2/include/git2/credential_helpers.h +1 -0
  85. data/vendor/libgit2/include/git2/deprecated.h +133 -3
  86. data/vendor/libgit2/include/git2/describe.h +13 -1
  87. data/vendor/libgit2/include/git2/diff.h +77 -9
  88. data/vendor/libgit2/include/git2/email.h +9 -29
  89. data/vendor/libgit2/include/git2/errors.h +49 -74
  90. data/vendor/libgit2/include/git2/filter.h +14 -7
  91. data/vendor/libgit2/include/git2/global.h +8 -1
  92. data/vendor/libgit2/include/git2/graph.h +3 -2
  93. data/vendor/libgit2/include/git2/ignore.h +10 -0
  94. data/vendor/libgit2/include/git2/index.h +100 -6
  95. data/vendor/libgit2/include/git2/indexer.h +21 -4
  96. data/vendor/libgit2/include/git2/mailmap.h +7 -1
  97. data/vendor/libgit2/include/git2/merge.h +46 -1
  98. data/vendor/libgit2/include/git2/message.h +2 -2
  99. data/vendor/libgit2/include/git2/net.h +3 -1
  100. data/vendor/libgit2/include/git2/notes.h +9 -6
  101. data/vendor/libgit2/include/git2/object.h +9 -8
  102. data/vendor/libgit2/include/git2/odb.h +91 -49
  103. data/vendor/libgit2/include/git2/odb_backend.h +80 -52
  104. data/vendor/libgit2/include/git2/oid.h +24 -25
  105. data/vendor/libgit2/include/git2/oidarray.h +7 -1
  106. data/vendor/libgit2/include/git2/pack.h +13 -1
  107. data/vendor/libgit2/include/git2/patch.h +2 -3
  108. data/vendor/libgit2/include/git2/pathspec.h +9 -0
  109. data/vendor/libgit2/include/git2/proxy.h +10 -0
  110. data/vendor/libgit2/include/git2/rebase.h +9 -6
  111. data/vendor/libgit2/include/git2/refdb.h +2 -2
  112. data/vendor/libgit2/include/git2/reflog.h +3 -2
  113. data/vendor/libgit2/include/git2/refs.h +9 -6
  114. data/vendor/libgit2/include/git2/refspec.h +14 -4
  115. data/vendor/libgit2/include/git2/remote.h +112 -18
  116. data/vendor/libgit2/include/git2/repository.h +61 -15
  117. data/vendor/libgit2/include/git2/reset.h +16 -3
  118. data/vendor/libgit2/include/git2/revert.h +9 -4
  119. data/vendor/libgit2/include/git2/revparse.h +3 -3
  120. data/vendor/libgit2/include/git2/revwalk.h +3 -2
  121. data/vendor/libgit2/include/git2/signature.h +46 -1
  122. data/vendor/libgit2/include/git2/stash.h +17 -3
  123. data/vendor/libgit2/include/git2/status.h +10 -6
  124. data/vendor/libgit2/include/git2/stdint.h +87 -85
  125. data/vendor/libgit2/include/git2/strarray.h +2 -3
  126. data/vendor/libgit2/include/git2/submodule.h +20 -9
  127. data/vendor/libgit2/include/git2/sys/alloc.h +12 -34
  128. data/vendor/libgit2/include/git2/sys/commit.h +77 -3
  129. data/vendor/libgit2/include/git2/sys/commit_graph.h +109 -58
  130. data/vendor/libgit2/include/git2/sys/config.h +80 -4
  131. data/vendor/libgit2/include/git2/sys/credential.h +4 -3
  132. data/vendor/libgit2/include/git2/sys/diff.h +21 -1
  133. data/vendor/libgit2/include/git2/sys/email.h +7 -0
  134. data/vendor/libgit2/include/git2/sys/errors.h +76 -0
  135. data/vendor/libgit2/include/git2/sys/filter.h +66 -3
  136. data/vendor/libgit2/include/git2/sys/hashsig.h +11 -0
  137. data/vendor/libgit2/include/git2/sys/index.h +3 -2
  138. data/vendor/libgit2/include/git2/sys/mempack.h +32 -2
  139. data/vendor/libgit2/include/git2/sys/merge.h +55 -7
  140. data/vendor/libgit2/include/git2/sys/midx.h +47 -4
  141. data/vendor/libgit2/include/git2/sys/odb_backend.h +7 -3
  142. data/vendor/libgit2/include/git2/sys/openssl.h +8 -1
  143. data/vendor/libgit2/include/git2/sys/path.h +12 -1
  144. data/vendor/libgit2/include/git2/sys/refdb_backend.h +40 -36
  145. data/vendor/libgit2/include/git2/sys/refs.h +3 -2
  146. data/vendor/libgit2/include/git2/sys/remote.h +8 -1
  147. data/vendor/libgit2/include/git2/sys/repository.h +63 -3
  148. data/vendor/libgit2/include/git2/sys/stream.h +25 -2
  149. data/vendor/libgit2/include/git2/sys/transport.h +44 -5
  150. data/vendor/libgit2/include/git2/tag.h +3 -1
  151. data/vendor/libgit2/include/git2/trace.h +9 -3
  152. data/vendor/libgit2/include/git2/transaction.h +3 -2
  153. data/vendor/libgit2/include/git2/transport.h +11 -3
  154. data/vendor/libgit2/include/git2/tree.h +16 -5
  155. data/vendor/libgit2/include/git2/types.h +19 -3
  156. data/vendor/libgit2/include/git2/version.h +44 -8
  157. data/vendor/libgit2/include/git2/worktree.h +19 -7
  158. data/vendor/libgit2/src/CMakeLists.txt +40 -15
  159. data/vendor/libgit2/src/cli/CMakeLists.txt +2 -2
  160. data/vendor/libgit2/src/cli/cmd.c +1 -1
  161. data/vendor/libgit2/src/cli/cmd.h +4 -0
  162. data/vendor/libgit2/src/cli/cmd_blame.c +287 -0
  163. data/vendor/libgit2/src/cli/cmd_cat_file.c +6 -8
  164. data/vendor/libgit2/src/cli/cmd_clone.c +27 -13
  165. data/vendor/libgit2/src/cli/cmd_config.c +241 -0
  166. data/vendor/libgit2/src/cli/cmd_hash_object.c +6 -8
  167. data/vendor/libgit2/src/cli/cmd_help.c +6 -7
  168. data/vendor/libgit2/src/cli/cmd_index_pack.c +114 -0
  169. data/vendor/libgit2/src/cli/cmd_init.c +102 -0
  170. data/vendor/libgit2/src/cli/common.c +168 -0
  171. data/vendor/libgit2/src/cli/common.h +63 -0
  172. data/vendor/libgit2/src/cli/error.h +1 -1
  173. data/vendor/libgit2/src/cli/main.c +52 -24
  174. data/vendor/libgit2/src/cli/opt.c +29 -3
  175. data/vendor/libgit2/src/cli/opt.h +21 -3
  176. data/vendor/libgit2/src/cli/opt_usage.c +102 -33
  177. data/vendor/libgit2/src/cli/opt_usage.h +6 -1
  178. data/vendor/libgit2/src/cli/progress.c +60 -10
  179. data/vendor/libgit2/src/cli/progress.h +16 -4
  180. data/vendor/libgit2/src/cli/unix/sighandler.c +2 -1
  181. data/vendor/libgit2/src/cli/win32/precompiled.h +1 -1
  182. data/vendor/libgit2/src/cli/win32/sighandler.c +1 -1
  183. data/vendor/libgit2/src/libgit2/CMakeLists.txt +27 -27
  184. data/vendor/libgit2/src/libgit2/annotated_commit.c +2 -2
  185. data/vendor/libgit2/src/libgit2/annotated_commit.h +1 -1
  186. data/vendor/libgit2/src/libgit2/apply.c +14 -16
  187. data/vendor/libgit2/src/libgit2/attr.c +30 -13
  188. data/vendor/libgit2/src/libgit2/attr_file.c +7 -2
  189. data/vendor/libgit2/src/libgit2/attr_file.h +2 -0
  190. data/vendor/libgit2/src/libgit2/attrcache.c +69 -33
  191. data/vendor/libgit2/src/libgit2/attrcache.h +5 -9
  192. data/vendor/libgit2/src/libgit2/blame.c +152 -59
  193. data/vendor/libgit2/src/libgit2/blame.h +1 -0
  194. data/vendor/libgit2/src/libgit2/blame_git.c +0 -1
  195. data/vendor/libgit2/src/libgit2/branch.c +2 -2
  196. data/vendor/libgit2/src/libgit2/cache.c +22 -17
  197. data/vendor/libgit2/src/libgit2/cache.h +7 -9
  198. data/vendor/libgit2/src/libgit2/checkout.c +34 -24
  199. data/vendor/libgit2/src/libgit2/checkout.h +0 -2
  200. data/vendor/libgit2/src/libgit2/cherrypick.c +4 -5
  201. data/vendor/libgit2/src/libgit2/clone.c +186 -164
  202. data/vendor/libgit2/src/libgit2/clone.h +4 -1
  203. data/vendor/libgit2/src/libgit2/commit.c +123 -9
  204. data/vendor/libgit2/src/libgit2/commit_graph.c +166 -88
  205. data/vendor/libgit2/src/libgit2/commit_graph.h +21 -6
  206. data/vendor/libgit2/src/libgit2/commit_list.c +12 -5
  207. data/vendor/libgit2/src/libgit2/commit_list.h +1 -0
  208. data/vendor/libgit2/src/libgit2/config.c +394 -300
  209. data/vendor/libgit2/src/libgit2/config.cmake.in +3 -0
  210. data/vendor/libgit2/src/libgit2/config.h +9 -4
  211. data/vendor/libgit2/src/libgit2/config_backend.h +8 -10
  212. data/vendor/libgit2/src/libgit2/config_cache.c +4 -5
  213. data/vendor/libgit2/src/libgit2/config_file.c +113 -96
  214. data/vendor/libgit2/src/libgit2/config_list.c +285 -0
  215. data/vendor/libgit2/src/libgit2/config_list.h +32 -0
  216. data/vendor/libgit2/src/libgit2/config_mem.c +194 -40
  217. data/vendor/libgit2/src/libgit2/config_parse.c +10 -9
  218. data/vendor/libgit2/src/libgit2/config_snapshot.c +24 -31
  219. data/vendor/libgit2/src/libgit2/describe.c +34 -31
  220. data/vendor/libgit2/src/libgit2/diff.c +17 -8
  221. data/vendor/libgit2/src/libgit2/diff.h +6 -6
  222. data/vendor/libgit2/src/libgit2/diff_driver.c +12 -19
  223. data/vendor/libgit2/src/libgit2/diff_driver.h +2 -2
  224. data/vendor/libgit2/src/libgit2/diff_file.c +7 -7
  225. data/vendor/libgit2/src/libgit2/diff_generate.c +39 -18
  226. data/vendor/libgit2/src/libgit2/diff_parse.c +22 -6
  227. data/vendor/libgit2/src/libgit2/diff_print.c +88 -13
  228. data/vendor/libgit2/src/libgit2/diff_tform.c +40 -12
  229. data/vendor/libgit2/src/libgit2/diff_xdiff.h +1 -1
  230. data/vendor/libgit2/src/libgit2/email.c +5 -3
  231. data/vendor/libgit2/src/libgit2/fetch.c +39 -9
  232. data/vendor/libgit2/src/libgit2/fetch.h +0 -2
  233. data/vendor/libgit2/src/libgit2/fetchhead.c +11 -9
  234. data/vendor/libgit2/src/libgit2/filter.c +5 -5
  235. data/vendor/libgit2/src/libgit2/git2.rc +3 -3
  236. data/vendor/libgit2/src/libgit2/grafts.c +270 -0
  237. data/vendor/libgit2/src/libgit2/grafts.h +35 -0
  238. data/vendor/libgit2/src/libgit2/graph.c +1 -1
  239. data/vendor/libgit2/src/libgit2/hashmap_oid.h +30 -0
  240. data/vendor/libgit2/src/libgit2/ident.c +3 -3
  241. data/vendor/libgit2/src/libgit2/ignore.c +9 -5
  242. data/vendor/libgit2/src/libgit2/index.c +392 -208
  243. data/vendor/libgit2/src/libgit2/index.h +16 -3
  244. data/vendor/libgit2/src/libgit2/index_map.c +95 -0
  245. data/vendor/libgit2/src/libgit2/index_map.h +28 -0
  246. data/vendor/libgit2/src/libgit2/indexer.c +44 -41
  247. data/vendor/libgit2/src/libgit2/iterator.c +34 -13
  248. data/vendor/libgit2/src/libgit2/iterator.h +3 -0
  249. data/vendor/libgit2/src/libgit2/libgit2.c +155 -331
  250. data/vendor/libgit2/src/libgit2/mailmap.c +1 -1
  251. data/vendor/libgit2/src/libgit2/merge.c +56 -46
  252. data/vendor/libgit2/src/libgit2/merge_driver.c +2 -2
  253. data/vendor/libgit2/src/libgit2/merge_file.c +0 -2
  254. data/vendor/libgit2/src/libgit2/midx.c +86 -44
  255. data/vendor/libgit2/src/libgit2/midx.h +13 -3
  256. data/vendor/libgit2/src/libgit2/mwindow.c +38 -45
  257. data/vendor/libgit2/src/libgit2/mwindow.h +4 -0
  258. data/vendor/libgit2/src/libgit2/notes.c +9 -8
  259. data/vendor/libgit2/src/libgit2/object.c +42 -16
  260. data/vendor/libgit2/src/libgit2/object.h +6 -0
  261. data/vendor/libgit2/src/libgit2/odb.c +16 -9
  262. data/vendor/libgit2/src/libgit2/odb_mempack.c +49 -17
  263. data/vendor/libgit2/src/libgit2/odb_pack.c +28 -7
  264. data/vendor/libgit2/src/libgit2/oid.c +35 -2
  265. data/vendor/libgit2/src/libgit2/oid.h +11 -0
  266. data/vendor/libgit2/src/libgit2/oidarray.c +49 -3
  267. data/vendor/libgit2/src/libgit2/oidarray.h +5 -1
  268. data/vendor/libgit2/src/libgit2/pack-objects.c +77 -43
  269. data/vendor/libgit2/src/libgit2/pack-objects.h +17 -6
  270. data/vendor/libgit2/src/libgit2/pack.c +33 -27
  271. data/vendor/libgit2/src/libgit2/pack.h +15 -10
  272. data/vendor/libgit2/src/libgit2/parse.c +7 -4
  273. data/vendor/libgit2/src/libgit2/parse.h +1 -1
  274. data/vendor/libgit2/src/libgit2/patch.h +7 -1
  275. data/vendor/libgit2/src/libgit2/patch_generate.c +24 -5
  276. data/vendor/libgit2/src/libgit2/patch_parse.c +18 -10
  277. data/vendor/libgit2/src/libgit2/path.c +1 -1
  278. data/vendor/libgit2/src/libgit2/pathspec.c +1 -1
  279. data/vendor/libgit2/src/libgit2/push.c +81 -30
  280. data/vendor/libgit2/src/libgit2/push.h +1 -0
  281. data/vendor/libgit2/src/libgit2/reader.c +1 -1
  282. data/vendor/libgit2/src/libgit2/rebase.c +72 -84
  283. data/vendor/libgit2/src/libgit2/refdb_fs.c +146 -70
  284. data/vendor/libgit2/src/libgit2/reflog.c +1 -2
  285. data/vendor/libgit2/src/libgit2/reflog.h +2 -0
  286. data/vendor/libgit2/src/libgit2/refs.c +34 -8
  287. data/vendor/libgit2/src/libgit2/refs.h +6 -1
  288. data/vendor/libgit2/src/libgit2/refspec.c +28 -1
  289. data/vendor/libgit2/src/libgit2/refspec.h +8 -0
  290. data/vendor/libgit2/src/libgit2/remote.c +136 -67
  291. data/vendor/libgit2/src/libgit2/remote.h +1 -0
  292. data/vendor/libgit2/src/libgit2/repository.c +789 -330
  293. data/vendor/libgit2/src/libgit2/repository.h +22 -3
  294. data/vendor/libgit2/src/libgit2/reset.c +2 -2
  295. data/vendor/libgit2/src/libgit2/revert.c +9 -13
  296. data/vendor/libgit2/src/libgit2/revparse.c +6 -3
  297. data/vendor/libgit2/src/libgit2/revwalk.c +36 -11
  298. data/vendor/libgit2/src/libgit2/revwalk.h +3 -3
  299. data/vendor/libgit2/src/libgit2/settings.c +468 -0
  300. data/vendor/libgit2/src/libgit2/settings.h +6 -2
  301. data/vendor/libgit2/src/libgit2/signature.c +132 -15
  302. data/vendor/libgit2/src/libgit2/signature.h +0 -1
  303. data/vendor/libgit2/src/libgit2/stash.c +9 -8
  304. data/vendor/libgit2/src/libgit2/status.c +1 -1
  305. data/vendor/libgit2/src/libgit2/streams/mbedtls.c +54 -61
  306. data/vendor/libgit2/src/libgit2/streams/openssl.c +40 -23
  307. data/vendor/libgit2/src/libgit2/streams/openssl.h +2 -0
  308. data/vendor/libgit2/src/libgit2/streams/openssl_dynamic.c +4 -0
  309. data/vendor/libgit2/src/libgit2/streams/openssl_dynamic.h +3 -0
  310. data/vendor/libgit2/src/libgit2/streams/schannel.c +715 -0
  311. data/vendor/libgit2/src/libgit2/streams/schannel.h +28 -0
  312. data/vendor/libgit2/src/libgit2/streams/socket.c +237 -51
  313. data/vendor/libgit2/src/libgit2/streams/socket.h +3 -1
  314. data/vendor/libgit2/src/libgit2/streams/stransport.c +79 -19
  315. data/vendor/libgit2/src/libgit2/streams/tls.c +5 -0
  316. data/vendor/libgit2/src/libgit2/submodule.c +106 -63
  317. data/vendor/libgit2/src/libgit2/submodule.h +9 -10
  318. data/vendor/libgit2/src/libgit2/tag.c +1 -1
  319. data/vendor/libgit2/src/libgit2/trailer.c +6 -6
  320. data/vendor/libgit2/src/libgit2/transaction.c +26 -20
  321. data/vendor/libgit2/src/libgit2/transaction.h +4 -1
  322. data/vendor/libgit2/src/libgit2/transport.c +4 -1
  323. data/vendor/libgit2/src/libgit2/transports/auth.h +1 -2
  324. data/vendor/libgit2/src/libgit2/transports/{auth_negotiate.c → auth_gssapi.c} +32 -32
  325. data/vendor/libgit2/src/libgit2/transports/auth_negotiate.h +1 -1
  326. data/vendor/libgit2/src/libgit2/transports/auth_ntlm.h +1 -1
  327. data/vendor/libgit2/src/libgit2/transports/{auth_ntlm.c → auth_ntlmclient.c} +12 -12
  328. data/vendor/libgit2/src/libgit2/transports/auth_sspi.c +341 -0
  329. data/vendor/libgit2/src/libgit2/transports/credential.c +1 -1
  330. data/vendor/libgit2/src/libgit2/transports/git.c +7 -8
  331. data/vendor/libgit2/src/libgit2/transports/http.c +8 -4
  332. data/vendor/libgit2/src/libgit2/transports/http.h +0 -10
  333. data/vendor/libgit2/src/libgit2/transports/httpclient.c +117 -72
  334. data/vendor/libgit2/src/libgit2/transports/httpparser.c +128 -0
  335. data/vendor/libgit2/src/libgit2/transports/httpparser.h +99 -0
  336. data/vendor/libgit2/src/libgit2/transports/local.c +21 -11
  337. data/vendor/libgit2/src/libgit2/transports/smart.c +50 -32
  338. data/vendor/libgit2/src/libgit2/transports/smart.h +26 -9
  339. data/vendor/libgit2/src/libgit2/transports/smart_pkt.c +139 -18
  340. data/vendor/libgit2/src/libgit2/transports/smart_protocol.c +209 -57
  341. data/vendor/libgit2/src/libgit2/transports/ssh.c +41 -1103
  342. data/vendor/libgit2/src/libgit2/transports/ssh_exec.c +347 -0
  343. data/vendor/libgit2/src/libgit2/transports/ssh_exec.h +26 -0
  344. data/vendor/libgit2/src/libgit2/transports/ssh_libssh2.c +1126 -0
  345. data/vendor/libgit2/src/libgit2/transports/ssh_libssh2.h +28 -0
  346. data/vendor/libgit2/src/libgit2/transports/winhttp.c +48 -21
  347. data/vendor/libgit2/src/libgit2/tree-cache.c +26 -16
  348. data/vendor/libgit2/src/libgit2/tree-cache.h +5 -3
  349. data/vendor/libgit2/src/libgit2/tree.c +35 -27
  350. data/vendor/libgit2/src/libgit2/tree.h +3 -2
  351. data/vendor/libgit2/src/libgit2/worktree.c +39 -27
  352. data/vendor/libgit2/src/util/CMakeLists.txt +4 -6
  353. data/vendor/libgit2/src/util/alloc.c +69 -7
  354. data/vendor/libgit2/src/util/alloc.h +34 -9
  355. data/vendor/libgit2/src/util/allocators/debugalloc.c +73 -0
  356. data/vendor/libgit2/src/{cli/cli.h → util/allocators/debugalloc.h} +6 -9
  357. data/vendor/libgit2/src/util/allocators/failalloc.c +0 -60
  358. data/vendor/libgit2/src/util/allocators/failalloc.h +0 -6
  359. data/vendor/libgit2/src/util/allocators/stdalloc.c +2 -115
  360. data/vendor/libgit2/src/util/allocators/win32_leakcheck.c +0 -68
  361. data/vendor/libgit2/src/util/array.h +24 -18
  362. data/vendor/libgit2/src/util/cc-compat.h +4 -0
  363. data/vendor/libgit2/src/util/ctype_compat.h +70 -0
  364. data/vendor/libgit2/src/util/date.c +22 -14
  365. data/vendor/libgit2/src/util/date.h +12 -0
  366. data/vendor/libgit2/src/util/errors.c +401 -0
  367. data/vendor/libgit2/src/{libgit2 → util}/errors.h +21 -17
  368. data/vendor/libgit2/src/util/filebuf.c +6 -1
  369. data/vendor/libgit2/src/util/filebuf.h +19 -6
  370. data/vendor/libgit2/src/util/fs_path.c +16 -5
  371. data/vendor/libgit2/src/util/fs_path.h +23 -0
  372. data/vendor/libgit2/src/util/futils.c +14 -10
  373. data/vendor/libgit2/src/util/futils.h +13 -4
  374. data/vendor/libgit2/src/util/git2_features.h.in +21 -4
  375. data/vendor/libgit2/src/util/git2_util.h +6 -0
  376. data/vendor/libgit2/src/util/hash/openssl.c +152 -0
  377. data/vendor/libgit2/src/util/hash/openssl.h +17 -1
  378. data/vendor/libgit2/src/util/hash/sha.h +4 -1
  379. data/vendor/libgit2/src/util/hashmap.h +424 -0
  380. data/vendor/libgit2/src/util/hashmap_str.h +43 -0
  381. data/vendor/libgit2/src/util/integer.h +3 -1
  382. data/vendor/libgit2/src/util/net.c +318 -161
  383. data/vendor/libgit2/src/util/net.h +27 -0
  384. data/vendor/libgit2/src/util/pool.c +1 -1
  385. data/vendor/libgit2/src/util/pool.h +5 -0
  386. data/vendor/libgit2/src/util/posix.c +54 -0
  387. data/vendor/libgit2/src/util/posix.h +22 -0
  388. data/vendor/libgit2/src/util/pqueue.h +1 -1
  389. data/vendor/libgit2/src/util/process.h +222 -0
  390. data/vendor/libgit2/src/util/rand.c +6 -10
  391. data/vendor/libgit2/src/util/regexp.c +1 -1
  392. data/vendor/libgit2/src/util/sortedcache.c +14 -13
  393. data/vendor/libgit2/src/util/sortedcache.h +3 -3
  394. data/vendor/libgit2/src/util/staticstr.h +66 -0
  395. data/vendor/libgit2/src/util/str.c +2 -2
  396. data/vendor/libgit2/src/util/strlist.c +108 -0
  397. data/vendor/libgit2/src/util/strlist.h +36 -0
  398. data/vendor/libgit2/src/util/unix/posix.h +0 -2
  399. data/vendor/libgit2/src/util/unix/process.c +629 -0
  400. data/vendor/libgit2/src/util/unix/realpath.c +23 -5
  401. data/vendor/libgit2/src/util/util.c +17 -12
  402. data/vendor/libgit2/src/util/util.h +28 -54
  403. data/vendor/libgit2/src/util/vector.c +3 -3
  404. data/vendor/libgit2/src/util/vector.h +2 -2
  405. data/vendor/libgit2/src/util/win32/error.c +1 -1
  406. data/vendor/libgit2/src/util/win32/path_w32.c +8 -8
  407. data/vendor/libgit2/src/util/win32/posix_w32.c +30 -7
  408. data/vendor/libgit2/src/util/win32/process.c +506 -0
  409. data/vendor/libgit2/src/util/win32/utf-conv.c +73 -75
  410. data/vendor/libgit2/src/util/win32/utf-conv.h +81 -14
  411. data/vendor/libgit2/src/util/win32/w32_util.c +1 -1
  412. metadata +72 -49
  413. data/vendor/libgit2/cmake/SelectWinHTTP.cmake +0 -17
  414. data/vendor/libgit2/deps/http-parser/CMakeLists.txt +0 -6
  415. data/vendor/libgit2/deps/http-parser/COPYING +0 -23
  416. data/vendor/libgit2/deps/http-parser/http_parser.c +0 -2182
  417. data/vendor/libgit2/deps/http-parser/http_parser.h +0 -305
  418. data/vendor/libgit2/deps/zlib/COPYING +0 -27
  419. data/vendor/libgit2/include/git2/sys/reflog.h +0 -21
  420. data/vendor/libgit2/src/libgit2/config_entries.c +0 -237
  421. data/vendor/libgit2/src/libgit2/config_entries.h +0 -24
  422. data/vendor/libgit2/src/libgit2/errors.c +0 -238
  423. data/vendor/libgit2/src/libgit2/idxmap.c +0 -157
  424. data/vendor/libgit2/src/libgit2/idxmap.h +0 -177
  425. data/vendor/libgit2/src/libgit2/libgit2.h +0 -15
  426. data/vendor/libgit2/src/libgit2/netops.c +0 -124
  427. data/vendor/libgit2/src/libgit2/netops.h +0 -68
  428. data/vendor/libgit2/src/libgit2/offmap.c +0 -101
  429. data/vendor/libgit2/src/libgit2/offmap.h +0 -133
  430. data/vendor/libgit2/src/libgit2/oidmap.c +0 -107
  431. data/vendor/libgit2/src/libgit2/oidmap.h +0 -128
  432. data/vendor/libgit2/src/libgit2/threadstate.c +0 -84
  433. data/vendor/libgit2/src/libgit2/threadstate.h +0 -24
  434. data/vendor/libgit2/src/libgit2/transports/ssh.h +0 -14
  435. data/vendor/libgit2/src/util/khash.h +0 -615
  436. data/vendor/libgit2/src/util/strmap.c +0 -100
  437. data/vendor/libgit2/src/util/strmap.h +0 -131
  438. /data/vendor/libgit2/cmake/{FindHTTPParser.cmake → FindHTTP_Parser.cmake} +0 -0
  439. /data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xdiff.h +0 -0
  440. /data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xemit.h +0 -0
  441. /data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xinclude.h +0 -0
  442. /data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xprepare.h +0 -0
  443. /data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xtypes.h +0 -0
@@ -8,6 +8,10 @@
8
8
  #ifndef CLI_opt_usage_h__
9
9
  #define CLI_opt_usage_h__
10
10
 
11
+ typedef enum {
12
+ CLI_OPT_USAGE_SHOW_HIDDEN = (1 << 0),
13
+ } cli_opt_usage_flags;
14
+
11
15
  /**
12
16
  * Prints usage information to the given file handle.
13
17
  *
@@ -21,7 +25,8 @@ int cli_opt_usage_fprint(
21
25
  FILE *file,
22
26
  const char *command,
23
27
  const char *subcommand,
24
- const cli_opt_spec specs[]);
28
+ const cli_opt_spec specs[],
29
+ unsigned int print_flags);
25
30
 
26
31
  int cli_opt_usage_error(
27
32
  const char *subcommand,
@@ -15,10 +15,10 @@
15
15
  /*
16
16
  * Show updates to the percentage and number of objects received
17
17
  * separately from the throughput to give an accurate progress while
18
- * avoiding too much noise on the screen.
18
+ * avoiding too much noise on the screen. (In milliseconds.)
19
19
  */
20
- #define PROGRESS_UPDATE_TIME 0.10
21
- #define THROUGHPUT_UPDATE_TIME 1.00
20
+ #define PROGRESS_UPDATE_TIME 60
21
+ #define THROUGHPUT_UPDATE_TIME 500
22
22
 
23
23
  #define is_nl(c) ((c) == '\r' || (c) == '\n')
24
24
 
@@ -54,7 +54,7 @@ static int progress_write(cli_progress *progress, bool force, git_str *line)
54
54
  bool has_nl;
55
55
  size_t no_nl = no_nl_len(line->ptr, line->size);
56
56
  size_t nl = nl_len(&has_nl, line->ptr + no_nl, line->size - no_nl);
57
- double now = git__timer();
57
+ uint64_t now = git_time_monotonic();
58
58
  size_t i;
59
59
 
60
60
  /* Avoid spamming the console with progress updates */
@@ -191,20 +191,21 @@ static int fetch_receiving(
191
191
  {
192
192
  char *recv_units[] = { "B", "KiB", "MiB", "GiB", "TiB", NULL };
193
193
  char *rate_units[] = { "B/s", "KiB/s", "MiB/s", "GiB/s", "TiB/s", NULL };
194
+ uint64_t now, elapsed;
194
195
 
195
- double now, recv_len, rate, elapsed;
196
+ double recv_len, rate;
196
197
  size_t recv_unit_idx = 0, rate_unit_idx = 0;
197
198
  bool done = (stats->received_objects == stats->total_objects);
198
199
 
199
200
  if (!progress->action_start)
200
- progress->action_start = git__timer();
201
+ progress->action_start = git_time_monotonic();
201
202
 
202
203
  if (done && progress->action_finish)
203
204
  now = progress->action_finish;
204
205
  else if (done)
205
- progress->action_finish = now = git__timer();
206
+ progress->action_finish = now = git_time_monotonic();
206
207
  else
207
- now = git__timer();
208
+ now = git_time_monotonic();
208
209
 
209
210
  if (progress->throughput_update &&
210
211
  now - progress->throughput_update < THROUGHPUT_UPDATE_TIME) {
@@ -241,7 +242,21 @@ static int fetch_receiving(
241
242
  done ? ", done." : "");
242
243
  }
243
244
 
244
- static int fetch_resolving(
245
+ static int indexer_indexing(
246
+ cli_progress *progress,
247
+ const git_indexer_progress *stats)
248
+ {
249
+ bool done = (stats->received_objects == stats->total_objects);
250
+
251
+ return progress_printf(progress, false,
252
+ "Indexing objects: %3d%% (%d/%d)%s\r",
253
+ percent(stats->received_objects, stats->total_objects),
254
+ stats->received_objects,
255
+ stats->total_objects,
256
+ done ? ", done." : "");
257
+ }
258
+
259
+ static int indexer_resolving(
245
260
  cli_progress *progress,
246
261
  const git_indexer_progress *stats)
247
262
  {
@@ -282,7 +297,42 @@ int cli_progress_fetch_transfer(const git_indexer_progress *stats, void *payload
282
297
  /* fall through */
283
298
 
284
299
  case CLI_PROGRESS_RESOLVING:
285
- error = fetch_resolving(progress, stats);
300
+ error = indexer_resolving(progress, stats);
301
+ break;
302
+
303
+ default:
304
+ /* should not be reached */
305
+ GIT_ASSERT(!"unexpected progress state");
306
+ }
307
+
308
+ return error;
309
+ }
310
+
311
+ int cli_progress_indexer(
312
+ const git_indexer_progress *stats,
313
+ void *payload)
314
+ {
315
+ cli_progress *progress = (cli_progress *)payload;
316
+ int error = 0;
317
+
318
+ switch (progress->action) {
319
+ case CLI_PROGRESS_NONE:
320
+ progress->action = CLI_PROGRESS_INDEXING;
321
+ /* fall through */
322
+
323
+ case CLI_PROGRESS_INDEXING:
324
+ if ((error = indexer_indexing(progress, stats)) < 0)
325
+ break;
326
+
327
+ if (stats->indexed_deltas == stats->total_deltas)
328
+ break;
329
+
330
+ progress_complete(progress);
331
+ progress->action = CLI_PROGRESS_RESOLVING;
332
+ /* fall through */
333
+
334
+ case CLI_PROGRESS_RESOLVING:
335
+ error = indexer_resolving(progress, stats);
286
336
  break;
287
337
 
288
338
  default:
@@ -22,6 +22,7 @@
22
22
  typedef enum {
23
23
  CLI_PROGRESS_NONE,
24
24
  CLI_PROGRESS_RECEIVING,
25
+ CLI_PROGRESS_INDEXING,
25
26
  CLI_PROGRESS_RESOLVING,
26
27
  CLI_PROGRESS_CHECKING_OUT
27
28
  } cli_progress_t;
@@ -30,11 +31,11 @@ typedef struct {
30
31
  cli_progress_t action;
31
32
 
32
33
  /* Actions may time themselves (eg fetch) but are not required to */
33
- double action_start;
34
- double action_finish;
34
+ uint64_t action_start;
35
+ uint64_t action_finish;
35
36
 
36
37
  /* Last console update, avoid too frequent updates. */
37
- double last_update;
38
+ uint64_t last_update;
38
39
 
39
40
  /* Accumulators for partial output and deferred updates. */
40
41
  git_str sideband;
@@ -42,7 +43,7 @@ typedef struct {
42
43
  git_str deferred;
43
44
 
44
45
  /* Last update about throughput */
45
- double throughput_update;
46
+ uint64_t throughput_update;
46
47
  double throughput_bytes;
47
48
  } cli_progress;
48
49
 
@@ -74,6 +75,17 @@ extern int cli_progress_fetch_transfer(
74
75
  const git_indexer_progress *stats,
75
76
  void *payload);
76
77
 
78
+ /**
79
+ * Prints indexer progress to the console. Suitable for a
80
+ * `progress_cb` callback for `git_indexer_options`.
81
+ *
82
+ * @param stats The indexer stats
83
+ * @param payload A pointer to the cli_progress
84
+ */
85
+ extern int cli_progress_indexer(
86
+ const git_indexer_progress *stats,
87
+ void *payload);
88
+
77
89
  /**
78
90
  * Prints checkout progress to the console. Suitable for a
79
91
  * `progress_cb` callback for `git_checkout_options`.
@@ -8,7 +8,8 @@
8
8
  #include <stdint.h>
9
9
  #include <signal.h>
10
10
  #include "git2_util.h"
11
- #include "cli.h"
11
+ #include "common.h"
12
+ #include "sighandler.h"
12
13
 
13
14
  static void (*interrupt_handler)(void) = NULL;
14
15
 
@@ -1,3 +1,3 @@
1
1
  #include <git2.h>
2
2
 
3
- #include "cli.h"
3
+ #include "common.h"
@@ -8,7 +8,7 @@
8
8
  #include "git2_util.h"
9
9
  #include <windows.h>
10
10
 
11
- #include "cli.h"
11
+ #include "sighandler.h"
12
12
 
13
13
  static void (*interrupt_handler)(void) = NULL;
14
14
 
@@ -2,10 +2,9 @@
2
2
  # git library functionality.
3
3
 
4
4
  add_library(libgit2 OBJECT)
5
- set_target_properties(libgit2 PROPERTIES C_STANDARD 90)
6
- set_target_properties(libgit2 PROPERTIES C_EXTENSIONS OFF)
7
5
 
8
6
  include(PkgBuildConfig)
7
+ include(CMakePackageConfigHelpers)
9
8
 
10
9
  set(LIBGIT2_INCLUDES
11
10
  "${PROJECT_BINARY_DIR}/src/util"
@@ -24,8 +23,7 @@ target_sources(libgit2 PRIVATE ${SRC_H})
24
23
 
25
24
  file(GLOB SRC_GIT2 *.c *.h
26
25
  streams/*.c streams/*.h
27
- transports/*.c transports/*.h
28
- xdiff/*.c xdiff/*.h)
26
+ transports/*.c transports/*.h)
29
27
  list(SORT SRC_GIT2)
30
28
  target_sources(libgit2 PRIVATE ${SRC_GIT2})
31
29
 
@@ -39,23 +37,6 @@ if(APPLE)
39
37
  set_source_files_properties(streams/stransport.c PROPERTIES COMPILE_FLAGS -Wno-deprecated)
40
38
  endif()
41
39
 
42
- # the xdiff dependency is not (yet) warning-free, disable warnings
43
- # as errors for the xdiff sources until we've sorted them out
44
- if(MSVC)
45
- set_source_files_properties(xdiff/xdiffi.c PROPERTIES COMPILE_FLAGS -WX-)
46
- set_source_files_properties(xdiff/xemit.c PROPERTIES COMPILE_FLAGS -WX-)
47
- set_source_files_properties(xdiff/xhistogram.c PROPERTIES COMPILE_FLAGS -WX-)
48
- set_source_files_properties(xdiff/xmerge.c PROPERTIES COMPILE_FLAGS -WX-)
49
- set_source_files_properties(xdiff/xutils.c PROPERTIES COMPILE_FLAGS -WX-)
50
- set_source_files_properties(xdiff/xpatience.c PROPERTIES COMPILE_FLAGS -WX-)
51
- else()
52
- set_source_files_properties(xdiff/xdiffi.c PROPERTIES COMPILE_FLAGS "-Wno-sign-compare -Wno-unused-parameter")
53
- set_source_files_properties(xdiff/xemit.c PROPERTIES COMPILE_FLAGS "-Wno-sign-compare -Wno-unused-parameter")
54
- set_source_files_properties(xdiff/xhistogram.c PROPERTIES COMPILE_FLAGS "-Wno-sign-compare")
55
- set_source_files_properties(xdiff/xutils.c PROPERTIES COMPILE_FLAGS "-Wno-sign-compare")
56
- set_source_files_properties(xdiff/xpatience.c PROPERTIES COMPILE_FLAGS "-Wno-sign-compare")
57
- endif()
58
-
59
40
  ide_split_sources(libgit2)
60
41
  list(APPEND LIBGIT2_OBJECTS $<TARGET_OBJECTS:util> $<TARGET_OBJECTS:libgit2> ${LIBGIT2_DEPENDENCY_OBJECTS})
61
42
  list(APPEND LIBGIT2_INCLUDES ${LIBGIT2_DEPENDENCY_INCLUDES})
@@ -77,18 +58,14 @@ set(LIBGIT2_SYSTEM_LIBS ${LIBGIT2_SYSTEM_LIBS} PARENT_SCOPE)
77
58
  add_library(libgit2package ${SRC_RC} ${LIBGIT2_OBJECTS})
78
59
  target_link_libraries(libgit2package ${LIBGIT2_SYSTEM_LIBS})
79
60
  target_include_directories(libgit2package SYSTEM PRIVATE ${LIBGIT2_INCLUDES})
61
+ target_include_directories(libgit2package INTERFACE $<INSTALL_INTERFACE:./include/git2>)
80
62
 
81
63
  set_target_properties(libgit2package PROPERTIES C_STANDARD 90)
64
+ set_target_properties(libgit2package PROPERTIES C_EXTENSIONS OFF)
82
65
  set_target_properties(libgit2package PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
83
66
  set_target_properties(libgit2package PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
84
67
  set_target_properties(libgit2package PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
85
68
 
86
- # Workaround for Cmake bug #0011240 (see http://public.kitware.com/Bug/view.php?id=11240)
87
- # Win64+MSVC+static libs = linker error
88
- if(MSVC AND GIT_ARCH_64 AND NOT BUILD_SHARED_LIBS)
89
- set_target_properties(libgit2package PROPERTIES STATIC_LIBRARY_FLAGS "/MACHINE:x64")
90
- endif()
91
-
92
69
  ide_split_sources(libgit2package)
93
70
 
94
71
  if(SONAME)
@@ -126,9 +103,32 @@ FILE(READ "${PROJECT_SOURCE_DIR}/include/git2.h" LIBGIT2_INCLUDE)
126
103
  STRING(REGEX REPLACE "#include \"git2\/" "#include \"${LIBGIT2_FILENAME}/" LIBGIT2_INCLUDE "${LIBGIT2_INCLUDE}")
127
104
  FILE(WRITE "${PROJECT_BINARY_DIR}/include/${LIBGIT2_FILENAME}.h" ${LIBGIT2_INCLUDE})
128
105
 
106
+ # cmake package targets
107
+
108
+ set(LIBGIT2_TARGETS_EXPORT_NAME "${PROJECT_NAME}Targets")
109
+
110
+ write_basic_package_version_file(
111
+ "${PROJECT_BINARY_DIR}/cmake/${PROJECT_NAME}ConfigVersion.cmake"
112
+ VERSION ${PROJECT_VERSION}
113
+ COMPATIBILITY SameMajorVersion)
114
+
115
+ configure_file(config.cmake.in
116
+ "${PROJECT_BINARY_DIR}/cmake/${PROJECT_NAME}Config.cmake"
117
+ @ONLY)
118
+
119
+ install(FILES
120
+ "${PROJECT_BINARY_DIR}/cmake/${PROJECT_NAME}Config.cmake"
121
+ "${PROJECT_BINARY_DIR}/cmake/${PROJECT_NAME}ConfigVersion.cmake"
122
+ DESTINATION "lib/cmake/${PROJECT_NAME}")
123
+ install(
124
+ EXPORT ${LIBGIT2_TARGETS_EXPORT_NAME}
125
+ NAMESPACE "${PROJECT_NAME}::"
126
+ DESTINATION "lib/cmake/${PROJECT_NAME}")
127
+
129
128
  # Install
130
129
 
131
130
  install(TARGETS libgit2package
131
+ EXPORT ${LIBGIT2_TARGETS_EXPORT_NAME}
132
132
  RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
133
133
  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
134
134
  ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
@@ -39,8 +39,8 @@ static int annotated_commit_init(
39
39
  if ((error = git_commit_dup(&annotated_commit->commit, commit)) < 0)
40
40
  goto done;
41
41
 
42
- git_oid_fmt(annotated_commit->id_str, git_commit_id(commit));
43
- annotated_commit->id_str[GIT_OID_SHA1_HEXSIZE] = '\0';
42
+ git_oid_tostr(annotated_commit->id_str, GIT_OID_MAX_HEXSIZE + 1,
43
+ git_commit_id(commit));
44
44
 
45
45
  if (!description)
46
46
  description = annotated_commit->id_str;
@@ -41,7 +41,7 @@ struct git_annotated_commit {
41
41
  const char *ref_name;
42
42
  const char *remote_url;
43
43
 
44
- char id_str[GIT_OID_SHA1_HEXSIZE+1];
44
+ char id_str[GIT_OID_MAX_HEXSIZE + 1];
45
45
  };
46
46
 
47
47
  extern int git_annotated_commit_from_head(git_annotated_commit **out,
@@ -19,6 +19,8 @@
19
19
  #include "zstream.h"
20
20
  #include "reader.h"
21
21
  #include "index.h"
22
+ #include "repository.h"
23
+ #include "hashmap_str.h"
22
24
  #include "apply.h"
23
25
 
24
26
  typedef struct {
@@ -95,7 +97,7 @@ static void patch_image_free(patch_image *image)
95
97
  return;
96
98
 
97
99
  git_pool_clear(&image->pool);
98
- git_vector_free(&image->lines);
100
+ git_vector_dispose(&image->lines);
99
101
  }
100
102
 
101
103
  static bool match_hunk(
@@ -451,7 +453,7 @@ static int apply_one(
451
453
  git_reader *postimage_reader,
452
454
  git_index *postimage,
453
455
  git_diff *diff,
454
- git_strmap *removed_paths,
456
+ git_hashset_str *removed_paths,
455
457
  size_t i,
456
458
  const git_apply_options *opts)
457
459
  {
@@ -488,7 +490,7 @@ static int apply_one(
488
490
  */
489
491
  if (delta->status != GIT_DELTA_RENAMED &&
490
492
  delta->status != GIT_DELTA_ADDED) {
491
- if (git_strmap_exists(removed_paths, delta->old_file.path)) {
493
+ if (git_hashset_str_contains(removed_paths, delta->old_file.path)) {
492
494
  error = apply_err("path '%s' has been renamed or deleted", delta->old_file.path);
493
495
  goto done;
494
496
  }
@@ -572,11 +574,11 @@ static int apply_one(
572
574
 
573
575
  if (delta->status == GIT_DELTA_RENAMED ||
574
576
  delta->status == GIT_DELTA_DELETED)
575
- error = git_strmap_set(removed_paths, delta->old_file.path, (char *) delta->old_file.path);
577
+ error = git_hashset_str_add(removed_paths, delta->old_file.path);
576
578
 
577
579
  if (delta->status == GIT_DELTA_RENAMED ||
578
580
  delta->status == GIT_DELTA_ADDED)
579
- git_strmap_delete(removed_paths, delta->new_file.path);
581
+ git_hashset_str_remove(removed_paths, delta->new_file.path);
580
582
 
581
583
  done:
582
584
  git_str_dispose(&pre_contents);
@@ -596,20 +598,17 @@ static int apply_deltas(
596
598
  git_diff *diff,
597
599
  const git_apply_options *opts)
598
600
  {
599
- git_strmap *removed_paths;
601
+ git_hashset_str removed_paths = GIT_HASHSET_INIT;
600
602
  size_t i;
601
603
  int error = 0;
602
604
 
603
- if (git_strmap_new(&removed_paths) < 0)
604
- return -1;
605
-
606
605
  for (i = 0; i < git_diff_num_deltas(diff); i++) {
607
- if ((error = apply_one(repo, pre_reader, preimage, post_reader, postimage, diff, removed_paths, i, opts)) < 0)
606
+ if ((error = apply_one(repo, pre_reader, preimage, post_reader, postimage, diff, &removed_paths, i, opts)) < 0)
608
607
  goto done;
609
608
  }
610
609
 
611
610
  done:
612
- git_strmap_free(removed_paths);
611
+ git_hashset_str_dispose(&removed_paths);
613
612
  return error;
614
613
  }
615
614
 
@@ -644,7 +643,7 @@ int git_apply_to_tree(
644
643
  * put the current tree into the postimage as-is - the diff will
645
644
  * replace any entries contained therein
646
645
  */
647
- if ((error = git_index_new(&postimage)) < 0 ||
646
+ if ((error = git_index__new(&postimage, repo->oid_type)) < 0 ||
648
647
  (error = git_index_read_tree(postimage, preimage)) < 0 ||
649
648
  (error = git_reader_for_index(&post_reader, repo, postimage)) < 0)
650
649
  goto done;
@@ -714,7 +713,6 @@ static int git_apply__to_workdir(
714
713
  goto done;
715
714
  }
716
715
 
717
- checkout_opts.checkout_strategy |= GIT_CHECKOUT_SAFE;
718
716
  checkout_opts.checkout_strategy |= GIT_CHECKOUT_DISABLE_PATHSPEC_MATCH;
719
717
  checkout_opts.checkout_strategy |= GIT_CHECKOUT_DONT_WRITE_INDEX;
720
718
 
@@ -729,7 +727,7 @@ static int git_apply__to_workdir(
729
727
  error = git_checkout_index(repo, postimage, &checkout_opts);
730
728
 
731
729
  done:
732
- git_vector_free(&paths);
730
+ git_vector_dispose(&paths);
733
731
  return error;
734
732
  }
735
733
 
@@ -851,8 +849,8 @@ int git_apply(
851
849
  * having the full repo index, so we will limit our checkout
852
850
  * to only write these files that were affected by the diff.
853
851
  */
854
- if ((error = git_index_new(&preimage)) < 0 ||
855
- (error = git_index_new(&postimage)) < 0 ||
852
+ if ((error = git_index__new(&preimage, repo->oid_type)) < 0 ||
853
+ (error = git_index__new(&postimage, repo->oid_type)) < 0 ||
856
854
  (error = git_reader_for_index(&post_reader, repo, postimage)) < 0)
857
855
  goto done;
858
856
 
@@ -13,6 +13,7 @@
13
13
  #include "attr_file.h"
14
14
  #include "ignore.h"
15
15
  #include "git2/oid.h"
16
+ #include "hashmap_str.h"
16
17
  #include <ctype.h>
17
18
 
18
19
  const char *git_attr__true = "[internal]__TRUE__";
@@ -254,7 +255,7 @@ int git_attr_foreach_ext(
254
255
  git_attr_file *file;
255
256
  git_attr_rule *rule;
256
257
  git_attr_assignment *assign;
257
- git_strmap *seen = NULL;
258
+ git_hashset_str seen = GIT_HASHSET_INIT;
258
259
  git_dir_flag dir_flag = GIT_DIR_FLAG_UNKNOWN;
259
260
 
260
261
  GIT_ASSERT_ARG(repo);
@@ -267,8 +268,7 @@ int git_attr_foreach_ext(
267
268
  if (git_attr_path__init(&path, pathname, git_repository_workdir(repo), dir_flag) < 0)
268
269
  return -1;
269
270
 
270
- if ((error = collect_attr_files(repo, NULL, opts, pathname, &files)) < 0 ||
271
- (error = git_strmap_new(&seen)) < 0)
271
+ if ((error = collect_attr_files(repo, NULL, opts, pathname, &files)) < 0)
272
272
  goto cleanup;
273
273
 
274
274
  git_vector_foreach(&files, i, file) {
@@ -277,10 +277,10 @@ int git_attr_foreach_ext(
277
277
 
278
278
  git_vector_foreach(&rule->assigns, k, assign) {
279
279
  /* skip if higher priority assignment was already seen */
280
- if (git_strmap_exists(seen, assign->name))
280
+ if (git_hashset_str_contains(&seen, assign->name))
281
281
  continue;
282
282
 
283
- if ((error = git_strmap_set(seen, assign->name, assign)) < 0)
283
+ if ((error = git_hashset_str_add(&seen, assign->name)) < 0)
284
284
  goto cleanup;
285
285
 
286
286
  error = callback(assign->name, assign->value, payload);
@@ -293,7 +293,7 @@ int git_attr_foreach_ext(
293
293
  }
294
294
 
295
295
  cleanup:
296
- git_strmap_free(seen);
296
+ git_hashset_str_dispose(&seen);
297
297
  release_attr_files(&files);
298
298
  git_attr_path__free(&path);
299
299
 
@@ -384,6 +384,8 @@ static int attr_setup(
384
384
  git_attr_file_source index_source = { GIT_ATTR_FILE_SOURCE_INDEX, NULL, GIT_ATTR_FILE, NULL };
385
385
  git_attr_file_source head_source = { GIT_ATTR_FILE_SOURCE_HEAD, NULL, GIT_ATTR_FILE, NULL };
386
386
  git_attr_file_source commit_source = { GIT_ATTR_FILE_SOURCE_COMMIT, NULL, GIT_ATTR_FILE, NULL };
387
+ git_attr_cache *attrcache;
388
+ const char *attr_cfg_file = NULL;
387
389
  git_index *idx = NULL;
388
390
  const char *workdir;
389
391
  int error = 0;
@@ -407,8 +409,10 @@ static int attr_setup(
407
409
  error = 0;
408
410
  }
409
411
 
410
- if ((error = preload_attr_file(repo, attr_session, NULL,
411
- git_repository_attr_cache(repo)->cfg_attr_file)) < 0)
412
+ if ((attrcache = git_repository_attr_cache(repo)) != NULL)
413
+ attr_cfg_file = git_attr_cache_attributesfile(attrcache);
414
+
415
+ if ((error = preload_attr_file(repo, attr_session, NULL, attr_cfg_file)) < 0)
412
416
  goto out;
413
417
 
414
418
  if ((error = git_repository__item_path(&info, repo, GIT_REPOSITORY_ITEM_INFO)) < 0 ||
@@ -424,9 +428,13 @@ static int attr_setup(
424
428
  goto out;
425
429
 
426
430
  if ((error = git_repository_index__weakptr(&idx, repo)) < 0 ||
427
- (error = preload_attr_source(repo, attr_session, &index_source)) < 0)
431
+ (error = preload_attr_source(repo, attr_session, &index_source)) < 0) {
432
+ if (error != GIT_ENOTFOUND)
428
433
  goto out;
429
434
 
435
+ error = 0;
436
+ }
437
+
430
438
  if ((opts && (opts->flags & GIT_ATTR_CHECK_INCLUDE_HEAD) != 0) &&
431
439
  (error = preload_attr_source(repo, attr_session, &head_source)) < 0)
432
440
  goto out;
@@ -460,6 +468,7 @@ int git_attr_add_macro(
460
468
  {
461
469
  int error;
462
470
  git_attr_rule *macro = NULL;
471
+ git_attr_cache *attrcache;
463
472
  git_pool *pool;
464
473
 
465
474
  GIT_ASSERT_ARG(repo);
@@ -471,7 +480,8 @@ int git_attr_add_macro(
471
480
  macro = git__calloc(1, sizeof(git_attr_rule));
472
481
  GIT_ERROR_CHECK_ALLOC(macro);
473
482
 
474
- pool = &git_repository_attr_cache(repo)->pool;
483
+ attrcache = git_repository_attr_cache(repo);
484
+ pool = git_attr_cache_pool(attrcache);
475
485
 
476
486
  macro->match.pattern = git_pool_strdup(pool, name);
477
487
  GIT_ERROR_CHECK_ALLOC(macro->match.pattern);
@@ -614,7 +624,7 @@ static void release_attr_files(git_vector *files)
614
624
  git_attr_file__free(file);
615
625
  files->contents[i] = NULL;
616
626
  }
617
- git_vector_free(files);
627
+ git_vector_dispose(files);
618
628
  }
619
629
 
620
630
  static int collect_attr_files(
@@ -627,6 +637,8 @@ static int collect_attr_files(
627
637
  int error = 0;
628
638
  git_str dir = GIT_STR_INIT, attrfile = GIT_STR_INIT;
629
639
  const char *workdir = git_repository_workdir(repo);
640
+ git_attr_cache *attrcache;
641
+ const char *attr_cfg_file = NULL;
630
642
  attr_walk_up_info info = { NULL };
631
643
 
632
644
  GIT_ASSERT(!git_fs_path_is_absolute(path));
@@ -675,8 +687,13 @@ static int collect_attr_files(
675
687
  if (error < 0)
676
688
  goto cleanup;
677
689
 
678
- if (git_repository_attr_cache(repo)->cfg_attr_file != NULL) {
679
- error = push_attr_file(repo, attr_session, files, NULL, git_repository_attr_cache(repo)->cfg_attr_file);
690
+ if ((attrcache = git_repository_attr_cache(repo)) != NULL)
691
+ attr_cfg_file = git_attr_cache_attributesfile(attrcache);
692
+
693
+
694
+ if (attr_cfg_file) {
695
+ error = push_attr_file(repo, attr_session, files, NULL, attr_cfg_file);
696
+
680
697
  if (error < 0)
681
698
  goto cleanup;
682
699
  }
@@ -69,7 +69,7 @@ int git_attr_file__clear_rules(git_attr_file *file, bool need_lock)
69
69
 
70
70
  git_vector_foreach(&file->rules, i, rule)
71
71
  git_attr_rule__free(rule);
72
- git_vector_free(&file->rules);
72
+ git_vector_dispose(&file->rules);
73
73
 
74
74
  if (need_lock)
75
75
  git_mutex_unlock(&file->lock);
@@ -143,6 +143,8 @@ int git_attr_file__load(
143
143
  blobsize = git_blob_rawsize(blob);
144
144
 
145
145
  GIT_ERROR_CHECK_BLOBSIZE(blobsize);
146
+ if (blobsize > GIT_ATTR_MAX_FILE_SIZE) /* TODO: issue warning when warning API is available */
147
+ goto cleanup;
146
148
  git_str_put(&content, git_blob_rawcontent(blob), (size_t)blobsize);
147
149
  break;
148
150
  }
@@ -155,6 +157,7 @@ int git_attr_file__load(
155
157
  if (p_stat(entry->fullpath, &st) < 0 ||
156
158
  S_ISDIR(st.st_mode) ||
157
159
  (fd = git_futils_open_ro(entry->fullpath)) < 0 ||
160
+ (st.st_size > GIT_ATTR_MAX_FILE_SIZE) ||
158
161
  (error = git_futils_readbuffer_fd(&content, fd, (size_t)st.st_size)) < 0)
159
162
  nonexistent = true;
160
163
 
@@ -198,6 +201,8 @@ int git_attr_file__load(
198
201
  blobsize = git_blob_rawsize(blob);
199
202
 
200
203
  GIT_ERROR_CHECK_BLOBSIZE(blobsize);
204
+ if (blobsize > GIT_ATTR_MAX_FILE_SIZE) /* TODO: issue warning when warning API is available */
205
+ goto cleanup;
201
206
  if ((error = git_str_put(&content,
202
207
  git_blob_rawcontent(blob), (size_t)blobsize)) < 0)
203
208
  goto cleanup;
@@ -991,7 +996,7 @@ static void git_attr_rule__clear(git_attr_rule *rule)
991
996
  if (!(rule->match.flags & GIT_ATTR_FNMATCH_IGNORE)) {
992
997
  git_vector_foreach(&rule->assigns, i, assign)
993
998
  GIT_REFCOUNT_DEC(assign, git_attr_assignment__free);
994
- git_vector_free(&rule->assigns);
999
+ git_vector_dispose(&rule->assigns);
995
1000
  }
996
1001
 
997
1002
  /* match.pattern is stored in a git_pool, so no need to free */
@@ -21,6 +21,8 @@
21
21
  #define GIT_ATTR_FILE_SYSTEM "gitattributes"
22
22
  #define GIT_ATTR_FILE_XDG "attributes"
23
23
 
24
+ #define GIT_ATTR_MAX_FILE_SIZE 100 * 1024 * 1024
25
+
24
26
  #define GIT_ATTR_FNMATCH_NEGATIVE (1U << 0)
25
27
  #define GIT_ATTR_FNMATCH_DIRECTORY (1U << 1)
26
28
  #define GIT_ATTR_FNMATCH_FULLPATH (1U << 2)