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
@@ -45,6 +45,11 @@ typedef enum {
45
45
  * the working directory
46
46
  */
47
47
  GIT_STASH_INCLUDE_IGNORED = (1 << 2),
48
+
49
+ /**
50
+ * All changes in the index and working directory are left intact
51
+ */
52
+ GIT_STASH_KEEP_ALL = (1 << 3)
48
53
  } git_stash_flags;
49
54
 
50
55
  /**
@@ -52,15 +57,10 @@ typedef enum {
52
57
  *
53
58
  * @param out Object id of the commit containing the stashed state.
54
59
  * This commit is also the target of the direct reference refs/stash.
55
- *
56
60
  * @param repo The owning repository.
57
- *
58
61
  * @param stasher The identity of the person performing the stashing.
59
- *
60
62
  * @param message Optional description along with the stashed state.
61
- *
62
63
  * @param flags Flags to control the stashing process. (see GIT_STASH_* above)
63
- *
64
64
  * @return 0 on success, GIT_ENOTFOUND where there's nothing to stash,
65
65
  * or error code.
66
66
  */
@@ -71,6 +71,60 @@ GIT_EXTERN(int) git_stash_save(
71
71
  const char *message,
72
72
  uint32_t flags);
73
73
 
74
+ /**
75
+ * Stash save options structure
76
+ *
77
+ * Initialize with `GIT_STASH_SAVE_OPTIONS_INIT`. Alternatively, you can
78
+ * use `git_stash_save_options_init`.
79
+ *
80
+ */
81
+ typedef struct git_stash_save_options {
82
+ unsigned int version;
83
+
84
+ /** Flags to control the stashing process. (see GIT_STASH_* above) */
85
+ uint32_t flags;
86
+
87
+ /** The identity of the person performing the stashing. */
88
+ const git_signature *stasher;
89
+
90
+ /** Optional description along with the stashed state. */
91
+ const char *message;
92
+
93
+ /** Optional paths that control which files are stashed. */
94
+ git_strarray paths;
95
+ } git_stash_save_options;
96
+
97
+ #define GIT_STASH_SAVE_OPTIONS_VERSION 1
98
+ #define GIT_STASH_SAVE_OPTIONS_INIT { GIT_STASH_SAVE_OPTIONS_VERSION }
99
+
100
+ /**
101
+ * Initialize git_stash_save_options structure
102
+ *
103
+ * Initializes a `git_stash_save_options` with default values. Equivalent to
104
+ * creating an instance with `GIT_STASH_SAVE_OPTIONS_INIT`.
105
+ *
106
+ * @param opts The `git_stash_save_options` struct to initialize.
107
+ * @param version The struct version; pass `GIT_STASH_SAVE_OPTIONS_VERSION`.
108
+ * @return Zero on success; -1 on failure.
109
+ */
110
+ GIT_EXTERN(int) git_stash_save_options_init(
111
+ git_stash_save_options *opts, unsigned int version);
112
+
113
+ /**
114
+ * Save the local modifications to a new stash, with options.
115
+ *
116
+ * @param out Object id of the commit containing the stashed state.
117
+ * This commit is also the target of the direct reference refs/stash.
118
+ * @param repo The owning repository.
119
+ * @param opts The stash options.
120
+ * @return 0 on success, GIT_ENOTFOUND where there's nothing to stash,
121
+ * or error code.
122
+ */
123
+ GIT_EXTERN(int) git_stash_save_with_opts(
124
+ git_oid *out,
125
+ git_repository *repo,
126
+ const git_stash_save_options *opts);
127
+
74
128
  /** Stash application flags. */
