rugged 1.7.2 → 1.9.4

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 (405) hide show
  1. checksums.yaml +4 -4
  2. data/ext/rugged/extconf.rb +4 -4
  3. data/ext/rugged/rugged.c +12 -1
  4. data/ext/rugged/rugged_blame.c +22 -6
  5. data/ext/rugged/rugged_blob.c +24 -9
  6. data/ext/rugged/rugged_branch.c +10 -7
  7. data/ext/rugged/rugged_branch_collection.c +8 -6
  8. data/ext/rugged/rugged_commit.c +7 -6
  9. data/ext/rugged/rugged_config.c +20 -11
  10. data/ext/rugged/rugged_diff.c +26 -12
  11. data/ext/rugged/rugged_diff_hunk.c +2 -1
  12. data/ext/rugged/rugged_index.c +39 -29
  13. data/ext/rugged/rugged_note.c +7 -6
  14. data/ext/rugged/rugged_object.c +3 -2
  15. data/ext/rugged/rugged_patch.c +23 -9
  16. data/ext/rugged/rugged_rebase.c +22 -10
  17. data/ext/rugged/rugged_reference.c +22 -13
  18. data/ext/rugged/rugged_reference_collection.c +9 -7
  19. data/ext/rugged/rugged_remote.c +23 -12
  20. data/ext/rugged/rugged_remote_collection.c +11 -9
  21. data/ext/rugged/rugged_repo.c +60 -45
  22. data/ext/rugged/rugged_revwalk.c +22 -12
  23. data/ext/rugged/rugged_submodule.c +23 -20
  24. data/ext/rugged/rugged_submodule_collection.c +20 -9
  25. data/ext/rugged/rugged_tag.c +6 -4
  26. data/ext/rugged/rugged_tag_collection.c +7 -5
  27. data/ext/rugged/rugged_tree.c +27 -15
  28. data/lib/rugged/version.rb +1 -1
  29. data/vendor/libgit2/AUTHORS +3 -0
  30. data/vendor/libgit2/CMakeLists.txt +23 -10
  31. data/vendor/libgit2/COPYING +195 -1
  32. data/vendor/libgit2/cmake/DefaultCFlags.cmake +4 -1
  33. data/vendor/libgit2/cmake/{FindIconv.cmake → FindIntlIconv.cmake} +6 -0
  34. data/vendor/libgit2/cmake/FindLLHTTP.cmake +39 -0
  35. data/vendor/libgit2/cmake/SelectGSSAPI.cmake +1 -1
  36. data/vendor/libgit2/cmake/SelectHTTPParser.cmake +23 -8
  37. data/vendor/libgit2/cmake/SelectHTTPSBackend.cmake +17 -8
  38. data/vendor/libgit2/cmake/SelectHashes.cmake +28 -11
  39. data/vendor/libgit2/cmake/SelectRegex.cmake +6 -1
  40. data/vendor/libgit2/cmake/SelectSSH.cmake +30 -19
  41. data/vendor/libgit2/cmake/SelectZlib.cmake +4 -0
  42. data/vendor/libgit2/deps/llhttp/CMakeLists.txt +8 -0
  43. data/vendor/libgit2/deps/llhttp/LICENSE-MIT +22 -0
  44. data/vendor/libgit2/deps/llhttp/api.c +510 -0
  45. data/vendor/libgit2/deps/llhttp/http.c +170 -0
  46. data/vendor/libgit2/deps/llhttp/llhttp.c +10168 -0
  47. data/vendor/libgit2/deps/llhttp/llhttp.h +897 -0
  48. data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +1 -1
  49. data/vendor/libgit2/deps/ntlmclient/crypt_builtin_md4.c +311 -0
  50. data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.c +2 -1
  51. data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.c +0 -20
  52. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +4 -4
  53. data/vendor/libgit2/deps/ntlmclient/ntlm.c +21 -21
  54. data/vendor/libgit2/deps/ntlmclient/unicode_builtin.c +5 -4
  55. data/vendor/libgit2/deps/ntlmclient/unicode_iconv.c +2 -1
  56. data/vendor/libgit2/deps/ntlmclient/utf8.h +1176 -721
  57. data/vendor/libgit2/deps/ntlmclient/util.h +11 -0
  58. data/vendor/libgit2/deps/pcre/CMakeLists.txt +3 -3
  59. data/vendor/libgit2/deps/xdiff/CMakeLists.txt +1 -1
  60. data/vendor/libgit2/deps/xdiff/xmerge.c +16 -12
  61. data/vendor/libgit2/deps/zlib/CMakeLists.txt +6 -1
  62. data/vendor/libgit2/deps/zlib/LICENSE +22 -0
  63. data/vendor/libgit2/deps/zlib/adler32.c +5 -27
  64. data/vendor/libgit2/deps/zlib/crc32.c +94 -167
  65. data/vendor/libgit2/deps/zlib/deflate.c +358 -435
  66. data/vendor/libgit2/deps/zlib/deflate.h +41 -10
  67. data/vendor/libgit2/deps/zlib/gzguts.h +13 -18
  68. data/vendor/libgit2/deps/zlib/infback.c +17 -30
  69. data/vendor/libgit2/deps/zlib/inffast.c +1 -4
  70. data/vendor/libgit2/deps/zlib/inffast.h +1 -1
  71. data/vendor/libgit2/deps/zlib/inflate.c +36 -102
  72. data/vendor/libgit2/deps/zlib/inftrees.c +6 -11
  73. data/vendor/libgit2/deps/zlib/inftrees.h +6 -6
  74. data/vendor/libgit2/deps/zlib/trees.c +287 -352
  75. data/vendor/libgit2/deps/zlib/zconf.h +23 -14
  76. data/vendor/libgit2/deps/zlib/zlib.h +202 -202
  77. data/vendor/libgit2/deps/zlib/zutil.c +18 -44
  78. data/vendor/libgit2/deps/zlib/zutil.h +13 -33
  79. data/vendor/libgit2/include/git2/annotated_commit.h +12 -5
  80. data/vendor/libgit2/include/git2/apply.h +27 -6
  81. data/vendor/libgit2/include/git2/attr.h +17 -4
  82. data/vendor/libgit2/include/git2/blame.h +133 -28
  83. data/vendor/libgit2/include/git2/blob.h +71 -28
  84. data/vendor/libgit2/include/git2/branch.h +22 -15
  85. data/vendor/libgit2/include/git2/buffer.h +6 -4
  86. data/vendor/libgit2/include/git2/cert.h +2 -1
  87. data/vendor/libgit2/include/git2/checkout.h +83 -32
  88. data/vendor/libgit2/include/git2/cherrypick.h +10 -3
  89. data/vendor/libgit2/include/git2/clone.h +25 -9
  90. data/vendor/libgit2/include/git2/commit.h +132 -3
  91. data/vendor/libgit2/include/git2/common.h +120 -63
  92. data/vendor/libgit2/include/git2/config.h +93 -23
  93. data/vendor/libgit2/include/git2/credential.h +30 -2
  94. data/vendor/libgit2/include/git2/credential_helpers.h +1 -0
  95. data/vendor/libgit2/include/git2/deprecated.h +134 -4
  96. data/vendor/libgit2/include/git2/describe.h +13 -1
  97. data/vendor/libgit2/include/git2/diff.h +38 -8
  98. data/vendor/libgit2/include/git2/email.h +9 -29
  99. data/vendor/libgit2/include/git2/errors.h +46 -73
  100. data/vendor/libgit2/include/git2/filter.h +14 -7
  101. data/vendor/libgit2/include/git2/global.h +8 -1
  102. data/vendor/libgit2/include/git2/graph.h +3 -2
  103. data/vendor/libgit2/include/git2/ignore.h +10 -0
  104. data/vendor/libgit2/include/git2/index.h +100 -15
  105. data/vendor/libgit2/include/git2/indexer.h +21 -4
  106. data/vendor/libgit2/include/git2/mailmap.h +7 -1
  107. data/vendor/libgit2/include/git2/merge.h +50 -3
  108. data/vendor/libgit2/include/git2/message.h +2 -2
  109. data/vendor/libgit2/include/git2/net.h +3 -1
  110. data/vendor/libgit2/include/git2/notes.h +9 -6
  111. data/vendor/libgit2/include/git2/object.h +9 -8
  112. data/vendor/libgit2/include/git2/odb.h +91 -49
  113. data/vendor/libgit2/include/git2/odb_backend.h +80 -52
  114. data/vendor/libgit2/include/git2/oid.h +23 -25
  115. data/vendor/libgit2/include/git2/oidarray.h +7 -1
  116. data/vendor/libgit2/include/git2/pack.h +13 -1
  117. data/vendor/libgit2/include/git2/patch.h +2 -3
  118. data/vendor/libgit2/include/git2/pathspec.h +9 -0
  119. data/vendor/libgit2/include/git2/proxy.h +12 -3
  120. data/vendor/libgit2/include/git2/rebase.h +9 -6
  121. data/vendor/libgit2/include/git2/refdb.h +2 -2
  122. data/vendor/libgit2/include/git2/reflog.h +3 -2
  123. data/vendor/libgit2/include/git2/refs.h +9 -6
  124. data/vendor/libgit2/include/git2/refspec.h +14 -4
  125. data/vendor/libgit2/include/git2/remote.h +113 -25
  126. data/vendor/libgit2/include/git2/repository.h +57 -21
  127. data/vendor/libgit2/include/git2/reset.h +16 -3
  128. data/vendor/libgit2/include/git2/revert.h +9 -4
  129. data/vendor/libgit2/include/git2/revparse.h +3 -3
  130. data/vendor/libgit2/include/git2/revwalk.h +3 -2
  131. data/vendor/libgit2/include/git2/signature.h +46 -1
  132. data/vendor/libgit2/include/git2/stash.h +17 -3
  133. data/vendor/libgit2/include/git2/status.h +10 -6
  134. data/vendor/libgit2/include/git2/stdint.h +87 -85
  135. data/vendor/libgit2/include/git2/strarray.h +2 -3
  136. data/vendor/libgit2/include/git2/submodule.h +20 -9
  137. data/vendor/libgit2/include/git2/sys/alloc.h +12 -0
  138. data/vendor/libgit2/include/git2/sys/commit.h +77 -3
  139. data/vendor/libgit2/include/git2/sys/commit_graph.h +103 -62
  140. data/vendor/libgit2/include/git2/sys/config.h +80 -4
  141. data/vendor/libgit2/include/git2/sys/credential.h +4 -3
  142. data/vendor/libgit2/include/git2/sys/diff.h +21 -1
  143. data/vendor/libgit2/include/git2/sys/email.h +7 -0
  144. data/vendor/libgit2/include/git2/sys/errors.h +76 -0
  145. data/vendor/libgit2/include/git2/sys/filter.h +66 -3
  146. data/vendor/libgit2/include/git2/sys/hashsig.h +11 -0
  147. data/vendor/libgit2/include/git2/sys/index.h +3 -2
  148. data/vendor/libgit2/include/git2/sys/mempack.h +32 -2
  149. data/vendor/libgit2/include/git2/sys/merge.h +55 -7
  150. data/vendor/libgit2/include/git2/sys/midx.h +43 -4
  151. data/vendor/libgit2/include/git2/sys/odb_backend.h +7 -3
  152. data/vendor/libgit2/include/git2/sys/openssl.h +8 -1
  153. data/vendor/libgit2/include/git2/sys/path.h +12 -1
  154. data/vendor/libgit2/include/git2/sys/refdb_backend.h +40 -36
  155. data/vendor/libgit2/include/git2/sys/refs.h +3 -2
  156. data/vendor/libgit2/include/git2/sys/remote.h +8 -1
  157. data/vendor/libgit2/include/git2/sys/repository.h +63 -3
  158. data/vendor/libgit2/include/git2/sys/stream.h +11 -2
  159. data/vendor/libgit2/include/git2/sys/transport.h +25 -4
  160. data/vendor/libgit2/include/git2/tag.h +3 -1
  161. data/vendor/libgit2/include/git2/trace.h +9 -3
  162. data/vendor/libgit2/include/git2/transaction.h +3 -2
  163. data/vendor/libgit2/include/git2/transport.h +11 -3
  164. data/vendor/libgit2/include/git2/tree.h +16 -5
  165. data/vendor/libgit2/include/git2/types.h +19 -3
  166. data/vendor/libgit2/include/git2/version.h +46 -8
  167. data/vendor/libgit2/include/git2/worktree.h +16 -6
  168. data/vendor/libgit2/src/CMakeLists.txt +6 -4
  169. data/vendor/libgit2/src/cli/CMakeLists.txt +3 -4
  170. data/vendor/libgit2/src/cli/cmd.c +1 -1
  171. data/vendor/libgit2/src/cli/cmd.h +4 -0
  172. data/vendor/libgit2/src/cli/cmd_blame.c +287 -0
  173. data/vendor/libgit2/src/cli/cmd_cat_file.c +6 -8
  174. data/vendor/libgit2/src/cli/cmd_clone.c +5 -7
  175. data/vendor/libgit2/src/cli/cmd_config.c +241 -0
  176. data/vendor/libgit2/src/cli/cmd_hash_object.c +6 -8
  177. data/vendor/libgit2/src/cli/cmd_help.c +6 -7
  178. data/vendor/libgit2/src/cli/cmd_index_pack.c +114 -0
  179. data/vendor/libgit2/src/cli/cmd_init.c +102 -0
  180. data/vendor/libgit2/src/cli/common.c +168 -0
  181. data/vendor/libgit2/src/cli/common.h +63 -0
  182. data/vendor/libgit2/src/cli/error.h +1 -1
  183. data/vendor/libgit2/src/cli/main.c +52 -24
  184. data/vendor/libgit2/src/cli/opt.c +31 -5
  185. data/vendor/libgit2/src/cli/opt.h +21 -3
  186. data/vendor/libgit2/src/cli/opt_usage.c +102 -33
  187. data/vendor/libgit2/src/cli/opt_usage.h +6 -1
  188. data/vendor/libgit2/src/cli/progress.c +51 -2
  189. data/vendor/libgit2/src/cli/progress.h +12 -0
  190. data/vendor/libgit2/src/cli/unix/sighandler.c +2 -1
  191. data/vendor/libgit2/src/cli/win32/precompiled.h +1 -1
  192. data/vendor/libgit2/src/cli/win32/sighandler.c +1 -1
  193. data/vendor/libgit2/src/libgit2/CMakeLists.txt +55 -21
  194. data/vendor/libgit2/src/libgit2/apply.c +10 -13
  195. data/vendor/libgit2/src/libgit2/attr.c +30 -13
  196. data/vendor/libgit2/src/libgit2/attr_file.c +17 -5
  197. data/vendor/libgit2/src/libgit2/attr_file.h +2 -0
  198. data/vendor/libgit2/src/libgit2/attrcache.c +69 -33
  199. data/vendor/libgit2/src/libgit2/attrcache.h +5 -9
  200. data/vendor/libgit2/src/libgit2/blame.c +130 -44
  201. data/vendor/libgit2/src/libgit2/blame.h +1 -0
  202. data/vendor/libgit2/src/libgit2/cache.c +22 -17
  203. data/vendor/libgit2/src/libgit2/cache.h +7 -9
  204. data/vendor/libgit2/src/libgit2/checkout.c +34 -24
  205. data/vendor/libgit2/src/libgit2/checkout.h +0 -2
  206. data/vendor/libgit2/src/libgit2/cherrypick.c +1 -2
  207. data/vendor/libgit2/src/libgit2/clone.c +192 -166
  208. data/vendor/libgit2/src/libgit2/clone.h +4 -1
  209. data/vendor/libgit2/src/libgit2/commit.c +93 -1
  210. data/vendor/libgit2/src/libgit2/commit_graph.c +68 -58
  211. data/vendor/libgit2/src/libgit2/commit_graph.h +1 -2
  212. data/vendor/libgit2/src/libgit2/config.c +390 -299
  213. data/vendor/libgit2/src/libgit2/config.cmake.in +3 -0
  214. data/vendor/libgit2/src/libgit2/config.h +9 -4
  215. data/vendor/libgit2/src/libgit2/config_backend.h +8 -10
  216. data/vendor/libgit2/src/libgit2/config_cache.c +4 -5
  217. data/vendor/libgit2/src/libgit2/config_file.c +101 -89
  218. data/vendor/libgit2/src/libgit2/config_list.c +285 -0
  219. data/vendor/libgit2/src/libgit2/config_list.h +32 -0
  220. data/vendor/libgit2/src/libgit2/config_mem.c +195 -40
  221. data/vendor/libgit2/src/libgit2/config_parse.c +12 -10
  222. data/vendor/libgit2/src/libgit2/config_snapshot.c +24 -31
  223. data/vendor/libgit2/src/libgit2/delta.c +5 -1
  224. data/vendor/libgit2/src/libgit2/describe.c +24 -24
  225. data/vendor/libgit2/src/libgit2/diff.c +1 -1
  226. data/vendor/libgit2/src/libgit2/diff_driver.c +13 -20
  227. data/vendor/libgit2/src/libgit2/diff_driver.h +2 -2
  228. data/vendor/libgit2/src/libgit2/diff_generate.c +3 -3
  229. data/vendor/libgit2/src/libgit2/diff_parse.c +2 -2
  230. data/vendor/libgit2/src/libgit2/diff_print.c +65 -9
  231. data/vendor/libgit2/src/libgit2/diff_stats.c +19 -12
  232. data/vendor/libgit2/src/libgit2/diff_tform.c +36 -8
  233. data/vendor/libgit2/src/libgit2/email.c +1 -0
  234. data/vendor/libgit2/src/libgit2/fetch.c +5 -3
  235. data/vendor/libgit2/src/libgit2/fetchhead.c +1 -1
  236. data/vendor/libgit2/src/libgit2/filter.c +5 -5
  237. data/vendor/libgit2/src/libgit2/git2.rc +3 -3
  238. data/vendor/libgit2/src/libgit2/grafts.c +18 -20
  239. data/vendor/libgit2/src/libgit2/grafts.h +0 -1
  240. data/vendor/libgit2/src/libgit2/graph.c +1 -1
  241. data/vendor/libgit2/src/libgit2/hashmap_oid.h +30 -0
  242. data/vendor/libgit2/src/libgit2/ignore.c +9 -5
  243. data/vendor/libgit2/src/libgit2/index.c +76 -98
  244. data/vendor/libgit2/src/libgit2/index.h +5 -2
  245. data/vendor/libgit2/src/libgit2/index_map.c +95 -0
  246. data/vendor/libgit2/src/libgit2/index_map.h +28 -0
  247. data/vendor/libgit2/src/libgit2/indexer.c +36 -40
  248. data/vendor/libgit2/src/libgit2/iterator.c +14 -8
  249. data/vendor/libgit2/src/libgit2/libgit2.c +153 -368
  250. data/vendor/libgit2/src/libgit2/mailmap.c +1 -1
  251. data/vendor/libgit2/src/libgit2/merge.c +43 -38
  252. data/vendor/libgit2/src/libgit2/merge.h +4 -0
  253. data/vendor/libgit2/src/libgit2/merge_driver.c +2 -2
  254. data/vendor/libgit2/src/libgit2/merge_file.c +43 -30
  255. data/vendor/libgit2/src/libgit2/message.c +1 -1
  256. data/vendor/libgit2/src/libgit2/midx.c +30 -18
  257. data/vendor/libgit2/src/libgit2/mwindow.c +38 -45
  258. data/vendor/libgit2/src/libgit2/mwindow.h +4 -0
  259. data/vendor/libgit2/src/libgit2/object.c +6 -5
  260. data/vendor/libgit2/src/libgit2/odb.c +7 -10
  261. data/vendor/libgit2/src/libgit2/odb_loose.c +24 -14
  262. data/vendor/libgit2/src/libgit2/odb_mempack.c +49 -17
  263. data/vendor/libgit2/src/libgit2/odb_pack.c +13 -5
  264. data/vendor/libgit2/src/libgit2/oid.c +36 -10
  265. data/vendor/libgit2/src/libgit2/oid.h +11 -0
  266. data/vendor/libgit2/src/libgit2/pack-objects.c +59 -34
  267. data/vendor/libgit2/src/libgit2/pack-objects.h +12 -4
  268. data/vendor/libgit2/src/libgit2/pack.c +33 -24
  269. data/vendor/libgit2/src/libgit2/pack.h +15 -10
  270. data/vendor/libgit2/src/libgit2/patch_parse.c +2 -2
  271. data/vendor/libgit2/src/libgit2/path.c +1 -1
  272. data/vendor/libgit2/src/libgit2/pathspec.c +1 -1
  273. data/vendor/libgit2/src/libgit2/push.c +79 -28
  274. data/vendor/libgit2/src/libgit2/push.h +1 -0
  275. data/vendor/libgit2/src/libgit2/refdb_fs.c +128 -61
  276. data/vendor/libgit2/src/libgit2/reflog.c +1 -2
  277. data/vendor/libgit2/src/libgit2/reflog.h +2 -0
  278. data/vendor/libgit2/src/libgit2/refs.c +41 -13
  279. data/vendor/libgit2/src/libgit2/refs.h +6 -1
  280. data/vendor/libgit2/src/libgit2/refspec.c +28 -1
  281. data/vendor/libgit2/src/libgit2/refspec.h +8 -0
  282. data/vendor/libgit2/src/libgit2/remote.c +125 -62
  283. data/vendor/libgit2/src/libgit2/remote.h +0 -1
  284. data/vendor/libgit2/src/libgit2/repository.c +235 -54
  285. data/vendor/libgit2/src/libgit2/repository.h +10 -6
  286. data/vendor/libgit2/src/libgit2/revert.c +1 -2
  287. data/vendor/libgit2/src/libgit2/revparse.c +2 -2
  288. data/vendor/libgit2/src/libgit2/revwalk.c +13 -10
  289. data/vendor/libgit2/src/libgit2/revwalk.h +3 -3
  290. data/vendor/libgit2/src/libgit2/settings.c +468 -0
  291. data/vendor/libgit2/src/libgit2/settings.h +6 -2
  292. data/vendor/libgit2/src/libgit2/signature.c +132 -15
  293. data/vendor/libgit2/src/libgit2/signature.h +0 -1
  294. data/vendor/libgit2/src/libgit2/status.c +1 -1
  295. data/vendor/libgit2/src/libgit2/streams/mbedtls.c +54 -60
  296. data/vendor/libgit2/src/libgit2/streams/openssl.c +32 -7
  297. data/vendor/libgit2/src/libgit2/streams/openssl.h +2 -0
  298. data/vendor/libgit2/src/libgit2/streams/openssl_dynamic.c +4 -0
  299. data/vendor/libgit2/src/libgit2/streams/openssl_dynamic.h +3 -0
  300. data/vendor/libgit2/src/libgit2/streams/socket.c +30 -0
  301. data/vendor/libgit2/src/libgit2/streams/stransport.c +39 -7
  302. data/vendor/libgit2/src/libgit2/submodule.c +118 -68
  303. data/vendor/libgit2/src/libgit2/submodule.h +6 -7
  304. data/vendor/libgit2/src/libgit2/tag.c +4 -2
  305. data/vendor/libgit2/src/libgit2/trailer.c +6 -6
  306. data/vendor/libgit2/src/libgit2/transaction.c +26 -20
  307. data/vendor/libgit2/src/libgit2/transaction.h +4 -1
  308. data/vendor/libgit2/src/libgit2/transport.c +4 -1
  309. data/vendor/libgit2/src/libgit2/transports/auth_sspi.c +2 -0
  310. data/vendor/libgit2/src/libgit2/transports/credential.c +2 -2
  311. data/vendor/libgit2/src/libgit2/transports/git.c +1 -1
  312. data/vendor/libgit2/src/libgit2/transports/http.c +1 -2
  313. data/vendor/libgit2/src/libgit2/transports/http.h +0 -10
  314. data/vendor/libgit2/src/libgit2/transports/httpclient.c +124 -81
  315. data/vendor/libgit2/src/libgit2/transports/httpparser.c +128 -0
  316. data/vendor/libgit2/src/libgit2/transports/httpparser.h +99 -0
  317. data/vendor/libgit2/src/libgit2/transports/local.c +16 -8
  318. data/vendor/libgit2/src/libgit2/transports/smart.c +25 -13
  319. data/vendor/libgit2/src/libgit2/transports/smart.h +4 -2
  320. data/vendor/libgit2/src/libgit2/transports/smart_pkt.c +5 -5
  321. data/vendor/libgit2/src/libgit2/transports/smart_protocol.c +55 -10
  322. data/vendor/libgit2/src/libgit2/transports/ssh.c +41 -1103
  323. data/vendor/libgit2/src/libgit2/transports/ssh_exec.c +386 -0
  324. data/vendor/libgit2/src/libgit2/transports/ssh_exec.h +26 -0
  325. data/vendor/libgit2/src/libgit2/transports/ssh_libssh2.c +1126 -0
  326. data/vendor/libgit2/src/libgit2/transports/ssh_libssh2.h +28 -0
  327. data/vendor/libgit2/src/libgit2/transports/winhttp.c +35 -7
  328. data/vendor/libgit2/src/libgit2/tree.c +34 -26
  329. data/vendor/libgit2/src/libgit2/tree.h +3 -2
  330. data/vendor/libgit2/src/libgit2/worktree.c +14 -17
  331. data/vendor/libgit2/src/util/CMakeLists.txt +7 -10
  332. data/vendor/libgit2/src/util/alloc.c +4 -1
  333. data/vendor/libgit2/src/util/allocators/debugalloc.c +73 -0
  334. data/vendor/libgit2/src/{cli/cli.h → util/allocators/debugalloc.h} +6 -9
  335. data/vendor/libgit2/src/util/allocators/stdalloc.c +0 -10
  336. data/vendor/libgit2/src/util/array.h +18 -17
  337. data/vendor/libgit2/src/util/cc-compat.h +2 -0
  338. data/vendor/libgit2/src/util/ctype_compat.h +70 -0
  339. data/vendor/libgit2/src/util/date.c +22 -14
  340. data/vendor/libgit2/src/util/date.h +12 -0
  341. data/vendor/libgit2/src/util/errors.c +401 -0
  342. data/vendor/libgit2/src/{libgit2 → util}/errors.h +21 -17
  343. data/vendor/libgit2/src/util/fs_path.c +81 -10
  344. data/vendor/libgit2/src/util/fs_path.h +29 -0
  345. data/vendor/libgit2/src/util/futils.c +6 -5
  346. data/vendor/libgit2/src/util/futils.h +24 -7
  347. data/vendor/libgit2/src/util/git2_features.h.in +12 -1
  348. data/vendor/libgit2/src/util/git2_util.h +6 -0
  349. data/vendor/libgit2/src/util/hash/builtin.c +14 -4
  350. data/vendor/libgit2/src/util/hash/openssl.c +148 -0
  351. data/vendor/libgit2/src/util/hash/openssl.h +17 -1
  352. data/vendor/libgit2/src/util/hash/rfc6234/sha224-256.c +8 -6
  353. data/vendor/libgit2/src/util/hash/sha.h +4 -1
  354. data/vendor/libgit2/src/util/hashmap.h +425 -0
  355. data/vendor/libgit2/src/util/hashmap_str.h +43 -0
  356. data/vendor/libgit2/src/util/integer.h +3 -1
  357. data/vendor/libgit2/src/util/net.c +17 -11
  358. data/vendor/libgit2/src/util/net.h +2 -0
  359. data/vendor/libgit2/src/util/pool.c +1 -1
  360. data/vendor/libgit2/src/util/pool.h +5 -0
  361. data/vendor/libgit2/src/util/pqueue.h +1 -1
  362. data/vendor/libgit2/src/util/process.h +223 -0
  363. data/vendor/libgit2/src/util/rand.c +1 -7
  364. data/vendor/libgit2/src/util/regexp.c +1 -1
  365. data/vendor/libgit2/src/util/runtime.c +2 -2
  366. data/vendor/libgit2/src/util/sortedcache.c +14 -13
  367. data/vendor/libgit2/src/util/sortedcache.h +3 -3
  368. data/vendor/libgit2/src/util/str.c +20 -8
  369. data/vendor/libgit2/src/util/str.h +5 -3
  370. data/vendor/libgit2/src/util/strlist.c +108 -0
  371. data/vendor/libgit2/src/util/strlist.h +36 -0
  372. data/vendor/libgit2/src/util/unix/posix.h +0 -2
  373. data/vendor/libgit2/src/util/unix/process.c +706 -0
  374. data/vendor/libgit2/src/util/unix/realpath.c +23 -5
  375. data/vendor/libgit2/src/util/util.c +18 -5
  376. data/vendor/libgit2/src/util/util.h +5 -38
  377. data/vendor/libgit2/src/util/vector.c +3 -3
  378. data/vendor/libgit2/src/util/vector.h +2 -2
  379. data/vendor/libgit2/src/util/win32/path_w32.c +81 -5
  380. data/vendor/libgit2/src/util/win32/posix_w32.c +29 -6
  381. data/vendor/libgit2/src/util/win32/process.c +522 -0
  382. metadata +60 -32
  383. data/vendor/libgit2/deps/http-parser/CMakeLists.txt +0 -6
  384. data/vendor/libgit2/deps/http-parser/COPYING +0 -23
  385. data/vendor/libgit2/deps/http-parser/http_parser.c +0 -2182
  386. data/vendor/libgit2/deps/http-parser/http_parser.h +0 -305
  387. data/vendor/libgit2/deps/zlib/COPYING +0 -27
  388. data/vendor/libgit2/include/git2/sys/reflog.h +0 -21
  389. data/vendor/libgit2/src/libgit2/config_entries.c +0 -237
  390. data/vendor/libgit2/src/libgit2/config_entries.h +0 -24
  391. data/vendor/libgit2/src/libgit2/errors.c +0 -293
  392. data/vendor/libgit2/src/libgit2/idxmap.c +0 -157
  393. data/vendor/libgit2/src/libgit2/idxmap.h +0 -177
  394. data/vendor/libgit2/src/libgit2/libgit2.h +0 -15
  395. data/vendor/libgit2/src/libgit2/offmap.c +0 -101
  396. data/vendor/libgit2/src/libgit2/offmap.h +0 -133
  397. data/vendor/libgit2/src/libgit2/oidmap.c +0 -107
  398. data/vendor/libgit2/src/libgit2/oidmap.h +0 -128
  399. data/vendor/libgit2/src/libgit2/threadstate.c +0 -97
  400. data/vendor/libgit2/src/libgit2/threadstate.h +0 -22
  401. data/vendor/libgit2/src/libgit2/transports/ssh.h +0 -14
  402. data/vendor/libgit2/src/util/khash.h +0 -615
  403. data/vendor/libgit2/src/util/strmap.c +0 -100
  404. data/vendor/libgit2/src/util/strmap.h +0 -131
  405. /data/vendor/libgit2/cmake/{FindHTTPParser.cmake → FindHTTP_Parser.cmake} +0 -0
