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
@@ -12,6 +12,13 @@
12
12
  #include "strarray.h"
13
13
  #include "diff.h"
14
14
 
15
+ /**
16
+ * @file git2/pathspec.h
17
+ * @brief Specifiers for path matching
18
+ * @defgroup git_pathspec Specifiers for path matching
19
+ * @ingroup Git
20
+ * @{
21
+ */
15
22
  GIT_BEGIN_DECL
16
23
 
17
24
  /**
@@ -276,5 +283,7 @@ GIT_EXTERN(size_t) git_pathspec_match_list_failed_entrycount(
276
283
  GIT_EXTERN(const char *) git_pathspec_match_list_failed_entry(
277
284
  const git_pathspec_match_list *m, size_t pos);
278
285
 
286
+ /** @} */
279
287
  GIT_END_DECL
288
+
280
289
  #endif
@@ -12,6 +12,12 @@
12
12
  #include "cert.h"
13
13
  #include "credential.h"
14
14
 
15
+ /**
16
+ * @file git2/proxy.h
17
+ * @brief TLS proxies
18
+ * @ingroup Git
19
+ * @{
20
+ */
15
21
  GIT_BEGIN_DECL
16
22
 
17
23
  /**
@@ -78,7 +84,10 @@ typedef struct {
78
84
  void *payload;
79
85
  } git_proxy_options;
80
86
 
87
+ /** Current version for the `git_proxy_options` structure */
81
88
  #define GIT_PROXY_OPTIONS_VERSION 1
89
+
90
+ /** Static constructor for `git_proxy_options` */
82
91
  #define GIT_PROXY_OPTIONS_INIT {GIT_PROXY_OPTIONS_VERSION}
83
92
 
84
93
  /**
@@ -93,6 +102,7 @@ typedef struct {
93
102
  */
94
103
  GIT_EXTERN(int) git_proxy_options_init(git_proxy_options *opts, unsigned int version);
95
104
 
105
+ /** @} */
96
106
  GIT_END_DECL
97
107
 
98
108
  #endif
@@ -17,8 +17,8 @@
17
17
 
18
18
  /**
19
19
  * @file git2/rebase.h
20
- * @brief Git rebase routines
21
- * @defgroup git_rebase Git merge routines
20
+ * @brief Rebase manipulates commits, placing them on a new parent
21
+ * @defgroup git_rebase Rebase manipulates commits, placing them on a new parent
22
22
  * @ingroup Git
23
23
  * @{
24
24
  */
