rugged 1.3.2 → 1.6.2

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 (547) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +34 -2
  3. data/ext/rugged/extconf.rb +7 -4
  4. data/ext/rugged/rugged.c +16 -0
  5. data/ext/rugged/rugged.h +4 -0
  6. data/ext/rugged/rugged_blame.c +2 -0
  7. data/ext/rugged/rugged_blob.c +3 -0
  8. data/ext/rugged/rugged_commit.c +1 -0
  9. data/ext/rugged/rugged_config.c +9 -2
  10. data/ext/rugged/rugged_diff.c +1 -0
  11. data/ext/rugged/rugged_index.c +2 -0
  12. data/ext/rugged/rugged_patch.c +1 -0
  13. data/ext/rugged/rugged_rebase.c +1 -0
  14. data/ext/rugged/rugged_reference.c +1 -0
  15. data/ext/rugged/rugged_remote.c +28 -10
  16. data/ext/rugged/rugged_repo.c +7 -9
  17. data/ext/rugged/rugged_revwalk.c +5 -1
  18. data/ext/rugged/rugged_settings.c +5 -0
  19. data/ext/rugged/rugged_submodule.c +1 -0
  20. data/ext/rugged/rugged_tag.c +1 -0
  21. data/ext/rugged/rugged_tree.c +4 -0
  22. data/lib/rugged/index.rb +1 -1
  23. data/lib/rugged/tree.rb +5 -1
  24. data/lib/rugged/version.rb +1 -1
  25. data/vendor/libgit2/CMakeLists.txt +132 -288
  26. data/vendor/libgit2/COPYING +106 -19
  27. data/vendor/libgit2/cmake/AddCFlagIfSupported.cmake +21 -21
  28. data/vendor/libgit2/cmake/AddClarTest.cmake +7 -0
  29. data/vendor/libgit2/cmake/DefaultCFlags.cmake +154 -0
  30. data/vendor/libgit2/cmake/EnableWarnings.cmake +13 -13
  31. data/vendor/libgit2/cmake/ExperimentalFeatures.cmake +23 -0
  32. data/vendor/libgit2/cmake/FindCoreFoundation.cmake +13 -13
  33. data/vendor/libgit2/cmake/FindGSSAPI.cmake +171 -287
  34. data/vendor/libgit2/cmake/FindGSSFramework.cmake +13 -13
  35. data/vendor/libgit2/cmake/{FindHTTP_Parser.cmake → FindHTTPParser.cmake} +17 -17
  36. data/vendor/libgit2/cmake/FindIconv.cmake +27 -27
  37. data/vendor/libgit2/cmake/FindLibSSH2.cmake +5 -5
  38. data/vendor/libgit2/cmake/FindPCRE.cmake +12 -13
  39. data/vendor/libgit2/cmake/FindPCRE2.cmake +12 -12
  40. data/vendor/libgit2/cmake/FindPkgLibraries.cmake +19 -19
  41. data/vendor/libgit2/cmake/FindSecurity.cmake +14 -14
  42. data/vendor/libgit2/cmake/FindStatNsec.cmake +12 -18
  43. data/vendor/libgit2/cmake/Findfutimens.cmake +8 -8
  44. data/vendor/libgit2/cmake/FindmbedTLS.cmake +63 -70
  45. data/vendor/libgit2/cmake/IdeSplitSources.cmake +18 -18
  46. data/vendor/libgit2/cmake/PkgBuildConfig.cmake +60 -60
  47. data/vendor/libgit2/cmake/SanitizeBool.cmake +20 -20
  48. data/vendor/libgit2/cmake/SelectGSSAPI.cmake +37 -37
  49. data/vendor/libgit2/cmake/SelectHTTPParser.cmake +19 -0
  50. data/vendor/libgit2/cmake/SelectHTTPSBackend.cmake +100 -100
  51. data/vendor/libgit2/cmake/SelectHashes.cmake +91 -53
  52. data/vendor/libgit2/cmake/SelectRegex.cmake +51 -0
  53. data/vendor/libgit2/cmake/SelectSSH.cmake +41 -0
  54. data/vendor/libgit2/cmake/SelectWinHTTP.cmake +17 -0
  55. data/vendor/libgit2/cmake/SelectZlib.cmake +34 -0
  56. data/vendor/libgit2/deps/chromium-zlib/CMakeLists.txt +6 -6
  57. data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +33 -31
  58. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +3 -1
  59. data/vendor/libgit2/deps/ntlmclient/ntlm.c +4 -4
  60. data/vendor/libgit2/deps/ntlmclient/ntlm.h +4 -4
  61. data/vendor/libgit2/deps/ntlmclient/ntlmclient.h +2 -2
  62. data/vendor/libgit2/deps/pcre/CMakeLists.txt +88 -88
  63. data/vendor/libgit2/deps/winhttp/CMakeLists.txt +14 -16
  64. data/vendor/libgit2/deps/zlib/adler32.c +7 -0
  65. data/vendor/libgit2/deps/zlib/crc32.c +975 -288
  66. data/vendor/libgit2/deps/zlib/crc32.h +9441 -436
  67. data/vendor/libgit2/deps/zlib/deflate.c +83 -31
  68. data/vendor/libgit2/deps/zlib/deflate.h +12 -15
  69. data/vendor/libgit2/deps/zlib/gzguts.h +3 -2
  70. data/vendor/libgit2/deps/zlib/infback.c +2 -1
  71. data/vendor/libgit2/deps/zlib/inffast.c +14 -14
  72. data/vendor/libgit2/deps/zlib/inflate.c +39 -8
  73. data/vendor/libgit2/deps/zlib/inflate.h +3 -2
  74. data/vendor/libgit2/deps/zlib/inftrees.c +3 -3
  75. data/vendor/libgit2/deps/zlib/trees.c +27 -48
  76. data/vendor/libgit2/deps/zlib/zlib.h +126 -100
  77. data/vendor/libgit2/deps/zlib/zutil.c +2 -2
  78. data/vendor/libgit2/deps/zlib/zutil.h +12 -9
  79. data/vendor/libgit2/include/git2/apply.h +16 -2
  80. data/vendor/libgit2/include/git2/attr.h +11 -2
  81. data/vendor/libgit2/include/git2/blame.h +4 -1
  82. data/vendor/libgit2/include/git2/blob.h +14 -1
  83. data/vendor/libgit2/include/git2/branch.h +4 -2
  84. data/vendor/libgit2/include/git2/buffer.h +18 -78
  85. data/vendor/libgit2/include/git2/cert.h +2 -2
  86. data/vendor/libgit2/include/git2/checkout.h +5 -2
  87. data/vendor/libgit2/include/git2/clone.h +3 -3
  88. data/vendor/libgit2/include/git2/commit.h +2 -0
  89. data/vendor/libgit2/include/git2/common.h +28 -7
  90. data/vendor/libgit2/include/git2/config.h +25 -9
  91. data/vendor/libgit2/include/git2/credential.h +2 -1
  92. data/vendor/libgit2/include/git2/credential_helpers.h +1 -0
  93. data/vendor/libgit2/include/git2/deprecated.h +9 -1
  94. data/vendor/libgit2/include/git2/describe.h +7 -2
  95. data/vendor/libgit2/include/git2/diff.h +18 -10
  96. data/vendor/libgit2/include/git2/email.h +1 -1
  97. data/vendor/libgit2/include/git2/errors.h +17 -3
  98. data/vendor/libgit2/include/git2/experimental.h +20 -0
  99. data/vendor/libgit2/include/git2/filter.h +7 -2
  100. data/vendor/libgit2/include/git2/graph.h +1 -0
  101. data/vendor/libgit2/include/git2/ignore.h +1 -1
  102. data/vendor/libgit2/include/git2/index.h +11 -5
  103. data/vendor/libgit2/include/git2/indexer.h +48 -0
  104. data/vendor/libgit2/include/git2/merge.h +24 -4
  105. data/vendor/libgit2/include/git2/message.h +2 -0
  106. data/vendor/libgit2/include/git2/object.h +49 -0
  107. data/vendor/libgit2/include/git2/odb.h +94 -13
  108. data/vendor/libgit2/include/git2/odb_backend.h +107 -19
  109. data/vendor/libgit2/include/git2/oid.h +115 -15
  110. data/vendor/libgit2/include/git2/pack.h +24 -8
  111. data/vendor/libgit2/include/git2/patch.h +8 -0
  112. data/vendor/libgit2/include/git2/pathspec.h +1 -1
  113. data/vendor/libgit2/include/git2/proxy.h +1 -1
  114. data/vendor/libgit2/include/git2/rebase.h +9 -1
  115. data/vendor/libgit2/include/git2/refdb.h +3 -0
  116. data/vendor/libgit2/include/git2/reflog.h +1 -1
  117. data/vendor/libgit2/include/git2/refs.h +2 -2
  118. data/vendor/libgit2/include/git2/remote.h +184 -37
  119. data/vendor/libgit2/include/git2/repository.h +34 -10
  120. data/vendor/libgit2/include/git2/reset.h +2 -2
  121. data/vendor/libgit2/include/git2/revparse.h +1 -1
  122. data/vendor/libgit2/include/git2/revwalk.h +4 -1
  123. data/vendor/libgit2/include/git2/signature.h +1 -1
  124. data/vendor/libgit2/include/git2/stash.h +61 -7
  125. data/vendor/libgit2/include/git2/status.h +14 -5
  126. data/vendor/libgit2/include/git2/strarray.h +0 -13
  127. data/vendor/libgit2/include/git2/submodule.h +7 -2
  128. data/vendor/libgit2/include/git2/sys/commit_graph.h +1 -1
  129. data/vendor/libgit2/include/git2/sys/odb_backend.h +3 -6
  130. data/vendor/libgit2/include/git2/sys/remote.h +46 -0
  131. data/vendor/libgit2/include/git2/sys/stream.h +1 -1
  132. data/vendor/libgit2/include/git2/sys/transport.h +46 -39
  133. data/vendor/libgit2/include/git2/tag.h +1 -0
  134. data/vendor/libgit2/include/git2/tree.h +4 -3
  135. data/vendor/libgit2/include/git2/types.h +7 -7
  136. data/vendor/libgit2/include/git2/version.h +27 -6
  137. data/vendor/libgit2/include/git2/worktree.h +12 -2
  138. data/vendor/libgit2/include/git2.h +1 -0
  139. data/vendor/libgit2/src/CMakeLists.txt +177 -419
  140. data/vendor/libgit2/src/README.md +12 -0
  141. data/vendor/libgit2/src/cli/CMakeLists.txt +57 -0
  142. data/vendor/libgit2/src/cli/README.md +26 -0
  143. data/vendor/libgit2/src/cli/cli.h +20 -0
  144. data/vendor/libgit2/src/cli/cmd.c +21 -0
  145. data/vendor/libgit2/src/cli/cmd.h +33 -0
  146. data/vendor/libgit2/src/cli/cmd_cat_file.c +204 -0
  147. data/vendor/libgit2/src/cli/cmd_clone.c +176 -0
  148. data/vendor/libgit2/src/cli/cmd_hash_object.c +154 -0
  149. data/vendor/libgit2/src/cli/cmd_help.c +86 -0
  150. data/vendor/libgit2/src/cli/error.h +51 -0
  151. data/vendor/libgit2/src/cli/main.c +106 -0
  152. data/vendor/libgit2/src/cli/opt.c +669 -0
  153. data/vendor/libgit2/src/cli/opt.h +349 -0
  154. data/vendor/libgit2/src/cli/opt_usage.c +194 -0
  155. data/vendor/libgit2/src/cli/opt_usage.h +35 -0
  156. data/vendor/libgit2/src/cli/progress.c +345 -0
  157. data/vendor/libgit2/src/cli/progress.h +117 -0
  158. data/vendor/libgit2/src/cli/sighandler.h +20 -0
  159. data/vendor/libgit2/src/cli/unix/sighandler.c +36 -0
  160. data/vendor/libgit2/src/cli/win32/precompiled.h +3 -0
  161. data/vendor/libgit2/src/cli/win32/sighandler.c +37 -0
  162. data/vendor/libgit2/src/libgit2/CMakeLists.txt +141 -0
  163. data/vendor/libgit2/src/{annotated_commit.c → libgit2/annotated_commit.c} +1 -1
  164. data/vendor/libgit2/src/{annotated_commit.h → libgit2/annotated_commit.h} +2 -2
  165. data/vendor/libgit2/src/{apply.c → libgit2/apply.c} +18 -18
  166. data/vendor/libgit2/src/{apply.h → libgit2/apply.h} +2 -2
  167. data/vendor/libgit2/src/{attr.c → libgit2/attr.c} +18 -18
  168. data/vendor/libgit2/src/{attr_file.c → libgit2/attr_file.c} +18 -18
  169. data/vendor/libgit2/src/{attr_file.h → libgit2/attr_file.h} +4 -4
  170. data/vendor/libgit2/src/{attrcache.c → libgit2/attrcache.c} +18 -13
  171. data/vendor/libgit2/src/{blame.c → libgit2/blame.c} +2 -0
  172. data/vendor/libgit2/src/{blame_git.c → libgit2/blame_git.c} +1 -1
  173. data/vendor/libgit2/src/{blob.c → libgit2/blob.c} +38 -29
  174. data/vendor/libgit2/src/{blob.h → libgit2/blob.h} +3 -3
  175. data/vendor/libgit2/src/{branch.c → libgit2/branch.c} +164 -118
  176. data/vendor/libgit2/src/{branch.h → libgit2/branch.h} +15 -3
  177. data/vendor/libgit2/src/libgit2/buf.c +126 -0
  178. data/vendor/libgit2/src/libgit2/buf.h +50 -0
  179. data/vendor/libgit2/src/{checkout.c → libgit2/checkout.c} +74 -68
  180. data/vendor/libgit2/src/{cherrypick.c → libgit2/cherrypick.c} +13 -13
  181. data/vendor/libgit2/src/{clone.c → libgit2/clone.c} +96 -67
  182. data/vendor/libgit2/src/{commit.c → libgit2/commit.c} +178 -73
  183. data/vendor/libgit2/src/libgit2/commit.h +87 -0
  184. data/vendor/libgit2/src/{commit_graph.c → libgit2/commit_graph.c} +122 -89
  185. data/vendor/libgit2/src/{commit_graph.h → libgit2/commit_graph.h} +14 -4
  186. data/vendor/libgit2/src/{commit_list.c → libgit2/commit_list.c} +7 -4
  187. data/vendor/libgit2/src/libgit2/common.h +55 -0
  188. data/vendor/libgit2/src/{config.c → libgit2/config.c} +101 -69
  189. data/vendor/libgit2/src/{config.h → libgit2/config.h} +15 -2
  190. data/vendor/libgit2/src/{config_file.c → libgit2/config_file.c} +105 -93
  191. data/vendor/libgit2/src/{config_mem.c → libgit2/config_mem.c} +9 -9
  192. data/vendor/libgit2/src/{config_parse.c → libgit2/config_parse.c} +27 -23
  193. data/vendor/libgit2/src/{crlf.c → libgit2/crlf.c} +24 -21
  194. data/vendor/libgit2/src/{describe.c → libgit2/describe.c} +35 -27
  195. data/vendor/libgit2/src/{diff.c → libgit2/diff.c} +30 -9
  196. data/vendor/libgit2/src/{diff.h → libgit2/diff.h} +2 -4
  197. data/vendor/libgit2/src/{diff_driver.c → libgit2/diff_driver.c} +34 -36
  198. data/vendor/libgit2/src/{diff_driver.h → libgit2/diff_driver.h} +3 -3
  199. data/vendor/libgit2/src/{diff_file.c → libgit2/diff_file.c} +44 -26
  200. data/vendor/libgit2/src/{diff_generate.c → libgit2/diff_generate.c} +47 -18
  201. data/vendor/libgit2/src/{diff_generate.h → libgit2/diff_generate.h} +5 -3
  202. data/vendor/libgit2/src/{diff_print.c → libgit2/diff_print.c} +112 -100
  203. data/vendor/libgit2/src/{diff_stats.c → libgit2/diff_stats.c} +40 -29
  204. data/vendor/libgit2/src/libgit2/diff_stats.h +18 -0
  205. data/vendor/libgit2/src/{diff_tform.c → libgit2/diff_tform.c} +13 -8
  206. data/vendor/libgit2/src/{diff_xdiff.c → libgit2/diff_xdiff.c} +4 -8
  207. data/vendor/libgit2/src/{email.c → libgit2/email.c} +55 -39
  208. data/vendor/libgit2/src/{email.h → libgit2/email.h} +1 -1
  209. data/vendor/libgit2/src/{errors.c → libgit2/errors.c} +18 -18
  210. data/vendor/libgit2/src/{errors.h → libgit2/errors.h} +1 -2
  211. data/vendor/libgit2/src/libgit2/experimental.h.in +13 -0
  212. data/vendor/libgit2/src/{fetch.c → libgit2/fetch.c} +72 -27
  213. data/vendor/libgit2/src/{fetch.h → libgit2/fetch.h} +1 -1
  214. data/vendor/libgit2/src/{fetchhead.c → libgit2/fetchhead.c} +23 -23
  215. data/vendor/libgit2/src/{filter.c → libgit2/filter.c} +127 -53
  216. data/vendor/libgit2/src/{filter.h → libgit2/filter.h} +26 -5
  217. data/vendor/libgit2/src/{ident.c → libgit2/ident.c} +20 -20
  218. data/vendor/libgit2/src/{ignore.c → libgit2/ignore.c} +35 -34
  219. data/vendor/libgit2/src/{ignore.h → libgit2/ignore.h} +2 -2
  220. data/vendor/libgit2/src/{index.c → libgit2/index.c} +91 -90
  221. data/vendor/libgit2/src/{index.h → libgit2/index.h} +6 -3
  222. data/vendor/libgit2/src/{indexer.c → libgit2/indexer.c} +173 -92
  223. data/vendor/libgit2/src/{iterator.c → libgit2/iterator.c} +71 -61
  224. data/vendor/libgit2/src/{iterator.h → libgit2/iterator.h} +5 -5
  225. data/vendor/libgit2/src/{libgit2.c → libgit2/libgit2.c} +46 -11
  226. data/vendor/libgit2/src/{mailmap.c → libgit2/mailmap.c} +38 -36
  227. data/vendor/libgit2/src/{merge.c → libgit2/merge.c} +30 -30
  228. data/vendor/libgit2/src/{merge.h → libgit2/merge.h} +1 -14
  229. data/vendor/libgit2/src/{merge_driver.c → libgit2/merge_driver.c} +2 -2
  230. data/vendor/libgit2/src/{merge_file.c → libgit2/merge_file.c} +13 -3
  231. data/vendor/libgit2/src/{message.c → libgit2/message.c} +21 -10
  232. data/vendor/libgit2/src/{midx.c → libgit2/midx.c} +112 -92
  233. data/vendor/libgit2/src/{midx.h → libgit2/midx.h} +5 -4
  234. data/vendor/libgit2/src/{mwindow.c → libgit2/mwindow.c} +15 -12
  235. data/vendor/libgit2/src/{mwindow.h → libgit2/mwindow.h} +5 -2
  236. data/vendor/libgit2/src/{netops.c → libgit2/netops.c} +1 -2
  237. data/vendor/libgit2/src/{netops.h → libgit2/netops.h} +1 -1
  238. data/vendor/libgit2/src/{notes.c → libgit2/notes.c} +25 -34
  239. data/vendor/libgit2/src/{object.c → libgit2/object.c} +135 -30
  240. data/vendor/libgit2/src/{object.h → libgit2/object.h} +12 -3
  241. data/vendor/libgit2/src/{odb.c → libgit2/odb.c} +228 -81
  242. data/vendor/libgit2/src/{odb.h → libgit2/odb.h} +44 -5
  243. data/vendor/libgit2/src/{odb_loose.c → libgit2/odb_loose.c} +192 -134
  244. data/vendor/libgit2/src/{odb_mempack.c → libgit2/odb_mempack.c} +18 -5
  245. data/vendor/libgit2/src/{odb_pack.c → libgit2/odb_pack.c} +137 -85
  246. data/vendor/libgit2/src/{oid.c → libgit2/oid.c} +136 -90
  247. data/vendor/libgit2/src/libgit2/oid.h +273 -0
  248. data/vendor/libgit2/src/{oidmap.c → libgit2/oidmap.c} +1 -1
  249. data/vendor/libgit2/src/{pack-objects.c → libgit2/pack-objects.c} +56 -30
  250. data/vendor/libgit2/src/{pack-objects.h → libgit2/pack-objects.h} +11 -6
  251. data/vendor/libgit2/src/{pack.c → libgit2/pack.c} +114 -84
  252. data/vendor/libgit2/src/{pack.h → libgit2/pack.h} +31 -16
  253. data/vendor/libgit2/src/{parse.c → libgit2/parse.c} +4 -3
  254. data/vendor/libgit2/src/{patch.c → libgit2/patch.c} +3 -3
  255. data/vendor/libgit2/src/{patch.h → libgit2/patch.h} +1 -0
  256. data/vendor/libgit2/src/{patch_generate.c → libgit2/patch_generate.c} +27 -11
  257. data/vendor/libgit2/src/{patch_generate.h → libgit2/patch_generate.h} +5 -5
  258. data/vendor/libgit2/src/{patch_parse.c → libgit2/patch_parse.c} +29 -29
  259. data/vendor/libgit2/src/libgit2/path.c +375 -0
  260. data/vendor/libgit2/src/libgit2/path.h +68 -0
  261. data/vendor/libgit2/src/{pathspec.c → libgit2/pathspec.c} +6 -6
  262. data/vendor/libgit2/src/{pathspec.h → libgit2/pathspec.h} +2 -2
  263. data/vendor/libgit2/src/{proxy.c → libgit2/proxy.c} +4 -1
  264. data/vendor/libgit2/src/{proxy.h → libgit2/proxy.h} +1 -1
  265. data/vendor/libgit2/src/{push.c → libgit2/push.c} +43 -38
  266. data/vendor/libgit2/src/{push.h → libgit2/push.h} +4 -16
  267. data/vendor/libgit2/src/{reader.c → libgit2/reader.c} +9 -9
  268. data/vendor/libgit2/src/{reader.h → libgit2/reader.h} +2 -2
  269. data/vendor/libgit2/src/{rebase.c → libgit2/rebase.c} +119 -107
  270. data/vendor/libgit2/src/{refdb_fs.c → libgit2/refdb_fs.c} +506 -197
  271. data/vendor/libgit2/src/{reflog.c → libgit2/reflog.c} +7 -5
  272. data/vendor/libgit2/src/{reflog.h → libgit2/reflog.h} +1 -2
  273. data/vendor/libgit2/src/{refs.c → libgit2/refs.c} +34 -32
  274. data/vendor/libgit2/src/{refs.h → libgit2/refs.h} +2 -2
  275. data/vendor/libgit2/src/{refspec.c → libgit2/refspec.c} +32 -37
  276. data/vendor/libgit2/src/{refspec.h → libgit2/refspec.h} +5 -2
  277. data/vendor/libgit2/src/{remote.c → libgit2/remote.c} +718 -420
  278. data/vendor/libgit2/src/libgit2/remote.h +100 -0
  279. data/vendor/libgit2/src/{repository.c → libgit2/repository.c} +629 -386
  280. data/vendor/libgit2/src/{repository.h → libgit2/repository.h} +20 -9
  281. data/vendor/libgit2/src/{reset.c → libgit2/reset.c} +8 -5
  282. data/vendor/libgit2/src/{revert.c → libgit2/revert.c} +14 -14
  283. data/vendor/libgit2/src/{revparse.c → libgit2/revparse.c} +71 -42
  284. data/vendor/libgit2/src/{revwalk.c → libgit2/revwalk.c} +12 -8
  285. data/vendor/libgit2/src/{signature.c → libgit2/signature.c} +12 -6
  286. data/vendor/libgit2/src/{signature.h → libgit2/signature.h} +1 -1
  287. data/vendor/libgit2/src/{stash.c → libgit2/stash.c} +235 -61
  288. data/vendor/libgit2/src/{status.c → libgit2/status.c} +4 -1
  289. data/vendor/libgit2/src/{strarray.c → libgit2/strarray.c} +1 -0
  290. data/vendor/libgit2/src/libgit2/strarray.h +25 -0
  291. data/vendor/libgit2/src/{streams → libgit2/streams}/mbedtls.c +8 -6
  292. data/vendor/libgit2/src/{streams → libgit2/streams}/openssl.c +1 -1
  293. data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_dynamic.c +7 -3
  294. data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_dynamic.h +3 -3
  295. data/vendor/libgit2/src/{streams → libgit2/streams}/socket.c +4 -1
  296. data/vendor/libgit2/src/{submodule.c → libgit2/submodule.c} +177 -161
  297. data/vendor/libgit2/src/{submodule.h → libgit2/submodule.h} +1 -1
  298. data/vendor/libgit2/src/libgit2/sysdir.c +650 -0
  299. data/vendor/libgit2/src/{sysdir.h → libgit2/sysdir.h} +53 -18
  300. data/vendor/libgit2/src/{tag.c → libgit2/tag.c} +73 -42
  301. data/vendor/libgit2/src/{tag.h → libgit2/tag.h} +2 -2
  302. data/vendor/libgit2/src/{threadstate.c → libgit2/threadstate.c} +3 -3
  303. data/vendor/libgit2/src/{threadstate.h → libgit2/threadstate.h} +2 -2
  304. data/vendor/libgit2/src/{trace.c → libgit2/trace.c} +1 -14
  305. data/vendor/libgit2/src/{trace.h → libgit2/trace.h} +5 -22
  306. data/vendor/libgit2/src/{trailer.c → libgit2/trailer.c} +1 -1
  307. data/vendor/libgit2/src/{transaction.c → libgit2/transaction.c} +1 -1
  308. data/vendor/libgit2/src/{transport.c → libgit2/transport.c} +10 -10
  309. data/vendor/libgit2/src/{transports → libgit2/transports}/auth.c +7 -9
  310. data/vendor/libgit2/src/{transports → libgit2/transports}/auth.h +2 -3
  311. data/vendor/libgit2/src/{transports → libgit2/transports}/auth_negotiate.c +12 -13
  312. data/vendor/libgit2/src/{transports → libgit2/transports}/auth_ntlm.c +10 -10
  313. data/vendor/libgit2/src/{transports → libgit2/transports}/auth_ntlm.h +0 -1
  314. data/vendor/libgit2/src/{transports → libgit2/transports}/git.c +9 -11
  315. data/vendor/libgit2/src/{transports → libgit2/transports}/http.c +41 -20
  316. data/vendor/libgit2/src/{transports → libgit2/transports}/http.h +2 -3
  317. data/vendor/libgit2/src/{transports → libgit2/transports}/httpclient.c +75 -66
  318. data/vendor/libgit2/src/{transports → libgit2/transports}/httpclient.h +10 -0
  319. data/vendor/libgit2/src/{transports → libgit2/transports}/local.c +138 -116
  320. data/vendor/libgit2/src/{transports → libgit2/transports}/smart.c +92 -133
  321. data/vendor/libgit2/src/{transports → libgit2/transports}/smart.h +35 -32
  322. data/vendor/libgit2/src/{transports → libgit2/transports}/smart_pkt.c +177 -65
  323. data/vendor/libgit2/src/{transports → libgit2/transports}/smart_protocol.c +97 -49
  324. data/vendor/libgit2/src/{transports → libgit2/transports}/ssh.c +365 -198
  325. data/vendor/libgit2/src/{transports → libgit2/transports}/winhttp.c +58 -59
  326. data/vendor/libgit2/src/{tree-cache.c → libgit2/tree-cache.c} +8 -8
  327. data/vendor/libgit2/src/{tree-cache.h → libgit2/tree-cache.h} +2 -2
  328. data/vendor/libgit2/src/{tree.c → libgit2/tree.c} +93 -83
  329. data/vendor/libgit2/src/{tree.h → libgit2/tree.h} +4 -4
  330. data/vendor/libgit2/src/{worktree.c → libgit2/worktree.c} +121 -94
  331. data/vendor/libgit2/src/{worktree.h → libgit2/worktree.h} +1 -1
  332. data/vendor/libgit2/src/libgit2/xdiff/git-xdiff.h +53 -0
  333. data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xdiff.h +15 -15
  334. data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xdiffi.c +134 -108
  335. data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xemit.c +23 -7
  336. data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xhistogram.c +87 -78
  337. data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xinclude.h +1 -12
  338. data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xmerge.c +104 -117
  339. data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xpatience.c +6 -17
  340. data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xprepare.c +15 -20
  341. data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xutils.c +18 -7
  342. data/vendor/libgit2/src/util/CMakeLists.txt +80 -0
  343. data/vendor/libgit2/src/{allocators → util/allocators}/failalloc.h +1 -1
  344. data/vendor/libgit2/src/{allocators → util/allocators}/stdalloc.h +1 -1
  345. data/vendor/libgit2/src/{allocators → util/allocators}/win32_leakcheck.h +1 -1
  346. data/vendor/libgit2/src/{array.h → util/array.h} +1 -1
  347. data/vendor/libgit2/src/{assert_safe.h → util/assert_safe.h} +16 -0
  348. data/vendor/libgit2/src/{cc-compat.h → util/cc-compat.h} +1 -1
  349. data/vendor/libgit2/src/{date.c → util/date.c} +14 -20
  350. data/vendor/libgit2/src/util/date.h +33 -0
  351. data/vendor/libgit2/src/{filebuf.c → util/filebuf.c} +29 -29
  352. data/vendor/libgit2/src/{filebuf.h → util/filebuf.h} +2 -2
  353. data/vendor/libgit2/src/{path.c → util/fs_path.c} +453 -647
  354. data/vendor/libgit2/src/{path.h → util/fs_path.h} +221 -188
  355. data/vendor/libgit2/src/{futils.c → util/futils.c} +135 -90
  356. data/vendor/libgit2/src/{futils.h → util/futils.h} +28 -15
  357. data/vendor/libgit2/src/{features.h.in → util/git2_features.h.in} +15 -1
  358. data/vendor/libgit2/src/{common.h → util/git2_util.h} +20 -59
  359. data/vendor/libgit2/src/util/hash/builtin.c +53 -0
  360. data/vendor/libgit2/src/{hash/sha1/openssl.h → util/hash/builtin.h} +6 -6
  361. data/vendor/libgit2/src/{hash/sha1 → util/hash}/collisiondetect.c +3 -3
  362. data/vendor/libgit2/src/{hash/sha1 → util/hash}/collisiondetect.h +3 -3
  363. data/vendor/libgit2/src/util/hash/common_crypto.c +112 -0
  364. data/vendor/libgit2/src/{hash/sha1 → util/hash}/common_crypto.h +11 -3
  365. data/vendor/libgit2/src/util/hash/mbedtls.c +92 -0
  366. data/vendor/libgit2/src/{hash/sha1 → util/hash}/mbedtls.h +14 -4
  367. data/vendor/libgit2/src/util/hash/openssl.c +195 -0
  368. data/vendor/libgit2/src/util/hash/openssl.h +45 -0
  369. data/vendor/libgit2/src/util/hash/rfc6234/sha.h +243 -0
  370. data/vendor/libgit2/src/util/hash/rfc6234/sha224-256.c +601 -0
  371. data/vendor/libgit2/src/util/hash/sha.h +70 -0
  372. data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/sha1.c +1 -1
  373. data/vendor/libgit2/src/util/hash/win32.c +549 -0
  374. data/vendor/libgit2/src/util/hash/win32.h +60 -0
  375. data/vendor/libgit2/src/util/hash.c +158 -0
  376. data/vendor/libgit2/src/util/hash.h +61 -0
  377. data/vendor/libgit2/src/{khash.h → util/khash.h} +1 -1
  378. data/vendor/libgit2/src/{map.h → util/map.h} +1 -1
  379. data/vendor/libgit2/src/util/net.c +1003 -0
  380. data/vendor/libgit2/src/{net.h → util/net.h} +18 -4
  381. data/vendor/libgit2/src/{pool.h → util/pool.h} +1 -1
  382. data/vendor/libgit2/src/{posix.c → util/posix.c} +3 -3
  383. data/vendor/libgit2/src/{posix.h → util/posix.h} +4 -1
  384. data/vendor/libgit2/src/{pqueue.h → util/pqueue.h} +2 -2
  385. data/vendor/libgit2/src/util/rand.c +234 -0
  386. data/vendor/libgit2/src/util/rand.h +37 -0
  387. data/vendor/libgit2/src/{regexp.c → util/regexp.c} +4 -4
  388. data/vendor/libgit2/src/{regexp.h → util/regexp.h} +1 -1
  389. data/vendor/libgit2/src/{runtime.c → util/runtime.c} +1 -1
  390. data/vendor/libgit2/src/{runtime.h → util/runtime.h} +1 -1
  391. data/vendor/libgit2/src/{sortedcache.c → util/sortedcache.c} +1 -1
  392. data/vendor/libgit2/src/{sortedcache.h → util/sortedcache.h} +2 -2
  393. data/vendor/libgit2/src/{buffer.c → util/str.c} +157 -151
  394. data/vendor/libgit2/src/util/str.h +357 -0
  395. data/vendor/libgit2/src/{strmap.h → util/strmap.h} +1 -1
  396. data/vendor/libgit2/src/{thread.c → util/thread.c} +1 -1
  397. data/vendor/libgit2/src/{thread.h → util/thread.h} +23 -22
  398. data/vendor/libgit2/src/{tsort.c → util/tsort.c} +1 -1
  399. data/vendor/libgit2/src/{unix → util/unix}/map.c +1 -3
  400. data/vendor/libgit2/src/{unix → util/unix}/posix.h +1 -4
  401. data/vendor/libgit2/src/{unix → util/unix}/realpath.c +1 -3
  402. data/vendor/libgit2/src/{utf8.c → util/utf8.c} +1 -1
  403. data/vendor/libgit2/src/{utf8.h → util/utf8.h} +1 -1
  404. data/vendor/libgit2/src/{util.c → util/util.c} +15 -15
  405. data/vendor/libgit2/src/{util.h → util/util.h} +4 -29
  406. data/vendor/libgit2/src/{varint.h → util/varint.h} +1 -1
  407. data/vendor/libgit2/src/{vector.h → util/vector.h} +2 -2
  408. data/vendor/libgit2/src/{wildmatch.h → util/wildmatch.h} +1 -1
  409. data/vendor/libgit2/src/{win32 → util/win32}/dir.h +1 -1
  410. data/vendor/libgit2/src/{win32 → util/win32}/error.h +1 -1
  411. data/vendor/libgit2/src/{win32 → util/win32}/map.c +1 -1
  412. data/vendor/libgit2/src/{win32 → util/win32}/path_w32.c +140 -9
  413. data/vendor/libgit2/src/{win32 → util/win32}/path_w32.h +3 -1
  414. data/vendor/libgit2/src/{win32 → util/win32}/posix.h +1 -2
  415. data/vendor/libgit2/src/{win32 → util/win32}/posix_w32.c +12 -28
  416. data/vendor/libgit2/src/util/win32/precompiled.c +1 -0
  417. data/vendor/libgit2/src/{win32 → util/win32}/precompiled.h +1 -1
  418. data/vendor/libgit2/src/{win32 → util/win32}/thread.h +1 -1
  419. data/vendor/libgit2/src/{win32 → util/win32}/utf-conv.h +1 -1
  420. data/vendor/libgit2/src/{win32 → util/win32}/w32_buffer.c +2 -3
  421. data/vendor/libgit2/src/{win32 → util/win32}/w32_buffer.h +3 -4
  422. data/vendor/libgit2/src/{win32 → util/win32}/w32_leakcheck.c +1 -1
  423. data/vendor/libgit2/src/{win32 → util/win32}/w32_leakcheck.h +1 -1
  424. data/vendor/libgit2/src/{win32 → util/win32}/w32_util.h +1 -1
  425. data/vendor/libgit2/src/{zstream.c → util/zstream.c} +5 -5
  426. data/vendor/libgit2/src/{zstream.h → util/zstream.h} +5 -5
  427. metadata +402 -356
  428. data/vendor/libgit2/src/buffer.h +0 -374
  429. data/vendor/libgit2/src/commit.h +0 -46
  430. data/vendor/libgit2/src/hash/sha1/common_crypto.c +0 -57
  431. data/vendor/libgit2/src/hash/sha1/generic.c +0 -300
  432. data/vendor/libgit2/src/hash/sha1/generic.h +0 -19
  433. data/vendor/libgit2/src/hash/sha1/mbedtls.c +0 -46
  434. data/vendor/libgit2/src/hash/sha1/openssl.c +0 -59
  435. data/vendor/libgit2/src/hash/sha1/win32.c +0 -333
  436. data/vendor/libgit2/src/hash/sha1/win32.h +0 -128
  437. data/vendor/libgit2/src/hash/sha1.h +0 -38
  438. data/vendor/libgit2/src/hash.c +0 -110
  439. data/vendor/libgit2/src/hash.h +0 -46
  440. data/vendor/libgit2/src/message.h +0 -17
  441. data/vendor/libgit2/src/net.c +0 -540
  442. data/vendor/libgit2/src/oid.h +0 -51
  443. data/vendor/libgit2/src/remote.h +0 -55
  444. data/vendor/libgit2/src/sysdir.c +0 -347
  445. data/vendor/libgit2/src/win32/findfile.c +0 -230
  446. data/vendor/libgit2/src/win32/findfile.h +0 -19
  447. /data/vendor/libgit2/src/{win32 → cli/win32}/precompiled.c +0 -0
  448. /data/vendor/libgit2/src/{attr.h → libgit2/attr.h} +0 -0
  449. /data/vendor/libgit2/src/{attrcache.h → libgit2/attrcache.h} +0 -0
  450. /data/vendor/libgit2/src/{blame.h → libgit2/blame.h} +0 -0
  451. /data/vendor/libgit2/src/{blame_git.h → libgit2/blame_git.h} +0 -0
  452. /data/vendor/libgit2/src/{cache.c → libgit2/cache.c} +0 -0
  453. /data/vendor/libgit2/src/{cache.h → libgit2/cache.h} +0 -0
  454. /data/vendor/libgit2/src/{checkout.h → libgit2/checkout.h} +0 -0
  455. /data/vendor/libgit2/src/{clone.h → libgit2/clone.h} +0 -0
  456. /data/vendor/libgit2/src/{commit_list.h → libgit2/commit_list.h} +0 -0
  457. /data/vendor/libgit2/src/{config_backend.h → libgit2/config_backend.h} +0 -0
  458. /data/vendor/libgit2/src/{config_cache.c → libgit2/config_cache.c} +0 -0
  459. /data/vendor/libgit2/src/{config_entries.c → libgit2/config_entries.c} +0 -0
  460. /data/vendor/libgit2/src/{config_entries.h → libgit2/config_entries.h} +0 -0
  461. /data/vendor/libgit2/src/{config_parse.h → libgit2/config_parse.h} +0 -0
  462. /data/vendor/libgit2/src/{config_snapshot.c → libgit2/config_snapshot.c} +0 -0
  463. /data/vendor/libgit2/src/{delta.c → libgit2/delta.c} +0 -0
  464. /data/vendor/libgit2/src/{delta.h → libgit2/delta.h} +0 -0
  465. /data/vendor/libgit2/src/{diff_file.h → libgit2/diff_file.h} +0 -0
  466. /data/vendor/libgit2/src/{diff_parse.c → libgit2/diff_parse.c} +0 -0
  467. /data/vendor/libgit2/src/{diff_parse.h → libgit2/diff_parse.h} +0 -0
  468. /data/vendor/libgit2/src/{diff_tform.h → libgit2/diff_tform.h} +0 -0
  469. /data/vendor/libgit2/src/{diff_xdiff.h → libgit2/diff_xdiff.h} +0 -0
  470. /data/vendor/libgit2/src/{fetchhead.h → libgit2/fetchhead.h} +0 -0
  471. /data/vendor/libgit2/src/{win32 → libgit2}/git2.rc +0 -0
  472. /data/vendor/libgit2/src/{graph.c → libgit2/graph.c} +0 -0
  473. /data/vendor/libgit2/src/{hashsig.c → libgit2/hashsig.c} +0 -0
  474. /data/vendor/libgit2/src/{idxmap.c → libgit2/idxmap.c} +0 -0
  475. /data/vendor/libgit2/src/{idxmap.h → libgit2/idxmap.h} +0 -0
  476. /data/vendor/libgit2/src/{indexer.h → libgit2/indexer.h} +0 -0
  477. /data/vendor/libgit2/src/{libgit2.h → libgit2/libgit2.h} +0 -0
  478. /data/vendor/libgit2/src/{mailmap.h → libgit2/mailmap.h} +0 -0
  479. /data/vendor/libgit2/src/{merge_driver.h → libgit2/merge_driver.h} +0 -0
  480. /data/vendor/libgit2/src/{notes.h → libgit2/notes.h} +0 -0
  481. /data/vendor/libgit2/src/{object_api.c → libgit2/object_api.c} +0 -0
  482. /data/vendor/libgit2/src/{offmap.c → libgit2/offmap.c} +0 -0
  483. /data/vendor/libgit2/src/{offmap.h → libgit2/offmap.h} +0 -0
  484. /data/vendor/libgit2/src/{oidarray.c → libgit2/oidarray.c} +0 -0
  485. /data/vendor/libgit2/src/{oidarray.h → libgit2/oidarray.h} +0 -0
  486. /data/vendor/libgit2/src/{oidmap.h → libgit2/oidmap.h} +0 -0
  487. /data/vendor/libgit2/src/{parse.h → libgit2/parse.h} +0 -0
  488. /data/vendor/libgit2/src/{patch_parse.h → libgit2/patch_parse.h} +0 -0
  489. /data/vendor/libgit2/src/{refdb.c → libgit2/refdb.c} +0 -0
  490. /data/vendor/libgit2/src/{refdb.h → libgit2/refdb.h} +0 -0
  491. /data/vendor/libgit2/src/{repo_template.h → libgit2/repo_template.h} +0 -0
  492. /data/vendor/libgit2/src/{revwalk.h → libgit2/revwalk.h} +0 -0
  493. /data/vendor/libgit2/src/{settings.h → libgit2/settings.h} +0 -0
  494. /data/vendor/libgit2/src/{status.h → libgit2/status.h} +0 -0
  495. /data/vendor/libgit2/src/{stream.h → libgit2/stream.h} +0 -0
  496. /data/vendor/libgit2/src/{streams → libgit2/streams}/mbedtls.h +0 -0
  497. /data/vendor/libgit2/src/{streams → libgit2/streams}/openssl.h +0 -0
  498. /data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_legacy.c +0 -0
  499. /data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_legacy.h +0 -0
  500. /data/vendor/libgit2/src/{streams → libgit2/streams}/registry.c +0 -0
  501. /data/vendor/libgit2/src/{streams → libgit2/streams}/registry.h +0 -0
  502. /data/vendor/libgit2/src/{streams → libgit2/streams}/socket.h +0 -0
  503. /data/vendor/libgit2/src/{streams → libgit2/streams}/stransport.c +0 -0
  504. /data/vendor/libgit2/src/{streams → libgit2/streams}/stransport.h +0 -0
  505. /data/vendor/libgit2/src/{streams → libgit2/streams}/tls.c +0 -0
  506. /data/vendor/libgit2/src/{streams → libgit2/streams}/tls.h +0 -0
  507. /data/vendor/libgit2/src/{transaction.h → libgit2/transaction.h} +0 -0
  508. /data/vendor/libgit2/src/{transports → libgit2/transports}/auth_negotiate.h +0 -0
  509. /data/vendor/libgit2/src/{transports → libgit2/transports}/credential.c +0 -0
  510. /data/vendor/libgit2/src/{transports → libgit2/transports}/credential_helpers.c +0 -0
  511. /data/vendor/libgit2/src/{transports → libgit2/transports}/ssh.h +0 -0
  512. /data/vendor/libgit2/src/{userdiff.h → libgit2/userdiff.h} +0 -0
  513. /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xdiffi.h +0 -0
  514. /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xemit.h +0 -0
  515. /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xmacros.h +0 -0
  516. /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xprepare.h +0 -0
  517. /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xtypes.h +0 -0
  518. /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xutils.h +0 -0
  519. /data/vendor/libgit2/src/{alloc.c → util/alloc.c} +0 -0
  520. /data/vendor/libgit2/src/{alloc.h → util/alloc.h} +0 -0
  521. /data/vendor/libgit2/src/{allocators → util/allocators}/failalloc.c +0 -0
  522. /data/vendor/libgit2/src/{allocators → util/allocators}/stdalloc.c +0 -0
  523. /data/vendor/libgit2/src/{allocators → util/allocators}/win32_leakcheck.c +0 -0
  524. /data/vendor/libgit2/src/{bitvec.h → util/bitvec.h} +0 -0
  525. /data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/sha1.h +0 -0
  526. /data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/ubc_check.c +0 -0
  527. /data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/ubc_check.h +0 -0
  528. /data/vendor/libgit2/src/{integer.h → util/integer.h} +0 -0
  529. /data/vendor/libgit2/src/{pool.c → util/pool.c} +0 -0
  530. /data/vendor/libgit2/src/{pqueue.c → util/pqueue.c} +0 -0
  531. /data/vendor/libgit2/src/{strmap.c → util/strmap.c} +0 -0
  532. /data/vendor/libgit2/src/{strnlen.h → util/strnlen.h} +0 -0
  533. /data/vendor/libgit2/src/{unix → util/unix}/pthread.h +0 -0
  534. /data/vendor/libgit2/src/{varint.c → util/varint.c} +0 -0
  535. /data/vendor/libgit2/src/{vector.c → util/vector.c} +0 -0
  536. /data/vendor/libgit2/src/{wildmatch.c → util/wildmatch.c} +0 -0
  537. /data/vendor/libgit2/src/{win32 → util/win32}/dir.c +0 -0
  538. /data/vendor/libgit2/src/{win32 → util/win32}/error.c +0 -0
  539. /data/vendor/libgit2/src/{win32 → util/win32}/mingw-compat.h +0 -0
  540. /data/vendor/libgit2/src/{win32 → util/win32}/msvc-compat.h +0 -0
  541. /data/vendor/libgit2/src/{win32 → util/win32}/reparse.h +0 -0
  542. /data/vendor/libgit2/src/{win32 → util/win32}/thread.c +0 -0
  543. /data/vendor/libgit2/src/{win32 → util/win32}/utf-conv.c +0 -0
  544. /data/vendor/libgit2/src/{win32 → util/win32}/version.h +0 -0
  545. /data/vendor/libgit2/src/{win32 → util/win32}/w32_common.h +0 -0
  546. /data/vendor/libgit2/src/{win32 → util/win32}/w32_util.c +0 -0
  547. /data/vendor/libgit2/src/{win32 → util/win32}/win32-compat.h +0 -0
