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
@@ -15,7 +15,7 @@
15
15
 
16
16
  /**
17
17
  * @file git2/odb.h
18
- * @brief Git object database routines
18
+ * @brief An object database manages the storage of git objects
19
19
  * @defgroup git_odb Git object database routines
20
20
  * @ingroup Git
21
21
  * @{
@@ -35,6 +35,10 @@ typedef enum {
35
35
 
36
36
  /**
37
37
  * Function type for callbacks from git_odb_foreach.
38
+ *
39
+ * @param id an id of an object in the object database
40
+ * @param payload the payload from the initial call to git_odb_foreach
41
+ * @return 0 on success, or an error code
38
42
  */
39
43
  typedef int GIT_CALLBACK(git_odb_foreach_cb)(const git_oid *id, void *payload);
40
44
 
@@ -49,30 +53,53 @@ typedef struct {
49
53
  git_oid_t oid_type;
50
54
  } git_odb_options;
51
55
 
52
- /* The current version of the diff options structure */
56
+ /** The current version of the diff options structure */
53
57
  #define GIT_ODB_OPTIONS_VERSION 1
54
58
 
55
- /* Stack initializer for odb options. Alternatively use
59
+ /**
60
+ * Stack initializer for odb options. Alternatively use
56
61
  * `git_odb_options_init` programmatic initialization.
57
62
  */
58
63
  #define GIT_ODB_OPTIONS_INIT { GIT_ODB_OPTIONS_VERSION }
59
64
 
65
+ #ifdef GIT_EXPERIMENTAL_SHA256
66
+
60
67
  /**
61
68
  * Create a new object database with no backends.
62
69
  *
63
- * Before the ODB can be used for read/writing, a custom database
64
- * backend must be manually added using `git_odb_add_backend()`
70
+ * @param[out] odb location to store the database pointer, if opened.
71
+ * @param opts the options for this object database or NULL for defaults
72
+ * @return 0 or an error code
73
+ */
74
+ GIT_EXTERN(int) git_odb_new(git_odb **odb, const git_odb_options *opts);
75
+
76
+ /**
77
+ * Create a new object database and automatically add loose and packed
78
+ * backends.
65
79
  *
66
- * @param out location to store the database pointer, if opened.
80
+ * @param[out] odb_out location to store the database pointer, if opened.
67
81
  * Set to NULL if the open failed.
82
+ * @param objects_dir path of the backends' "objects" directory.
68
83
  * @param opts the options for this object database or NULL for defaults
69
84
  * @return 0 or an error code
70
85
  */
71
- #ifdef GIT_EXPERIMENTAL_SHA256
72
- GIT_EXTERN(int) git_odb_new(git_odb **out, const git_odb_options *opts);
86
+ GIT_EXTERN(int) git_odb_open(
87
+ git_odb **odb_out,
88
+ const char *objects_dir,
89
+ const git_odb_options *opts);
90
+
73
91
  #else
74
- GIT_EXTERN(int) git_odb_new(git_odb **out);
75
- #endif
92
+
93
+ /**
94
+ * Create a new object database with no backends.
95
+ *
96
+ * Before the ODB can be used for read/writing, a custom database
97
+ * backend must be manually added using `git_odb_add_backend()`
98
+ *
99
+ * @param[out] odb location to store the database pointer, if opened.
100
+ * @return 0 or an error code
101
+ */
102
+ GIT_EXTERN(int) git_odb_new(git_odb **odb);
76
103
 
77
104
  /**
78
105
  * Create a new object database and automatically add
@@ -85,19 +112,12 @@ GIT_EXTERN(int) git_odb_new(git_odb **out);
85
112
  * assuming `objects_dir` as the Objects folder which
86
113
  * contains a 'pack/' folder with the corresponding data
87
114
  *
88
- * @param out location to store the database pointer, if opened.
115
+ * @param[out] odb_out location to store the database pointer, if opened.
89
116
  * Set to NULL if the open failed.
90
117
  * @param objects_dir path of the backends' "objects" directory.
91
- * @param opts the options for this object database or NULL for defaults
92
118
  * @return 0 or an error code
93
119
  */