75
129
  typedef enum {
76
130
  GIT_STASH_APPLY_DEFAULT = 0,
@@ -78,7 +132,7 @@ typedef enum {
78
132
  /* Try to reinstate not only the working tree's changes,
79
133
  * but also the index's changes.
80
134
  */
81
- GIT_STASH_APPLY_REINSTATE_INDEX = (1 << 0),
135
+ GIT_STASH_APPLY_REINSTATE_INDEX = (1 << 0)
82
136
  } git_stash_apply_flags;
83
137
 
84
138
  /** Stash apply progression states */
@@ -104,7 +158,7 @@ typedef enum {
104
158
  GIT_STASH_APPLY_PROGRESS_CHECKOUT_MODIFIED,
105
159
 
106
160
  /** The stash was applied successfully. */
107
- GIT_STASH_APPLY_PROGRESS_DONE,
161
+ GIT_STASH_APPLY_PROGRESS_DONE
108
162
  } git_stash_apply_progress_t;
109
163
 
110
164
  /**
@@ -48,7 +48,7 @@ typedef enum {
48
48
  GIT_STATUS_WT_UNREADABLE = (1u << 12),
49
49
 
50
50
  GIT_STATUS_IGNORED = (1u << 14),
51
- GIT_STATUS_CONFLICTED = (1u << 15),
51
+ GIT_STATUS_CONFLICTED = (1u << 15)
52
52
  } git_status_t;
53
53
 
54
54
  /**
@@ -87,7 +87,7 @@ typedef enum {
87
87
  * Only gives status based on index to working directory comparison,
88
88
  * not comparing the index to the HEAD.
89
89
  */
90
- GIT_STATUS_SHOW_WORKDIR_ONLY = 2,
90
+ GIT_STATUS_SHOW_WORKDIR_ONLY = 2
91
91
  } git_status_show_t;
92
92
 
93
93
  /**
@@ -204,7 +204,7 @@ typedef enum {
204
204
  * Unreadable files will be detected and given the status
205
205
  * untracked instead of unreadable.
206
206
  */
207
- GIT_STATUS_OPT_INCLUDE_UNREADABLE_AS_UNTRACKED = (1u << 15),
207
+ GIT_STATUS_OPT_INCLUDE_UNREADABLE_AS_UNTRACKED = (1u << 15)
208
208
  } git_status_opt_t;
209
209
 
210
210
  #define GIT_STATUS_OPT_DEFAULTS \
