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
@@ -19,7 +19,7 @@
19
19
  #include "array.h"
20
20
  #include "cache.h"
21
21
  #include "refs.h"
22
- #include "buffer.h"
22
+ #include "str.h"
23
23
  #include "object.h"
24
24
  #include "attrcache.h"
25
25
  #include "submodule.h"
@@ -119,14 +119,14 @@ typedef enum {
119
119
  /* core.fsyncObjectFiles */
120
120
  GIT_FSYNCOBJECTFILES_DEFAULT = GIT_CONFIGMAP_FALSE,
121
121
  /* core.longpaths */
122
- GIT_LONGPATHS_DEFAULT = GIT_CONFIGMAP_FALSE,
122
+ GIT_LONGPATHS_DEFAULT = GIT_CONFIGMAP_FALSE
123
123
  } git_configmap_value;
124
124
 
125
125
  /* internal repository init flags */
126
126
  enum {
127
127
  GIT_REPOSITORY_INIT__HAS_DOTGIT = (1u << 16),
128
128
  GIT_REPOSITORY_INIT__NATURAL_WD = (1u << 17),
129
- GIT_REPOSITORY_INIT__IS_REINIT = (1u << 18),
129
+ GIT_REPOSITORY_INIT__IS_REINIT = (1u << 18)
130
130
  };
131
131
 
132
132
  /** Internal structure for repository object */