94
- #ifdef GIT_EXPERIMENTAL_SHA256
95
- GIT_EXTERN(int) git_odb_open(
96
- git_odb **out,
97
- const char *objects_dir,
98
- const git_odb_options *opts);
99
- #else
100
- GIT_EXTERN(int) git_odb_open(git_odb **out, const char *objects_dir);
120
+ GIT_EXTERN(int) git_odb_open(git_odb **odb_out, const char *objects_dir);
101
121
  #endif
102
122
 
103
123
  /**
@@ -134,13 +154,13 @@ GIT_EXTERN(void) git_odb_free(git_odb *db);
134
154
  * internally cached, so it should be closed
135
155
  * by the user once it's no longer in use.
136
156
  *
137
- * @param out pointer where to store the read object
157
+ * @param[out] obj pointer where to store the read object
138
158
  * @param db database to search for the object in.
139
159
  * @param id identity of the object to read.
140
160
  * @return 0 if the object was read, GIT_ENOTFOUND if the object is
141
161
  * not in the database.
142
162
  */
143
- GIT_EXTERN(int) git_odb_read(git_odb_object **out, git_odb *db, const git_oid *id);
163
+ GIT_EXTERN(int) git_odb_read(git_odb_object **obj, git_odb *db, const git_oid *id);
144
164
 
145
165
  /**
146
166
  * Read an object from the database, given a prefix
@@ -160,7 +180,7 @@ GIT_EXTERN(int) git_odb_read(git_odb_object **out, git_odb *db, const git_oid *i
160
180
  * internally cached, so it should be closed
161
181
  * by the user once it's no longer in use.
162
182
  *
163
- * @param out pointer where to store the read object
183
+ * @param[out] obj pointer where to store the read object
164
184
  * @param db database to search for the object in.
165
185
  * @param short_id a prefix of the id of the object to read.
166
186
  * @param len the length of the prefix
@@ -168,7 +188,7 @@ GIT_EXTERN(int) git_odb_read(git_odb_object **out, git_odb *db, const git_oid *i
168
188
  * database. GIT_EAMBIGUOUS if the prefix is ambiguous
169
189
  * (several objects match the prefix)
170
190
  */
171
- GIT_EXTERN(int) git_odb_read_prefix(git_odb_object **out, git_odb *db, const git_oid *short_id, size_t len);
191
+ GIT_EXTERN(int) git_odb_read_prefix(git_odb_object **obj, git_odb *db, const git_oid *short_id, size_t len);
172
192
 
173
193
  /**
174
194
  * Read the header of an object from the database, without
@@ -180,8 +200,8 @@ GIT_EXTERN(int) git_odb_read_prefix(git_odb_object **out, git_odb *db, const git
180
200
  * of an object, so the whole object will be read and then the
181
201
  * header will be returned.
182
202
  *
183
- * @param len_out pointer where to store the length
184
- * @param type_out pointer where to store the type
203
+ * @param[out] len_out pointer where to store the length
204
+ * @param[out] type_out pointer where to store the type
185
205
  * @param db database to search for the object in.
186
206
  * @param id identity of the object to read.
187
207
  * @return 0 if the object was read, GIT_ENOTFOUND if the object is not
@@ -286,7 +306,7 @@ GIT_EXTERN(int) git_odb_expand_ids(
286
306
  * @param db database to refresh
287
307
  * @return 0 on success, error code otherwise
288
308
  */
289
- GIT_EXTERN(int) git_odb_refresh(struct git_odb *db);
309
+ GIT_EXTERN(int) git_odb_refresh(git_odb *db);
290
310
 
291
311
  /**
292
312
  * List all objects available in the database
@@ -301,7 +321,10 @@ GIT_EXTERN(int) git_odb_refresh(struct git_odb *db);
301
321
  * @param payload data to pass to the callback
302
322
  * @return 0 on success, non-zero callback return value, or error code
303
323
  */
