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,9 +12,9 @@
12
12
  #include "git2/oid.h"
13
13
 
14
14
  /**
15
- * @file git2/refdb_backend.h
16
- * @brief Git custom refs backend functions
17
- * @defgroup git_refdb_backend Git custom refs backend API
15
+ * @file git2/sys/refdb_backend.h
16
+ * @brief Custom reference database backends for refs storage
17
+ * @defgroup git_refdb_backend Custom reference database backends for refs storage
18
18
  * @ingroup Git
19
19
  * @{
20
20
  */
@@ -65,9 +65,9 @@ struct git_refdb_backend {
65
65
  *
66
66
  * A refdb implementation must provide this function.
67
67
  *
68
- * @arg exists The implementation shall set this to `0` if a ref does
68
+ * @param exists The implementation shall set this to `0` if a ref does
69
69
  * not exist, otherwise to `1`.
70
- * @arg ref_name The reference's name that should be checked for
70
+ * @param ref_name The reference's name that should be checked for
71
71
  * existence.
72
72
  * @return `0` on success, a negative error value code.
73
73
  */
@@ -81,9 +81,9 @@ struct git_refdb_backend {
81
81
  *
82
82
  * A refdb implementation must provide this function.
83
83
  *
84
- * @arg out The implementation shall set this to the allocated
84
+ * @param out The implementation shall set this to the allocated
85
85
  * reference, if it could be found, otherwise to `NULL`.
86
- * @arg ref_name The reference's name that should be checked for
86
+ * @param ref_name The reference's name that should be checked for
87
87
  * existence.
88
88
  * @return `0` on success, `GIT_ENOTFOUND` if the reference does
89
89
  * exist, otherwise a negative error code.
@@ -98,12 +98,12 @@ struct git_refdb_backend {
98
98
  *
99
99
  * A refdb implementation must provide this function.
100
100
  *
101
- * @arg out The implementation shall set this to the allocated
101
+ * @param out The implementation shall set this to the allocated
102
102
  * reference iterator. A custom structure may be used with an
103
103
  * embedded `git_reference_iterator` structure. Both `next`
104
104
  * and `next_name` functions of `git_reference_iterator` need
105
105
  * to be populated.
106
- * @arg glob A pattern to filter references by. If given, the iterator
106
+ * @param glob A pattern to filter references by. If given, the iterator
107
107
  * shall only return references that match the glob when
108
108
  * passed to `wildmatch`.
109
109
  * @return `0` on success, otherwise a negative error code.
@@ -118,20 +118,20 @@ struct git_refdb_backend {
118
118
  *
119
119
  * A refdb implementation must provide this function.
120
120
  *
121
- * @arg ref The reference to persist. May either be a symbolic or
121
+ * @param ref The reference to persist. May either be a symbolic or
122
122
  * direct reference.
123
- * @arg force Whether to write the reference if a reference with the
123
+ * @param force Whether to write the reference if a reference with the
124
124
  * same name already exists.
125
- * @arg who The person updating the reference. Shall be used to create
125
+ * @param who The person updating the reference. Shall be used to create
126
126
  * a reflog entry.
127
- * @arg message The message detailing what kind of reference update is
127
+ * @param message The message detailing what kind of reference update is
128
128
  * performed. Shall be used to create a reflog entry.
129
- * @arg old If not `NULL` and `force` is not set, then the
129
+ * @param old If not `NULL` and `force` is not set, then the
130
130
  * implementation needs to ensure that the reference is currently at
131
131
  * the given OID before writing the new value. If both `old`
132
132
  * and `old_target` are `NULL`, then the reference should not
133
133
  * exist at the point of writing.
134
- * @arg old_target If not `NULL` and `force` is not set, then the
134
+ * @param old_target If not `NULL` and `force` is not set, then the
135
135
  * implementation needs to ensure that the symbolic
136
136
  * reference is currently at the given target before
137
137
  * writing the new value. If both `old` and
@@ -149,15 +149,15 @@ struct git_refdb_backend {
149
149
  *
150
150
  * A refdb implementation must provide this function.
151
151
  *
152
- * @arg out The implementation shall set this to the newly created
152
+ * @param out The implementation shall set this to the newly created
153
153
  * reference or `NULL` on error.
154
- * @arg old_name The current name of the reference that is to be renamed.
155
- * @arg new_name The new name that the old reference shall be renamed to.
156
- * @arg force Whether to write the reference if a reference with the
154
+ * @param old_name The current name of the reference that is to be renamed.
155
+ * @param new_name The new name that the old reference shall be renamed to.
156
+ * @param force Whether to write the reference if a reference with the
157
157
  * target name already exists.
158
- * @arg who The person updating the reference. Shall be used to create
158
+ * @param who The person updating the reference. Shall be used to create
159
159
  * a reflog entry.
160
- * @arg message The message detailing what kind of reference update is
160
+ * @param message The message detailing what kind of reference update is
161
161
  * performed. Shall be used to create a reflog entry.
162
162
  * @return `0` on success, otherwise a negative error code.
163
163
  */
@@ -173,11 +173,11 @@ struct git_refdb_backend {
173
173
  *
174
174
  * A refdb implementation must provide this function.
175
175
  *
176
- * @arg ref_name The name of the reference name that shall be deleted.
177
- * @arg old_id If not `NULL` and `force` is not set, then the
176
+ * @param ref_name The name of the reference name that shall be deleted.
177
+ * @param old_id If not `NULL` and `force` is not set, then the
178
178
  * implementation needs to ensure that the reference is currently at
179
179
  * the given OID before writing the new value.
180
- * @arg old_target If not `NULL` and `force` is not set, then the
180
+ * @param old_target If not `NULL` and `force` is not set, then the
181
181
  * implementation needs to ensure that the symbolic
182
182
  * reference is currently at the given target before
183
183
  * writing the new value.
@@ -243,7 +243,7 @@ struct git_refdb_backend {
243
243
  *
244
244
  * A refdb implementation must provide this function.
245
245
  *
246
- * @arg reflog The complete reference log for a given reference. Note
246
+ * @param reflog The complete reference log for a given reference. Note
247
247
  * that this may contain entries that have already been
248
248
  * written to disk.
249
249
  * @return `0` on success, a negative error code otherwise
@@ -255,8 +255,8 @@ struct git_refdb_backend {
255
255
  *
256
256
  * A refdb implementation must provide this function.
257
257
  *
258
- * @arg old_name The name of old reference whose reflog shall be renamed from.
259
- * @arg new_name The name of new reference whose reflog shall be renamed to.
258
+ * @param old_name The name of old reference whose reflog shall be renamed from.
259
+ * @param new_name The name of new reference whose reflog shall be renamed to.
260
260
  * @return `0` on success, a negative error code otherwise
261
261
  */
262
262
  int GIT_CALLBACK(reflog_rename)(git_refdb_backend *_backend, const char *old_name, const char *new_name);
@@ -266,7 +266,7 @@ struct git_refdb_backend {
266
266
  *
267
267
  * A refdb implementation must provide this function.
268
268
  *
269
- * @arg name The name of the reference whose reflog shall be deleted.
269
+ * @param name The name of the reference whose reflog shall be deleted.
270
270
  * @return `0` on success, a negative error code otherwise
271
271
  */
272
272
  int GIT_CALLBACK(reflog_delete)(git_refdb_backend *backend, const char *name);
@@ -277,9 +277,9 @@ struct git_refdb_backend {
277
277
  * A refdb implementation may provide this function; if it is not
278
278
  * provided, the transaction API will fail to work.
279
279
  *
280
- * @arg payload_out Opaque parameter that will be passed verbosely to
280
+ * @param payload_out Opaque parameter that will be passed verbosely to
281
281
  * `unlock`.
282
- * @arg refname Reference that shall be locked.
282
+ * @param refname Reference that shall be locked.
283
283
  * @return `0` on success, a negative error code otherwise
284
284
  */
285
285
  int GIT_CALLBACK(lock)(void **payload_out, git_refdb_backend *backend, const char *refname);
@@ -294,16 +294,16 @@ struct git_refdb_backend {
294
294
  * A refdb implementation must provide this function if a `lock`
295
295
  * implementation is provided.
296
296
  *
297
- * @arg payload The payload returned by `lock`.
298
- * @arg success `1` if a reference should be updated, `2` if
297
+ * @param payload The payload returned by `lock`.
298
+ * @param success `1` if a reference should be updated, `2` if
299
299
  * a reference should be deleted, `0` if the lock must be
300
300
  * discarded.
301
- * @arg update_reflog `1` in case the reflog should be updated, `0`
301
+ * @param update_reflog `1` in case the reflog should be updated, `0`
302
302
  * otherwise.
303
- * @arg ref The reference which should be unlocked.
304
- * @arg who The person updating the reference. Shall be used to create
303
+ * @param ref The reference which should be unlocked.
304
+ * @param who The person updating the reference. Shall be used to create
305
305
  * a reflog entry in case `update_reflog` is set.
306
- * @arg message The message detailing what kind of reference update is
306
+ * @param message The message detailing what kind of reference update is
307
307
  * performed. Shall be used to create a reflog entry in
308
308
  * case `update_reflog` is set.
309
309
  * @return `0` on success, a negative error code otherwise
@@ -312,7 +312,10 @@ struct git_refdb_backend {
312
312
  const git_reference *ref, const git_signature *sig, const char *message);
313
313
  };
314
314
 
315
+ /** Current version for the `git_refdb_backend_options` structure */
315
316
  #define GIT_REFDB_BACKEND_VERSION 1
317
+
318
+ /** Static constructor for `git_refdb_backend_options` */
316
319
  #define GIT_REFDB_BACKEND_INIT {GIT_REFDB_BACKEND_VERSION}
317
320
 
318
321
  /**
@@ -356,6 +359,7 @@ GIT_EXTERN(int) git_refdb_set_backend(
356
359
  git_refdb *refdb,
357
360
  git_refdb_backend *backend);
358
361
 
362
+ /** @} */
359
363
  GIT_END_DECL
360
364
 
361
365
  #endif
@@ -13,8 +13,8 @@
13
13
 
14
14
  /**
15
15
  * @file git2/sys/refs.h
16
- * @brief Low-level Git ref creation
17
- * @defgroup git_backend Git custom backend APIs
16
+ * @brief Low-level git reference creation
17
+ * @defgroup git_backend Low-level git reference creation
18
18
  * @ingroup Git
19
19
  * @{
20
20
  */
@@ -46,4 +46,5 @@ GIT_EXTERN(git_reference *) git_reference__alloc_symbolic(
46
46
 
47
47
  /** @} */
48
48
  GIT_END_DECL
49
+
49
50
  #endif
@@ -13,19 +13,25 @@
13
13
  /**
14
14
  * @file git2/sys/remote.h
15
15
  * @brief Low-level remote functionality for custom transports
16
- * @defgroup git_remote Low-level remote functionality
16
+ * @defgroup git_remote Low-level remote functionality for custom transports
17
17
  * @ingroup Git
18
18
  * @{
19
19
  */
20
20
 
21
21
  GIT_BEGIN_DECL
22
22
 
23
+ /**
24
+ * A remote's capabilities.
25
+ */
23
26
  typedef enum {
24
27
  /** Remote supports fetching an advertised object by ID. */
25
28
  GIT_REMOTE_CAPABILITY_TIP_OID = (1 << 0),
26
29
 
27
30
  /** Remote supports fetching an individual reachable object. */
28
31
  GIT_REMOTE_CAPABILITY_REACHABLE_OID = (1 << 1),
32
+
33
+ /** Remote supports push options. */
34
+ GIT_REMOTE_CAPABILITY_PUSH_OPTIONS = (1 << 2),
29
35
  } git_remote_capability_t;
30
36
 
31
37
  /**
@@ -43,4 +49,5 @@ GIT_EXTERN(void) git_remote_connect_options_dispose(
43
49
 
44
50
  /** @} */
45
51
  GIT_END_DECL
52
+
46
53
  #endif
@@ -9,16 +9,71 @@
9
9
 
10
10
  #include "git2/common.h"
11
11
  #include "git2/types.h"
12
+ #include "git2/oid.h"
12
13
 
13
14
  /**
14
15
  * @file git2/sys/repository.h
15
- * @brief Git repository custom implementation routines
16
- * @defgroup git_backend Git custom backend APIs
16
+ * @brief Custom repository handling
17
+ * @defgroup git_repository Custom repository handling
17
18
  * @ingroup Git
18
19
  * @{
19
20
  */
20
21
  GIT_BEGIN_DECL
21
22
 
23
+ #ifdef GIT_EXPERIMENTAL_SHA256
24
+
25
+ /**
26
+ * The options for creating an repository from scratch.
27
+ *
28
+ * Initialize with `GIT_REPOSITORY_NEW_OPTIONS_INIT`. Alternatively,
29
+ * you can use `git_repository_new_options_init`.
30
+ *
31
+ * @options[version] GIT_REPOSITORY_NEW_OPTIONS_VERSION
32
+ * @options[init_macro] GIT_REPOSITORY_NEW_OPTIONS_INIT
33
+ * @options[init_function] git_repository_new_options_init
34
+ */
35
+ typedef struct git_repository_new_options {
36
+ unsigned int version; /**< The version */
37
+
38
+ /**
39
+ * The object ID type for the object IDs that exist in the index.
40
+ *
41
+ * If this is not specified, this defaults to `GIT_OID_SHA1`.
42
+ */
43
+ git_oid_t oid_type;
44
+ } git_repository_new_options;
45
+
46
+ /** Current version for the `git_repository_new_options` structure */
47
+ #define GIT_REPOSITORY_NEW_OPTIONS_VERSION 1
48
+
49
+ /** Static constructor for `git_repository_new_options` */
50
+ #define GIT_REPOSITORY_NEW_OPTIONS_INIT { GIT_REPOSITORY_NEW_OPTIONS_VERSION }
51
+
52
+ /**
53
+ * Initialize git_repository_new_options structure
54
+ *
55
+ * Initializes a `git_repository_new_options` with default values.
56
+ * Equivalent to creating an instance with
57
+ * `GIT_REPOSITORY_NEW_OPTIONS_INIT`.
58
+ *
59
+ * @param opts The `git_repository_new_options` struct to initialize.
60
+ * @param version The struct version; pass `GIT_REPOSITORY_NEW_OPTIONS_VERSION`.
61
+ * @return Zero on success; -1 on failure.
62
+ */
63
+ GIT_EXTERN(int) git_repository_new_options_init(
64
+ git_repository_new_options *opts,
65
+ unsigned int version);
66
+
67
+ /**
68
+ * Create a new repository with no backends.
69
+ *
70
+ * @param[out] out The blank repository
71
+ * @param opts the options for repository creation, or NULL for defaults
72
+ * @return 0 on success, or an error code
73
+ */
74
+ GIT_EXTERN(int) git_repository_new(git_repository **out, git_repository_new_options *opts);
75
+ #else
76
+
22
77
  /**
23
78
  * Create a new repository with neither backends nor config object
24
79
  *
@@ -29,11 +84,13 @@ GIT_BEGIN_DECL
29
84
  * can fail to function properly: locations under $GIT_DIR, $GIT_COMMON_DIR,
30
85
  * or $GIT_INFO_DIR are impacted.
31
86
  *
32
- * @param out The blank repository
87
+ * @param[out] out The blank repository
33
88
  * @return 0 on success, or an error code
34
89
  */
35
90
  GIT_EXTERN(int) git_repository_new(git_repository **out);
36
91
 
92
+ #endif
93
+
37
94
  /**
38
95
  * Reset all the internal state in a repository.
39
96
  *
@@ -156,6 +213,7 @@ GIT_EXTERN(int) git_repository_set_bare(git_repository *repo);
156
213
  * and caches them so that subsequent calls to `git_submodule_lookup` are O(1).
157
214
  *
158
215
  * @param repo the repository whose submodules will be cached.
216
+ * @return 0 on success, or an error code
159
217
  */
160
218
  GIT_EXTERN(int) git_repository_submodule_cache_all(
161
219
  git_repository *repo);
@@ -171,10 +229,12 @@ GIT_EXTERN(int) git_repository_submodule_cache_all(
171
229
  * of these has changed, the cache might become invalid.
172
230
  *
173
231
  * @param repo the repository whose submodule cache will be cleared
232
+ * @return 0 on success, or an error code
174
233
  */
175
234
  GIT_EXTERN(int) git_repository_submodule_cache_clear(
176
235
  git_repository *repo);
177
236
 
178
237
  /** @} */
179
238
  GIT_END_DECL
239
+
180
240
  #endif
@@ -11,8 +11,16 @@
11
11
  #include "git2/types.h"
12
12
  #include "git2/proxy.h"
13
13
 
14
+ /**
15
+ * @file git2/sys/stream.h
16
+ * @brief Streaming file I/O functionality
17
+ * @defgroup git_stream Streaming file I/O functionality
18
+ * @ingroup Git
19
+ * @{
20
+ */
14
21
  GIT_BEGIN_DECL
15
22
 
23
+ /** Current version for the `git_stream` structures */
16
24
  #define GIT_STREAM_VERSION 1
17
25
 
18
26
  /**
@@ -29,8 +37,22 @@ GIT_BEGIN_DECL
29
37
  typedef struct git_stream {
30
38
  int version;
31
39
 
32
- int encrypted;
33
- int proxy_support;
40
+ unsigned int encrypted : 1,
41
+ proxy_support : 1;
42
+
43
+ /**
44
+ * Timeout for read and write operations; can be set to `0` to
45
+ * block indefinitely.
46
+ */
47
+ int timeout;
48
+
49
+ /**
50
+ * Timeout to connect to the remote server; can be set to `0`
51
+ * to use the system defaults. This can be shorter than the
52
+ * system default - often 75 seconds - but cannot be longer.
53
+ */
54
+ int connect_timeout;
55
+
34
56
  int GIT_CALLBACK(connect)(struct git_stream *);
35
57
  int GIT_CALLBACK(certificate)(git_cert **, struct git_stream *);
36
58
  int GIT_CALLBACK(set_proxy)(struct git_stream *, const git_proxy_options *proxy_opts);
@@ -133,6 +155,7 @@ GIT_EXTERN(int) git_stream_register_tls(git_stream_cb ctor);
133
155
 
134
156
  #endif
135
157
 
158
+ /**@}*/
136
159
  GIT_END_DECL
137
160
 
138
161
  #endif
@@ -9,6 +9,7 @@
9
9
  #define INCLUDE_sys_git_transport_h
10
10
 
11
11
  #include "git2/net.h"
12
+ #include "git2/oidarray.h"
12
13
  #include "git2/proxy.h"
13
14
  #include "git2/remote.h"
14
15
  #include "git2/strarray.h"
@@ -17,14 +18,28 @@
17
18
 
18
19
  /**
19
20
  * @file git2/sys/transport.h
20
- * @brief Git custom transport registration interfaces and functions
21
- * @defgroup git_transport Git custom transport registration
21
+ * @brief Custom transport registration interfaces and functions
22
+ * @defgroup git_transport Custom transport registration
22
23
  * @ingroup Git
24
+ *
25
+ * Callers can override the default HTTPS or SSH implementation by
26
+ * specifying a custom transport.
23
27
  * @{
24
28
  */
25
29
 
26
30
  GIT_BEGIN_DECL
27
31
 
32
+ /**
33
+ * The negotiation state during a fetch smart transport negotiation.
34
+ */
35
+ typedef struct {
36
+ const git_remote_head * const *refs;
37
+ size_t refs_len;
38
+ git_oid *shallow_roots;
39
+ size_t shallow_roots_len;
40
+ int depth;
41
+ } git_fetch_negotiation;
42
+
28
43
  struct git_transport {
29
44
  unsigned int version; /**< The struct version */
30
45
 
@@ -96,8 +111,17 @@ struct git_transport {
96
111
  int GIT_CALLBACK(negotiate_fetch)(
97
112
  git_transport *transport,
98
113
  git_repository *repo,
99
- const git_remote_head * const *refs,
100
- size_t count);
114
+ const git_fetch_negotiation *fetch_data);
115
+
116
+ /**
117
+ * Return the shallow roots of the remote.
118
+ *
119
+ * This function may be called after a successful call to
120
+ * `negotiate_fetch`.
121
+ */
122
+ int GIT_CALLBACK(shallow_roots)(
123
+ git_oidarray *out,
124
+ git_transport *transport);
101
125
 
102
126
  /**
103
127
  * Start downloading the packfile from the remote repository.
@@ -128,7 +152,10 @@ struct git_transport {
128
152
  void GIT_CALLBACK(free)(git_transport *transport);
129
153
  };
130
154
 
155
+ /** Current version for the `git_transport` structure */
131
156
  #define GIT_TRANSPORT_VERSION 1
157
+
158
+ /** Static constructor for `git_transport` */
132
159
  #define GIT_TRANSPORT_INIT {GIT_TRANSPORT_VERSION}
133
160
 
134
161
  /**
@@ -281,6 +308,7 @@ GIT_EXTERN(int) git_transport_smart_credentials(git_credential **out, git_transp
281
308
  *
282
309
  * @param out options struct to fill
283
310
  * @param transport the transport to extract the data from.
311
+ * @return 0 on success, or an error code
284
312
  */
285
313
  GIT_EXTERN(int) git_transport_remote_connect_options(
286
314
  git_remote_connect_options *out,
@@ -368,7 +396,14 @@ struct git_smart_subtransport {
368
396
  void GIT_CALLBACK(free)(git_smart_subtransport *transport);
369
397
  };
370
398
 
371
- /** A function which creates a new subtransport for the smart transport */
399
+ /**
400
+ * A function that creates a new subtransport for the smart transport
401
+ *
402
+ * @param out the smart subtransport
403
+ * @param owner the transport owner
404
+ * @param param the input parameter
405
+ * @return 0 on success, or an error code
406
+ */
372
407
  typedef int GIT_CALLBACK(git_smart_subtransport_cb)(
373
408
  git_smart_subtransport **out,
374
409
  git_transport *owner,
@@ -411,6 +446,7 @@ typedef struct git_smart_subtransport_definition {
411
446
  *
412
447
  * @param out The newly created subtransport
413
448
  * @param owner The smart transport to own this subtransport
449
+ * @param param custom parameters for the subtransport
414
450
  * @return 0 or an error code
415
451
  */
416
452
  GIT_EXTERN(int) git_smart_subtransport_http(
@@ -423,6 +459,7 @@ GIT_EXTERN(int) git_smart_subtransport_http(
423
459
  *
424
460
  * @param out The newly created subtransport
425
461
  * @param owner The smart transport to own this subtransport
462
+ * @param param custom parameters for the subtransport
426
463
  * @return 0 or an error code
427
464
  */
428
465
  GIT_EXTERN(int) git_smart_subtransport_git(
@@ -435,6 +472,7 @@ GIT_EXTERN(int) git_smart_subtransport_git(
435
472
  *
436
473
  * @param out The newly created subtransport
437
474
  * @param owner The smart transport to own this subtransport
475
+ * @param param custom parameters for the subtransport
438
476
  * @return 0 or an error code
439
477
  */
440
478
  GIT_EXTERN(int) git_smart_subtransport_ssh(
@@ -444,4 +482,5 @@ GIT_EXTERN(int) git_smart_subtransport_ssh(
444
482
 
445
483
  /** @} */
446
484
  GIT_END_DECL
485
+
447
486
  #endif
@@ -15,7 +15,7 @@
15
15
 
16
16
  /**
17
17
  * @file git2/tag.h
18
- * @brief Git tag parsing routines
18
+ * @brief A (nearly) immutable pointer to a commit; useful for versioning
19
19
  * @defgroup git_tag Git tag management
20
20
  * @ingroup Git
21
21
  * @{
@@ -335,6 +335,7 @@ typedef int GIT_CALLBACK(git_tag_foreach_cb)(const char *name, git_oid *oid, voi
335
335
  * @param repo Repository
336
336
  * @param callback Callback function
337
337
  * @param payload Pointer to callback data (optional)
338
+ * @return 0 on success or an error code
338
339
  */
339
340
  GIT_EXTERN(int) git_tag_foreach(
340
341
  git_repository *repo,
@@ -380,4 +381,5 @@ GIT_EXTERN(int) git_tag_name_is_valid(int *valid, const char *name);
380
381
 
381
382
  /** @} */
382
383
  GIT_END_DECL
384
+
383
385
  #endif
@@ -12,8 +12,8 @@
12
12
 
13
13
  /**
14
14
  * @file git2/trace.h
15
- * @brief Git tracing configuration routines
16
- * @defgroup git_trace Git tracing configuration routines
15
+ * @brief Tracing functionality to introspect libgit2 in your application
16
+ * @defgroup git_trace Tracing functionality to introspect libgit2 in your application
17
17
  * @ingroup Git
18
18
  * @{
19
19
  */
@@ -48,8 +48,13 @@ typedef enum {
48
48
 
49
49
  /**
50
50
  * An instance for a tracing function
51
+ *
52
+ * @param level the trace level
53
+ * @param msg the trace message
51
54
  */
52
- typedef void GIT_CALLBACK(git_trace_cb)(git_trace_level_t level, const char *msg);
55
+ typedef void GIT_CALLBACK(git_trace_cb)(
56
+ git_trace_level_t level,
57
+ const char *msg);
53
58
 
54
59
  /**
55
60
  * Sets the system tracing configuration to the specified level with the
@@ -64,4 +69,5 @@ GIT_EXTERN(int) git_trace_set(git_trace_level_t level, git_trace_cb cb);
64
69
 
65
70
  /** @} */
66
71
  GIT_END_DECL
72
+
67
73
  #endif
@@ -12,8 +12,8 @@
12
12
 
13
13
  /**
14
14
  * @file git2/transaction.h
15
- * @brief Git transactional reference routines
16
- * @defgroup git_transaction Git transactional reference routines
15
+ * @brief Transactional reference handling
16
+ * @defgroup git_transaction Transactional reference handling
17
17
  * @ingroup Git
18
18
  * @{
19
19
  */
@@ -118,4 +118,5 @@ GIT_EXTERN(void) git_transaction_free(git_transaction *tx);
118
118
 
119
119
  /** @} */
120
120
  GIT_END_DECL
121
+
121
122
  #endif
@@ -15,8 +15,8 @@
15
15
 
16
16
  /**
17
17
  * @file git2/transport.h
18
- * @brief Git transport interfaces and functions
19
- * @defgroup git_transport interfaces and functions
18
+ * @brief Transports are the low-level mechanism to connect to a remote server
19
+ * @defgroup git_transport Transports are the low-level mechanism to connect to a remote server
20
20
  * @ingroup Git
21
21
  * @{
22
22
  */
@@ -30,10 +30,18 @@ GIT_BEGIN_DECL
30
30
  * @param str The message from the transport
31
31
  * @param len The length of the message
32
32
  * @param payload Payload provided by the caller
33
+ * @return 0 on success or an error code
33
34
  */
34
35
  typedef int GIT_CALLBACK(git_transport_message_cb)(const char *str, int len, void *payload);
35
36
 
36
- /** Signature of a function which creates a transport */
37
+ /**
38
+ * Signature of a function which creates a transport.
39
+ *
40
+ * @param out the transport generate
41
+ * @param owner the owner for the transport
42
+ * @param param the param to the transport creation
43
+ * @return 0 on success or an error code
44
+ */
37
45
  typedef int GIT_CALLBACK(git_transport_cb)(git_transport **out, git_remote *owner, void *param);
38
46
 
39
47
  /** @} */
@@ -14,8 +14,8 @@
14
14
 
15
15
  /**
16
16
  * @file git2/tree.h
17
- * @brief Git tree parsing, loading routines
18
- * @defgroup git_tree Git tree parsing, loading routines
17
+ * @brief Trees are collections of files and folders to make up the repository hierarchy
18
+ * @defgroup git_tree Trees are collections of files and folders to make up the repository hierarchy
19
19
  * @ingroup Git
20
20
  * @{
21
21
  */
@@ -24,7 +24,7 @@ GIT_BEGIN_DECL
24
24
  /**
25
25
  * Lookup a tree object from the repository.
26
26
  *
27
- * @param out Pointer to the looked up tree
27
+ * @param[out] out Pointer to the looked up tree
28
28
  * @param repo The repo to use when locating the tree.
29
29
  * @param id Identity of the tree to locate.
30
30
  * @return 0 or an error code
@@ -345,6 +345,10 @@ GIT_EXTERN(int) git_treebuilder_remove(
345
345
  * The return value is treated as a boolean, with zero indicating that the
346
346
  * entry should be left alone and any non-zero value meaning that the
347
347
  * entry should be removed from the treebuilder list (i.e. filtered out).
348
+ *
349
+ * @param entry the tree entry for the callback to examine
350
+ * @param payload the payload from the caller
351
+ * @return 0 to do nothing, non-zero to remove the entry
348
352
  */
349
353
  typedef int GIT_CALLBACK(git_treebuilder_filter_cb)(
350
354
  const git_tree_entry *entry, void *payload);
@@ -379,7 +383,14 @@ GIT_EXTERN(int) git_treebuilder_filter(
379
383
  GIT_EXTERN(int) git_treebuilder_write(
380
384
  git_oid *id, git_treebuilder *bld);
381
385
 
382
- /** Callback for the tree traversal method */
386
+ /**
387
+ * Callback for the tree traversal method.
388
+ *
389
+ * @param root the current (relative) root to the entry
390
+ * @param entry the tree entry
391
+ * @param payload the caller-provided callback payload
392
+ * @return a positive value to skip the entry, a negative value to stop the walk
393
+ */
383
394
  typedef int GIT_CALLBACK(git_treewalk_cb)(
384
395
  const char *root, const git_tree_entry *entry, void *payload);
385
396
 
@@ -470,6 +481,6 @@ typedef struct {
470
481
  GIT_EXTERN(int) git_tree_create_updated(git_oid *out, git_repository *repo, git_tree *baseline, size_t nupdates, const git_tree_update *updates);
471
482
 
472
483
  /** @} */
473
-
474
484
  GIT_END_DECL
485
+
475
486
  #endif