@@ -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
  /**
@@ -64,9 +70,8 @@ typedef struct {
64
70
  git_credential_acquire_cb credentials;
65
71
 
66
72
  /**
67
- * If cert verification fails, this will be called to let the
68
- * user make the final decision of whether to allow the
69
- * connection to proceed. Returns 0 to allow the connection
73
+ * This will be called to let the user make the final decision of whether
74
+ * to allow the connection to proceed. Returns 0 to allow the connection
70
75
  * or a negative value to indicate an error.
71
76
  */
72
77
  git_transport_certificate_check_cb certificate_check;
@@ -78,7 +83,10 @@ typedef struct {
78
83
  void *payload;
79
84
  } git_proxy_options;
80
85
 
86
+ /** Current version for the `git_proxy_options` structure */
81
87
  #define GIT_PROXY_OPTIONS_VERSION 1
88
+
89
+ /** Static constructor for `git_proxy_options` */
82
90
  #define GIT_PROXY_OPTIONS_INIT {GIT_PROXY_OPTIONS_VERSION}
83
91
 
84
92
  /**
@@ -93,6 +101,7 @@ typedef struct {
93
101
  */
94
102
  GIT_EXTERN(int) git_proxy_options_init(git_proxy_options *opts, unsigned int version);
95
103
 
