rugged 0.27.7 → 0.27.10

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 (409) hide show
  1. checksums.yaml +4 -4
  2. data/lib/rugged/version.rb +1 -1
  3. data/vendor/libgit2/AUTHORS +1 -0
  4. data/vendor/libgit2/CMakeLists.txt +99 -51
  5. data/vendor/libgit2/COPYING +28 -0
  6. data/vendor/libgit2/cmake/Modules/AddCFlagIfSupported.cmake +15 -1
  7. data/vendor/libgit2/cmake/Modules/CheckPrototypeDefinition.c.in +29 -0
  8. data/vendor/libgit2/cmake/Modules/CheckPrototypeDefinition.cmake +96 -0
  9. data/vendor/libgit2/cmake/Modules/EnableWarnings.cmake +9 -8
  10. data/vendor/libgit2/cmake/Modules/FindCoreFoundation.cmake +2 -2
  11. data/vendor/libgit2/cmake/Modules/FindGSSAPI.cmake +1 -1
  12. data/vendor/libgit2/cmake/Modules/FindGSSFramework.cmake +28 -0
  13. data/vendor/libgit2/cmake/Modules/FindIconv.cmake +11 -6
  14. data/vendor/libgit2/cmake/Modules/FindPCRE.cmake +38 -0
  15. data/vendor/libgit2/cmake/Modules/FindPCRE2.cmake +37 -0
  16. data/vendor/libgit2/cmake/Modules/FindSecurity.cmake +2 -2
  17. data/vendor/libgit2/cmake/Modules/FindStatNsec.cmake +6 -0
  18. data/vendor/libgit2/cmake/Modules/PkgBuildConfig.cmake +110 -0
  19. data/vendor/libgit2/cmake/Modules/SelectGSSAPI.cmake +53 -0
  20. data/vendor/libgit2/cmake/Modules/SelectHTTPSBackend.cmake +124 -0
  21. data/vendor/libgit2/cmake/Modules/SelectHashes.cmake +66 -0
  22. data/vendor/libgit2/deps/http-parser/http_parser.c +11 -6
  23. data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +21 -0
  24. data/vendor/libgit2/deps/ntlmclient/compat.h +33 -0
  25. data/vendor/libgit2/deps/ntlmclient/crypt.h +64 -0
  26. data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.c +120 -0
  27. data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.h +18 -0
  28. data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.c +145 -0
  29. data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.h +18 -0
  30. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +130 -0
  31. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.h +21 -0
  32. data/vendor/libgit2/deps/ntlmclient/ntlm.c +1420 -0
  33. data/vendor/libgit2/deps/ntlmclient/ntlm.h +174 -0
  34. data/vendor/libgit2/deps/ntlmclient/ntlmclient.h +320 -0
  35. data/vendor/libgit2/deps/ntlmclient/unicode.h +36 -0
  36. data/vendor/libgit2/deps/ntlmclient/unicode_builtin.c +445 -0
  37. data/vendor/libgit2/deps/ntlmclient/unicode_iconv.c +201 -0
  38. data/vendor/libgit2/deps/ntlmclient/utf8.h +1257 -0
  39. data/vendor/libgit2/deps/ntlmclient/util.c +21 -0
  40. data/vendor/libgit2/deps/ntlmclient/util.h +14 -0
  41. data/vendor/libgit2/deps/pcre/CMakeLists.txt +140 -0
  42. data/vendor/libgit2/deps/pcre/COPYING +5 -0
  43. data/vendor/libgit2/deps/pcre/cmake/COPYING-CMAKE-SCRIPTS +22 -0
  44. data/vendor/libgit2/deps/pcre/cmake/FindEditline.cmake +17 -0
  45. data/vendor/libgit2/deps/pcre/cmake/FindPackageHandleStandardArgs.cmake +58 -0
  46. data/vendor/libgit2/deps/pcre/cmake/FindReadline.cmake +29 -0
  47. data/vendor/libgit2/deps/pcre/config.h.in +57 -0
  48. data/vendor/libgit2/deps/pcre/pcre.h +641 -0
  49. data/vendor/libgit2/deps/pcre/pcre_byte_order.c +319 -0
  50. data/vendor/libgit2/deps/pcre/pcre_chartables.c +198 -0
  51. data/vendor/libgit2/deps/pcre/pcre_compile.c +9800 -0
  52. data/vendor/libgit2/deps/pcre/pcre_config.c +190 -0
  53. data/vendor/libgit2/deps/pcre/pcre_dfa_exec.c +3676 -0
  54. data/vendor/libgit2/deps/pcre/pcre_exec.c +7173 -0
  55. data/vendor/libgit2/deps/pcre/pcre_fullinfo.c +245 -0
  56. data/vendor/libgit2/deps/pcre/pcre_get.c +669 -0
  57. data/vendor/libgit2/deps/pcre/pcre_globals.c +86 -0
  58. data/vendor/libgit2/deps/pcre/pcre_internal.h +2787 -0
  59. data/vendor/libgit2/deps/pcre/pcre_jit_compile.c +11913 -0
  60. data/vendor/libgit2/deps/pcre/pcre_maketables.c +156 -0
  61. data/vendor/libgit2/deps/pcre/pcre_newline.c +210 -0
  62. data/vendor/libgit2/deps/pcre/pcre_ord2utf8.c +94 -0
  63. data/vendor/libgit2/deps/pcre/pcre_printint.c +834 -0
  64. data/vendor/libgit2/deps/pcre/pcre_refcount.c +92 -0
  65. data/vendor/libgit2/deps/pcre/pcre_string_utils.c +211 -0
  66. data/vendor/libgit2/deps/pcre/pcre_study.c +1686 -0
  67. data/vendor/libgit2/deps/pcre/pcre_tables.c +727 -0
  68. data/vendor/libgit2/deps/pcre/pcre_ucd.c +3644 -0
  69. data/vendor/libgit2/deps/pcre/pcre_valid_utf8.c +301 -0
  70. data/vendor/libgit2/deps/pcre/pcre_version.c +98 -0
  71. data/vendor/libgit2/deps/pcre/pcre_xclass.c +268 -0
  72. data/vendor/libgit2/deps/pcre/pcreposix.c +421 -0
  73. data/vendor/libgit2/deps/pcre/pcreposix.h +117 -0
  74. data/vendor/libgit2/deps/pcre/ucp.h +224 -0
  75. data/vendor/libgit2/deps/winhttp/COPYING.GPL +993 -0
  76. data/vendor/libgit2/deps/winhttp/COPYING.LGPL +502 -0
  77. data/vendor/libgit2/deps/zlib/CMakeLists.txt +1 -0
  78. data/vendor/libgit2/deps/zlib/COPYING +27 -0
  79. data/vendor/libgit2/deps/zlib/adler32.c +0 -7
  80. data/vendor/libgit2/deps/zlib/crc32.c +0 -7
  81. data/vendor/libgit2/include/git2/annotated_commit.h +9 -0
  82. data/vendor/libgit2/include/git2/apply.h +149 -0
  83. data/vendor/libgit2/include/git2/attr.h +20 -13
  84. data/vendor/libgit2/include/git2/blame.h +4 -4
  85. data/vendor/libgit2/include/git2/blob.h +44 -12
  86. data/vendor/libgit2/include/git2/buffer.h +20 -26
  87. data/vendor/libgit2/include/git2/cert.h +135 -0
  88. data/vendor/libgit2/include/git2/checkout.h +53 -21
  89. data/vendor/libgit2/include/git2/cherrypick.h +3 -3
  90. data/vendor/libgit2/include/git2/clone.h +5 -5
  91. data/vendor/libgit2/include/git2/commit.h +25 -3
  92. data/vendor/libgit2/include/git2/common.h +35 -10
  93. data/vendor/libgit2/include/git2/config.h +29 -19
  94. data/vendor/libgit2/include/git2/cred.h +308 -0
  95. data/vendor/libgit2/include/git2/deprecated.h +493 -0
  96. data/vendor/libgit2/include/git2/describe.h +4 -4
  97. data/vendor/libgit2/include/git2/diff.h +177 -135
  98. data/vendor/libgit2/include/git2/errors.h +53 -46
  99. data/vendor/libgit2/include/git2/filter.h +8 -0
  100. data/vendor/libgit2/include/git2/index.h +74 -52
  101. data/vendor/libgit2/include/git2/indexer.h +76 -6
  102. data/vendor/libgit2/include/git2/merge.h +25 -10
  103. data/vendor/libgit2/include/git2/net.h +0 -5
  104. data/vendor/libgit2/include/git2/notes.h +1 -1
  105. data/vendor/libgit2/include/git2/object.h +17 -29
  106. data/vendor/libgit2/include/git2/odb.h +12 -11
  107. data/vendor/libgit2/include/git2/odb_backend.h +10 -9
  108. data/vendor/libgit2/include/git2/oid.h +2 -2
  109. data/vendor/libgit2/include/git2/pack.h +14 -3
  110. data/vendor/libgit2/include/git2/proxy.h +5 -3
  111. data/vendor/libgit2/include/git2/rebase.h +46 -2
  112. data/vendor/libgit2/include/git2/refs.h +34 -16
  113. data/vendor/libgit2/include/git2/remote.h +111 -14
  114. data/vendor/libgit2/include/git2/repository.h +69 -34
  115. data/vendor/libgit2/include/git2/revert.h +1 -1
  116. data/vendor/libgit2/include/git2/revwalk.h +7 -7
  117. data/vendor/libgit2/include/git2/signature.h +2 -2
  118. data/vendor/libgit2/include/git2/stash.h +5 -5
  119. data/vendor/libgit2/include/git2/status.h +26 -17
  120. data/vendor/libgit2/include/git2/submodule.h +23 -6
  121. data/vendor/libgit2/include/git2/sys/alloc.h +18 -18
  122. data/vendor/libgit2/include/git2/sys/commit.h +1 -1
  123. data/vendor/libgit2/include/git2/sys/config.h +13 -13
  124. data/vendor/libgit2/include/git2/sys/cred.h +90 -0
  125. data/vendor/libgit2/include/git2/sys/filter.h +6 -6
  126. data/vendor/libgit2/include/git2/sys/merge.h +3 -3
  127. data/vendor/libgit2/include/git2/sys/odb_backend.h +66 -22
  128. data/vendor/libgit2/include/git2/sys/path.h +14 -5
  129. data/vendor/libgit2/include/git2/sys/refdb_backend.h +76 -40
  130. data/vendor/libgit2/include/git2/sys/repository.h +5 -1
  131. data/vendor/libgit2/include/git2/sys/stream.h +92 -12
  132. data/vendor/libgit2/include/git2/sys/transport.h +129 -83
  133. data/vendor/libgit2/include/git2/tag.h +13 -4
  134. data/vendor/libgit2/include/git2/trace.h +2 -2
  135. data/vendor/libgit2/include/git2/transport.h +11 -311
  136. data/vendor/libgit2/include/git2/tree.h +4 -4
  137. data/vendor/libgit2/include/git2/types.h +25 -106
  138. data/vendor/libgit2/include/git2/version.h +3 -3
  139. data/vendor/libgit2/include/git2/worktree.h +5 -5
  140. data/vendor/libgit2/include/git2.h +4 -0
  141. data/vendor/libgit2/src/CMakeLists.txt +104 -235
  142. data/vendor/libgit2/src/alloc.c +14 -18
  143. data/vendor/libgit2/src/{stdalloc.c → allocators/stdalloc.c} +7 -8
  144. data/vendor/libgit2/src/{stdalloc.h → allocators/stdalloc.h} +4 -4
  145. data/vendor/libgit2/src/allocators/win32_crtdbg.c +118 -0
  146. data/vendor/libgit2/src/{transports/cred.h → allocators/win32_crtdbg.h} +5 -4
  147. data/vendor/libgit2/src/annotated_commit.c +18 -11
  148. data/vendor/libgit2/src/apply.c +535 -28
  149. data/vendor/libgit2/src/apply.h +3 -1
  150. data/vendor/libgit2/src/array.h +2 -2
  151. data/vendor/libgit2/src/attr.c +77 -71
  152. data/vendor/libgit2/src/attr_file.c +203 -117
  153. data/vendor/libgit2/src/attr_file.h +9 -9
  154. data/vendor/libgit2/src/attrcache.c +49 -51
  155. data/vendor/libgit2/src/attrcache.h +2 -1
  156. data/vendor/libgit2/src/blame.c +38 -18
  157. data/vendor/libgit2/src/blame.h +1 -1
  158. data/vendor/libgit2/src/blame_git.c +29 -15
  159. data/vendor/libgit2/src/blob.c +123 -37
  160. data/vendor/libgit2/src/blob.h +19 -2
  161. data/vendor/libgit2/src/branch.c +47 -23
  162. data/vendor/libgit2/src/buf_text.c +7 -6
  163. data/vendor/libgit2/src/buffer.c +60 -53
  164. data/vendor/libgit2/src/cache.c +38 -45
  165. data/vendor/libgit2/src/cache.h +3 -3
  166. data/vendor/libgit2/src/cc-compat.h +20 -3
  167. data/vendor/libgit2/src/checkout.c +77 -67
  168. data/vendor/libgit2/src/cherrypick.c +12 -6
  169. data/vendor/libgit2/src/clone.c +36 -14
  170. data/vendor/libgit2/src/clone.h +4 -0
  171. data/vendor/libgit2/src/commit.c +103 -48
  172. data/vendor/libgit2/src/commit.h +7 -0
  173. data/vendor/libgit2/src/commit_list.c +36 -78
  174. data/vendor/libgit2/src/commit_list.h +2 -2
  175. data/vendor/libgit2/src/common.h +24 -90
  176. data/vendor/libgit2/src/config.c +203 -176
  177. data/vendor/libgit2/src/config.h +8 -20
  178. data/vendor/libgit2/src/config_backend.h +96 -0
  179. data/vendor/libgit2/src/config_cache.c +41 -35
  180. data/vendor/libgit2/src/config_entries.c +229 -0
  181. data/vendor/libgit2/src/config_entries.h +24 -0
  182. data/vendor/libgit2/src/config_file.c +422 -680
  183. data/vendor/libgit2/src/config_mem.c +220 -0
  184. data/vendor/libgit2/src/config_parse.c +96 -68
  185. data/vendor/libgit2/src/config_parse.h +15 -14
  186. data/vendor/libgit2/src/config_snapshot.c +206 -0
  187. data/vendor/libgit2/src/crlf.c +219 -196
  188. data/vendor/libgit2/src/delta.c +25 -18
  189. data/vendor/libgit2/src/describe.c +42 -41
  190. data/vendor/libgit2/src/diff.c +52 -67
  191. data/vendor/libgit2/src/diff.h +2 -1
  192. data/vendor/libgit2/src/diff_driver.c +44 -46
  193. data/vendor/libgit2/src/diff_file.c +16 -14
  194. data/vendor/libgit2/src/diff_file.h +1 -1
  195. data/vendor/libgit2/src/diff_generate.c +158 -103
  196. data/vendor/libgit2/src/diff_generate.h +3 -3
  197. data/vendor/libgit2/src/diff_parse.c +4 -4
  198. data/vendor/libgit2/src/diff_print.c +34 -22
  199. data/vendor/libgit2/src/diff_stats.c +22 -7
  200. data/vendor/libgit2/src/diff_tform.c +18 -16
  201. data/vendor/libgit2/src/diff_xdiff.c +3 -3
  202. data/vendor/libgit2/src/errors.c +51 -39
  203. data/vendor/libgit2/src/errors.h +81 -0
  204. data/vendor/libgit2/src/features.h.in +9 -3
  205. data/vendor/libgit2/src/fetch.c +8 -3
  206. data/vendor/libgit2/src/fetchhead.c +12 -12
  207. data/vendor/libgit2/src/filebuf.c +28 -32
  208. data/vendor/libgit2/src/filebuf.h +2 -2
  209. data/vendor/libgit2/src/filter.c +47 -33
  210. data/vendor/libgit2/src/filter.h +0 -10
  211. data/vendor/libgit2/src/{fileops.c → futils.c} +70 -63
  212. data/vendor/libgit2/src/{fileops.h → futils.h} +6 -6
  213. data/vendor/libgit2/src/global.c +35 -55
  214. data/vendor/libgit2/src/global.h +0 -2
  215. data/vendor/libgit2/src/hash/sha1/collisiondetect.c +48 -0
  216. data/vendor/libgit2/src/hash/sha1/collisiondetect.h +19 -0
  217. data/vendor/libgit2/src/hash/{hash_common_crypto.h → sha1/common_crypto.c} +17 -17
  218. data/vendor/libgit2/src/hash/sha1/common_crypto.h +19 -0
  219. data/vendor/libgit2/src/hash/{hash_generic.c → sha1/generic.c} +22 -10
  220. data/vendor/libgit2/src/hash/{hash_generic.h → sha1/generic.h} +4 -10
  221. data/vendor/libgit2/src/hash/{hash_mbedtls.c → sha1/mbedtls.c} +15 -7
  222. data/vendor/libgit2/src/hash/{hash_mbedtls.h → sha1/mbedtls.h} +6 -7
  223. data/vendor/libgit2/src/hash/sha1/openssl.c +59 -0
  224. data/vendor/libgit2/src/hash/sha1/openssl.h +19 -0
  225. data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/sha1.c +14 -3
  226. data/vendor/libgit2/src/hash/{hash_win32.c → sha1/win32.c} +47 -37
  227. data/vendor/libgit2/src/hash/{hash_win32.h → sha1/win32.h} +6 -19
  228. data/vendor/libgit2/src/hash/sha1.h +38 -0
  229. data/vendor/libgit2/src/hash.c +61 -0
  230. data/vendor/libgit2/src/hash.h +20 -21
  231. data/vendor/libgit2/src/hashsig.c +5 -5
  232. data/vendor/libgit2/src/idxmap.c +107 -61
  233. data/vendor/libgit2/src/idxmap.h +153 -31
  234. data/vendor/libgit2/src/ignore.c +38 -42
  235. data/vendor/libgit2/src/index.c +264 -199
  236. data/vendor/libgit2/src/index.h +7 -1
  237. data/vendor/libgit2/src/indexer.c +338 -167
  238. data/vendor/libgit2/src/integer.h +71 -26
  239. data/vendor/libgit2/src/iterator.c +134 -62
  240. data/vendor/libgit2/src/iterator.h +15 -0
  241. data/vendor/libgit2/src/mailmap.c +8 -8
  242. data/vendor/libgit2/src/map.h +1 -1
  243. data/vendor/libgit2/src/merge.c +137 -93
  244. data/vendor/libgit2/src/merge_driver.c +11 -11
  245. data/vendor/libgit2/src/merge_file.c +2 -2
  246. data/vendor/libgit2/src/mwindow.c +24 -29
  247. data/vendor/libgit2/src/mwindow.h +4 -4
  248. data/vendor/libgit2/src/net.c +184 -0
  249. data/vendor/libgit2/src/net.h +36 -0
  250. data/vendor/libgit2/src/netops.c +55 -156
  251. data/vendor/libgit2/src/netops.h +3 -23
  252. data/vendor/libgit2/src/notes.c +14 -9
  253. data/vendor/libgit2/src/object.c +120 -69
  254. data/vendor/libgit2/src/object.h +22 -9
  255. data/vendor/libgit2/src/object_api.c +8 -8
  256. data/vendor/libgit2/src/odb.c +111 -88
  257. data/vendor/libgit2/src/odb.h +8 -7
  258. data/vendor/libgit2/src/odb_loose.c +58 -47
  259. data/vendor/libgit2/src/odb_mempack.c +21 -34
  260. data/vendor/libgit2/src/odb_pack.c +17 -13
  261. data/vendor/libgit2/src/offmap.c +53 -35
  262. data/vendor/libgit2/src/offmap.h +108 -21
  263. data/vendor/libgit2/src/oid.c +12 -7
  264. data/vendor/libgit2/src/oidmap.c +49 -47
  265. data/vendor/libgit2/src/oidmap.h +101 -24
  266. data/vendor/libgit2/src/pack-objects.c +87 -86
  267. data/vendor/libgit2/src/pack-objects.h +2 -8
  268. data/vendor/libgit2/src/pack.c +94 -96
  269. data/vendor/libgit2/src/pack.h +16 -18
  270. data/vendor/libgit2/src/parse.c +17 -4
  271. data/vendor/libgit2/src/parse.h +3 -3
  272. data/vendor/libgit2/src/patch.c +3 -3
  273. data/vendor/libgit2/src/patch_generate.c +18 -18
  274. data/vendor/libgit2/src/patch_parse.c +147 -79
  275. data/vendor/libgit2/src/path.c +207 -62
  276. data/vendor/libgit2/src/path.h +14 -0
  277. data/vendor/libgit2/src/pathspec.c +18 -18
  278. data/vendor/libgit2/src/pool.c +26 -22
  279. data/vendor/libgit2/src/pool.h +7 -7
  280. data/vendor/libgit2/src/posix.c +10 -10
  281. data/vendor/libgit2/src/posix.h +12 -1
  282. data/vendor/libgit2/src/proxy.c +8 -3
  283. data/vendor/libgit2/src/push.c +35 -29
  284. data/vendor/libgit2/src/push.h +2 -1
  285. data/vendor/libgit2/src/reader.c +265 -0
  286. data/vendor/libgit2/src/reader.h +107 -0
  287. data/vendor/libgit2/src/rebase.c +97 -38
  288. data/vendor/libgit2/src/refdb.c +15 -3
  289. data/vendor/libgit2/src/refdb_fs.c +318 -222
  290. data/vendor/libgit2/src/reflog.c +13 -15
  291. data/vendor/libgit2/src/refs.c +122 -89
  292. data/vendor/libgit2/src/refs.h +5 -3
  293. data/vendor/libgit2/src/refspec.c +27 -33
  294. data/vendor/libgit2/src/regexp.c +221 -0
  295. data/vendor/libgit2/src/regexp.h +97 -0
  296. data/vendor/libgit2/src/remote.c +229 -178
  297. data/vendor/libgit2/src/remote.h +11 -2
  298. data/vendor/libgit2/src/repository.c +227 -172
  299. data/vendor/libgit2/src/repository.h +52 -40
  300. data/vendor/libgit2/src/reset.c +7 -7
  301. data/vendor/libgit2/src/revert.c +11 -6
  302. data/vendor/libgit2/src/revparse.c +46 -46
  303. data/vendor/libgit2/src/revwalk.c +89 -54
  304. data/vendor/libgit2/src/revwalk.h +20 -0
  305. data/vendor/libgit2/src/settings.c +22 -9
  306. data/vendor/libgit2/src/signature.c +15 -13
  307. data/vendor/libgit2/src/sortedcache.c +22 -36
  308. data/vendor/libgit2/src/sortedcache.h +1 -1
  309. data/vendor/libgit2/src/stash.c +56 -76
  310. data/vendor/libgit2/src/status.c +27 -21
  311. data/vendor/libgit2/src/stream.h +17 -2
  312. data/vendor/libgit2/src/streams/mbedtls.c +100 -80
  313. data/vendor/libgit2/src/streams/mbedtls.h +5 -2
  314. data/vendor/libgit2/src/streams/openssl.c +93 -81
  315. data/vendor/libgit2/src/streams/openssl.h +5 -2
  316. data/vendor/libgit2/src/streams/registry.c +118 -0
  317. data/vendor/libgit2/src/streams/registry.h +19 -0
  318. data/vendor/libgit2/src/streams/socket.c +55 -30
  319. data/vendor/libgit2/src/streams/stransport.c +57 -32
  320. data/vendor/libgit2/src/streams/stransport.h +5 -0
  321. data/vendor/libgit2/src/streams/tls.c +48 -20
  322. data/vendor/libgit2/src/streams/tls.h +12 -4
  323. data/vendor/libgit2/src/strmap.c +47 -74
  324. data/vendor/libgit2/src/strmap.h +108 -33
  325. data/vendor/libgit2/src/submodule.c +190 -169
  326. data/vendor/libgit2/src/submodule.h +1 -1
  327. data/vendor/libgit2/src/sysdir.c +25 -15
  328. data/vendor/libgit2/src/tag.c +39 -26
  329. data/vendor/libgit2/src/tag.h +2 -1
  330. data/vendor/libgit2/src/trace.c +2 -2
  331. data/vendor/libgit2/src/trace.h +2 -2
  332. data/vendor/libgit2/src/trailer.c +46 -32
  333. data/vendor/libgit2/src/transaction.c +30 -29
  334. data/vendor/libgit2/src/transport.c +3 -3
  335. data/vendor/libgit2/src/transports/auth.c +14 -10
  336. data/vendor/libgit2/src/transports/auth.h +10 -3
  337. data/vendor/libgit2/src/transports/auth_negotiate.c +31 -16
  338. data/vendor/libgit2/src/transports/auth_negotiate.h +2 -2
  339. data/vendor/libgit2/src/transports/auth_ntlm.c +223 -0
  340. data/vendor/libgit2/src/transports/auth_ntlm.h +35 -0
  341. data/vendor/libgit2/src/transports/cred.c +24 -24
  342. data/vendor/libgit2/src/transports/git.c +25 -30
  343. data/vendor/libgit2/src/transports/http.c +871 -335
  344. data/vendor/libgit2/src/transports/http.h +2 -0
  345. data/vendor/libgit2/src/transports/local.c +28 -28
  346. data/vendor/libgit2/src/transports/smart.c +64 -46
  347. data/vendor/libgit2/src/transports/smart.h +5 -6
  348. data/vendor/libgit2/src/transports/smart_pkt.c +162 -151
  349. data/vendor/libgit2/src/transports/smart_protocol.c +64 -94
  350. data/vendor/libgit2/src/transports/ssh.c +76 -65
  351. data/vendor/libgit2/src/transports/winhttp.c +328 -319
  352. data/vendor/libgit2/src/tree-cache.c +21 -14
  353. data/vendor/libgit2/src/tree.c +119 -112
  354. data/vendor/libgit2/src/tree.h +1 -0
  355. data/vendor/libgit2/src/unix/map.c +3 -3
  356. data/vendor/libgit2/src/unix/posix.h +1 -11
  357. data/vendor/libgit2/src/userdiff.h +3 -1
  358. data/vendor/libgit2/src/util.c +154 -93
  359. data/vendor/libgit2/src/util.h +19 -23
  360. data/vendor/libgit2/src/vector.c +15 -10
  361. data/vendor/libgit2/src/wildmatch.c +320 -0
  362. data/vendor/libgit2/src/wildmatch.h +23 -0
  363. data/vendor/libgit2/src/win32/dir.c +3 -3
  364. data/vendor/libgit2/src/win32/findfile.c +1 -1
  365. data/vendor/libgit2/src/win32/map.c +9 -11
  366. data/vendor/libgit2/src/win32/msvc-compat.h +6 -0
  367. data/vendor/libgit2/src/win32/path_w32.c +113 -9
  368. data/vendor/libgit2/src/win32/path_w32.h +18 -29
  369. data/vendor/libgit2/src/win32/posix.h +1 -4
  370. data/vendor/libgit2/src/win32/posix_w32.c +69 -44
  371. data/vendor/libgit2/src/win32/precompiled.h +0 -2
  372. data/vendor/libgit2/src/win32/thread.c +5 -10
  373. data/vendor/libgit2/src/win32/w32_buffer.c +9 -5
  374. data/vendor/libgit2/src/win32/w32_common.h +39 -0
  375. data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.c +2 -95
  376. data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.h +0 -2
  377. data/vendor/libgit2/src/win32/w32_stack.c +6 -11
  378. data/vendor/libgit2/src/win32/w32_stack.h +3 -3
  379. data/vendor/libgit2/src/win32/w32_util.c +27 -64
  380. data/vendor/libgit2/src/win32/w32_util.h +5 -49
  381. data/vendor/libgit2/src/worktree.c +44 -30
  382. data/vendor/libgit2/src/xdiff/xdiffi.c +5 -5
  383. data/vendor/libgit2/src/xdiff/xhistogram.c +1 -1
  384. data/vendor/libgit2/src/xdiff/xmerge.c +27 -15
  385. data/vendor/libgit2/src/xdiff/xpatience.c +3 -0
  386. data/vendor/libgit2/src/zstream.c +4 -4
  387. metadata +115 -38
  388. data/vendor/libgit2/deps/regex/CMakeLists.txt +0 -2
  389. data/vendor/libgit2/deps/regex/config.h +0 -7
  390. data/vendor/libgit2/deps/regex/regcomp.c +0 -3857
  391. data/vendor/libgit2/deps/regex/regex.c +0 -92
  392. data/vendor/libgit2/deps/regex/regex.h +0 -582
  393. data/vendor/libgit2/deps/regex/regex_internal.c +0 -1744
  394. data/vendor/libgit2/deps/regex/regex_internal.h +0 -819
  395. data/vendor/libgit2/deps/regex/regexec.c +0 -4369
  396. data/vendor/libgit2/include/git2/inttypes.h +0 -309
  397. data/vendor/libgit2/include/git2/sys/time.h +0 -31
  398. data/vendor/libgit2/libgit2.pc.in +0 -13
  399. data/vendor/libgit2/src/config_file.h +0 -73
  400. data/vendor/libgit2/src/fnmatch.c +0 -248
  401. data/vendor/libgit2/src/fnmatch.h +0 -48
  402. data/vendor/libgit2/src/hash/hash_collisiondetect.h +0 -47
  403. data/vendor/libgit2/src/hash/hash_openssl.h +0 -59
  404. data/vendor/libgit2/src/streams/curl.c +0 -385
  405. data/vendor/libgit2/src/streams/curl.h +0 -17
  406. /data/vendor/libgit2/deps/http-parser/{LICENSE-MIT → COPYING} +0 -0
  407. /data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/sha1.h +0 -0
  408. /data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/ubc_check.c +0 -0
  409. /data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/ubc_check.h +0 -0