304
- GIT_EXTERN(int) git_odb_foreach(git_odb *db, git_odb_foreach_cb cb, void *payload);
324
+ GIT_EXTERN(int) git_odb_foreach(
325
+ git_odb *db,
326
+ git_odb_foreach_cb cb,
327
+ void *payload);
305
328
 
306
329
  /**
307
330
  * Write an object directly into the ODB
@@ -316,7 +339,7 @@ GIT_EXTERN(int) git_odb_foreach(git_odb *db, git_odb_foreach_cb cb, void *payloa
316
339
  *
317
340
  * @param out pointer to store the OID result of the write
318
341
  * @param odb object database where to store the object
319
- * @param data buffer with the data to store
342
+ * @param data @type `const unsigned char *` buffer with the data to store
320
343
  * @param len size of the buffer
321
344
  * @param type type of the data to store
322
345
  * @return 0 or an error code
@@ -382,7 +405,7 @@ GIT_EXTERN(int) git_odb_stream_finalize_write(git_oid *out, git_odb_stream *stre
382
405
  * @param stream the stream
383
406
  * @param buffer a user-allocated buffer to store the data in.
384
407
  * @param len the buffer's length
385
- * @return 0 if the read succeeded, error code otherwise
408
+ * @return the number of bytes read if succeeded, error code otherwise
386
409
  */
387
410
  GIT_EXTERN(int) git_odb_stream_read(git_odb_stream *stream, char *buffer, size_t len);
388
411
 