104
+ /** @} */
96
105
  GIT_END_DECL
97
106
 
98
107
  #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
  /**
@@ -235,9 +249,9 @@ GIT_EXTERN(const char *) git_remote_name(const git_remote *remote);
235
249
  /**
236
250
  * Get the remote's url
237
251
  *
238
- * If url.*.insteadOf has been configured for this URL, it will
239
- * return the modified URL. If `git_remote_set_instance_pushurl`
240
- * has been called for this remote, then that URL will be returned.
252
+ * If url.*.insteadOf has been configured for this URL, it will return
253
+ * the modified URL. This function does not consider if a push url has
254
+ * been configured for this remote (use `git_remote_pushurl` if needed).
241
255
  *
242
256
  * @param remote the remote
243
257
  * @return a pointer to the url
@@ -403,6 +417,19 @@ GIT_EXTERN(int) git_remote_ls(const git_remote_head ***out, size_t *size, git_r
403
417
  */
404
418
  GIT_EXTERN(int) git_remote_connected(const git_remote *remote);
405
419
 
420
+ /**
421
+ * Get the remote repository's object format.
422
+ *
423
+ * The remote (or more exactly its transport) must have connected to
424
+ * the remote repository. This format is available as soon as the
425
+ * connection to the remote is initiated and stays connected.
426
+ *
427
+ * @param out the resulting object format type
428
+ * @param remote the remote
429
+ * @return 0 on success, or an error code
430
+ */
431
+ GIT_EXTERN(int) git_remote_oid_type(git_oid_t *out, git_remote *remote);
432
+
406
433
  /**
407
434
  * Cancel the operation
408
435
  *
@@ -455,7 +482,15 @@ typedef enum git_remote_completion_t {
455
482
  GIT_REMOTE_COMPLETION_ERROR
456
483
  } git_remote_completion_t;
457
484
 
458
- /** Push network progress notification function */
485
+ /**
486
+ * Push network progress notification callback.
487
+ *
488
+ * @param current The number of objects pushed so far
489
+ * @param total The total number of objects to push
490
+ * @param bytes The number of bytes pushed
491
+ * @param payload The user-specified payload callback
492
+ * @return 0 or an error code to stop the transfer
493
+ */
459
494
  typedef int GIT_CALLBACK(git_push_transfer_progress_cb)(
460
495
  unsigned int current,
461
496
  unsigned int total,
@@ -491,8 +526,12 @@ typedef struct {
491
526
  * as commands to the destination.
492
527
  * @param len number of elements in `updates`
493
528
  * @param payload Payload provided by the caller
529
+ * @return 0 or an error code to stop the push
494
530
  */
495
- typedef int GIT_CALLBACK(git_push_negotiation)(const git_push_update **updates, size_t len, void *payload);
531
+ typedef int GIT_CALLBACK(git_push_negotiation)(
532
+ const git_push_update **updates,
533
+ size_t len,
534
+ void *payload);
496
535
 
497
536
  /**
498
537
  * Callback used to inform of the update status from the remote.
@@ -557,7 +596,8 @@ struct git_remote_callbacks {
557
596
  * Completion is called when different parts of the download
558
597
  * process are done (currently unused).
559
598
  */
560
- int GIT_CALLBACK(completion)(git_remote_completion_t type, void *data);
599
+ int GIT_CALLBACK(completion)(git_remote_completion_t type,
600
+ void *data);
561
601
 
562
602
  /**
563
603
  * This will be called if the remote host requires
@@ -569,9 +609,8 @@ struct git_remote_callbacks {
569
609
  git_credential_acquire_cb credentials;
570
610
 
571
611
  /**
572
- * If cert verification fails, this will be called to let the
573
- * user make the final decision of whether to allow the
574
- * connection to proceed. Returns 0 to allow the connection
612
+ * This will be called to let the user make the final decision of whether
613
+ * to allow the connection to proceed. Returns 0 to allow the connection
575
614
  * or a negative value to indicate an error.
576
615
  */
577
616
  git_transport_certificate_check_cb certificate_check;
@@ -583,11 +622,22 @@ struct git_remote_callbacks {
583
622
  */
584
623
  git_indexer_progress_cb transfer_progress;
585
624
 
625
+ #ifdef GIT_DEPRECATE_HARD
626
+ void *reserved_update_tips;
627
+ #else
586
628
  /**
587
- * Each time a reference is updated locally, this function
588
- * will be called with information about it.
629
+ * Deprecated callback for reference updates, callers should
630
+ * set `update_refs` instead. This is retained for backward
631
+ * compatibility; if you specify both `update_refs` and
632
+ * `update_tips`, then only the `update_refs` function will
633
+ * be called.
634
+ *
635
+ * @deprecated the `update_refs` callback in this structure
636
+ * should be preferred
589
637
  */
590
- int GIT_CALLBACK(update_tips)(const char *refname, const git_oid *a, const git_oid *b, void *data);
638
+ int GIT_CALLBACK(update_tips)(const char *refname,
639
+ const git_oid *a, const git_oid *b, void *data);
640
+ #endif
591
641
 
592
642
  /**
593
643
  * Function to call with progress information during pack
@@ -644,9 +694,25 @@ struct git_remote_callbacks {
644
694
  */
645
695
  git_url_resolve_cb resolve_url;
646
696
  #endif
697
+
698
+ /**
699
+ * Each time a reference is updated locally, this function
700
+ * will be called with information about it. This should be
701
+ * preferred over the `update_tips` callback in this
702
+ * structure.
703
+ */
704
+ int GIT_CALLBACK(update_refs)(
705
+ const char *refname,
706
+ const git_oid *a,
707
+ const git_oid *b,
708
+ git_refspec *spec,
709
+ void *data);
647
710
  };
648
711
 
712
+ /** Current version for the `git_remote_callbacks_options` structure */
649
713
  #define GIT_REMOTE_CALLBACKS_VERSION 1
714
+
715
+ /** Static constructor for `git_remote_callbacks_options` */
650
716
  #define GIT_REMOTE_CALLBACKS_INIT {GIT_REMOTE_CALLBACKS_VERSION}
651
717
 
652
718
  /**
@@ -697,7 +763,7 @@ typedef enum {
697
763
  */
698
764
  GIT_REMOTE_DOWNLOAD_TAGS_NONE,
699
765
  /**
700
- * Ask for the all the tags.
766
+ * Ask for all the tags.
701
767
  */
702
768
  GIT_REMOTE_DOWNLOAD_TAGS_ALL
703
769
  } git_remote_autotag_option_t;
@@ -733,10 +799,9 @@ typedef struct {
733
799
  git_fetch_prune_t prune;
734
800
 
735
801
  /**
736
- * Whether to write the results to FETCH_HEAD. Defaults to
737
- * on. Leave this default in order to behave like git.
802
+ * How to handle reference updates; see `git_remote_update_flags`.
738
803
  */
739
- int update_fetchhead;
804
+ unsigned int update_fetchhead;
740
805
 
741
806
  /**
742
807
  * Determines how to behave regarding tags on the remote, such
@@ -774,9 +839,17 @@ typedef struct {
774
839
  git_strarray custom_headers;
775
840
  } git_fetch_options;
776
841
 
842
+ /** Current version for the `git_fetch_options` structure */
777
843
  #define GIT_FETCH_OPTIONS_VERSION 1
778
- #define GIT_FETCH_OPTIONS_INIT { GIT_FETCH_OPTIONS_VERSION, GIT_REMOTE_CALLBACKS_INIT, GIT_FETCH_PRUNE_UNSPECIFIED, 1, \
779
- GIT_REMOTE_DOWNLOAD_TAGS_UNSPECIFIED, GIT_PROXY_OPTIONS_INIT }
844
+
845
+ /** Static constructor for `git_fetch_options` */
846
+ #define GIT_FETCH_OPTIONS_INIT { \
847
+ GIT_FETCH_OPTIONS_VERSION, \
848
+ GIT_REMOTE_CALLBACKS_INIT, \
849
+ GIT_FETCH_PRUNE_UNSPECIFIED, \
850
+ GIT_REMOTE_UPDATE_FETCHHEAD, \
851
+ GIT_REMOTE_DOWNLOAD_TAGS_UNSPECIFIED, \
852
+ GIT_PROXY_OPTIONS_INIT }
780
853
 