@@ -12,6 +12,7 @@
12
12
  #include "repository.h"
13
13
 
14
14
  #include "commit.h"
15
+ #include "hash.h"
15
16
  #include "tree.h"
16
17
  #include "blob.h"
17
18
  #include "oid.h"
@@ -19,43 +20,94 @@
19
20
 
20
21
  bool git_object__strict_input_validation = true;
21
22
 
23
+ extern int git_odb_hash(git_oid *out, const void *data, size_t len, git_object_t type);
24
+ size_t git_object__size(git_object_t type);
25
+
22
26
  typedef struct {
23
27
  const char *str; /* type name string */
24
28
  size_t size; /* size in bytes of the object structure */
25
29
 
26
30
  int (*parse)(void *self, git_odb_object *obj);
31
+ int (*parse_raw)(void *self, const char *data, size_t size);
27
32
  void (*free)(void *self);
28
33
  } git_object_def;
29
34
 
30
35
  static git_object_def git_objects_table[] = {
31
- /* 0 = GIT_OBJ__EXT1 */
32
- { "", 0, NULL, NULL },
36
+ /* 0 = GIT_OBJECT__EXT1 */
37
+ { "", 0, NULL, NULL, NULL },
33
38
 
34
- /* 1 = GIT_OBJ_COMMIT */
35
- { "commit", sizeof(git_commit), git_commit__parse, git_commit__free },
39
+ /* 1 = GIT_OBJECT_COMMIT */
40
+ { "commit", sizeof(git_commit), git_commit__parse, git_commit__parse_raw, git_commit__free },
36
41
 
37
- /* 2 = GIT_OBJ_TREE */
38
- { "tree", sizeof(git_tree), git_tree__parse, git_tree__free },
42
+ /* 2 = GIT_OBJECT_TREE */
43
+ { "tree", sizeof(git_tree), git_tree__parse, git_tree__parse_raw, git_tree__free },
39
44
 
40
- /* 3 = GIT_OBJ_BLOB */
41
- { "blob", sizeof(git_blob), git_blob__parse, git_blob__free },
45
+ /* 3 = GIT_OBJECT_BLOB */
46
+ { "blob", sizeof(git_blob), git_blob__parse, git_blob__parse_raw, git_blob__free },
42
47
 
43
- /* 4 = GIT_OBJ_TAG */
44
- { "tag", sizeof(git_tag), git_tag__parse, git_tag__free },
48
+ /* 4 = GIT_OBJECT_TAG */
49
+ { "tag", sizeof(git_tag), git_tag__parse, git_tag__parse_raw, git_tag__free },
45
50
 
46
- /* 5 = GIT_OBJ__EXT2 */
47
- { "", 0, NULL, NULL },
48
- /* 6 = GIT_OBJ_OFS_DELTA */
49
- { "OFS_DELTA", 0, NULL, NULL },
50
- /* 7 = GIT_OBJ_REF_DELTA */
51
- { "REF_DELTA", 0, NULL, NULL },
51
+ /* 5 = GIT_OBJECT__EXT2 */
52
+ { "", 0, NULL, NULL, NULL },
53
+ /* 6 = GIT_OBJECT_OFS_DELTA */
54
+ { "OFS_DELTA", 0, NULL, NULL, NULL },
55
+ /* 7 = GIT_OBJECT_REF_DELTA */
56
+ { "REF_DELTA", 0, NULL, NULL, NULL },
52
57
  };