@@ -149,10 +149,11 @@ struct git_repository {
149
149
  char *ident_name;
150
150
  char *ident_email;
151
151
 
152
- git_array_t(git_buf) reserved_names;
152
+ git_array_t(git_str) reserved_names;
153
153
 
154
154
  unsigned is_bare:1;
155
155
  unsigned is_worktree:1;
156
+ git_oid_t oid_type;
156
157
 
157
158
  unsigned int lru_counter;
158
159
 
@@ -197,6 +198,8 @@ int git_repository_index__weakptr(git_index **out, git_repository *repo);
197
198
  int git_repository__configmap_lookup(int *out, git_repository *repo, git_configmap_item item);
198
199
  void git_repository__configmap_lookup_cache_clear(git_repository *repo);
199
200
 
201
+ int git_repository__item_path(git_str *out, const git_repository *repo, git_repository_item_t item);
202
+
200
203
  GIT_INLINE(int) git_repository__ensure_not_bare(
201
204
  git_repository *repo,
202
205
  const char *operation_name)
@@ -217,10 +220,10 @@ int git_repository__set_orig_head(git_repository *repo, const git_oid *orig_head
217
220
  int git_repository__cleanup_files(git_repository *repo, const char *files[], size_t files_len);
218
221
 
219
222
  /* The default "reserved names" for a repository */
220
- extern git_buf git_repository__reserved_names_win32[];
223
+ extern git_str git_repository__reserved_names_win32[];
221
224
  extern size_t git_repository__reserved_names_win32_len;
222
225
 
223
- extern git_buf git_repository__reserved_names_posix[];
226
+ extern git_str git_repository__reserved_names_posix[];
224
227
  extern size_t git_repository__reserved_names_posix_len;
225
228
 
226
229
  /*
@@ -234,13 +237,13 @@ extern size_t git_repository__reserved_names_posix_len;
234
237
  * will still be populated with good defaults.
235
238
  */
236
239
  bool git_repository__reserved_names(
237
- git_buf **out, size_t *outlen, git_repository *repo, bool include_ntfs);
240
+ git_str **out, size_t *outlen, git_repository *repo, bool include_ntfs);
238
241
 
239
242
  /*
240
243
  * The default branch for the repository; the `init.defaultBranch`
241
244
  * configuration option, if set, or `master` if it is not.
242
245
  */
243
- int git_repository_initialbranch(git_buf *out, git_repository *repo);
246
+ int git_repository_initialbranch(git_str *out, git_repository *repo);
244
247
 
245
248
  /*
246
249
  * Given a relative `path`, this makes it absolute based on the
@@ -248,10 +251,18 @@ int git_repository_initialbranch(git_buf *out, git_repository *repo);
248
251
  * to ensure that the path is not longer than MAX_PATH on Windows
249
252
  * (unless `core.longpaths` is set in the repo config).
250
253
  */
251
- int git_repository_workdir_path(git_buf *out, git_repository *repo, const char *path);
254
+ int git_repository_workdir_path(git_str *out, git_repository *repo, const char *path);
252
255
 
253
256
  int git_repository__extensions(char ***out, size_t *out_len);
254
257
  int git_repository__set_extensions(const char **extensions, size_t len);
255
258
  void git_repository__free_extensions(void);
256
259
 
260
+ /*
261
+ * Set the object format (OID type) for a repository; this will set
262
+ * both the configuration and the internal value for the oid type.
263
+ */
264
+ int git_repository__set_objectformat(
265
+ git_repository *repo,
266
+ git_oid_t oid_type);
267
+
257
268
  #endif
@@ -111,7 +111,7 @@ static int reset(
111
111
  git_tree *tree = NULL;
112
112
  int error = 0;
113
113
  git_checkout_options opts = GIT_CHECKOUT_OPTIONS_INIT;
114
- git_buf log_message = GIT_BUF_INIT;
114
+ git_str log_message = GIT_STR_INIT;
115
115
 
116
116
  GIT_ASSERT_ARG(repo);
117
117
  GIT_ASSERT_ARG(target);
@@ -144,7 +144,7 @@ static int reset(
144
144
  goto cleanup;
145
145
  }
146
146
 
147
- if ((error = git_buf_printf(&log_message, "reset: moving to %s", to)) < 0)
147
+ if ((error = git_str_printf(&log_message, "reset: moving to %s", to)) < 0)
148
148
  return error;
149
149
 
150
150
  if (reset_type == GIT_RESET_HARD) {
@@ -157,7 +157,7 @@ static int reset(
157
157
 
158
158
  /* move HEAD to the new target */
159
159
  if ((error = git_reference__update_terminal(repo, GIT_HEAD_FILE,
160
- git_object_id(commit), NULL, git_buf_cstr(&log_message))) < 0)
160
+ git_object_id(commit), NULL, git_str_cstr(&log_message))) < 0)
161
161
  goto cleanup;
162
162
 
163
163
  if (reset_type > GIT_RESET_SOFT) {
@@ -177,7 +177,7 @@ cleanup:
177
177
  git_object_free(commit);
178
178
  git_index_free(index);
179
179
  git_tree_free(tree);
180
- git_buf_dispose(&log_message);
180
+ git_str_dispose(&log_message);
181
181
 
182
182
  return error;
183
183
  }
@@ -188,7 +188,10 @@ int git_reset(
188
188
  git_reset_t reset_type,
189
189
  const git_checkout_options *checkout_opts)
190
190
  {
191
- return reset(repo, target, git_oid_tostr_s(git_object_id(target)), reset_type, checkout_opts);
191
+ char to[GIT_OID_SHA1_HEXSIZE + 1];
192
+
193
+ git_oid_tostr(to, GIT_OID_SHA1_HEXSIZE + 1, git_object_id(target));
194
+ return reset(repo, target, to, reset_type, checkout_opts);
192
195
  }
193
196
 
194
197
  int git_reset_from_annotated(
@@ -25,10 +25,10 @@ static int write_revert_head(
25
25
  const char *commit_oidstr)
26
26
  {
27
27
  git_filebuf file = GIT_FILEBUF_INIT;
28
- git_buf file_path = GIT_BUF_INIT;
28
+ git_str file_path = GIT_STR_INIT;
29
29
  int error = 0;
30
30
 
31
- if ((error = git_buf_joinpath(&file_path, repo->gitdir, GIT_REVERT_HEAD_FILE)) >= 0 &&
31
+ if ((error = git_str_joinpath(&file_path, repo->gitdir, GIT_REVERT_HEAD_FILE)) >= 0 &&
32
32
  (error = git_filebuf_open(&file, file_path.ptr, GIT_FILEBUF_CREATE_LEADING_DIRS, GIT_REVERT_FILE_MODE)) >= 0 &&
33
33
  (error = git_filebuf_printf(&file, "%s\n", commit_oidstr)) >= 0)
34
34
  error = git_filebuf_commit(&file);
@@ -36,7 +36,7 @@ static int write_revert_head(
36
36
  if (error < 0)
37
37
  git_filebuf_cleanup(&file);
38
38
 
39
- git_buf_dispose(&file_path);
39
+ git_str_dispose(&file_path);
40
40
 
41
41
  return error;
42
42
  }
@@ -47,10 +47,10 @@ static int write_merge_msg(
47
47
  const char *commit_msgline)
48
48
  {
49
49
  git_filebuf file = GIT_FILEBUF_INIT;
50
- git_buf file_path = GIT_BUF_INIT;
50
+ git_str file_path = GIT_STR_INIT;
51
51
  int error = 0;
52
52
 
53
- if ((error = git_buf_joinpath(&file_path, repo->gitdir, GIT_MERGE_MSG_FILE)) < 0 ||
53
+ if ((error = git_str_joinpath(&file_path, repo->gitdir, GIT_MERGE_MSG_FILE)) < 0 ||
54
54
  (error = git_filebuf_open(&file, file_path.ptr, GIT_FILEBUF_CREATE_LEADING_DIRS, GIT_REVERT_FILE_MODE)) < 0 ||
55
55
  (error = git_filebuf_printf(&file, "Revert \"%s\"\n\nThis reverts commit %s.\n",
56
56
  commit_msgline, commit_oidstr)) < 0)
@@ -62,7 +62,7 @@ cleanup:
62
62
  if (error < 0)
63
63
  git_filebuf_cleanup(&file);
64
64
 
65
- git_buf_dispose(&file_path);
65
+ git_str_dispose(&file_path);
66
66
 
67
67
  return error;
68
68
  }
@@ -107,10 +107,10 @@ static int revert_state_cleanup(git_repository *repo)
107
107
 
108
108
  static int revert_seterr(git_commit *commit, const char *fmt)
109
109
  {
110
- char commit_oidstr[GIT_OID_HEXSZ + 1];
110
+ char commit_oidstr[GIT_OID_SHA1_HEXSIZE + 1];
111
111
 
112
112
  git_oid_fmt(commit_oidstr, git_commit_id(commit));
113
- commit_oidstr[GIT_OID_HEXSZ] = '\0';
113
+ commit_oidstr[GIT_OID_SHA1_HEXSIZE] = '\0';
114
114
 
115
115
  git_error_set(GIT_ERROR_REVERT, fmt, commit_oidstr);
116
116
 
@@ -176,9 +176,9 @@ int git_revert(
176
176
  git_revert_options opts;
177
177
  git_reference *our_ref = NULL;
178
178
  git_commit *our_commit = NULL;
179
- char commit_oidstr[GIT_OID_HEXSZ + 1];
179
+ char commit_oidstr[GIT_OID_SHA1_HEXSIZE + 1];
180
180
  const char *commit_msg;
181
- git_buf their_label = GIT_BUF_INIT;
181
+ git_str their_label = GIT_STR_INIT;
182
182
  git_index *index = NULL;
183
183
  git_indexwriter indexwriter = GIT_INDEXWRITER_INIT;
184
184
  int error;
@@ -192,15 +192,15 @@ int git_revert(
192
192
  return error;
193
193
 
194
194
  git_oid_fmt(commit_oidstr, git_commit_id(commit));
195
- commit_oidstr[GIT_OID_HEXSZ] = '\0';
195
+ commit_oidstr[GIT_OID_SHA1_HEXSIZE] = '\0';
196
196
 
197
197
  if ((commit_msg = git_commit_summary(commit)) == NULL) {
198
198
  error = -1;
199
199
  goto on_error;
200
200
  }
201
201
 
202
- if ((error = git_buf_printf(&their_label, "parent of %.7s... %s", commit_oidstr, commit_msg)) < 0 ||
203
- (error = revert_normalize_opts(repo, &opts, given_opts, git_buf_cstr(&their_label))) < 0 ||
202
+ if ((error = git_str_printf(&their_label, "parent of %.7s... %s", commit_oidstr, commit_msg)) < 0 ||
203
+ (error = revert_normalize_opts(repo, &opts, given_opts, git_str_cstr(&their_label))) < 0 ||
204
204
  (error = git_indexwriter_init_for_operation(&indexwriter, repo, &opts.checkout_opts.checkout_strategy)) < 0 ||
205
205
  (error = write_revert_head(repo, commit_oidstr)) < 0 ||
206
206
  (error = write_merge_msg(repo, commit_oidstr, commit_msg)) < 0 ||
@@ -223,7 +223,7 @@ done:
223
223
  git_index_free(index);
224
224
  git_commit_free(our_commit);
225
225
  git_reference_free(our_ref);
226
- git_buf_dispose(&their_label);
226
+ git_str_dispose(&their_label);
227
227
 
228
228
  return error;
229
229
  }
@@ -7,28 +7,36 @@
7
7
 
8
8
  #include "common.h"
9
9
 
10
- #include "buffer.h"
10
+ #include "str.h"
11
11
  #include "tree.h"
12
12
  #include "refdb.h"
13
13
  #include "regexp.h"
14
+ #include "date.h"
14
15
 
15
16
  #include "git2.h"
16
17
 
17
- static int maybe_sha_or_abbrev(git_object **out, git_repository *repo, const char *spec, size_t speclen)
18
+ static int maybe_sha_or_abbrev(
19
+ git_object **out,
20
+ git_repository *repo,
21
+ const char *spec,
22
+ size_t speclen)
18
23
  {
19
24
  git_oid oid;
20
25
 
21
- if (git_oid_fromstrn(&oid, spec, speclen) < 0)
26
+ if (git_oid__fromstrn(&oid, spec, speclen, repo->oid_type) < 0)
22
27
  return GIT_ENOTFOUND;
23
28
 
24
29
  return git_object_lookup_prefix(out, repo, &oid, speclen, GIT_OBJECT_ANY);
25
30
  }
26
31
 
27
- static int maybe_sha(git_object **out, git_repository *repo, const char *spec)
32
+ static int maybe_sha(
33
+ git_object **out,
34
+ git_repository *repo,
35
+ const char *spec)
28
36
  {
29
37
  size_t speclen = strlen(spec);
30
38
 
31
- if (speclen != GIT_OID_HEXSZ)
39
+ if (speclen != git_oid_hexsize(repo->oid_type))
32
40
  return GIT_ENOTFOUND;
33
41
 
34
42
  return maybe_sha_or_abbrev(out, repo, spec, speclen);
@@ -109,8 +117,8 @@ static int revparse_lookup_object(
109
117
  if (error != GIT_ENOTFOUND)
110
118
  return error;
111
119
 
112
- if ((strlen(spec) < GIT_OID_HEXSZ) &&
113
- ((error = maybe_abbrev(object_out, repo, spec)) != GIT_ENOTFOUND))
120
+ if ((strlen(spec) < git_oid_hexsize(repo->oid_type)) &&
121
+ ((error = maybe_abbrev(object_out, repo, spec)) != GIT_ENOTFOUND))
114
122
  return error;
115
123
 
116
124
  if ((error = maybe_describe(object_out, repo, spec)) != GIT_ENOTFOUND)
@@ -145,7 +153,7 @@ static int retrieve_previously_checked_out_branch_or_revision(git_object **out,
145
153
  size_t i, numentries, cur;
146
154
  const git_reflog_entry *entry;
147
155
  const char *msg;
148
- git_buf buf = GIT_BUF_INIT;
156
+ git_str buf = GIT_STR_INIT;
149
157
 
150
158
  cur = position;
151
159
 
@@ -179,16 +187,16 @@ static int retrieve_previously_checked_out_branch_or_revision(git_object **out,
179
187
  if (cur > 0)
180
188
  continue;
181
189
 
182
- if ((git_buf_put(&buf, msg+regexmatches[1].start, regexmatches[1].end - regexmatches[1].start)) < 0)
190
+ if ((git_str_put(&buf, msg+regexmatches[1].start, regexmatches[1].end - regexmatches[1].start)) < 0)
183
191
  goto cleanup;
184
192
 
185
- if ((error = git_reference_dwim(base_ref, repo, git_buf_cstr(&buf))) == 0)
193
+ if ((error = git_reference_dwim(base_ref, repo, git_str_cstr(&buf))) == 0)
186
194
  goto cleanup;
187
195
 
188
196
  if (error < 0 && error != GIT_ENOTFOUND)
189
197
  goto cleanup;
190
198
 
191
- error = maybe_abbrev(out, repo, git_buf_cstr(&buf));
199
+ error = maybe_abbrev(out, repo, git_str_cstr(&buf));
192
200
 
193
201
  goto cleanup;
194
202
  }
@@ -197,7 +205,7 @@ static int retrieve_previously_checked_out_branch_or_revision(git_object **out,
197
205
 
198
206
  cleanup:
199
207
  git_reference_free(ref);
200
- git_buf_dispose(&buf);
208
+ git_str_dispose(&buf);
201
209
  git_regexp_dispose(&preg);
202
210
  git_reflog_free(reflog);
203
211
  return error;
@@ -207,7 +215,7 @@ static int retrieve_oid_from_reflog(git_oid *oid, git_reference *ref, size_t ide
207
215
  {
208
216
  git_reflog *reflog;
209
217
  size_t numentries;
210
- const git_reflog_entry *entry;
218
+ const git_reflog_entry *entry = NULL;
211
219
  bool search_by_pos = (identifier <= 100000000);
212
220
 
213
221
  if (git_reflog_read(&reflog, git_reference_owner(ref), git_reference_name(ref)) < 0)
@@ -236,8 +244,15 @@ static int retrieve_oid_from_reflog(git_oid *oid, git_reference *ref, size_t ide
236
244
  break;
237
245
  }
238
246
 
239
- if (i == numentries)
240
- goto notfound;
247
+ if (i == numentries) {
248
+ if (entry == NULL)
249
+ goto notfound;
250
+
251
+ /*
252
+ * TODO: emit a warning (log for 'branch' only goes back to ...)
253
+ */
254
+ git_oid_cpy(oid, git_reflog_entry_id_new(entry));
255
+ }
241
256
  }
242
257
 
243
258
  git_reflog_free(reflog);
@@ -260,7 +275,16 @@ static int retrieve_revobject_from_reflog(git_object **out, git_reference **base
260
275
  int error = -1;
261
276
 
262
277
  if (*base_ref == NULL) {
263
- if ((error = git_reference_dwim(&ref, repo, identifier)) < 0)
278
+ /*
279
+ * When HEAD@{n} is specified, do not use dwim, which would resolve the
280
+ * reference (to the current branch that HEAD is pointing to).
281
+ */
282
+ if (position > 0 && strcmp(identifier, GIT_HEAD_FILE) == 0)
283
+ error = git_reference_lookup(&ref, repo, GIT_HEAD_FILE);
284
+ else
285
+ error = git_reference_dwim(&ref, repo, identifier);
286
+
287
+ if (error < 0)
264
288
  return error;
265
289
  } else {
266
290
  ref = *base_ref;
@@ -314,12 +338,12 @@ static int handle_at_syntax(git_object **out, git_reference **ref, const char *s
314
338
  {
315
339
  bool is_numeric;
316
340
  int parsed = 0, error = -1;
317
- git_buf identifier = GIT_BUF_INIT;
341
+ git_str identifier = GIT_STR_INIT;
318
342
  git_time_t timestamp;
319
343
 
320
344
  GIT_ASSERT(*out == NULL);
321
345
 
322
- if (git_buf_put(&identifier, spec, identifier_len) < 0)
346
+ if (git_str_put(&identifier, spec, identifier_len) < 0)
323
347
  return -1;
324
348
 
325
349
  is_numeric = !try_parse_numeric(&parsed, curly_braces_content);
@@ -331,26 +355,28 @@ static int handle_at_syntax(git_object **out, git_reference **ref, const char *s
331
355
 
332
356
  if (is_numeric) {
333
357
  if (parsed < 0)
334
- error = retrieve_previously_checked_out_branch_or_revision(out, ref, repo, git_buf_cstr(&identifier), -parsed);
358
+ error = retrieve_previously_checked_out_branch_or_revision(out, ref, repo, git_str_cstr(&identifier), -parsed);
335
359
  else
336
- error = retrieve_revobject_from_reflog(out, ref, repo, git_buf_cstr(&identifier), parsed);
360
+ error = retrieve_revobject_from_reflog(out, ref, repo, git_str_cstr(&identifier), parsed);
337
361
 
338
362
  goto cleanup;
339
363
  }
340
364
 
341
365
  if (!strcmp(curly_braces_content, "u") || !strcmp(curly_braces_content, "upstream")) {
342
- error = retrieve_remote_tracking_reference(ref, git_buf_cstr(&identifier), repo);
366
+ error = retrieve_remote_tracking_reference(ref, git_str_cstr(&identifier), repo);
343
367
 
344
368
  goto cleanup;
345
369
  }
346
370
 
347
- if (git__date_parse(&timestamp, curly_braces_content) < 0)
371
+ if (git_date_parse(&timestamp, curly_braces_content) < 0) {
372
+ error = GIT_EINVALIDSPEC;
348
373
  goto cleanup;
374
+ }
349
375
 
350
- error = retrieve_revobject_from_reflog(out, ref, repo, git_buf_cstr(&identifier), (size_t)timestamp);
376
+ error = retrieve_revobject_from_reflog(out, ref, repo, git_str_cstr(&identifier), (size_t)timestamp);
351
377
 
352
378
  cleanup:
353
- git_buf_dispose(&identifier);
379
+ git_str_dispose(&identifier);
354
380
  return error;
355
381
  }
356
382
 
@@ -520,9 +546,9 @@ static int handle_caret_curly_syntax(git_object **out, git_object *obj, const ch
520
546
  return git_object_peel(out, obj, expected_type);
521
547
  }
522
548
 
523
- static int extract_curly_braces_content(git_buf *buf, const char *spec, size_t *pos)
549
+ static int extract_curly_braces_content(git_str *buf, const char *spec, size_t *pos)
524
550
  {
525
- git_buf_clear(buf);
551
+ git_str_clear(buf);
526
552
 
527
553
  GIT_ASSERT_ARG(spec[*pos] == '^' || spec[*pos] == '@');
528
554
 
@@ -537,7 +563,7 @@ static int extract_curly_braces_content(git_buf *buf, const char *spec, size_t *
537
563
  if (spec[*pos] == '\0')
538
564
  return GIT_EINVALIDSPEC;
539
565
 
540
- if (git_buf_putc(buf, spec[(*pos)++]) < 0)
566
+ if (git_str_putc(buf, spec[(*pos)++]) < 0)
541
567
  return -1;
542
568
  }
543
569
 
@@ -546,18 +572,18 @@ static int extract_curly_braces_content(git_buf *buf, const char *spec, size_t *
546
572
  return 0;
547
573
  }
548
574
 
549
- static int extract_path(git_buf *buf, const char *spec, size_t *pos)
575
+ static int extract_path(git_str *buf, const char *spec, size_t *pos)
550
576
  {
551
- git_buf_clear(buf);
577
+ git_str_clear(buf);
552
578
 
553
579
  GIT_ASSERT_ARG(spec[*pos] == ':');
554
580
 
555
581
  (*pos)++;
556
582
 
557
- if (git_buf_puts(buf, spec + *pos) < 0)
583
+ if (git_str_puts(buf, spec + *pos) < 0)
558
584
  return -1;
559
585
 
560
- *pos += git_buf_len(buf);
586
+ *pos += git_str_len(buf);
561
587
 
562
588
  return 0;
563
589
  }
@@ -610,7 +636,7 @@ static int object_from_reference(git_object **object, git_reference *reference)
610
636
  static int ensure_base_rev_loaded(git_object **object, git_reference **reference, const char *spec, size_t identifier_len, git_repository *repo, bool allow_empty_identifier)
611
637
  {
612
638
  int error;
613
- git_buf identifier = GIT_BUF_INIT;
639
+ git_str identifier = GIT_STR_INIT;
614
640
 
615
641
  if (*object != NULL)
616
642
  return 0;
@@ -621,11 +647,11 @@ static int ensure_base_rev_loaded(git_object **object, git_reference **reference
621
647
  if (!allow_empty_identifier && identifier_len == 0)
622
648
  return GIT_EINVALIDSPEC;
623
649
 
624
- if (git_buf_put(&identifier, spec, identifier_len) < 0)
650
+ if (git_str_put(&identifier, spec, identifier_len) < 0)
625
651
  return -1;
626
652
 
627
- error = revparse_lookup_object(object, reference, repo, git_buf_cstr(&identifier));
628
- git_buf_dispose(&identifier);
653
+ error = revparse_lookup_object(object, reference, repo, git_str_cstr(&identifier));
654
+ git_str_dispose(&identifier);
629
655
 
630
656
  return error;
631
657
  }
@@ -669,7 +695,7 @@ static int revparse(
669
695
  {
670
696
  size_t pos = 0, identifier_len = 0;
671
697
  int error = -1, n;
672
- git_buf buf = GIT_BUF_INIT;
698
+ git_str buf = GIT_STR_INIT;
673
699
 
674
700
  git_reference *reference = NULL;
675
701
  git_object *base_rev = NULL;
@@ -698,7 +724,7 @@ static int revparse(
698
724
  if ((error = extract_curly_braces_content(&buf, spec, &pos)) < 0)
699
725
  goto cleanup;
700
726
 
701
- if ((error = handle_caret_curly_syntax(&temp_object, base_rev, git_buf_cstr(&buf))) < 0)
727
+ if ((error = handle_caret_curly_syntax(&temp_object, base_rev, git_str_cstr(&buf))) < 0)
702
728
  goto cleanup;
703
729
 
704
730
  git_object_free(base_rev);
@@ -750,11 +776,11 @@ static int revparse(
750
776
  if ((error = ensure_base_rev_loaded(&base_rev, &reference, spec, identifier_len, repo, true)) < 0)
751
777
  goto cleanup;
752
778
 
753
- if ((error = handle_colon_syntax(&temp_object, base_rev, git_buf_cstr(&buf))) < 0)
779
+ if ((error = handle_colon_syntax(&temp_object, base_rev, git_str_cstr(&buf))) < 0)
754
780
  goto cleanup;
755
781
  } else {
756
- if (*git_buf_cstr(&buf) == '/') {
757
- if ((error = handle_grep_syntax(&temp_object, repo, NULL, git_buf_cstr(&buf) + 1)) < 0)
782
+ if (*git_str_cstr(&buf) == '/') {
783
+ if ((error = handle_grep_syntax(&temp_object, repo, NULL, git_str_cstr(&buf) + 1)) < 0)
758
784
  goto cleanup;
759
785
  } else {
760
786
 
@@ -783,12 +809,15 @@ static int revparse(
783
809
  if ((error = ensure_base_rev_is_not_known_yet(base_rev)) < 0)
784
810
  goto cleanup;
785
811
 
786
- if ((error = handle_at_syntax(&temp_object, &reference, spec, identifier_len, repo, git_buf_cstr(&buf))) < 0)
812
+ if ((error = handle_at_syntax(&temp_object, &reference, spec, identifier_len, repo, git_str_cstr(&buf))) < 0)
787
813
  goto cleanup;
788
814
 
789
815
  if (temp_object != NULL)
790
816
  base_rev = temp_object;
791
817
  break;
818
+ } else if (spec[pos+1] == '\0') {
819
+ spec = "HEAD";
820
+ break;
792
821
  }
793
822
  /* fall through */
794
823
 
@@ -824,7 +853,7 @@ cleanup:
824
853
  git_reference_free(reference);
825
854
  }
826
855
 
827
- git_buf_dispose(&buf);
856
+ git_str_dispose(&buf);
828
857
  return error;
829
858
  }
830
859
 
@@ -121,8 +121,12 @@ int git_revwalk__push_ref(git_revwalk *walk, const char *refname, const git_revw
121
121
  {
122
122
  git_oid oid;
123
123
 
124
- if (git_reference_name_to_id(&oid, walk->repo, refname) < 0)
124
+ int error = git_reference_name_to_id(&oid, walk->repo, refname);
125
+ if (opts->from_glob && (error == GIT_ENOTFOUND || error == GIT_EINVALIDSPEC || error == GIT_EPEEL)) {
126
+ return 0;
127
+ } else if (error < 0) {
125
128
  return -1;
129
+ }
126
130
 
127
131
  return git_revwalk__push_commit(walk, &oid, opts);
128
132
  }
@@ -131,7 +135,7 @@ int git_revwalk__push_glob(git_revwalk *walk, const char *glob, const git_revwal
131
135
  {
132
136
  git_revwalk__push_options opts = GIT_REVWALK__PUSH_OPTIONS_INIT;
133
137
  int error = 0;
134
- git_buf buf = GIT_BUF_INIT;
138
+ git_str buf = GIT_STR_INIT;
135
139
  git_reference *ref;
136
140
  git_reference_iterator *iter;
137
141
  size_t wildcard;
@@ -144,15 +148,15 @@ int git_revwalk__push_glob(git_revwalk *walk, const char *glob, const git_revwal
144
148
 
145
149
  /* refs/ is implied if not given in the glob */
146
150
  if (git__prefixcmp(glob, GIT_REFS_DIR) != 0)
147
- git_buf_joinpath(&buf, GIT_REFS_DIR, glob);
151
+ git_str_joinpath(&buf, GIT_REFS_DIR, glob);
148
152
  else
149
- git_buf_puts(&buf, glob);
150
- GIT_ERROR_CHECK_ALLOC_BUF(&buf);
153
+ git_str_puts(&buf, glob);
154
+ GIT_ERROR_CHECK_ALLOC_STR(&buf);
151
155
 
152
156
  /* If no '?', '*' or '[' exist, we append '/ *' to the glob */
153
157
  wildcard = strcspn(glob, "?*[");
154
158
  if (!glob[wildcard])
155
- git_buf_put(&buf, "/*", 2);
159
+ git_str_put(&buf, "/*", 2);
156
160
 
157
161
  if ((error = git_reference_iterator_glob_new(&iter, walk->repo, buf.ptr)) < 0)
158
162
  goto out;
@@ -169,7 +173,7 @@ int git_revwalk__push_glob(git_revwalk *walk, const char *glob, const git_revwal
169
173
  if (error == GIT_ITEROVER)
170
174
  error = 0;
171
175
  out:
172
- git_buf_dispose(&buf);
176
+ git_str_dispose(&buf);
173
177
  return error;
174
178
  }
175
179
 
@@ -427,7 +431,7 @@ static int add_parents_to_list(git_revwalk *walk, git_commit_list_node *commit,
427
431
  return 0;
428
432
  }
429
433
 
430
- /* How many unintersting commits we want to look at after we run out of interesting ones */
434
+ /* How many uninteresting commits we want to look at after we run out of interesting ones */
431
435
  #define SLOP 5
432
436
 
433
437
  static int still_interesting(git_commit_list *list, int64_t time, int slop)
@@ -23,6 +23,12 @@ void git_signature_free(git_signature *sig)
23
23
  git__free(sig);
24
24
  }
25
25
 
26
+ static int signature_parse_error(const char *msg)
27
+ {
28
+ git_error_set(GIT_ERROR_INVALID, "failed to parse signature - %s", msg);
29
+ return GIT_EINVALID;
30
+ }
31
+
26
32
  static int signature_error(const char *msg)
27
33
  {
28
34
  git_error_set(GIT_ERROR_INVALID, "failed to parse signature - %s", msg);
@@ -206,13 +212,13 @@ int git_signature__parse(git_signature *sig, const char **buffer_out,
206
212
 
207
213
  if (ender &&
208
214
  (buffer_end = memchr(buffer, ender, buffer_end - buffer)) == NULL)
209
- return signature_error("no newline given");
215
+ return signature_parse_error("no newline given");
210
216
 
211
217
  if (header) {
212
218
  const size_t header_len = strlen(header);
213
219
 
214
220
  if (buffer + header_len >= buffer_end || memcmp(buffer, header, header_len) != 0)
215
- return signature_error("expected prefix doesn't match actual");
221
+ return signature_parse_error("expected prefix doesn't match actual");
216
222
 
217
223
  buffer += header_len;
218
224
  }
@@ -221,7 +227,7 @@ int git_signature__parse(git_signature *sig, const char **buffer_out,
221
227
  email_end = git__memrchr(buffer, '>', buffer_end - buffer);
222
228
 
223
229
  if (!email_start || !email_end || email_end <= email_start)
224
- return signature_error("malformed e-mail");
230
+ return signature_parse_error("malformed e-mail");
225
231
 
226
232
  email_start += 1;
227
233
  sig->name = extract_trimmed(buffer, email_start - buffer - 1);
@@ -237,7 +243,7 @@ int git_signature__parse(git_signature *sig, const char **buffer_out,
237
243
  git__free(sig->name);
238
244
  git__free(sig->email);
239
245
  sig->name = sig->email = NULL;
240
- return signature_error("invalid Unix timestamp");
246
+ return signature_parse_error("invalid Unix timestamp");
241
247
  }
242
248
 
243
249
  /* do we have a timezone? */
@@ -299,7 +305,7 @@ int git_signature_from_buffer(git_signature **out, const char *buf)
299
305
  return error;
300
306
  }
301
307
 
302
- void git_signature__writebuf(git_buf *buf, const char *header, const git_signature *sig)
308
+ void git_signature__writebuf(git_str *buf, const char *header, const git_signature *sig)
303
309
  {
304
310
  int offset, hours, mins;
305
311
  char sign;
@@ -313,7 +319,7 @@ void git_signature__writebuf(git_buf *buf, const char *header, const git_signatu
313
319
  hours = offset / 60;
314
320
  mins = offset % 60;
315
321
 
316
- git_buf_printf(buf, "%s%s <%s> %u %c%02d%02d\n",
322
+ git_str_printf(buf, "%s%s <%s> %u %c%02d%02d\n",
317
323
  header ? header : "", sig->name, sig->email,
318
324
  (unsigned)sig->when.time, sign, hours, mins);
319
325
  }
@@ -15,7 +15,7 @@
15
15
  #include <time.h>
16
16
 
17
17
  int git_signature__parse(git_signature *sig, const char **buffer_out, const char *buffer_end, const char *header, char ender);
18
- void git_signature__writebuf(git_buf *buf, const char *header, const git_signature *sig);
18
+ void git_signature__writebuf(git_str *buf, const char *header, const git_signature *sig);
19
19
  bool git_signature__equal(const git_signature *one, const git_signature *two);
20
20
 
21
21
  int git_signature__pdup(git_signature **dest, const git_signature *source, git_pool *pool);