@@ -67,10 +67,9 @@ typedef struct {
67
67
 
68
68
  /**
69
69
  * Options to control how files are written during `git_rebase_init`,
70
- * `git_rebase_next` and `git_rebase_abort`. Note that a minimum
71
- * strategy of `GIT_CHECKOUT_SAFE` is defaulted in `init` and `next`,
72
- * and a minimum strategy of `GIT_CHECKOUT_FORCE` is defaulted in
73
- * `abort` to match git semantics.
70
+ * `git_rebase_next` and `git_rebase_abort`. Note that during
71
+ * `abort`, these options will add an implied `GIT_CHECKOUT_FORCE`
72
+ * to match git semantics.
74
73
  */
75
74
  git_checkout_options checkout_options;
76
75
 
@@ -155,7 +154,10 @@ typedef enum {
155
154
  GIT_REBASE_OPERATION_EXEC
156
155
  } git_rebase_operation_t;
157
156
 
157
+ /** Current version for the `git_rebase_options` structure */
158
158
  #define GIT_REBASE_OPTIONS_VERSION 1
159
+
160
+ /** Static constructor for `git_rebase_options` */
159
161
  #define GIT_REBASE_OPTIONS_INIT \
160
162
  { GIT_REBASE_OPTIONS_VERSION, 0, 0, NULL, GIT_MERGE_OPTIONS_INIT, \
161
163
  GIT_CHECKOUT_OPTIONS_INIT, NULL, NULL }
@@ -396,4 +398,5 @@ GIT_EXTERN(void) git_rebase_free(git_rebase *rebase);
396
398
 
397
399
  /** @} */
398
400
  GIT_END_DECL
401
+
399
402
  #endif
@@ -14,8 +14,8 @@
14
14
 
15
15
  /**
16
16
  * @file git2/refdb.h
17
- * @brief Git custom refs backend functions
18
- * @defgroup git_refdb Git custom refs backend API
17
+ * @brief A database for references (branches and tags)
18
+ * @defgroup git_refdb A database for references (branches and tags)
19
19
  * @ingroup Git
20
20
  * @{
21
21
  */
@@ -13,8 +13,8 @@
13
13
 
14
14
  /**
15
15
  * @file git2/reflog.h
16
- * @brief Git reflog management routines
17
- * @defgroup git_reflog Git reflog management routines
16
+ * @brief Reference logs store how references change
17
+ * @defgroup git_reflog Reference logs store how references change
18
18
  * @ingroup Git
19
19
  * @{
20
20
  */
@@ -167,4 +167,5 @@ GIT_EXTERN(void) git_reflog_free(git_reflog *reflog);
167
167
 
168
168
  /** @} */
169
169
  GIT_END_DECL
170
+
170
171
  #endif
@@ -14,8 +14,8 @@
14
14
 
15
15
  /**
16
16
  * @file git2/refs.h
17
- * @brief Git reference management routines
18
- * @defgroup git_reference Git reference management routines
17
+ * @brief References point to a commit; generally these are branches and tags
18
+ * @defgroup git_reference References point to a commit; generally these are branches and tags
19
19
  * @ingroup Git
20
20
  * @{
21
21
  */
@@ -29,7 +29,7 @@ GIT_BEGIN_DECL
29
29
  * The name will be checked for validity.
30
30
  * See `git_reference_symbolic_create()` for rules about valid names.
31
31
  *
32
- * @param out pointer to the looked-up reference
32
+ * @param[out] out pointer to the looked-up reference
33
33
  * @param repo the repository to look up the reference
34
34
  * @param name the long name for the reference (e.g. HEAD, refs/heads/master, refs/tags/v0.1.0, ...)
35
35
  * @return 0 on success, GIT_ENOTFOUND, GIT_EINVALIDSPEC or an error code.
@@ -371,6 +371,7 @@ GIT_EXTERN(int) git_reference_set_target(
371
371
  * reflog is enabled for the repository. We only rename
372
372
  * the reflog if it exists.
373
373
  *
374
+ * @param[out] new_ref The new reference
374
375
  * @param ref The reference to rename
375
376
  * @param new_name The new name for the reference
376
377
  * @param force Overwrite an existing reference
@@ -406,6 +407,7 @@ GIT_EXTERN(int) git_reference_delete(git_reference *ref);
406
407
  * This method removes the named reference from the repository without
407
408
  * looking at its old value.
408
409
  *
410
+ * @param repo The repository to remove the reference from
409
411
  * @param name The reference to remove
410
412
  * @return 0 or an error code
411
413
  */
@@ -518,7 +520,7 @@ GIT_EXTERN(int) git_reference_cmp(
518
520
  /**
519
521
  * Create an iterator for the repo's references
520
522
  *
521
- * @param out pointer in which to store the iterator
523
+ * @param[out] out pointer in which to store the iterator
522
524
  * @param repo the repository
523
525
  * @return 0 or an error code
524
526
  */
@@ -543,7 +545,7 @@ GIT_EXTERN(int) git_reference_iterator_glob_new(
543
545
  /**
544
546
  * Get the next reference
545
547
  *
546
- * @param out pointer in which to store the reference
548
+ * @param[out] out pointer in which to store the reference
547
549
  * @param iter the iterator
548
550
  * @return 0, GIT_ITEROVER if there are no more; or an error code
549
551
  */
@@ -724,7 +726,7 @@ GIT_EXTERN(int) git_reference_normalize_name(
724
726
  * If you pass `GIT_OBJECT_ANY` as the target type, then the object
725
727
  * will be peeled until a non-tag object is met.
726
728
  *
727
- * @param out Pointer to the peeled git_object
729
+ * @param[out] out Pointer to the peeled git_object
728
730
  * @param ref The reference to be processed
729
731
  * @param type The type of the requested object (GIT_OBJECT_COMMIT,
730
732
  * GIT_OBJECT_TAG, GIT_OBJECT_TREE, GIT_OBJECT_BLOB or GIT_OBJECT_ANY).
@@ -768,4 +770,5 @@ GIT_EXTERN(const char *) git_reference_shorthand(const git_reference *ref);
768
770
 
769
771
  /** @} */
770
772
  GIT_END_DECL
773
+
771
774
  #endif
@@ -14,8 +14,8 @@
14
14
 
15
15
  /**
16
16
  * @file git2/refspec.h
17
- * @brief Git refspec attributes
18
- * @defgroup git_refspec Git refspec attributes
17
+ * @brief Refspecs map local references to remote references
18
+ * @defgroup git_refspec Refspecs map local references to remote references
19
19
  * @ingroup Git
20
20
  * @{
21
21
  */
@@ -58,7 +58,7 @@ GIT_EXTERN(const char *) git_refspec_dst(const git_refspec *refspec);
58
58
  * Get the refspec's string
59
59
  *
60
60
  * @param refspec the refspec
61
- * @returns the refspec's original string
61
+ * @return the refspec's original string
62
62
  */
63
63
  GIT_EXTERN(const char *) git_refspec_string(const git_refspec *refspec);
64
64
 
@@ -79,7 +79,16 @@ GIT_EXTERN(int) git_refspec_force(const git_refspec *refspec);
79
79
  GIT_EXTERN(git_direction) git_refspec_direction(const git_refspec *spec);
80
80
 
81
81
  /**
82
- * Check if a refspec's source descriptor matches a reference
82
+ * Check if a refspec's source descriptor matches a negative reference
83
+ *
84
+ * @param refspec the refspec
85
+ * @param refname the name of the reference to check
86
+ * @return 1 if the refspec matches, 0 otherwise
87
+ */
88
+ GIT_EXTERN(int) git_refspec_src_matches_negative(const git_refspec *refspec, const char *refname);
89
+
90
+ /**
91
+ * Check if a refspec's source descriptor matches a reference
83
92
  *
84
93
  * @param refspec the refspec
85
94
  * @param refname the name of the reference to check
@@ -116,6 +125,7 @@ GIT_EXTERN(int) git_refspec_transform(git_buf *out, const git_refspec *spec, con
116
125
  */
117
126
  GIT_EXTERN(int) git_refspec_rtransform(git_buf *out, const git_refspec *spec, const char *name);
118
127
 
128
+ /** @} */
119
129
  GIT_END_DECL
120
130
 
121
131
  #endif
@@ -19,8 +19,8 @@
19
19
 
20
20
  /**
21
21
  * @file git2/remote.h
22
- * @brief Git remote management functions
23
- * @defgroup git_remote remote management functions
22
+ * @brief Remotes are where local repositories fetch from and push to
23
+ * @defgroup git_remote Remotes are where local repositories fetch from and push to
24
24
  * @ingroup Git
25
25
  * @{
26
26
  */
@@ -76,6 +76,17 @@ typedef enum {
76
76
  GIT_REMOTE_CREATE_SKIP_DEFAULT_FETCHSPEC = (1 << 1)
77
77
  } git_remote_create_flags;
78
78
 
79
+ /**
80
+ * How to handle reference updates.
81
+ */
82
+ typedef enum {
83
+ /* Write the fetch results to FETCH_HEAD. */
84
+ GIT_REMOTE_UPDATE_FETCHHEAD = (1 << 0),
85
+
86
+ /* Report unchanged tips in the update_refs callback. */
87
+ GIT_REMOTE_UPDATE_REPORT_UNCHANGED = (1 << 1)
88
+ } git_remote_update_flags;
89
+
79
90
  /**
80
91
  * Remote creation options structure
81
92
  *
@@ -105,7 +116,10 @@ typedef struct git_remote_create_options {
105
116
  unsigned int flags;
106
117
  } git_remote_create_options;
107
118
 
119
+ /** Current version for the `git_remote_create_options` structure */
108
120
  #define GIT_REMOTE_CREATE_OPTIONS_VERSION 1
121
+
122
+ /** Static constructor for `git_remote_create_options` */
109
123
  #define GIT_REMOTE_CREATE_OPTIONS_INIT {GIT_REMOTE_CREATE_OPTIONS_VERSION}
110
124
 
111
125
  /**
@@ -455,7 +469,15 @@ typedef enum git_remote_completion_t {
455
469
  GIT_REMOTE_COMPLETION_ERROR
456
470
  } git_remote_completion_t;
457
471
 
458
- /** Push network progress notification function */
472
+ /**
473
+ * Push network progress notification callback.
474
+ *
475
+ * @param current The number of objects pushed so far
476
+ * @param total The total number of objects to push
477
+ * @param bytes The number of bytes pushed
478
+ * @param payload The user-specified payload callback
479
+ * @return 0 or an error code to stop the transfer
480
+ */
459
481
  typedef int GIT_CALLBACK(git_push_transfer_progress_cb)(
460
482
  unsigned int current,
461
483
  unsigned int total,
@@ -491,8 +513,12 @@ typedef struct {
491
513
  * as commands to the destination.
492
514
  * @param len number of elements in `updates`
493
515
  * @param payload Payload provided by the caller
516
+ * @return 0 or an error code to stop the push
494
517
  */
495
- typedef int GIT_CALLBACK(git_push_negotiation)(const git_push_update **updates, size_t len, void *payload);
518
+ typedef int GIT_CALLBACK(git_push_negotiation)(
519
+ const git_push_update **updates,
520
+ size_t len,
521
+ void *payload);
496
522
 
497
523
  /**
498
524
  * Callback used to inform of the update status from the remote.
@@ -557,7 +583,8 @@ struct git_remote_callbacks {
557
583
  * Completion is called when different parts of the download
558
584
  * process are done (currently unused).
559
585
  */
560
- int GIT_CALLBACK(completion)(git_remote_completion_t type, void *data);
586
+ int GIT_CALLBACK(completion)(git_remote_completion_t type,
587
+ void *data);
561
588
 
562
589
  /**
563
590
  * This will be called if the remote host requires
@@ -583,11 +610,22 @@ struct git_remote_callbacks {
583
610
  */
584
611
  git_indexer_progress_cb transfer_progress;
585
612
 
613
+ #ifdef GIT_DEPRECATE_HARD
614
+ void *reserved_update_tips;
615
+ #else
586
616
  /**
587
- * Each time a reference is updated locally, this function
588
- * will be called with information about it.
617
+ * Deprecated callback for reference updates, callers should
618
+ * set `update_refs` instead. This is retained for backward
619
+ * compatibility; if you specify both `update_refs` and
620
+ * `update_tips`, then only the `update_refs` function will
621
+ * be called.
622
+ *
623
+ * @deprecated the `update_refs` callback in this structure
624
+ * should be preferred
589
625
  */
590
- int GIT_CALLBACK(update_tips)(const char *refname, const git_oid *a, const git_oid *b, void *data);
626
+ int GIT_CALLBACK(update_tips)(const char *refname,
627
+ const git_oid *a, const git_oid *b, void *data);
628
+ #endif
591
629
 
592
630
  /**
593
631
  * Function to call with progress information during pack
@@ -644,9 +682,25 @@ struct git_remote_callbacks {
644
682
  */
645
683
  git_url_resolve_cb resolve_url;
646
684
  #endif
685
+
686
+ /**
687
+ * Each time a reference is updated locally, this function
688
+ * will be called with information about it. This should be
689
+ * preferred over the `update_tips` callback in this
690
+ * structure.
691
+ */
692
+ int GIT_CALLBACK(update_refs)(
693
+ const char *refname,
694
+ const git_oid *a,
695
+ const git_oid *b,
696
+ git_refspec *spec,
697
+ void *data);
647
698
  };
648
699
 
700
+ /** Current version for the `git_remote_callbacks_options` structure */
649
701
  #define GIT_REMOTE_CALLBACKS_VERSION 1
702
+
703
+ /** Static constructor for `git_remote_callbacks_options` */
650
704
  #define GIT_REMOTE_CALLBACKS_INIT {GIT_REMOTE_CALLBACKS_VERSION}
651
705
 
652
706
  /**
@@ -702,6 +756,15 @@ typedef enum {
702
756
  GIT_REMOTE_DOWNLOAD_TAGS_ALL
703
757
  } git_remote_autotag_option_t;
704
758
 
759
+ /** Constants for fetch depth (shallowness of fetch). */
760
+ typedef enum {
761
+ /** The fetch is "full" (not shallow). This is the default. */
762
+ GIT_FETCH_DEPTH_FULL = 0,
763
+
764
+ /** The fetch should "unshallow" and fetch missing data. */
765
+ GIT_FETCH_DEPTH_UNSHALLOW = 2147483647
766
+ } git_fetch_depth_t;
767
+
705
768
  /**
706
769
  * Fetch options structure.
707
770
  *
@@ -724,10 +787,9 @@ typedef struct {
724
787
  git_fetch_prune_t prune;
725
788
 
726
789
  /**
727
- * Whether to write the results to FETCH_HEAD. Defaults to
728
- * on. Leave this default in order to behave like git.
790
+ * How to handle reference updates; see `git_remote_update_flags`.
729
791
  */
730
- int update_fetchhead;
792
+ unsigned int update_fetchhead;
731
793
 
732
794
  /**
733
795
  * Determines how to behave regarding tags on the remote, such
@@ -743,6 +805,15 @@ typedef struct {
743
805
  */
744
806
  git_proxy_options proxy_opts;
745
807
 
808
+ /**
809
+ * Depth of the fetch to perform, or `GIT_FETCH_DEPTH_FULL`
810
+ * (or `0`) for full history, or `GIT_FETCH_DEPTH_UNSHALLOW`
811
+ * to "unshallow" a shallow repository.
812
+ *
813
+ * The default is full (`GIT_FETCH_DEPTH_FULL` or `0`).
814
+ */
815
+ int depth;
816
+
746
817
  /**
747
818
  * Whether to allow off-site redirects. If this is not
748
819
  * specified, the `http.followRedirects` configuration setting
@@ -756,9 +827,17 @@ typedef struct {
756
827
  git_strarray custom_headers;
757
828
  } git_fetch_options;
758
829
 
830
+ /** Current version for the `git_fetch_options` structure */
759
831
  #define GIT_FETCH_OPTIONS_VERSION 1
760
- #define GIT_FETCH_OPTIONS_INIT { GIT_FETCH_OPTIONS_VERSION, GIT_REMOTE_CALLBACKS_INIT, GIT_FETCH_PRUNE_UNSPECIFIED, 1, \
761
- GIT_REMOTE_DOWNLOAD_TAGS_UNSPECIFIED, GIT_PROXY_OPTIONS_INIT }
832
+
833
+ /** Static constructor for `git_fetch_options` */
834
+ #define GIT_FETCH_OPTIONS_INIT { \
835
+ GIT_FETCH_OPTIONS_VERSION, \
836
+ GIT_REMOTE_CALLBACKS_INIT, \
837
+ GIT_FETCH_PRUNE_UNSPECIFIED, \
838
+ GIT_REMOTE_UPDATE_FETCHHEAD, \
839
+ GIT_REMOTE_DOWNLOAD_TAGS_UNSPECIFIED, \
840
+ GIT_PROXY_OPTIONS_INIT }
762
841
 
763
842
  /**
764
843
  * Initialize git_fetch_options structure
@@ -812,9 +891,17 @@ typedef struct {
812
891
  * Extra headers for this push operation
813
892
  */
814
893
  git_strarray custom_headers;
894
+
895
+ /**
896
+ * "Push options" to deliver to the remote.
897
+ */
898
+ git_strarray remote_push_options;
815
899
  } git_push_options;
816
900
 
901
+ /** Current version for the `git_push_options` structure */
817
902
  #define GIT_PUSH_OPTIONS_VERSION 1
903
+
904
+ /** Static constructor for `git_push_options` */
818
905
  #define GIT_PUSH_OPTIONS_INIT { GIT_PUSH_OPTIONS_VERSION, 1, GIT_REMOTE_CALLBACKS_INIT, GIT_PROXY_OPTIONS_INIT }
819
906
 
820
907
  /**
@@ -858,7 +945,10 @@ typedef struct {
858
945
  git_strarray custom_headers;
859
946
  } git_remote_connect_options;
860
947
 
948
+ /** Current version for the `git_remote_connect_options` structure */
861
949
  #define GIT_REMOTE_CONNECT_OPTIONS_VERSION 1
950
+
951
+ /** Static constructor for `git_remote_connect_options` */
862
952
  #define GIT_REMOTE_CONNECT_OPTIONS_INIT { \
863
953
  GIT_REMOTE_CONNECT_OPTIONS_VERSION, \
864
954
  GIT_REMOTE_CALLBACKS_INIT, \
@@ -978,20 +1068,20 @@ GIT_EXTERN(int) git_remote_upload(
978
1068
  * `git_remote_connect` will be used (if it was called).
979
1069
  *
980
1070
  * @param remote the remote to update
1071
+ * @param callbacks pointer to the callback structure to use or NULL
1072
+ * @param update_flags the git_remote_update_flags for these tips.
1073
+ * @param download_tags what the behaviour for downloading tags is for this fetch. This is
1074
+ * ignored for push. This must be the same value passed to `git_remote_download()`.
981
1075
  * @param reflog_message The message to insert into the reflogs. If
982
1076
  * NULL and fetching, the default is "fetch <name>", where <name> is
983
1077
  * the name of the remote (or its url, for in-memory remotes). This
984
1078
  * parameter is ignored when pushing.
985
- * @param callbacks pointer to the callback structure to use or NULL
986
- * @param update_fetchhead whether to write to FETCH_HEAD. Pass 1 to behave like git.
987
- * @param download_tags what the behaviour for downloading tags is for this fetch. This is
988
- * ignored for push. This must be the same value passed to `git_remote_download()`.
989
1079
  * @return 0 or an error code
990
1080
  */
991
1081
  GIT_EXTERN(int) git_remote_update_tips(
992
1082
  git_remote *remote,
993
1083
  const git_remote_callbacks *callbacks,
994
- int update_fetchhead,
1084
+ unsigned int update_flags,
995
1085
  git_remote_autotag_option_t download_tags,
996
1086
  const char *reflog_message);
997
1087
 
@@ -1053,6 +1143,9 @@ GIT_EXTERN(int) git_remote_push(
1053
1143
 
1054
1144
  /**
1055
1145
  * Get the statistics structure that is filled in by the fetch operation.
1146
+ *
1147
+ * @param remote the remote to get statistics for
1148
+ * @return the git_indexer_progress for the remote
1056
1149
  */
1057
1150
  GIT_EXTERN(const git_indexer_progress *) git_remote_stats(git_remote *remote);
1058
1151
 
@@ -1152,4 +1245,5 @@ GIT_EXTERN(int) git_remote_default_branch(git_buf *out, git_remote *remote);
1152
1245
 
1153
1246
  /** @} */
1154
1247
  GIT_END_DECL
1248
+
1155
1249
  #endif