@@ -227,13 +227,16 @@ typedef struct {
227
227
 
228
228
  /**
229
229
  * The `show` value is one of the `git_status_show_t` constants that
230
- * control which files to scan and in what order.
230
+ * control which files to scan and in what order. The default is
231
+ * `GIT_STATUS_SHOW_INDEX_AND_WORKDIR`.
231
232
  */
232
233
  git_status_show_t show;
233
234
 
234
235
  /**
235
236
  * The `flags` value is an OR'ed combination of the
236
- * `git_status_opt_t` values above.
237
+ * `git_status_opt_t` values above. The default is
238
+ * `GIT_STATUS_OPT_DEFAULTS`, which matches git's default
239
+ * behavior.
237
240
  */
238
241
  unsigned int flags;
239
242
 
@@ -250,6 +253,12 @@ typedef struct {
250
253
  * working directory and index; defaults to HEAD.
251
254
  */
252
255
  git_tree *baseline;
256
+
257
+ /**
258
+ * Threshold above which similar files will be considered renames.
259
+ * This is equivalent to the -M option. Defaults to 50.
260
+ */
261
+ uint16_t rename_threshold;
253
262
  } git_status_options;
254
263
 
255
264
  #define GIT_STATUS_OPTIONS_VERSION 1
@@ -36,19 +36,6 @@ typedef struct git_strarray {
36
36
  */
37
37
  GIT_EXTERN(void) git_strarray_dispose(git_strarray *array);
38
38
 
39
- /**
40
- * Copy a string array object from source to target.
41
- *
42
- * Note: target is overwritten and hence should be empty, otherwise its
43
- * contents are leaked. Call git_strarray_free() if necessary.
44
- *
45
- * @param tgt target
46
- * @param src source
47
- * @return 0 on success, < 0 on allocation failure
48
- */
49
- GIT_EXTERN(int) git_strarray_copy(git_strarray *tgt, const git_strarray *src);
50
-
51
-
52
39
  /** @} */
53
40
  GIT_END_DECL
54
41
 
@@ -85,7 +85,7 @@ typedef enum {
85
85
  GIT_SUBMODULE_STATUS_WD_MODIFIED = (1u << 10),
86
86
  GIT_SUBMODULE_STATUS_WD_INDEX_MODIFIED = (1u << 11),
87
87
  GIT_SUBMODULE_STATUS_WD_WD_MODIFIED = (1u << 12),
88
- GIT_SUBMODULE_STATUS_WD_UNTRACKED = (1u << 13),
88
+ GIT_SUBMODULE_STATUS_WD_UNTRACKED = (1u << 13)
89
89
  } git_submodule_status_t;
90
90
 
91
91
  #define GIT_SUBMODULE_STATUS__IN_FLAGS 0x000Fu
@@ -181,7 +181,7 @@ GIT_EXTERN(int) git_submodule_update_options_init(
181
181
  * @param submodule Submodule object
182
182
  * @param init If the submodule is not initialized, setting this flag to true
183
183
  * will initialize the submodule before updating. Otherwise, this will
184
- * return an error if attempting to update an uninitialzed repository.
184
+ * return an error if attempting to update an uninitialized repository.
185
185
  * but setting this to true forces them to be updated.
186
186
  * @param options configuration options for the update. If NULL, the
187
187
  * function works as though GIT_SUBMODULE_UPDATE_OPTIONS_INIT was passed.
@@ -229,6 +229,7 @@ GIT_EXTERN(int) git_submodule_lookup(
229
229
  *
230
230
  * @param out Pointer to store the copy of the submodule.
231
231
  * @param source Original submodule to copy.
232
+ * @return 0
232
233
  */
233
234
  GIT_EXTERN(int) git_submodule_dup(git_submodule **out, git_submodule *source);
234
235
 
@@ -320,6 +321,7 @@ GIT_EXTERN(int) git_submodule_clone(
320
321
  * (but doesn't actually do the commit).
321
322
  *
322
323
  * @param submodule The submodule to finish adding.
324
+ * @return 0 or an error code.
323
325
  */
324
326
  GIT_EXTERN(int) git_submodule_add_finalize(git_submodule *submodule);
325
327
 
@@ -589,6 +591,9 @@ GIT_EXTERN(int) git_submodule_repo_init(
589
591
  * submodule config, acting like "git submodule sync". This is useful if
590
592
  * you have altered the URL for the submodule (or it has been altered by a
591
593
  * fetch of upstream changes) and you need to update your local repo.
594
+ *
595
+ * @param submodule The submodule to copy.
596
+ * @return 0 or an error code.
592
597
  */
593
598
  GIT_EXTERN(int) git_submodule_sync(git_submodule *submodule);
594
599
 
@@ -94,7 +94,7 @@ typedef enum {
94
94
  * Do not split commit-graph files. The other split strategy-related option
95
95
  * fields are ignored.
96
96
  */
97
- GIT_COMMIT_GRAPH_SPLIT_STRATEGY_SINGLE_FILE = 0,
97
+ GIT_COMMIT_GRAPH_SPLIT_STRATEGY_SINGLE_FILE = 0
98
98
  } git_commit_graph_split_strategy_t;
99
99
 
100
100
  /**
@@ -36,7 +36,7 @@ struct git_odb_backend {
36
36
  void **, size_t *, git_object_t *, git_odb_backend *, const git_oid *);
37
37
 
38
38
  /* To find a unique object given a prefix of its oid. The oid given
39
- * must be so that the remaining (GIT_OID_HEXSZ - len)*4 bits are 0s.
39
+ * must be so that the remaining (GIT_OID_SHA1_HEXSIZE - len)*4 bits are 0s.
40
40
  */
41
41
  int GIT_CALLBACK(read_prefix)(
42
42
  git_oid *, void **, size_t *, git_object_t *,
@@ -69,11 +69,8 @@ struct git_odb_backend {
69
69
  * If the backend implements a refreshing mechanism, it should be exposed
70
70
  * through this endpoint. Each call to `git_odb_refresh()` will invoke it.
71
71
  *
72
- * However, the backend implementation should try to stay up-to-date as much
73
- * as possible by itself as libgit2 will not automatically invoke
74
- * `git_odb_refresh()`. For instance, a potential strategy for the backend
75
- * implementation to achieve this could be to internally invoke this
76
- * endpoint on failed lookups (ie. `exists()`, `read()`, `read_header()`).
72
+ * The odb layer will automatically call this when needed on failed
73
+ * lookups (ie. `exists()`, `read()`, `read_header()`).
77
74
  */
78
75
  int GIT_CALLBACK(refresh)(git_odb_backend *);
79
76
 
@@ -0,0 +1,46 @@
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_sys_git_remote_h
9
+ #define INCLUDE_sys_git_remote_h
10
+
11
+ #include "git2/remote.h"
12
+
13
+ /**
14
+ * @file git2/sys/remote.h
15
+ * @brief Low-level remote functionality for custom transports
16
+ * @defgroup git_remote Low-level remote functionality
17
+ * @ingroup Git
18
+ * @{
19
+ */
20
+
21
+ GIT_BEGIN_DECL
22
+
23
+ typedef enum {
24
+ /** Remote supports fetching an advertised object by ID. */
25
+ GIT_REMOTE_CAPABILITY_TIP_OID = (1 << 0),
26
+
27
+ /** Remote supports fetching an individual reachable object. */
28
+ GIT_REMOTE_CAPABILITY_REACHABLE_OID = (1 << 1),
29
+ } git_remote_capability_t;
30
+
31
+ /**
32
+ * Disposes libgit2-initialized fields from a git_remote_connect_options.
33
+ * This should only be used for git_remote_connect_options returned by
34
+ * git_transport_remote_connect_options.
35
+ *
36
+ * Note that this does not free the `git_remote_connect_options` itself, just
37
+ * the memory pointed to by it.
38
+ *
39
+ * @param opts The `git_remote_connect_options` struct to dispose.
40
+ */
41
+ GIT_EXTERN(void) git_remote_connect_options_dispose(
42
+ git_remote_connect_options *opts);
43
+
44
+ /** @} */
45
+ GIT_END_DECL
46
+ #endif
@@ -79,7 +79,7 @@ typedef enum {
79
79
  GIT_STREAM_STANDARD = 1,
80
80
 
81
81
  /** A TLS-encrypted socket. */
82
- GIT_STREAM_TLS = 2,
82
+ GIT_STREAM_TLS = 2
83
83
  } git_stream_t;
84
84
 
85
85
  /**
@@ -9,10 +9,11 @@
9
9
  #define INCLUDE_sys_git_transport_h
10
10
 
11
11
  #include "git2/net.h"
12
+ #include "git2/proxy.h"
13
+ #include "git2/remote.h"
14
+ #include "git2/strarray.h"
12
15
  #include "git2/transport.h"
13
16
  #include "git2/types.h"
14
- #include "git2/strarray.h"
15
- #include "git2/proxy.h"
16
17
 
17
18
  /**
18
19
  * @file git2/sys/transport.h
@@ -24,31 +25,9 @@
24
25
 
25
26
  GIT_BEGIN_DECL
26
27
 
27
- /**
28
- * Flags to pass to transport
29
- *
30
- * Currently unused.
31
- */
32
- typedef enum {
33
- GIT_TRANSPORTFLAGS_NONE = 0,
34
- } git_transport_flags_t;
35
-
36
28
  struct git_transport {
37
29
  unsigned int version; /**< The struct version */
38
30
 
39
- /** Set progress and error callbacks */
40
- int GIT_CALLBACK(set_callbacks)(
41
- git_transport *transport,
42
- git_transport_message_cb progress_cb,
43
- git_transport_message_cb error_cb,
44
- git_transport_certificate_check_cb certificate_check_cb,
45
- void *payload);
46
-
47
- /** Set custom headers for HTTP requests */
48
- int GIT_CALLBACK(set_custom_headers)(
49
- git_transport *transport,
50
- const git_strarray *custom_headers);
51
-
52
31
  /**
53
32
  * Connect the transport to the remote repository, using the given
54
33
  * direction.
@@ -56,11 +35,39 @@ struct git_transport {
56
35
  int GIT_CALLBACK(connect)(
57
36
  git_transport *transport,
58
37
  const char *url,
59
- git_credential_acquire_cb cred_acquire_cb,
60
- void *cred_acquire_payload,
61
- const git_proxy_options *proxy_opts,
62
38
  int direction,
63
- int flags);
39
+ const git_remote_connect_options *connect_opts);
40
+
41
+ /**
42
+ * Resets the connect options for the given transport. This
43
+ * is useful for updating settings or callbacks for an already
44
+ * connected transport.
45
+ */
46
+ int GIT_CALLBACK(set_connect_opts)(
47
+ git_transport *transport,
48
+ const git_remote_connect_options *connect_opts);
49
+
50
+ /**
51
+ * Gets the capabilities for this remote repository.
52
+ *
53
+ * This function may be called after a successful call to
54
+ * `connect()`.
55
+ */
56
+ int GIT_CALLBACK(capabilities)(
57
+ unsigned int *capabilities,
58
+ git_transport *transport);
59
+
60
+ #ifdef GIT_EXPERIMENTAL_SHA256
61
+ /**
62
+ * Gets the object type for the remote repository.
63
+ *
64
+ * This function may be called after a successful call to
65
+ * `connect()`.
66
+ */
67
+ int GIT_CALLBACK(oid_type)(
68
+ git_oid_t *object_type,
69
+ git_transport *transport);
70
+ #endif
64
71
 
65
72
  /**
66
73
  * Get the list of available references in the remote repository.
@@ -75,7 +82,9 @@ struct git_transport {
75
82
  git_transport *transport);
76
83
 
77
84
  /** Executes the push whose context is in the git_push object. */
78
- int GIT_CALLBACK(push)(git_transport *transport, git_push *push, const git_remote_callbacks *callbacks);
85
+ int GIT_CALLBACK(push)(
86
+ git_transport *transport,
87
+ git_push *push);
79
88
 
80
89
  /**
81
90
  * Negotiate a fetch with the remote repository.
@@ -99,16 +108,11 @@ struct git_transport {
99
108
  int GIT_CALLBACK(download_pack)(
100
109
  git_transport *transport,
101
110
  git_repository *repo,
102
- git_indexer_progress *stats,
103
- git_indexer_progress_cb progress_cb,
104
- void *progress_payload);
111
+ git_indexer_progress *stats);
105
112
 
106
113
  /** Checks to see if the transport is connected */
107
114
  int GIT_CALLBACK(is_connected)(git_transport *transport);
108
115
 
109
- /** Reads the flags value previously passed into connect() */
110
- int GIT_CALLBACK(read_flags)(git_transport *transport, int *flags);
111
-
112
116
  /** Cancels any outstanding transport operation */
113
117
  void GIT_CALLBACK(cancel)(git_transport *transport);
114
118
 
@@ -270,14 +274,17 @@ GIT_EXTERN(int) git_transport_smart_certificate_check(git_transport *transport,
270
274
  GIT_EXTERN(int) git_transport_smart_credentials(git_credential **out, git_transport *transport, const char *user, int methods);
271
275
 
272
276
  /**
273
- * Get a copy of the proxy options
277
+ * Get a copy of the remote connect options
274
278
  *
275
- * The url is copied and must be freed by the caller.
279
+ * All data is copied and must be freed by the caller by calling
280
+ * `git_remote_connect_options_dispose`.
276
281
  *
277
282
  * @param out options struct to fill
278
283
  * @param transport the transport to extract the data from.
279
284
  */
280
- GIT_EXTERN(int) git_transport_smart_proxy_options(git_proxy_options *out, git_transport *transport);
285
+ GIT_EXTERN(int) git_transport_remote_connect_options(
286
+ git_remote_connect_options *out,
287
+ git_transport *transport);
281
288
 
282
289
  /*
283
290
  *** End of base transport interface ***
@@ -289,7 +296,7 @@ typedef enum {
289
296
  GIT_SERVICE_UPLOADPACK_LS = 1,
290
297
  GIT_SERVICE_UPLOADPACK = 2,
291
298
  GIT_SERVICE_RECEIVEPACK_LS = 3,
292
- GIT_SERVICE_RECEIVEPACK = 4,
299
+ GIT_SERVICE_RECEIVEPACK = 4
293
300
  } git_smart_service_t;
294
301
 
295
302
  typedef struct git_smart_subtransport git_smart_subtransport;
@@ -362,6 +362,7 @@ GIT_EXTERN(int) git_tag_peel(
362
362
  *
363
363
  * @param out Pointer to store the copy of the tag
364
364
  * @param source Original tag to copy
365
+ * @return 0
365
366
  */
366
367
  GIT_EXTERN(int) git_tag_dup(git_tag **out, git_tag *source);
367
368
 
@@ -255,7 +255,7 @@ GIT_EXTERN(int) git_treebuilder_new(
255
255
  git_treebuilder **out, git_repository *repo, const git_tree *source);
256
256
 
257
257
  /**
258
- * Clear all the entires in the builder
258
+ * Clear all the entries in the builder
259
259
  *
260
260
  * @param bld Builder to clear
261
261
  * @return 0 on success; error code otherwise
@@ -386,7 +386,7 @@ typedef int GIT_CALLBACK(git_treewalk_cb)(
386
386
  /** Tree traversal modes */
387
387
  typedef enum {
388
388
  GIT_TREEWALK_PRE = 0, /* Pre-order */
389
- GIT_TREEWALK_POST = 1, /* Post-order */
389
+ GIT_TREEWALK_POST = 1 /* Post-order */
390
390
  } git_treewalk_mode;
391
391
 
392
392
  /**
@@ -418,6 +418,7 @@ GIT_EXTERN(int) git_tree_walk(
418
418
  *
419
419
  * @param out Pointer to store the copy of the tree
420
420
  * @param source Original tree to copy
421
+ * @return 0
421
422
  */
422
423
  GIT_EXTERN(int) git_tree_dup(git_tree **out, git_tree *source);
423
424
 
@@ -428,7 +429,7 @@ typedef enum {
428
429
  /** Update or insert an entry at the specified path */
429
430
  GIT_TREE_UPDATE_UPSERT,
430
431
  /** Remove an entry from the specified path */
431
- GIT_TREE_UPDATE_REMOVE,
432
+ GIT_TREE_UPDATE_REMOVE
432
433
  } git_tree_update_t;
433
434
 
434
435
  /**
@@ -78,7 +78,7 @@ typedef enum {
78
78
  GIT_OBJECT_BLOB = 3, /**< A file revision object. */
79
79
  GIT_OBJECT_TAG = 4, /**< An annotated tag object. */
80
80
  GIT_OBJECT_OFS_DELTA = 6, /**< A delta, base is given by an offset. */
81
- GIT_OBJECT_REF_DELTA = 7, /**< A delta, base is given by object id. */
81
+ GIT_OBJECT_REF_DELTA = 7 /**< A delta, base is given by object id. */
82
82
  } git_object_t;
83
83
 
84
84
  /** An open object database handle. */
@@ -208,14 +208,14 @@ typedef enum {
208
208
  GIT_REFERENCE_INVALID = 0, /**< Invalid reference */
209
209
  GIT_REFERENCE_DIRECT = 1, /**< A reference that points at an object id */
210
210
  GIT_REFERENCE_SYMBOLIC = 2, /**< A reference that points at another reference */
211
- GIT_REFERENCE_ALL = GIT_REFERENCE_DIRECT | GIT_REFERENCE_SYMBOLIC,
211
+ GIT_REFERENCE_ALL = GIT_REFERENCE_DIRECT | GIT_REFERENCE_SYMBOLIC
212
212
  } git_reference_t;
213
213
 
214
214
  /** Basic type of any Git branch. */
215
215
  typedef enum {
216
216
  GIT_BRANCH_LOCAL = 1,
217
217
  GIT_BRANCH_REMOTE = 2,
218
- GIT_BRANCH_ALL = GIT_BRANCH_LOCAL|GIT_BRANCH_REMOTE,
218
+ GIT_BRANCH_ALL = GIT_BRANCH_LOCAL|GIT_BRANCH_REMOTE
219
219
  } git_branch_t;
220
220
 
221
221
  /** Valid modes for index and tree entries. */
@@ -225,7 +225,7 @@ typedef enum {
225
225
  GIT_FILEMODE_BLOB = 0100644,
226
226
  GIT_FILEMODE_BLOB_EXECUTABLE = 0100755,
227
227
  GIT_FILEMODE_LINK = 0120000,
228
- GIT_FILEMODE_COMMIT = 0160000,
228
+ GIT_FILEMODE_COMMIT = 0160000
229
229
  } git_filemode_t;
230
230
 
231
231
  /**
@@ -236,7 +236,7 @@ typedef struct git_refspec git_refspec;
236
236
 
237
237
  /**
238
238
  * Git's idea of a remote repository. A remote can be anonymous (in
239
- * which case it does not have backing configuration entires).
239
+ * which case it does not have backing configuration entries).
240
240
  */
241
241
  typedef struct git_remote git_remote;
242
242
 
@@ -334,7 +334,7 @@ typedef enum {
334
334
  GIT_SUBMODULE_IGNORE_NONE = 1, /**< any change or untracked == dirty */
335
335
  GIT_SUBMODULE_IGNORE_UNTRACKED = 2, /**< dirty if tracked files change */
336
336
  GIT_SUBMODULE_IGNORE_DIRTY = 3, /**< only dirty if HEAD moved */
337
- GIT_SUBMODULE_IGNORE_ALL = 4, /**< never dirty */
337
+ GIT_SUBMODULE_IGNORE_ALL = 4 /**< never dirty */
338
338
  } git_submodule_ignore_t;
339
339
 
340
340
  /**
@@ -350,7 +350,7 @@ typedef enum {
350
350
  typedef enum {
351
351
  GIT_SUBMODULE_RECURSE_NO = 0,
352
352
  GIT_SUBMODULE_RECURSE_YES = 1,
353
- GIT_SUBMODULE_RECURSE_ONDEMAND = 2,
353
+ GIT_SUBMODULE_RECURSE_ONDEMAND = 2
354
354
  } git_submodule_recurse_t;
355
355
 
356
356
  typedef struct git_writestream git_writestream;
@@ -7,12 +7,33 @@
7
7
  #ifndef INCLUDE_git_version_h__
8
8
  #define INCLUDE_git_version_h__
9
9
 
10
- #define LIBGIT2_VERSION "1.3.1"
11
- #define LIBGIT2_VER_MAJOR 1
12
- #define LIBGIT2_VER_MINOR 3
13
- #define LIBGIT2_VER_REVISION 1
14
- #define LIBGIT2_VER_PATCH 0
10
+ /**
11
+ * The version string for libgit2. This string follows semantic
12
+ * versioning (v2) guidelines.
13
+ */
14
+ #define LIBGIT2_VERSION "1.6.2"
15
+
16
+ /** The major version number for this version of libgit2. */
17
+ #define LIBGIT2_VER_MAJOR 1
18
+
19
+ /** The minor version number for this version of libgit2. */
20
+ #define LIBGIT2_VER_MINOR 6
21
+
22
+ /** The revision ("teeny") version number for this version of libgit2. */
23
+ #define LIBGIT2_VER_REVISION 2
24
+
25
+ /** The Windows DLL patch number for this version of libgit2. */
26
+ #define LIBGIT2_VER_PATCH 0
27
+
28
+ /**
29
+ * The prerelease string for this version of libgit2. For development
30
+ * (nightly) builds, this will be "alpha". For prereleases, this will be
31
+ * a prerelease name like "beta" or "rc1". For final releases, this will
32
+ * be `NULL`.
33
+ */
34
+ #define LIBGIT2_VER_PRERELEASE NULL
15
35
 
16
- #define LIBGIT2_SOVERSION "1.3"
36
+ /** The library ABI soversion for this version of libgit2. */
37
+ #define LIBGIT2_SOVERSION "1.6"
17
38
 
18
39
  #endif
@@ -52,6 +52,7 @@ GIT_EXTERN(int) git_worktree_lookup(git_worktree **out, git_repository *repo, co
52
52
  *
53
53
  * @param out Out-pointer for the newly allocated worktree
54
54
  * @param repo Repository to look up worktree for
55
+ * @return 0 or an error code
55
56
  */
56
57
  GIT_EXTERN(int) git_worktree_open_from_repository(git_worktree **out, git_repository *repo);
57
58
 
@@ -86,10 +87,15 @@ typedef struct git_worktree_add_options {
86
87
 
87
88
  int lock; /**< lock newly created worktree */
88
89
  git_reference *ref; /**< reference to use for the new worktree HEAD */
90
+
91
+ /**
92
+ * Options for the checkout.
93
+ */
94
+ git_checkout_options checkout_options;
89
95
  } git_worktree_add_options;
90
96
 
91
97
  #define GIT_WORKTREE_ADD_OPTIONS_VERSION 1
92
- #define GIT_WORKTREE_ADD_OPTIONS_INIT {GIT_WORKTREE_ADD_OPTIONS_VERSION,0,NULL}
98
+ #define GIT_WORKTREE_ADD_OPTIONS_INIT {GIT_WORKTREE_ADD_OPTIONS_VERSION,0,NULL,GIT_CHECKOUT_OPTIONS_INIT}
93
99
 
94
100
  /**
95
101
  * Initialize git_worktree_add_options structure
@@ -185,7 +191,7 @@ typedef enum {
185
191
  /* Prune working tree even if it is locked */
186
192
  GIT_WORKTREE_PRUNE_LOCKED = 1u << 1,
187
193
  /* Prune checked out working tree */
188
- GIT_WORKTREE_PRUNE_WORKING_TREE = 1u << 2,
194
+ GIT_WORKTREE_PRUNE_WORKING_TREE = 1u << 2
189
195
  } git_worktree_prune_t;
190
196
 
191
197
  /**
@@ -232,6 +238,10 @@ GIT_EXTERN(int) git_worktree_prune_options_init(
232
238
  * If the worktree is not valid and not locked or if the above
233
239
  * flags have been passed in, this function will return a
234
240
  * positive value.
241
+ *
242
+ * @param wt Worktree to check.
243
+ * @param opts The prunable options.
244
+ * @return 1 if the worktree is prunable, 0 otherwise, or an error code.
235
245
  */
236
246
  GIT_EXTERN(int) git_worktree_is_prunable(git_worktree *wt,
237
247
  git_worktree_prune_options *opts);
@@ -28,6 +28,7 @@
28
28
  #include "git2/diff.h"
29
29
  #include "git2/email.h"
30
30
  #include "git2/errors.h"
31
+ #include "git2/experimental.h"
31
32
  #include "git2/filter.h"
32
33
  #include "git2/global.h"
33
34
  #include "git2/graph.h"