781
854
  /**
782
855
  * Initialize git_fetch_options structure
@@ -830,9 +903,17 @@ typedef struct {
830
903
  * Extra headers for this push operation
831
904
  */
832
905
  git_strarray custom_headers;
906
+
907
+ /**
908
+ * "Push options" to deliver to the remote.
909
+ */
910
+ git_strarray remote_push_options;
833
911
  } git_push_options;
834
912
 
913
+ /** Current version for the `git_push_options` structure */
835
914
  #define GIT_PUSH_OPTIONS_VERSION 1
915
+
916
+ /** Static constructor for `git_push_options` */
836
917
  #define GIT_PUSH_OPTIONS_INIT { GIT_PUSH_OPTIONS_VERSION, 1, GIT_REMOTE_CALLBACKS_INIT, GIT_PROXY_OPTIONS_INIT }
837
918
 
838
919
  /**
@@ -876,7 +957,10 @@ typedef struct {
876
957
  git_strarray custom_headers;
877
958
  } git_remote_connect_options;
878
959
 
960
+ /** Current version for the `git_remote_connect_options` structure */
879
961
  #define GIT_REMOTE_CONNECT_OPTIONS_VERSION 1
962
+
963
+ /** Static constructor for `git_remote_connect_options` */
880
964
  #define GIT_REMOTE_CONNECT_OPTIONS_INIT { \