53
58
 
59
+ int git_object__from_raw(
60
+ git_object **object_out,
61
+ const char *data,
62
+ size_t size,
63
+ git_object_t type)
64
+ {
65
+ git_object_def *def;
66
+ git_object *object;
67
+ size_t object_size;
68
+ int error;
69
+
70
+ assert(object_out);
71
+ *object_out = NULL;
72
+
73
+ /* Validate type match */
74
+ if (type != GIT_OBJECT_BLOB && type != GIT_OBJECT_TREE && type != GIT_OBJECT_COMMIT && type != GIT_OBJECT_TAG) {
75
+ git_error_set(GIT_ERROR_INVALID, "the requested type is invalid");
76
+ return GIT_ENOTFOUND;
77
+ }
78
+
79
+ if ((object_size = git_object__size(type)) == 0) {
80
+ git_error_set(GIT_ERROR_INVALID, "the requested type is invalid");
81
+ return GIT_ENOTFOUND;
82
+ }
83
+
84
+ /* Allocate and initialize base object */
85
+ object = git__calloc(1, object_size);
86
+ GIT_ERROR_CHECK_ALLOC(object);
87
+ object->cached.flags = GIT_CACHE_STORE_PARSED;
88
+ object->cached.type = type;
89
+ git_odb_hash(&object->cached.oid, data, size, type);
90
+
91
+ /* Parse raw object data */
92
+ def = &git_objects_table[type];
93
+ assert(def->free && def->parse_raw);
94
+
95
+ if ((error = def->parse_raw(object, data, size)) < 0) {
96
+ def->free(object);
97
+ return error;
98
+ }
99
+
100
+ git_cached_obj_incref(object);
101
+ *object_out = object;
102
+
103
+ return 0;
104
+ }
105
+
54
106
  int git_object__from_odb_object(
55
107
  git_object **object_out,
56
108
  git_repository *repo,
57
109
  git_odb_object *odb_obj,
58
- git_otype type)
110
+ git_object_t type)
59
111
  {
60
112
  int error;
61
113
  size_t object_size;
@@ -66,20 +118,20 @@ int git_object__from_odb_object(
66
118
  *object_out = NULL;
67
119
 
68
120
  /* Validate type match */
69
- if (type != GIT_OBJ_ANY && type != odb_obj->cached.type) {
70
- giterr_set(GITERR_INVALID,
121
+ if (type != GIT_OBJECT_ANY && type != odb_obj->cached.type) {
122
+ git_error_set(GIT_ERROR_INVALID,
71
123
  "the requested type does not match the type in the ODB");
72
124
  return GIT_ENOTFOUND;
73
125
  }
74
126
 
75
127
  if ((object_size = git_object__size(odb_obj->cached.type)) == 0) {
76
- giterr_set(GITERR_INVALID, "the requested type is invalid");
128
+ git_error_set(GIT_ERROR_INVALID, "the requested type is invalid");
77
129
  return GIT_ENOTFOUND;
78
130
  }
79
131
 
80
132
  /* Allocate and initialize base object */
81
133
  object = git__calloc(1, object_size);
82
- GITERR_CHECK_ALLOC(object);
134
+ GIT_ERROR_CHECK_ALLOC(object);
83
135
 
84
136
  git_oid_cpy(&object->cached.oid, &odb_obj->cached.oid);
85
137
  object->cached.type = odb_obj->cached.type;
@@ -100,7 +152,7 @@ int git_object__from_odb_object(
100
152
 
101
153
  void git_object__free(void *obj)
102
154
  {
103
- git_otype type = ((git_object *)obj)->cached.type;
155
+ git_object_t type = ((git_object *)obj)->cached.type;
104
156
 
105
157
  if (type < 0 || ((size_t)type) >= ARRAY_SIZE(git_objects_table) ||
106
158
  !git_objects_table[type].free)
@@ -114,7 +166,7 @@ int git_object_lookup_prefix(
114
166
  git_repository *repo,
115
167
  const git_oid *id,
116
168
  size_t len,
117
- git_otype type)
169
+ git_object_t type)
118
170
  {
119
171
  git_object *object = NULL;
120
172
  git_odb *odb = NULL;
@@ -124,7 +176,7 @@ int git_object_lookup_prefix(
124
176
  assert(repo && object_out && id);
125
177
 
126
178
  if (len < GIT_OID_MINPREFIXLEN) {
127
- giterr_set(GITERR_OBJECT, "ambiguous lookup - OID prefix is too short");
179
+ git_error_set(GIT_ERROR_OBJECT, "ambiguous lookup - OID prefix is too short");
128
180
  return GIT_EAMBIGUOUS;
129
181
  }
130
182
 
@@ -146,9 +198,9 @@ int git_object_lookup_prefix(
146
198
  if (cached->flags == GIT_CACHE_STORE_PARSED) {
147
199
  object = (git_object *)cached;
148
200
 
149
- if (type != GIT_OBJ_ANY && type != object->cached.type) {
201
+ if (type != GIT_OBJECT_ANY && type != object->cached.type) {
150
202
  git_object_free(object);
151
- giterr_set(GITERR_INVALID,
203
+ git_error_set(GIT_ERROR_INVALID,
152
204
  "the requested type does not match the type in ODB");
153
205
  return GIT_ENOTFOUND;
154
206
  }
@@ -196,7 +248,7 @@ int git_object_lookup_prefix(
196
248
  return error;
197
249
  }
198
250
 
199
- int git_object_lookup(git_object **object_out, git_repository *repo, const git_oid *id, git_otype type) {
251
+ int git_object_lookup(git_object **object_out, git_repository *repo, const git_oid *id, git_object_t type) {
200
252
  return git_object_lookup_prefix(object_out, repo, id, GIT_OID_HEXSZ, type);
201
253
  }
202
254
 
@@ -214,7 +266,7 @@ const git_oid *git_object_id(const git_object *obj)
214
266
  return &obj->cached.oid;
215
267
  }
216
268
 
217
- git_otype git_object_type(const git_object *obj)
269
+ git_object_t git_object_type(const git_object *obj)
218
270
  {
219
271
  assert(obj);
220
272
  return obj->cached.type;
@@ -226,7 +278,7 @@ git_repository *git_object_owner(const git_object *obj)
226
278
  return obj->repo;
227
279
  }
228
280
 
229
- const char *git_object_type2string(git_otype type)
281
+ const char *git_object_type2string(git_object_t type)
230
282
  {
231
283
  if (type < 0 || ((size_t) type) >= ARRAY_SIZE(git_objects_table))
232
284
  return "";
@@ -234,30 +286,30 @@ const char *git_object_type2string(git_otype type)
234
286
  return git_objects_table[type].str;
235
287
  }
236
288
 
237
- git_otype git_object_string2type(const char *str)
289
+ git_object_t git_object_string2type(const char *str)
238
290
  {
239
291
  if (!str)
240
- return GIT_OBJ_BAD;
292
+ return GIT_OBJECT_INVALID;
241
293
 
242
294
  return git_object_stringn2type(str, strlen(str));
243
295
  }
244
296
 
245
- git_otype git_object_stringn2type(const char *str, size_t len)
297
+ git_object_t git_object_stringn2type(const char *str, size_t len)
246
298
  {
247
299
  size_t i;
248
300
 
249
301
  if (!str || !len || !*str)
250
- return GIT_OBJ_BAD;
302
+ return GIT_OBJECT_INVALID;
251
303
 
252
304
  for (i = 0; i < ARRAY_SIZE(git_objects_table); i++)
253
305
  if (*git_objects_table[i].str &&
254
306
  !git__prefixncmp(str, len, git_objects_table[i].str))
255
- return (git_otype)i;
307
+ return (git_object_t)i;
256
308
 
257
- return GIT_OBJ_BAD;
309
+ return GIT_OBJECT_INVALID;
258
310
  }
259
311
 
260
- int git_object_typeisloose(git_otype type)
312
+ int git_object_typeisloose(git_object_t type)
261
313
  {
262
314
  if (type < 0 || ((size_t) type) >= ARRAY_SIZE(git_objects_table))
263
315
  return 0;
@@ -265,7 +317,7 @@ int git_object_typeisloose(git_otype type)
265
317
  return (git_objects_table[type].size > 0) ? 1 : 0;
266
318
  }
267
319
 
268
- size_t git_object__size(git_otype type)
320
+ size_t git_object__size(git_object_t type)
269
321
  {
270
322
  if (type < 0 || ((size_t) type) >= ARRAY_SIZE(git_objects_table))
271
323
  return 0;
@@ -275,17 +327,17 @@ size_t git_object__size(git_otype type)
275
327
 
276
328
  static int dereference_object(git_object **dereferenced, git_object *obj)
277
329
  {
278
- git_otype type = git_object_type(obj);
330
+ git_object_t type = git_object_type(obj);
279
331
 
280
332
  switch (type) {
281
- case GIT_OBJ_COMMIT:
333
+ case GIT_OBJECT_COMMIT:
282
334
  return git_commit_tree((git_tree **)dereferenced, (git_commit*)obj);
283
335
 
284
- case GIT_OBJ_TAG:
336
+ case GIT_OBJECT_TAG:
285
337
  return git_tag_target(dereferenced, (git_tag*)obj);
286
338
 
287
- case GIT_OBJ_BLOB:
288
- case GIT_OBJ_TREE:
339
+ case GIT_OBJECT_BLOB:
340
+ case GIT_OBJECT_TREE:
289
341
  return GIT_EPEEL;
290
342
 
291
343
  default:
@@ -293,7 +345,7 @@ static int dereference_object(git_object **dereferenced, git_object *obj)
293
345
  }
294
346
  }
295
347
 
296
- static int peel_error(int error, const git_oid *oid, git_otype type)
348
+ static int peel_error(int error, const git_oid *oid, git_object_t type)
297
349
  {
298
350
  const char *type_name;
299
351
  char hex_oid[GIT_OID_HEXSZ + 1];
@@ -303,29 +355,29 @@ static int peel_error(int error, const git_oid *oid, git_otype type)
303
355
  git_oid_fmt(hex_oid, oid);
304
356
  hex_oid[GIT_OID_HEXSZ] = '\0';
305
357
 
306
- giterr_set(GITERR_OBJECT, "the git_object of id '%s' can not be "
307
- "successfully peeled into a %s (git_otype=%i).", hex_oid, type_name, type);
358
+ git_error_set(GIT_ERROR_OBJECT, "the git_object of id '%s' can not be "
359
+ "successfully peeled into a %s (git_object_t=%i).", hex_oid, type_name, type);
308
360
 
309
361
  return error;
310
362
  }
311
363
 
312
- static int check_type_combination(git_otype type, git_otype target)
364
+ static int check_type_combination(git_object_t type, git_object_t target)
313
365
  {
314
366
  if (type == target)
315
367
  return 0;
316
368
 
317
369
  switch (type) {
318
- case GIT_OBJ_BLOB:
319
- case GIT_OBJ_TREE:
370
+ case GIT_OBJECT_BLOB:
371
+ case GIT_OBJECT_TREE:
320
372
  /* a blob or tree can never be peeled to anything but themselves */
321
373
  return GIT_EINVALIDSPEC;
322
374
  break;
323
- case GIT_OBJ_COMMIT:
375
+ case GIT_OBJECT_COMMIT:
324
376
  /* a commit can only be peeled to a tree */
325
- if (target != GIT_OBJ_TREE && target != GIT_OBJ_ANY)
377
+ if (target != GIT_OBJECT_TREE && target != GIT_OBJECT_ANY)
326
378
  return GIT_EINVALIDSPEC;
327
379
  break;
328
- case GIT_OBJ_TAG:
380
+ case GIT_OBJECT_TAG:
329
381
  /* a tag may point to anything, so we let anything through */
330
382
  break;
331
383
  default:
@@ -338,18 +390,18 @@ static int check_type_combination(git_otype type, git_otype target)
338
390
  int git_object_peel(
339
391
  git_object **peeled,
340
392
  const git_object *object,
341
- git_otype target_type)
393
+ git_object_t target_type)
342
394
  {
343
395
  git_object *source, *deref = NULL;
344
396
  int error;
345
397
 
346
398
  assert(object && peeled);
347
399
 
348
- assert(target_type == GIT_OBJ_TAG ||
349
- target_type == GIT_OBJ_COMMIT ||
350
- target_type == GIT_OBJ_TREE ||
351
- target_type == GIT_OBJ_BLOB ||
352
- target_type == GIT_OBJ_ANY);
400
+ assert(target_type == GIT_OBJECT_TAG ||
401
+ target_type == GIT_OBJECT_COMMIT ||
402
+ target_type == GIT_OBJECT_TREE ||
403
+ target_type == GIT_OBJECT_BLOB ||
404
+ target_type == GIT_OBJECT_ANY);
353
405
 
354
406
  if ((error = check_type_combination(git_object_type(object), target_type)) < 0)
355
407
  return peel_error(error, git_object_id(object), target_type);
@@ -369,7 +421,7 @@ int git_object_peel(
369
421
  return 0;
370
422
  }
371
423
 
372
- if (target_type == GIT_OBJ_ANY &&
424
+ if (target_type == GIT_OBJECT_ANY &&
373
425
  git_object_type(deref) != git_object_type(object))
374
426
  {
375
427
  *peeled = deref;
@@ -402,7 +454,7 @@ int git_object_lookup_bypath(
402
454
  git_object **out,
403
455
  const git_object *treeish,
404
456
  const char *path,
405
- git_otype type)
457
+ git_object_t type)
406
458
  {
407
459
  int error = -1;
408
460
  git_tree *tree = NULL;
@@ -410,15 +462,15 @@ int git_object_lookup_bypath(
410
462
 
411
463
  assert(out && treeish && path);
412
464
 
413
- if ((error = git_object_peel((git_object**)&tree, treeish, GIT_OBJ_TREE)) < 0 ||
465
+ if ((error = git_object_peel((git_object**)&tree, treeish, GIT_OBJECT_TREE)) < 0 ||
414
466
  (error = git_tree_entry_bypath(&entry, tree, path)) < 0)
415
467
  {
416
468
  goto cleanup;
417
469
  }
418
470
 
419
- if (type != GIT_OBJ_ANY && git_tree_entry_type(entry) != type)
471
+ if (type != GIT_OBJECT_ANY && git_tree_entry_type(entry) != type)
420
472
  {
421
- giterr_set(GITERR_OBJECT,
473
+ git_error_set(GIT_ERROR_OBJECT,
422
474
  "object at path '%s' is not of the asked-for type %d",
423
475
  path, type);
424
476
  error = GIT_EINVALIDSPEC;
@@ -445,7 +497,7 @@ int git_object_short_id(git_buf *out, const git_object *obj)
445
497
  git_buf_sanitize(out);
446
498
  repo = git_object_owner(obj);
447
499
 
448
- if ((error = git_repository__cvar(&len, repo, GIT_CVAR_ABBREV)) < 0)
500
+ if ((error = git_repository__configmap_lookup(&len, repo, GIT_CONFIGMAP_ABBREV)) < 0)
449
501
  return error;
450
502
 
451
503
  if ((error = git_repository_odb(&odb, repo)) < 0)
@@ -461,7 +513,7 @@ int git_object_short_id(git_buf *out, const git_object *obj)
461
513
  if (error != GIT_EAMBIGUOUS)
462
514
  break;
463
515
 
464
- giterr_clear();
516
+ git_error_clear();
465
517
  len++;
466
518
  }
467
519
 
@@ -476,10 +528,10 @@ int git_object_short_id(git_buf *out, const git_object *obj)
476
528
  }
477
529
 
478
530
  bool git_object__is_valid(
479
- git_repository *repo, const git_oid *id, git_otype expected_type)
531
+ git_repository *repo, const git_oid *id, git_object_t expected_type)
480
532
  {
481
533
  git_odb *odb;
482
- git_otype actual_type;
534
+ git_object_t actual_type;
483
535
  size_t len;
484
536
  int error;
485
537
 
@@ -490,12 +542,11 @@ bool git_object__is_valid(
490
542
  (error = git_odb_read_header(&len, &actual_type, odb, id)) < 0)
491
543
  return false;
492
544
 
493
- if (expected_type != GIT_OBJ_ANY && expected_type != actual_type) {
494
- giterr_set(GITERR_INVALID,
545
+ if (expected_type != GIT_OBJECT_ANY && expected_type != actual_type) {
546
+ git_error_set(GIT_ERROR_INVALID,
495
547
  "the requested type does not match the type in the ODB");
496
548
  return false;
497
549
  }
498
550
 
499
551
  return true;
500
552
  }
501
-
@@ -11,6 +11,8 @@
11
11
 
12
12
  #include "repository.h"
13
13
 
14
+ #define GIT_OBJECT_SIZE_MAX UINT64_MAX
15
+
14
16
  extern bool git_object__strict_input_validation;
15
17
 
16
18
  /** Base git object for inheritance */
@@ -22,36 +24,47 @@ struct git_object {
22
24
  /* fully free the object; internal method, DO NOT EXPORT */
23
25
  void git_object__free(void *object);
24
26
 
27
+ /*
28
+ * Parse object from raw data. Note that the resulting object is
29
+ * tied to the lifetime of the data, as some objects simply point
30
+ * into it.
31
+ */
32
+ int git_object__from_raw(
33
+ git_object **object_out,
34
+ const char *data,
35
+ size_t size,
36
+ git_object_t type);
37
+
25
38
  int git_object__from_odb_object(
26
39
  git_object **object_out,
27
40
  git_repository *repo,
28
41
  git_odb_object *odb_obj,
29
- git_otype type);
42
+ git_object_t type);
30
43
 
31
- int git_object__resolve_to_type(git_object **obj, git_otype type);
44
+ int git_object__resolve_to_type(git_object **obj, git_object_t type);
32
45
 
33
- git_otype git_object_stringn2type(const char *str, size_t len);
46
+ git_object_t git_object_stringn2type(const char *str, size_t len);
34
47
 
35
48
  int git_oid__parse(git_oid *oid, const char **buffer_out, const char *buffer_end, const char *header);
36
49
 
37
50
  void git_oid__writebuf(git_buf *buf, const char *header, const git_oid *oid);
38
51
 
39
52
  bool git_object__is_valid(
40
- git_repository *repo, const git_oid *id, git_otype expected_type);
53
+ git_repository *repo, const git_oid *id, git_object_t expected_type);
41
54
 
42
- GIT_INLINE(git_otype) git_object__type_from_filemode(git_filemode_t mode)
55
+ GIT_INLINE(git_object_t) git_object__type_from_filemode(git_filemode_t mode)
43
56
  {
44
57
  switch (mode) {
45
58
  case GIT_FILEMODE_TREE:
46
- return GIT_OBJ_TREE;
59
+ return GIT_OBJECT_TREE;
47
60
  case GIT_FILEMODE_COMMIT:
48
- return GIT_OBJ_COMMIT;
61
+ return GIT_OBJECT_COMMIT;
49
62
  case GIT_FILEMODE_BLOB:
50
63
  case GIT_FILEMODE_BLOB_EXECUTABLE:
51
64
  case GIT_FILEMODE_LINK:
52
- return GIT_OBJ_BLOB;
65
+ return GIT_OBJECT_BLOB;
53
66
  default:
54
- return GIT_OBJ_BAD;
67
+ return GIT_OBJECT_INVALID;
55
68
  }
56
69
  }
57
70
 
@@ -20,12 +20,12 @@
20
20
  */
21
21
  int git_commit_lookup(git_commit **out, git_repository *repo, const git_oid *id)
22
22
  {
23
- return git_object_lookup((git_object **)out, repo, id, GIT_OBJ_COMMIT);
23
+ return git_object_lookup((git_object **)out, repo, id, GIT_OBJECT_COMMIT);
24
24
  }
25
25
 
26
26
  int git_commit_lookup_prefix(git_commit **out, git_repository *repo, const git_oid *id, size_t len)
27
27
  {
28
- return git_object_lookup_prefix((git_object **)out, repo, id, len, GIT_OBJ_COMMIT);
28
+ return git_object_lookup_prefix((git_object **)out, repo, id, len, GIT_OBJECT_COMMIT);
29
29
  }
30
30
 
31
31
  void git_commit_free(git_commit *obj)
@@ -53,12 +53,12 @@ int git_commit_dup(git_commit **out, git_commit *obj)
53
53
  */
54
54
  int git_tree_lookup(git_tree **out, git_repository *repo, const git_oid *id)
55
55
  {
56
- return git_object_lookup((git_object **)out, repo, id, GIT_OBJ_TREE);
56
+ return git_object_lookup((git_object **)out, repo, id, GIT_OBJECT_TREE);
57
57
  }
58
58
 
59
59
  int git_tree_lookup_prefix(git_tree **out, git_repository *repo, const git_oid *id, size_t len)
60
60
  {
61
- return git_object_lookup_prefix((git_object **)out, repo, id, len, GIT_OBJ_TREE);
61
+ return git_object_lookup_prefix((git_object **)out, repo, id, len, GIT_OBJECT_TREE);
62
62
  }
63
63
 
64
64
  void git_tree_free(git_tree *obj)
@@ -86,12 +86,12 @@ int git_tree_dup(git_tree **out, git_tree *obj)
86
86
  */
87
87
  int git_tag_lookup(git_tag **out, git_repository *repo, const git_oid *id)
88
88
  {
89
- return git_object_lookup((git_object **)out, repo, id, GIT_OBJ_TAG);
89
+ return git_object_lookup((git_object **)out, repo, id, GIT_OBJECT_TAG);
90
90
  }
91
91
 
92
92
  int git_tag_lookup_prefix(git_tag **out, git_repository *repo, const git_oid *id, size_t len)
93
93
  {
94
- return git_object_lookup_prefix((git_object **)out, repo, id, len, GIT_OBJ_TAG);
94
+ return git_object_lookup_prefix((git_object **)out, repo, id, len, GIT_OBJECT_TAG);
95
95
  }
96
96
 
97
97
  void git_tag_free(git_tag *obj)
@@ -119,12 +119,12 @@ int git_tag_dup(git_tag **out, git_tag *obj)
119
119
  */
120
120
  int git_blob_lookup(git_blob **out, git_repository *repo, const git_oid *id)
121
121
  {
122
- return git_object_lookup((git_object **)out, repo, id, GIT_OBJ_BLOB);
122
+ return git_object_lookup((git_object **)out, repo, id, GIT_OBJECT_BLOB);
123
123
  }
124
124
 
125
125
  int git_blob_lookup_prefix(git_blob **out, git_repository *repo, const git_oid *id, size_t len)
126
126
  {
127
- return git_object_lookup_prefix((git_object **)out, repo, id, len, GIT_OBJ_BLOB);
127
+ return git_object_lookup_prefix((git_object **)out, repo, id, len, GIT_OBJECT_BLOB);
128
128
  }
129
129
 
130
130
  void git_blob_free(git_blob *obj)