@@ -30,7 +30,7 @@ GIT_BEGIN_DECL
30
30
  typedef enum {
31
31
  GIT_DESCRIBE_DEFAULT,
32
32
  GIT_DESCRIBE_TAGS,
33
- GIT_DESCRIBE_ALL,
33
+ GIT_DESCRIBE_ALL
34
34
  } git_describe_strategy_t;
35
35
 
36
36
  /**
@@ -142,6 +142,7 @@ typedef struct git_describe_result git_describe_result;
142
142
  * you're done with it.
143
143
  * @param committish a committish to describe
144
144
  * @param opts the lookup options (or NULL for defaults)
145
+ * @return 0 or an error code.
145
146
  */
146
147
  GIT_EXTERN(int) git_describe_commit(
147
148
  git_describe_result **result,
@@ -152,13 +153,14 @@ GIT_EXTERN(int) git_describe_commit(
152
153
  * Describe a commit
153
154
  *
154
155
  * Perform the describe operation on the current commit and the
155
- * worktree. After peforming describe on HEAD, a status is run and the
156
+ * worktree. After performing describe on HEAD, a status is run and the
156
157
  * description is considered to be dirty if there are.
157
158
  *
158
159
  * @param out pointer to store the result. You must free this once
159
160
  * you're done with it.
160
161
  * @param repo the repository in which to perform the describe
161
162
  * @param opts the lookup options (or NULL for defaults)
163
+ * @return 0 or an error code.
162
164
  */
163
165
  GIT_EXTERN(int) git_describe_workdir(
164
166
  git_describe_result **out,
@@ -172,6 +174,7 @@ GIT_EXTERN(int) git_describe_workdir(
172
174
  * @param result the result from `git_describe_commit()` or
173
175
  * `git_describe_workdir()`.
174
176
  * @param opts the formatting options (or NULL for defaults)
177
+ * @return 0 or an error code.
175
178
  */
176
179
  GIT_EXTERN(int) git_describe_format(
177
180
  git_buf *out,
@@ -180,6 +183,8 @@ GIT_EXTERN(int) git_describe_format(
180
183
 
181
184
  /**
182
185
  * Free the describe result.
186
+ *
187
+ * @param result The result to free.
183
188
  */
184
189
  GIT_EXTERN(void) git_describe_result_free(git_describe_result *result);
185
190
 
@@ -170,7 +170,7 @@ typedef enum {
170
170
  /** Include the necessary deflate / delta information so that `git-apply`
171
171
  * can apply given diff information to binary files.
172
172
  */
173
- GIT_DIFF_SHOW_BINARY = (1u << 30),
173
+ GIT_DIFF_SHOW_BINARY = (1u << 30)
174
174
  } git_diff_option_t;
175
175
 
176
176
  /**
@@ -208,6 +208,7 @@ typedef enum {
208
208
  GIT_DIFF_FLAG_NOT_BINARY = (1u << 1), /**< file(s) treated as text data */
209
209
  GIT_DIFF_FLAG_VALID_ID = (1u << 2), /**< `id` value is known correct */
210
210
  GIT_DIFF_FLAG_EXISTS = (1u << 3), /**< file exists at this side of the delta */
211
+ GIT_DIFF_FLAG_VALID_SIZE = (1u << 4) /**< file size value is known correct */
211
212
  } git_diff_flag_t;
212
213
 
213
214
  /**
@@ -231,7 +232,7 @@ typedef enum {
231
232
  GIT_DELTA_UNTRACKED = 7, /**< entry is untracked item in workdir */
232
233
  GIT_DELTA_TYPECHANGE = 8, /**< type of entry changed between old and new */
233
234
  GIT_DELTA_UNREADABLE = 9, /**< entry is unreadable */
234
- GIT_DELTA_CONFLICTED = 10, /**< entry in the index is conflicted */
235
+ GIT_DELTA_CONFLICTED = 10 /**< entry in the index is conflicted */
235
236
  } git_delta_t;
236
237
 
237
238
  /**
@@ -273,7 +274,7 @@ typedef struct {
273
274
 
274
275
  /**
275
276
  * Represents the known length of the `id` field, when
276
- * converted to a hex string. It is generally `GIT_OID_HEXSZ`, unless this
277
+ * converted to a hex string. It is generally `GIT_OID_SHA1_HEXSIZE`, unless this
277
278
  * delta was created from reading a patch file, in which case it may be
278
279
  * abbreviated to something reasonable, like 7 characters.
279
280
  */
@@ -497,7 +498,7 @@ typedef enum {
497
498
  GIT_DIFF_BINARY_LITERAL,
498
499
 
499
500
  /** The binary data is the delta from one side to the other. */
500
- GIT_DIFF_BINARY_DELTA,
501
+ GIT_DIFF_BINARY_DELTA
501
502
  } git_diff_binary_t;
502
503
 
503
504
  /** The contents of one of the files in a binary diff. */
@@ -706,7 +707,7 @@ typedef enum {
706
707
  * GIT_DIFF_INCLUDE_UNMODIFIED flag. If you do not want UNMODIFIED
707
708
  * records in the final result, pass this flag to have them removed.
708
709
  */
709
- GIT_DIFF_FIND_REMOVE_UNMODIFIED = (1u << 16),
710
+ GIT_DIFF_FIND_REMOVE_UNMODIFIED = (1u << 16)
710
711
  } git_diff_find_t;
711
712
 
712
713
  /**
@@ -758,7 +759,7 @@ typedef struct {
758
759
  uint16_t copy_threshold;
759
760
 
760
761
  /**
761
- * Treshold below which similar files will be split into a delete/add pair.
762
+ * Threshold below which similar files will be split into a delete/add pair.
762
763
  * This is equivalent to the last part of the -B option. Defaults to 60.
763
764
  */
764
765
  uint16_t break_rewrite_threshold;
@@ -768,7 +769,7 @@ typedef struct {
768
769
  *
769
770
  * This is a little different from the `-l` option from Git because we
770
771
  * will still process up to this many matches before abandoning the search.
771
- * Defaults to 200.
772
+ * Defaults to 1000.
772
773
  */
773
774
  size_t rename_limit;
774
775
 
@@ -831,6 +832,7 @@ GIT_EXTERN(void) git_diff_free(git_diff *diff);
831
832
  * @param old_tree A git_tree object to diff from, or NULL for empty tree.
832
833
  * @param new_tree A git_tree object to diff to, or NULL for empty tree.
833
834
  * @param opts Structure with options to influence diff or NULL for defaults.
835
+ * @return 0 or an error code.
834
836
  */
835
837
  GIT_EXTERN(int) git_diff_tree_to_tree(
836
838
  git_diff **diff,
@@ -857,6 +859,7 @@ GIT_EXTERN(int) git_diff_tree_to_tree(
857
859
  * @param old_tree A git_tree object to diff from, or NULL for empty tree.
858
860
  * @param index The index to diff with; repo index used if NULL.
859
861
  * @param opts Structure with options to influence diff or NULL for defaults.
862
+ * @return 0 or an error code.
860
863
  */
861
864
  GIT_EXTERN(int) git_diff_tree_to_index(
862
865
  git_diff **diff,
@@ -884,6 +887,7 @@ GIT_EXTERN(int) git_diff_tree_to_index(
884
887
  * @param repo The repository.
885
888
  * @param index The index to diff from; repo index used if NULL.
886
889
  * @param opts Structure with options to influence diff or NULL for defaults.
890
+ * @return 0 or an error code.
887
891
  */
888
892
  GIT_EXTERN(int) git_diff_index_to_workdir(
889
893
  git_diff **diff,
@@ -913,6 +917,7 @@ GIT_EXTERN(int) git_diff_index_to_workdir(
913
917
  * @param repo The repository containing the tree.
914
918
  * @param old_tree A git_tree object to diff from, or NULL for empty tree.
915
919
  * @param opts Structure with options to influence diff or NULL for defaults.
920
+ * @return 0 or an error code.
916
921
  */
917
922
  GIT_EXTERN(int) git_diff_tree_to_workdir(
918
923
  git_diff **diff,
@@ -932,6 +937,7 @@ GIT_EXTERN(int) git_diff_tree_to_workdir(
932
937
  * @param repo The repository containing the tree.
933
938
  * @param old_tree A git_tree object to diff from, or NULL for empty tree.
934
939
  * @param opts Structure with options to influence diff or NULL for defaults.
940
+ * @return 0 or an error code.
935
941
  */
936
942
  GIT_EXTERN(int) git_diff_tree_to_workdir_with_index(
937
943
  git_diff **diff,
@@ -950,6 +956,7 @@ GIT_EXTERN(int) git_diff_tree_to_workdir_with_index(
950
956
  * @param old_index A git_index object to diff from.
951
957
  * @param new_index A git_index object to diff to.
952
958
  * @param opts Structure with options to influence diff or NULL for defaults.
959
+ * @return 0 or an error code.
953
960
  */
954
961
  GIT_EXTERN(int) git_diff_index_to_index(
955
962
  git_diff **diff,
@@ -970,6 +977,7 @@ GIT_EXTERN(int) git_diff_index_to_index(
970
977
  *
971
978
  * @param onto Diff to merge into.
972
979
  * @param from Diff to merge.
980
+ * @return 0 or an error code.
973
981
  */
974
982
  GIT_EXTERN(int) git_diff_merge(
975
983
  git_diff *onto,
@@ -1107,7 +1115,7 @@ typedef enum {
1107
1115
  GIT_DIFF_FORMAT_RAW = 3u, /**< like git diff --raw */
1108
1116
  GIT_DIFF_FORMAT_NAME_ONLY = 4u, /**< like git diff --name-only */
1109
1117
  GIT_DIFF_FORMAT_NAME_STATUS = 5u, /**< like git diff --name-status */
1110
- GIT_DIFF_FORMAT_PATCH_ID = 6u, /**< git diff as used by git patch-id */
1118
+ GIT_DIFF_FORMAT_PATCH_ID = 6u /**< git diff as used by git patch-id */
1111
1119
  } git_diff_format_t;
1112
1120
 
1113
1121
  /**
@@ -1311,13 +1319,13 @@ typedef enum {
1311
1319
  GIT_DIFF_STATS_NUMBER = (1u << 2),
1312
1320
 
1313
1321
  /** Extended header information such as creations, renames and mode changes, equivalent of `--summary` */
1314
- GIT_DIFF_STATS_INCLUDE_SUMMARY = (1u << 3),
1322
+ GIT_DIFF_STATS_INCLUDE_SUMMARY = (1u << 3)
1315
1323
  } git_diff_stats_format_t;
1316
1324
 
1317
1325
  /**
1318
1326
  * Accumulate diff statistics for all patches.
1319
1327
  *
1320
- * @param out Structure containg the diff statistics.
1328
+ * @param out Structure containing the diff statistics.
1321
1329
  * @param diff A git_diff generated by one of the above functions.
1322
1330
  * @return 0 on success; non-zero on error
1323
1331
  */
@@ -34,7 +34,7 @@ typedef enum {
34
34
  GIT_EMAIL_CREATE_ALWAYS_NUMBER = (1u << 1),
35
35
 
36
36
  /** Do not perform rename or similarity detection. */
37
- GIT_EMAIL_CREATE_NO_RENAMES = (1u << 2),
37
+ GIT_EMAIL_CREATE_NO_RENAMES = (1u << 2)
38
38
  } git_email_create_flags_t;
39
39
 
40
40
  /**
@@ -107,7 +107,7 @@ typedef enum {
107
107
  GIT_ERROR_FILESYSTEM,
108
108
  GIT_ERROR_PATCH,
109
109
  GIT_ERROR_WORKTREE,
110
- GIT_ERROR_SHA1,
110
+ GIT_ERROR_SHA,
111
111
  GIT_ERROR_HTTP,
112
112
  GIT_ERROR_INTERNAL
113
113
  } git_error_t;
@@ -131,7 +131,8 @@ GIT_EXTERN(const git_error *) git_error_last(void);
131
131
  GIT_EXTERN(void) git_error_clear(void);
132
132
 
133
133
  /**
134
- * Set the error message string for this thread.
134
+ * Set the error message string for this thread, using `printf`-style
135
+ * formatting.
135
136
  *
136
137
  * This function is public so that custom ODB backends and the like can
137
138
  * relay an error message through libgit2. Most regular users of libgit2
@@ -144,7 +145,20 @@ GIT_EXTERN(void) git_error_clear(void);
144
145
  *
145
146
  * @param error_class One of the `git_error_t` enum above describing the
146
147
  * general subsystem that is responsible for the error.
147
- * @param string The formatted error message to keep
148
+ * @param fmt The `printf`-style format string; subsequent arguments must
149
+ * be the arguments for the format string.
150
+ */
151
+ GIT_EXTERN(void) git_error_set(int error_class, const char *fmt, ...)
152
+ GIT_FORMAT_PRINTF(2, 3);
153
+
154
+ /**
155
+ * Set the error message string for this thread. This function is like
156
+ * `git_error_set` but takes a static string instead of a `printf`-style
157
+ * format.
158
+ *
159
+ * @param error_class One of the `git_error_t` enum above describing the
160
+ * general subsystem that is responsible for the error.
161
+ * @param string The error message to keep
148
162
  * @return 0 on success or -1 on failure
149
163
  */
150
164
  GIT_EXTERN(int) git_error_set_str(int error_class, const char *string);
@@ -0,0 +1,20 @@
1
+ /*
2
+ * Copyright (C) the libgit2 contributors. All rights reserved.
3
+ *
4
+ * This file is part of libgit2, distributed under the GNU GPL v2 with
5
+ * a Linking Exception. For full terms see the included COPYING file.
6
+ */
7
+
8
+ #ifndef INCLUDE_experimental_h__
9
+ #define INCLUDE_experimental_h__
10
+
11
+ /*
12
+ * This file exists to support users who build libgit2 with a bespoke
13
+ * build system and do not use our cmake configuration. Normally, cmake
14
+ * will create `experimental.h` from the `experimental.h.in` file and
15
+ * will include the generated file instead of this one. For non-cmake
16
+ * users, we bundle this `experimental.h` file which will be used
17
+ * instead.
18
+ */
19
+
20
+ #endif
@@ -32,7 +32,7 @@ typedef enum {
32
32
  GIT_FILTER_TO_WORKTREE = 0,
33
33
  GIT_FILTER_SMUDGE = GIT_FILTER_TO_WORKTREE,
34
34
  GIT_FILTER_TO_ODB = 1,
35
- GIT_FILTER_CLEAN = GIT_FILTER_TO_ODB,
35
+ GIT_FILTER_CLEAN = GIT_FILTER_TO_ODB
36
36
  } git_filter_mode_t;
37
37
 
38
38
  /**
@@ -54,7 +54,7 @@ typedef enum {
54
54
  * Load attributes from `.gitattributes` in a given commit.
55
55
  * This can only be specified in a `git_filter_options`.
56
56
  */
57
- GIT_FILTER_ATTRIBUTES_FROM_COMMIT = (1u << 3),
57
+ GIT_FILTER_ATTRIBUTES_FROM_COMMIT = (1u << 3)
58
58
  } git_filter_flag_t;
59
59
 
60
60
  /**
@@ -196,6 +196,7 @@ GIT_EXTERN(int) git_filter_list_apply_to_buffer(
196
196
  * @param repo the repository in which to perform the filtering
197
197
  * @param path the path of the file to filter, a relative path will be
198
198
  * taken as relative to the workdir
199
+ * @return 0 or an error code.
199
200
  */
200
201
  GIT_EXTERN(int) git_filter_list_apply_to_file(
201
202
  git_buf *out,
@@ -209,6 +210,7 @@ GIT_EXTERN(int) git_filter_list_apply_to_file(
209
210
  * @param out buffer into which to store the filtered file
210
211
  * @param filters the list of filters to apply
211
212
  * @param blob the blob to filter
213
+ * @return 0 or an error code.
212
214
  */
213
215
  GIT_EXTERN(int) git_filter_list_apply_to_blob(
214
216
  git_buf *out,
@@ -222,6 +224,7 @@ GIT_EXTERN(int) git_filter_list_apply_to_blob(
222
224
  * @param buffer the buffer to filter
223
225
  * @param len the size of the buffer
224
226
  * @param target the stream into which the data will be written
227
+ * @return 0 or an error code.
225
228
  */
226
229
  GIT_EXTERN(int) git_filter_list_stream_buffer(
227
230
  git_filter_list *filters,
@@ -237,6 +240,7 @@ GIT_EXTERN(int) git_filter_list_stream_buffer(
237
240
  * @param path the path of the file to filter, a relative path will be
238
241
  * taken as relative to the workdir
239
242
  * @param target the stream into which the data will be written
243
+ * @return 0 or an error code.
240
244
  */
241
245
  GIT_EXTERN(int) git_filter_list_stream_file(
242
246
  git_filter_list *filters,
@@ -250,6 +254,7 @@ GIT_EXTERN(int) git_filter_list_stream_file(
250
254
  * @param filters the list of filters to apply
251
255
  * @param blob the blob to filter
252
256
  * @param target the stream into which the data will be written
257
+ * @return 0 or an error code.
253
258
  */
254
259
  GIT_EXTERN(int) git_filter_list_stream_blob(
255
260
  git_filter_list *filters,
@@ -33,6 +33,7 @@ GIT_BEGIN_DECL
33
33
  * @param repo the repository where the commits exist
34
34
  * @param local the commit for local
35
35
  * @param upstream the commit for upstream
36
+ * @return 0 or an error code.
36
37
  */
37
38
  GIT_EXTERN(int) git_graph_ahead_behind(size_t *ahead, size_t *behind, git_repository *repo, const git_oid *local, const git_oid *upstream);
38
39
 
@@ -29,7 +29,7 @@ GIT_BEGIN_DECL
29
29
  * This would add three rules to the ignores.
30
30
  *
31
31
  * @param repo The repository to add ignore rules to.
32
- * @param rules Text of rules, a la the contents of a .gitignore file.
32
+ * @param rules Text of rules, the contents to add on a .gitignore file.
33
33
  * It is okay to have multiple rules in the text; if so,
34
34
  * each rule should be terminated with a newline.
35
35
  * @return 0 on success
@@ -86,7 +86,7 @@ typedef struct git_index_entry {
86
86
  */
87
87
  typedef enum {
88
88
  GIT_INDEX_ENTRY_EXTENDED = (0x4000),
89
- GIT_INDEX_ENTRY_VALID = (0x8000),
89
+ GIT_INDEX_ENTRY_VALID = (0x8000)
90
90
  } git_index_entry_flag_t;
91
91
 
92
92
  #define GIT_INDEX_ENTRY_STAGE(E) \
@@ -119,7 +119,7 @@ typedef enum {
119
119
 
120
120
  GIT_INDEX_ENTRY_EXTENDED_FLAGS = (GIT_INDEX_ENTRY_INTENT_TO_ADD | GIT_INDEX_ENTRY_SKIP_WORKTREE),
121
121
 
122
- GIT_INDEX_ENTRY_UPTODATE = (1 << 2),
122
+ GIT_INDEX_ENTRY_UPTODATE = (1 << 2)
123
123
  } git_index_entry_extended_flag_t;
124
124
 
125
125
  /** Capabilities of system that affect index actions. */
@@ -127,7 +127,7 @@ typedef enum {
127
127
  GIT_INDEX_CAPABILITY_IGNORE_CASE = 1,
128
128
  GIT_INDEX_CAPABILITY_NO_FILEMODE = 2,
129
129
  GIT_INDEX_CAPABILITY_NO_SYMLINKS = 4,
130
- GIT_INDEX_CAPABILITY_FROM_OWNER = -1,
130
+ GIT_INDEX_CAPABILITY_FROM_OWNER = -1
131
131
  } git_index_capability_t;
132
132
 
133
133
 
@@ -140,7 +140,7 @@ typedef enum {
140
140
  GIT_INDEX_ADD_DEFAULT = 0,
141
141
  GIT_INDEX_ADD_FORCE = (1u << 0),
142
142
  GIT_INDEX_ADD_DISABLE_PATHSPEC_MATCH = (1u << 1),
143
- GIT_INDEX_ADD_CHECK_PATHSPEC = (1u << 2),
143
+ GIT_INDEX_ADD_CHECK_PATHSPEC = (1u << 2)
144
144
  } git_index_add_option_t;
145
145
 
146
146
  /** Git index stage states */
@@ -163,7 +163,7 @@ typedef enum {
163
163
  GIT_INDEX_STAGE_OURS = 2,
164
164
 
165
165
  /** The "theirs" side of a conflict. */
166
- GIT_INDEX_STAGE_THEIRS = 3,
166
+ GIT_INDEX_STAGE_THEIRS = 3
167
167
  } git_index_stage_t;
168
168
 
169
169
  /**
@@ -296,6 +296,7 @@ GIT_EXTERN(int) git_index_write(git_index *index);
296
296
  */
297
297
  GIT_EXTERN(const char *) git_index_path(const git_index *index);
298
298
 
299
+ #ifndef GIT_DEPRECATE_HARD
299
300
  /**
300
301
  * Get the checksum of the index
301
302
  *
@@ -303,10 +304,12 @@ GIT_EXTERN(const char *) git_index_path(const git_index *index);
303
304
  * last 20 bytes which are the checksum itself). In cases where the
304
305
  * index does not exist on-disk, it will be zeroed out.
305
306
  *
307
+ * @deprecated this function is deprecated with no replacement
306
308
  * @param index an existing index object
307
309
  * @return a pointer to the checksum of the index
308
310
  */
309
311
  GIT_EXTERN(const git_oid *) git_index_checksum(git_index *index);
312
+ #endif
310
313
 
311
314
  /**
312
315
  * Read a tree into the index file with stats
@@ -491,6 +494,7 @@ GIT_EXTERN(int) git_index_entry_is_conflict(const git_index_entry *entry);
491
494
  *
492
495
  * @param iterator_out The newly created iterator
493
496
  * @param index The index to iterate
497
+ * @return 0 or an error code.
494
498
  */
495
499
  GIT_EXTERN(int) git_index_iterator_new(
496
500
  git_index_iterator **iterator_out,
@@ -787,6 +791,7 @@ GIT_EXTERN(int) git_index_conflict_cleanup(git_index *index);
787
791
  /**
788
792
  * Determine if the index contains entries representing file conflicts.
789
793
  *
794
+ * @param index An existing index object.
790
795
  * @return 1 if at least one conflict is found, 0 otherwise.
791
796
  */
792
797
  GIT_EXTERN(int) git_index_has_conflicts(const git_index *index);
@@ -811,6 +816,7 @@ GIT_EXTERN(int) git_index_conflict_iterator_new(
811
816
  * @param ancestor_out Pointer to store the ancestor side of the conflict
812
817
  * @param our_out Pointer to store our side of the conflict
813
818
  * @param their_out Pointer to store their side of the conflict
819
+ * @param iterator The conflict iterator.
814
820
  * @return 0 (no error), GIT_ITEROVER (iteration is done) or an error code
815
821
  * (negative value)
816
822
  */
@@ -62,6 +62,19 @@ typedef int GIT_CALLBACK(git_indexer_progress_cb)(const git_indexer_progress *st
62
62
  typedef struct git_indexer_options {
63
63
  unsigned int version;
64
64
 
65
+ #ifdef GIT_EXPERIMENTAL_SHA256
66
+ /** permissions to use creating packfile or 0 for defaults */
67
+ unsigned int mode;
68
+
69
+ /**
70
+ * object database from which to read base objects when
71
+ * fixing thin packs. This can be NULL if there are no thin
72
+ * packs; if a thin pack is encountered, an error will be
73
+ * returned if there are bases missing.
74
+ */
75
+ git_odb *odb;
76
+ #endif
77
+
65
78
  /** progress_cb function to call with progress information */
66
79
  git_indexer_progress_cb progress_cb;
67
80
 
@@ -87,6 +100,21 @@ GIT_EXTERN(int) git_indexer_options_init(
87
100
  git_indexer_options *opts,
88
101
  unsigned int version);
89
102
 
103
+ #ifdef GIT_EXPERIMENTAL_SHA256
104
+ /**
105
+ * Create a new indexer instance
106
+ *
107
+ * @param out where to store the indexer instance
108
+ * @param path to the directory where the packfile should be stored
109
+ * @param oid_type the oid type to use for objects
110
+ * @return 0 or an error code.
111
+ */
112
+ GIT_EXTERN(int) git_indexer_new(
113
+ git_indexer **out,
114
+ const char *path,
115
+ git_oid_t oid_type,
116
+ git_indexer_options *opts);
117
+ #else
90
118
  /**
91
119
  * Create a new indexer instance
92
120
  *
@@ -98,6 +126,7 @@ GIT_EXTERN(int) git_indexer_options_init(
98
126
  * will be returned if there are bases missing)
99
127
  * @param opts Optional structure containing additional options. See
100
128
  * `git_indexer_options` above.
129
+ * @return 0 or an error code.
101
130
  */
102
131
  GIT_EXTERN(int) git_indexer_new(
103
132
  git_indexer **out,
@@ -105,6 +134,7 @@ GIT_EXTERN(int) git_indexer_new(
105
134
  unsigned int mode,
106
135
  git_odb *odb,
107
136
  git_indexer_options *opts);
137
+ #endif
108
138
 
109
139
  /**
110
140
  * Add data to the indexer
@@ -113,6 +143,7 @@ GIT_EXTERN(int) git_indexer_new(
113
143
  * @param data the data to add
114
144
  * @param size the size of the data in bytes
115
145
  * @param stats stat storage
146
+ * @return 0 or an error code.
116
147
  */
117
148
  GIT_EXTERN(int) git_indexer_append(git_indexer *idx, const void *data, size_t size, git_indexer_progress *stats);
118
149
 
@@ -122,18 +153,35 @@ GIT_EXTERN(int) git_indexer_append(git_indexer *idx, const void *data, size_t si
122
153
  * Resolve any pending deltas and write out the index file
123
154
  *
124
155
  * @param idx the indexer
156
+ * @param stats Stat storage.
157
+ * @return 0 or an error code.
125
158
  */
126
159
  GIT_EXTERN(int) git_indexer_commit(git_indexer *idx, git_indexer_progress *stats);
127
160
 
161
+ #ifndef GIT_DEPRECATE_HARD
128
162
  /**
129
163
  * Get the packfile's hash
130
164
  *
131
165
  * A packfile's name is derived from the sorted hashing of all object
132
166
  * names. This is only correct after the index has been finalized.
133
167
  *
168
+ * @deprecated use git_indexer_name
134
169
  * @param idx the indexer instance
170
+ * @return the packfile's hash
135
171
  */
136
172
  GIT_EXTERN(const git_oid *) git_indexer_hash(const git_indexer *idx);
173
+ #endif
174
+
175
+ /**
176
+ * Get the unique name for the resulting packfile.
177
+ *
178
+ * The packfile's name is derived from the packfile's content.
179
+ * This is only correct after the index has been finalized.
180
+ *
181
+ * @param idx the indexer instance
182
+ * @return a NUL terminated string for the packfile name
183
+ */
184
+ GIT_EXTERN(const char *) git_indexer_name(const git_indexer *idx);
137
185
 
138
186
  /**
139
187
  * Free the indexer and its resources
@@ -92,6 +92,14 @@ typedef enum {
92
92
  * merge base to `git-merge-resolve`.
93
93
  */
94
94
  GIT_MERGE_NO_RECURSIVE = (1 << 3),
95
+
96
+ /**
97
+ * Treat this merge as if it is to produce the virtual base
98
+ * of a recursive merge. This will ensure that there are
99
+ * no conflicts, any conflicting regions will keep conflict
100
+ * markers in the merge result.
101
+ */
102
+ GIT_MERGE_VIRTUAL_BASE = (1 << 4)
95
103
  } git_merge_flag_t;
96
104
 
97
105
  /**
@@ -127,7 +135,7 @@ typedef enum {
127
135
  * which has the result of combining both files. The index will not
128
136
  * record a conflict.
129
137
  */
130
- GIT_MERGE_FILE_FAVOR_UNION = 3,
138
+ GIT_MERGE_FILE_FAVOR_UNION = 3
131
139
  } git_merge_file_favor_t;
132
140
 
133
141
  /**
@@ -160,6 +168,16 @@ typedef enum {
160
168
 
161
169
  /** Take extra time to find minimal diff */
162
170
  GIT_MERGE_FILE_DIFF_MINIMAL = (1 << 7),
171
+
172
+ /** Create zdiff3 ("zealous diff3")-style files */
173
+ GIT_MERGE_FILE_STYLE_ZDIFF3 = (1 << 8),
174
+
175
+ /**
176
+ * Do not produce file conflicts when common regions have
177
+ * changed; keep the conflict markers in the file and accept
178
+ * that as the merge result.
179
+ */
180
+ GIT_MERGE_FILE_ACCEPT_CONFLICTS = (1 << 9)
163
181
  } git_merge_file_flag_t;
164
182
 
165
183
  #define GIT_MERGE_CONFLICT_MARKER_SIZE 7
@@ -341,7 +359,7 @@ typedef enum {
341
359
  * a valid commit. No merge can be performed, but the caller may wish
342
360
  * to simply set HEAD to the target commit(s).
343
361
  */
344
- GIT_MERGE_ANALYSIS_UNBORN = (1 << 3),
362
+ GIT_MERGE_ANALYSIS_UNBORN = (1 << 3)
345
363
  } git_merge_analysis_t;
346
364
 
347
365
  /**
@@ -364,7 +382,7 @@ typedef enum {
364
382
  * There is a `merge.ff=only` configuration setting, suggesting that
365
383
  * the user only wants fast-forward merges.
366
384
  */
367
- GIT_MERGE_PREFERENCE_FASTFORWARD_ONLY = (1 << 1),
385
+ GIT_MERGE_PREFERENCE_FASTFORWARD_ONLY = (1 << 1)
368
386
  } git_merge_preference_t;
369
387
 
370
388
  /**
@@ -372,6 +390,7 @@ typedef enum {
372
390
  * merging them into the HEAD of the repository.
373
391
  *
374
392
  * @param analysis_out analysis enumeration that the result is written into
393
+ * @param preference_out One of the `git_merge_preference_t` flag.
375
394
  * @param repo the repository to merge
376
395
  * @param their_heads the heads to merge into
377
396
  * @param their_heads_len the number of heads to merge
@@ -389,6 +408,7 @@ GIT_EXTERN(int) git_merge_analysis(
389
408
  * merging them into a reference.
390
409
  *
391
410
  * @param analysis_out analysis enumeration that the result is written into
411
+ * @param preference_out One of the `git_merge_preference_t` flag.
392
412
  * @param repo the repository to merge
393
413
  * @param our_ref the reference to perform the analysis from
394
414
  * @param their_heads the heads to merge into
@@ -583,7 +603,7 @@ GIT_EXTERN(int) git_merge_commits(
583
603
  * completes, resolve any conflicts and prepare a commit.
584
604
  *
585
605
  * For compatibility with git, the repository is put into a merging
586
- * state. Once the commit is done (or if the uses wishes to abort),
606
+ * state. Once the commit is done (or if the user wishes to abort),
587
607
  * you should clear this state by calling
588
608
  * `git_repository_state_cleanup()`.
589
609
  *
@@ -75,6 +75,8 @@ GIT_EXTERN(int) git_message_trailers(git_message_trailer_array *arr, const char
75
75
  /**
76
76
  * Clean's up any allocated memory in the git_message_trailer_array filled by
77
77
  * a call to git_message_trailers.
78
+ *
79
+ * @param arr The trailer to free.
78
80
  */
79
81
  GIT_EXTERN(void) git_message_trailer_array_free(git_message_trailer_array *arr);
80
82
 
@@ -221,9 +221,58 @@ GIT_EXTERN(int) git_object_peel(
221
221
  *
222
222
  * @param dest Pointer to store the copy of the object
223
223
  * @param source Original object to copy
224
+ * @return 0 or an error code
224
225
  */
225
226
  GIT_EXTERN(int) git_object_dup(git_object **dest, git_object *source);
226
227
 
228
+ #ifdef GIT_EXPERIMENTAL_SHA256
229
+ /**
230
+ * Analyzes a buffer of raw object content and determines its validity.
231
+ * Tree, commit, and tag objects will be parsed and ensured that they
232
+ * are valid, parseable content. (Blobs are always valid by definition.)
233
+ * An error message will be set with an informative message if the object
234
+ * is not valid.
235
+ *
236
+ * @warning This function is experimental and its signature may change in
237
+ * the future.
238
+ *
239
+ * @param valid Output pointer to set with validity of the object content
240
+ * @param buf The contents to validate
241
+ * @param len The length of the buffer
242
+ * @param object_type The type of the object in the buffer
243
+ * @param oid_type The object ID type for the OIDs in the given buffer
244
+ * @return 0 on success or an error code
245
+ */
246
+ GIT_EXTERN(int) git_object_rawcontent_is_valid(
247
+ int *valid,
248
+ const char *buf,
249
+ size_t len,
250
+ git_object_t object_type,
251
+ git_oid_t oid_type);
252
+ #else
253
+ /**
254
+ * Analyzes a buffer of raw object content and determines its validity.
255
+ * Tree, commit, and tag objects will be parsed and ensured that they
256
+ * are valid, parseable content. (Blobs are always valid by definition.)
257
+ * An error message will be set with an informative message if the object
258
+ * is not valid.
259
+ *
260
+ * @warning This function is experimental and its signature may change in
261
+ * the future.
262
+ *
263
+ * @param valid Output pointer to set with validity of the object content
264
+ * @param buf The contents to validate
265
+ * @param len The length of the buffer
266
+ * @param object_type The type of the object in the buffer
267
+ * @return 0 on success or an error code
268
+ */
269
+ GIT_EXTERN(int) git_object_rawcontent_is_valid(
270
+ int *valid,
271
+ const char *buf,
272
+ size_t len,
273
+ git_object_t object_type);
274
+ #endif
275
+
227
276
  /** @} */
228
277
  GIT_END_DECL
229
278