881
965
  GIT_REMOTE_CONNECT_OPTIONS_VERSION, \
882
966
  GIT_REMOTE_CALLBACKS_INIT, \
@@ -996,20 +1080,20 @@ GIT_EXTERN(int) git_remote_upload(
996
1080
  * `git_remote_connect` will be used (if it was called).
997
1081
  *
998
1082
  * @param remote the remote to update
1083
+ * @param callbacks pointer to the callback structure to use or NULL
1084
+ * @param update_flags the git_remote_update_flags for these tips.
1085
+ * @param download_tags what the behaviour for downloading tags is for this fetch. This is
1086
+ * ignored for push. This must be the same value passed to `git_remote_download()`.
999
1087
  * @param reflog_message The message to insert into the reflogs. If
1000
1088
  * NULL and fetching, the default is "fetch <name>", where <name> is
1001
1089
  * the name of the remote (or its url, for in-memory remotes). This
1002
1090
  * parameter is ignored when pushing.
1003
- * @param callbacks pointer to the callback structure to use or NULL
1004
- * @param update_fetchhead whether to write to FETCH_HEAD. Pass 1 to behave like git.
1005
- * @param download_tags what the behaviour for downloading tags is for this fetch. This is
1006
- * ignored for push. This must be the same value passed to `git_remote_download()`.
1007
1091
  * @return 0 or an error code
1008
1092
  */
1009
1093
  GIT_EXTERN(int) git_remote_update_tips(
1010
1094
  git_remote *remote,
1011
1095
  const git_remote_callbacks *callbacks,
1012
- int update_fetchhead,
1096
+ unsigned int update_flags,
1013
1097
  git_remote_autotag_option_t download_tags,
1014
1098
  const char *reflog_message);
1015
1099
 
@@ -1071,6 +1155,9 @@ GIT_EXTERN(int) git_remote_push(
1071
1155
 
1072
1156
  /**
1073
1157
  * Get the statistics structure that is filled in by the fetch operation.
1158
+ *
1159
+ * @param remote the remote to get statistics for
1160
+ * @return the git_indexer_progress for the remote
1074
1161
  */
1075
1162
  GIT_EXTERN(const git_indexer_progress *) git_remote_stats(git_remote *remote);
1076
1163
 
@@ -1170,4 +1257,5 @@ GIT_EXTERN(int) git_remote_default_branch(git_buf *out, git_remote *remote);
1170
1257
 
1171
1258
  /** @} */
1172
1259
  GIT_END_DECL
1260
+
1173
1261
  #endif