@@ -466,29 +489,54 @@ GIT_EXTERN(int) git_odb_write_pack(
466
489
  GIT_EXTERN(int) git_odb_write_multi_pack_index(
467
490
  git_odb *db);
468
491
 
492
+ #ifdef GIT_EXPERIMENTAL_SHA256
493
+
469
494
  /**
470
- * Determine the object-ID (sha1 or sha256 hash) of a data buffer
495
+ * Generate the object ID (in SHA1 or SHA256 format) for a given data buffer.
471
496
  *
472
- * The resulting OID will be the identifier for the data buffer as if
473
- * the data buffer it were to written to the ODB.
474
- *
475
- * @param out the resulting object-ID.
497
+ * @param[out] oid the resulting object ID.
476
498
  * @param data data to hash
477
499
  * @param len size of the data
478
500
  * @param object_type of the data to hash
479
501
  * @param oid_type the oid type to hash to
480
502
  * @return 0 or an error code
481
503
  */
482
- #ifdef GIT_EXPERIMENTAL_SHA256
483
504
  GIT_EXTERN(int) git_odb_hash(
484
- git_oid *out,
505
+ git_oid *oid,
485
506
  const void *data,
486
507
  size_t len,
487
508
  git_object_t object_type,
488
509
  git_oid_t oid_type);
510
+
511
+ /**
512
+ * Determine the object ID of a file on disk.
513
+ *
514
+ * @param[out] oid oid structure the result is written into.
515
+ * @param path file to read and determine object id for
516
+ * @param object_type of the data to hash
517
+ * @param oid_type the oid type to hash to
518
+ * @return 0 or an error code
519
+ */
520
+ GIT_EXTERN(int) git_odb_hashfile(
521
+ git_oid *oid,
522
+ const char *path,
523
+ git_object_t object_type,
524
+ git_oid_t oid_type);
489
525
  #else
490
- GIT_EXTERN(int) git_odb_hash(git_oid *out, const void *data, size_t len, git_object_t type);
491
- #endif
526
+
527
+ /**
528
+ * Determine the object-ID (sha1 or sha256 hash) of a data buffer
529
+ *
530
+ * The resulting OID will be the identifier for the data buffer as if
531
+ * the data buffer it were to written to the ODB.
532
+ *
533
+ * @param[out] oid the resulting object-ID.
534
+ * @param data data to hash
535
+ * @param len size of the data
536
+ * @param object_type of the data to hash
537
+ * @return 0 or an error code
538
+ */
539
+ GIT_EXTERN(int) git_odb_hash(git_oid *oid, const void *data, size_t len, git_object_t object_type);
492
540
 
493
541
  /**
494
542
  * Read a file from disk and fill a git_oid with the object id
@@ -498,20 +546,13 @@ GIT_EXTERN(int) git_odb_hash(git_oid *out, const void *data, size_t len, git_obj
498
546
  * the `-w` flag, however, with the --no-filters flag.
499
547
  * If you need filters, see git_repository_hashfile.
500
548
  *
501
- * @param out oid structure the result is written into.
549
+ * @param[out] oid oid structure the result is written into.
502
550
  * @param path file to read and determine object id for
503
551
  * @param object_type of the data to hash
504
- * @param oid_type the oid type to hash to
505
552
  * @return 0 or an error code
506
553
  */
507
- #ifdef GIT_EXPERIMENTAL_SHA256
508
- GIT_EXTERN(int) git_odb_hashfile(
509
- git_oid *out,
510
- const char *path,
511
- git_object_t object_type,
512
- git_oid_t oid_type);
513
- #else
514
- GIT_EXTERN(int) git_odb_hashfile(git_oid *out, const char *path, git_object_t type);
554
+ GIT_EXTERN(int) git_odb_hashfile(git_oid *oid, const char *path, git_object_t object_type);
555
+
515
556
  #endif
516
557
 
517
558
  /**
@@ -557,7 +598,7 @@ GIT_EXTERN(const git_oid *) git_odb_object_id(git_odb_object *object);
557
598
  * This pointer is owned by the object and shall not be free'd.
558
599
  *
559
600
  * @param object the object
560
- * @return a pointer to the data
601
+ * @return @type `const unsigned char *` a pointer to the data
561
602
  */
562
603
  GIT_EXTERN(const void *) git_odb_object_data(git_odb_object *object);
563
604
 
@@ -651,4 +692,5 @@ GIT_EXTERN(int) git_odb_set_commit_graph(git_odb *odb, git_commit_graph *cgraph)
651
692
 
652
693
  /** @} */
653
694
  GIT_END_DECL
695
+
654
696
  #endif
@@ -13,17 +13,13 @@
13
13
 
14
14
  /**
15
15
  * @file git2/backend.h
16
- * @brief Git custom backend functions
16
+ * @brief Object database backends manage the storage of git objects
17
17
  * @defgroup git_odb Git object database routines
18
18
  * @ingroup Git
19
19
  * @{
20
20
  */
21
21
  GIT_BEGIN_DECL
22
22
 
23
- /*
24
- * Constructors for in-box ODB backends.
25
- */
26
-
27
23
  /** Options for configuring a packfile object backend. */
28
24
  typedef struct {
29
25
  unsigned int version; /**< version for the struct */
@@ -35,56 +31,16 @@ typedef struct {
35
31
  git_oid_t oid_type;
36
32
  } git_odb_backend_pack_options;
37
33
 
38
- /* The current version of the diff options structure */
34
+ /** The current version of the diff options structure */
39
35
  #define GIT_ODB_BACKEND_PACK_OPTIONS_VERSION 1
40
36
 
41
- /* Stack initializer for odb pack backend options. Alternatively use
37
+ /**
38
+ * Stack initializer for odb pack backend options. Alternatively use
42
39
  * `git_odb_backend_pack_options_init` programmatic initialization.
43
40
  */
44
41
  #define GIT_ODB_BACKEND_PACK_OPTIONS_INIT \
45
42
  { GIT_ODB_BACKEND_PACK_OPTIONS_VERSION }
46
43
 
47
- /**
48
- * Create a backend for the packfiles.
49
- *
50
- * @param out location to store the odb backend pointer
51
- * @param objects_dir the Git repository's objects directory
52
- *
53
- * @return 0 or an error code
54
- */
55
- #ifdef GIT_EXPERIMENTAL_SHA256
56
- GIT_EXTERN(int) git_odb_backend_pack(
57
- git_odb_backend **out,
58
- const char *objects_dir,
59
- const git_odb_backend_pack_options *opts);
60
- #else
61
- GIT_EXTERN(int) git_odb_backend_pack(
62
- git_odb_backend **out,
63
- const char *objects_dir);
64
- #endif
65
-
66
- /**
67
- * Create a backend out of a single packfile
68
- *
69
- * This can be useful for inspecting the contents of a single
70
- * packfile.
71
- *
72
- * @param out location to store the odb backend pointer
73
- * @param index_file path to the packfile's .idx file
74
- *
75
- * @return 0 or an error code
76
- */
77
- #ifdef GIT_EXPERIMENTAL_SHA256
78
- GIT_EXTERN(int) git_odb_backend_one_pack(
79
- git_odb_backend **out,
80
- const char *index_file,
81
- const git_odb_backend_pack_options *opts);
82
- #else
83
- GIT_EXTERN(int) git_odb_backend_one_pack(
84
- git_odb_backend **out,
85
- const char *index_file);
86
- #endif
87
-
88
44
  typedef enum {
89
45
  GIT_ODB_BACKEND_LOOSE_FSYNC = (1 << 0)
90
46
  } git_odb_backend_loose_flag_t;
@@ -118,30 +74,100 @@ typedef struct {
118
74
  git_oid_t oid_type;
119
75
  } git_odb_backend_loose_options;
120
76
 
121
- /* The current version of the diff options structure */
77
+ /** The current version of the diff options structure */
122
78
  #define GIT_ODB_BACKEND_LOOSE_OPTIONS_VERSION 1
123
79
 
124
- /* Stack initializer for odb loose backend options. Alternatively use
80
+ /**
81
+ * Stack initializer for odb loose backend options. Alternatively use
125
82
  * `git_odb_backend_loose_options_init` programmatic initialization.
126
83
  */
127
84
  #define GIT_ODB_BACKEND_LOOSE_OPTIONS_INIT \
128
85
  { GIT_ODB_BACKEND_LOOSE_OPTIONS_VERSION, 0, -1 }
129
86
 
87
+ /*
88
+ * Constructors for in-box ODB backends.
89
+ */
90
+
91
+ #ifdef GIT_EXPERIMENTAL_SHA256
92
+
93
+ /**
94
+ * Create a backend for a directory containing packfiles.
95
+ *
96
+ * @param[out] out location to store the odb backend pointer
97
+ * @param objects_dir the Git repository's objects directory
98
+ * @param opts the options to use when creating the pack backend
99
+ * @return 0 or an error code
100
+ */
101
+ GIT_EXTERN(int) git_odb_backend_pack(
102
+ git_odb_backend **out,
103
+ const char *objects_dir,
104
+ const git_odb_backend_pack_options *opts);
105
+
106
+ /**
107
+ * Create a backend for a single packfile.
108
+ *
109
+ * @param[out] out location to store the odb backend pointer
110
+ * @param index_file path to the packfile's .idx file
111
+ * @param opts the options to use when creating the pack backend
112
+ * @return 0 or an error code
113
+ */
114
+ GIT_EXTERN(int) git_odb_backend_one_pack(
115
+ git_odb_backend **out,
116
+ const char *index_file,
117
+ const git_odb_backend_pack_options *opts);
118
+
130
119
  /**
131
120
  * Create a backend for loose objects
132
121
  *
133
- * @param out location to store the odb backend pointer
122
+ * @param[out] out location to store the odb backend pointer
134
123
  * @param objects_dir the Git repository's objects directory
135
124
  * @param opts options for the loose object backend or NULL
136
125
  *
137
126
  * @return 0 or an error code
138
127
  */
139
- #ifdef GIT_EXPERIMENTAL_SHA256
140
128
  GIT_EXTERN(int) git_odb_backend_loose(
141
129
  git_odb_backend **out,
142
130
  const char *objects_dir,
143
131
  git_odb_backend_loose_options *opts);
132
+
144
133
  #else
134
+
135
+ /**
136
+ * Create a backend for a directory containing packfiles.
137
+ *
138
+ * @param[out] out location to store the odb backend pointer
139
+ * @param objects_dir the Git repository's objects directory
140
+ * @return 0 or an error code
141
+ */
142
+ GIT_EXTERN(int) git_odb_backend_pack(
143
+ git_odb_backend **out,
144
+ const char *objects_dir);
145
+
146
+ /**
147
+ * Create a backend out of a single packfile
148
+ *
149
+ * This can be useful for inspecting the contents of a single
150
+ * packfile.
151
+ *
152
+ * @param[out] out location to store the odb backend pointer
153
+ * @param index_file path to the packfile's .idx file
154
+ * @return 0 or an error code
155
+ */
156
+ GIT_EXTERN(int) git_odb_backend_one_pack(
157
+ git_odb_backend **out,
158
+ const char *index_file);
159
+
160
+ /**
161
+ * Create a backend for loose objects
162
+ *
163
+ * @param[out] out location to store the odb backend pointer
164
+ * @param objects_dir the Git repository's objects directory
165
+ * @param compression_level zlib compression level (0-9), or -1 for the default
166
+ * @param do_fsync if non-zero, perform an fsync on write
167
+ * @param dir_mode permission to use when creating directories, or 0 for default
168
+ * @param file_mode permission to use when creating directories, or 0 for default
169
+ * @return 0 or an error code
170
+ */
145
171
  GIT_EXTERN(int) git_odb_backend_loose(
146
172
  git_odb_backend **out,
147
173
  const char *objects_dir,
@@ -149,6 +175,7 @@ GIT_EXTERN(int) git_odb_backend_loose(
149
175
  int do_fsync,
150
176
  unsigned int dir_mode,
151
177
  unsigned int file_mode);
178
+
152
179
  #endif
153
180
 
154
181
  /** Streaming mode */
@@ -218,6 +245,7 @@ struct git_odb_writepack {
218
245
  void GIT_CALLBACK(free)(git_odb_writepack *writepack);
219
246
  };
220
247
 
248
+ /** @} */
221
249
  GIT_END_DECL
222
250
 
223
251
  #endif
@@ -13,7 +13,7 @@
13
13
 
14
14
  /**
15
15
  * @file git2/oid.h
16
- * @brief Git object id routines
16
+ * @brief Object IDs
17
17
  * @defgroup git_oid Git object id routines
18
18
  * @ingroup Git
19
19
  * @{
@@ -82,13 +82,18 @@ typedef enum {
82
82
 
83
83
  #endif
84
84
 
85
- /* Maximum possible object ID size in raw / hex string format. */
86
- #ifndef GIT_EXPERIMENTAL_SHA256
87
- # define GIT_OID_MAX_SIZE GIT_OID_SHA1_SIZE
88
- # define GIT_OID_MAX_HEXSIZE GIT_OID_SHA1_HEXSIZE
89
- #else
85
+ /** Maximum possible object ID size in raw format */
86
+ #ifdef GIT_EXPERIMENTAL_SHA256
90
87
  # define GIT_OID_MAX_SIZE GIT_OID_SHA256_SIZE
88
+ #else
89
+ # define GIT_OID_MAX_SIZE GIT_OID_SHA1_SIZE
90
+ #endif
91
+
92
+ /** Maximum possible object ID size in hex format */
93
+ #ifdef GIT_EXPERIMENTAL_SHA256
91
94
  # define GIT_OID_MAX_HEXSIZE GIT_OID_SHA256_HEXSIZE
95
+ #else
96
+ # define GIT_OID_MAX_HEXSIZE GIT_OID_SHA1_HEXSIZE
92
97
  #endif
93
98
 
94
99
  /** Minimum length (in number of hex characters,
@@ -107,6 +112,15 @@ typedef struct git_oid {
107
112
  unsigned char id[GIT_OID_MAX_SIZE];
108
113
  } git_oid;
109
114
 
115
+ #ifdef GIT_EXPERIMENTAL_SHA256
116
+
117
+ GIT_EXTERN(int) git_oid_fromstr(git_oid *out, const char *str, git_oid_t type);
118
+ GIT_EXTERN(int) git_oid_fromstrp(git_oid *out, const char *str, git_oid_t type);
119
+ GIT_EXTERN(int) git_oid_fromstrn(git_oid *out, const char *str, size_t length, git_oid_t type);
120
+ GIT_EXTERN(int) git_oid_fromraw(git_oid *out, const unsigned char *raw, git_oid_t type);
121
+
122
+ #else
123
+
110
124
  /**
111
125
  * Parse a hex formatted object id into a git_oid.
112
126
  *
@@ -119,28 +133,18 @@ typedef struct git_oid {
119
133
  * the hex sequence and have at least the number of bytes
120
134
  * needed for an oid encoded in hex (40 bytes for sha1,
121
135
  * 256 bytes for sha256).
122
- * @param type the type of object id
123
136
  * @return 0 or an error code
124
137
  */
125
- #ifdef GIT_EXPERIMENTAL_SHA256
126
- GIT_EXTERN(int) git_oid_fromstr(git_oid *out, const char *str, git_oid_t type);
127
- #else
128
138
  GIT_EXTERN(int) git_oid_fromstr(git_oid *out, const char *str);
129
- #endif
130
139
 
131
140
  /**
132
141
  * Parse a hex formatted NUL-terminated string into a git_oid.
133
142
  *
134
143
  * @param out oid structure the result is written into.
135
144
  * @param str input hex string; must be null-terminated.
136
- * @param type the type of object id
137
145
  * @return 0 or an error code
138
146
  */
139
- #ifdef GIT_EXPERIMENTAL_SHA256
140
- GIT_EXTERN(int) git_oid_fromstrp(git_oid *out, const char *str, git_oid_t type);
141
- #else
142
147
  GIT_EXTERN(int) git_oid_fromstrp(git_oid *out, const char *str);
143
- #endif
144
148
 
145
149
  /**
146
150
  * Parse N characters of a hex formatted object id into a git_oid.
@@ -151,14 +155,9 @@ GIT_EXTERN(int) git_oid_fromstrp(git_oid *out, const char *str);
151
155
  * @param out oid structure the result is written into.
152
156
  * @param str input hex string of at least size `length`
153
157
  * @param length length of the input string
154
- * @param type the type of object id
155
158
  * @return 0 or an error code
156
159
  */
157
- #ifdef GIT_EXPERIMENTAL_SHA256
158
- GIT_EXTERN(int) git_oid_fromstrn(git_oid *out, const char *str, size_t length, git_oid_t type);
159
- #else
160
160
  GIT_EXTERN(int) git_oid_fromstrn(git_oid *out, const char *str, size_t length);
161
- #endif
162
161
 
163
162
  /**
164
163
  * Copy an already raw oid into a git_oid structure.
@@ -167,10 +166,8 @@ GIT_EXTERN(int) git_oid_fromstrn(git_oid *out, const char *str, size_t length);
167
166
  * @param raw the raw input bytes to be copied.
168
167
  * @return 0 on success or error code
169
168
  */
170
- #ifdef GIT_EXPERIMENTAL_SHA256
171
- GIT_EXTERN(int) git_oid_fromraw(git_oid *out, const unsigned char *raw, git_oid_t type);
172
- #else
173
169
  GIT_EXTERN(int) git_oid_fromraw(git_oid *out, const unsigned char *raw);
170
+
174
171
  #endif
175
172
 
176
173
  /**
@@ -225,7 +222,7 @@ GIT_EXTERN(int) git_oid_pathfmt(char *out, const git_oid *id);
225
222
  * concurrent calls of the function.
226
223
  *
227
224
  * @param oid The oid structure to format
228
- * @return the c-string
225
+ * @return the c-string or NULL on failure
229
226
  */
230
227
  GIT_EXTERN(char *) git_oid_tostr_s(const git_oid *oid);
231
228
 
@@ -310,6 +307,7 @@ GIT_EXTERN(int) git_oid_strcmp(const git_oid *id, const char *str);
310
307
  /**
311
308
  * Check is an oid is all zeros.
312
309
  *
310
+ * @param id the object ID to check
313
311
  * @return 1 if all zeros, 0 otherwise.
314
312
  */
315
313
  GIT_EXTERN(int) git_oid_is_zero(const git_oid *id);
@@ -370,4 +368,5 @@ GIT_EXTERN(void) git_oid_shorten_free(git_oid_shorten *os);
370
368
 
371
369
  /** @} */
372
370
  GIT_END_DECL
371
+
373
372
  #endif
@@ -10,6 +10,13 @@
10
10
  #include "common.h"
11
11
  #include "oid.h"
12
12
 
13
+ /**
14
+ * @file git2/oidarray.h
15
+ * @brief An array of object IDs
16
+ * @defgroup git_oidarray Arrays of object IDs
17
+ * @ingroup Git
18
+ * @{
19
+ */
13
20
  GIT_BEGIN_DECL
14
21
 
15
22
  /** Array of object ids */
@@ -34,4 +41,3 @@ GIT_EXTERN(void) git_oidarray_dispose(git_oidarray *array);
34
41
  GIT_END_DECL
35
42
 
36
43
  #endif
37
-
@@ -233,7 +233,15 @@ GIT_EXTERN(size_t) git_packbuilder_object_count(git_packbuilder *pb);
233
233
  */
234
234
  GIT_EXTERN(size_t) git_packbuilder_written(git_packbuilder *pb);
235
235
 
236
- /** Packbuilder progress notification function */
236
+ /**
237
+ * Packbuilder progress notification function.
238
+ *
239
+ * @param stage the stage of the packbuilder
240
+ * @param current the current object
241
+ * @param total the total number of objects
242
+ * @param payload the callback payload
243
+ * @return 0 on success or an error code
244
+ */
237
245
  typedef int GIT_CALLBACK(git_packbuilder_progress)(
238
246
  int stage,
239
247
  uint32_t current,
@@ -247,6 +255,9 @@ typedef int GIT_CALLBACK(git_packbuilder_progress)(
247
255
  * @param progress_cb Function to call with progress information during
248
256
  * pack building. Be aware that this is called inline with pack building
249
257
  * operations, so performance may be affected.
258
+ * When progress_cb returns an error, the pack building process will be
259
+ * aborted and the error will be returned from the invoked function.
260
+ * `pb` must then be freed.
250
261
  * @param progress_cb_payload Payload for progress callback.
251
262
  * @return 0 or an error code
252
263
  */
@@ -264,4 +275,5 @@ GIT_EXTERN(void) git_packbuilder_free(git_packbuilder *pb);
264
275
 
265
276
  /** @} */
266
277
  GIT_END_DECL
278
+
267
279
  #endif
@@ -14,7 +14,7 @@
14
14
 
15
15
  /**
16
16
  * @file git2/patch.h
17
- * @brief Patch handling routines.
17
+ * @brief Patches store the textual diffs in a delta
18
18
  * @ingroup Git
19
19
  * @{
20
20
  */
@@ -283,8 +283,7 @@ GIT_EXTERN(int) git_patch_to_buf(
283
283
  git_buf *out,
284
284
  git_patch *patch);
285
285
 
286
- GIT_END_DECL
287
-
288
286
  /**@}*/
287
+ GIT_END_DECL
289
288
 
290
289
  #endif