rugged 1.3.1 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (656) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +34 -2
  3. data/ext/rugged/extconf.rb +6 -3
  4. data/ext/rugged/rugged.c +16 -0
  5. data/ext/rugged/rugged.h +4 -0
  6. data/ext/rugged/rugged_allocator.c +0 -54
  7. data/ext/rugged/rugged_blame.c +2 -0
  8. data/ext/rugged/rugged_blob.c +3 -0
  9. data/ext/rugged/rugged_commit.c +1 -0
  10. data/ext/rugged/rugged_config.c +9 -2
  11. data/ext/rugged/rugged_diff.c +1 -0
  12. data/ext/rugged/rugged_index.c +2 -0
  13. data/ext/rugged/rugged_patch.c +1 -0
  14. data/ext/rugged/rugged_rebase.c +1 -0
  15. data/ext/rugged/rugged_reference.c +1 -0
  16. data/ext/rugged/rugged_remote.c +28 -10
  17. data/ext/rugged/rugged_repo.c +7 -9
  18. data/ext/rugged/rugged_revwalk.c +5 -1
  19. data/ext/rugged/rugged_settings.c +5 -0
  20. data/ext/rugged/rugged_submodule.c +1 -0
  21. data/ext/rugged/rugged_tag.c +1 -0
  22. data/ext/rugged/rugged_tree.c +4 -0
  23. data/lib/rugged/index.rb +1 -1
  24. data/lib/rugged/tree.rb +5 -1
  25. data/lib/rugged/version.rb +1 -1
  26. data/vendor/libgit2/AUTHORS +1 -0
  27. data/vendor/libgit2/CMakeLists.txt +141 -289
  28. data/vendor/libgit2/COPYING +301 -20
  29. data/vendor/libgit2/cmake/AddCFlagIfSupported.cmake +21 -21
  30. data/vendor/libgit2/cmake/AddClarTest.cmake +7 -0
  31. data/vendor/libgit2/cmake/CheckPrototypeDefinitionSafe.cmake +16 -0
  32. data/vendor/libgit2/cmake/DefaultCFlags.cmake +154 -0
  33. data/vendor/libgit2/cmake/EnableWarnings.cmake +13 -13
  34. data/vendor/libgit2/cmake/ExperimentalFeatures.cmake +23 -0
  35. data/vendor/libgit2/cmake/FindCoreFoundation.cmake +13 -13
  36. data/vendor/libgit2/cmake/FindGSSAPI.cmake +171 -287
  37. data/vendor/libgit2/cmake/FindGSSFramework.cmake +13 -13
  38. data/vendor/libgit2/cmake/FindHTTP_Parser.cmake +17 -17
  39. data/vendor/libgit2/cmake/FindIntlIconv.cmake +51 -0
  40. data/vendor/libgit2/cmake/FindLLHTTP.cmake +39 -0
  41. data/vendor/libgit2/cmake/FindLibSSH2.cmake +5 -5
  42. data/vendor/libgit2/cmake/FindPCRE.cmake +12 -13
  43. data/vendor/libgit2/cmake/FindPCRE2.cmake +12 -12
  44. data/vendor/libgit2/cmake/FindPkgLibraries.cmake +19 -19
  45. data/vendor/libgit2/cmake/FindSecurity.cmake +14 -14
  46. data/vendor/libgit2/cmake/FindStatNsec.cmake +12 -18
  47. data/vendor/libgit2/cmake/Findfutimens.cmake +8 -8
  48. data/vendor/libgit2/cmake/FindmbedTLS.cmake +63 -70
  49. data/vendor/libgit2/cmake/IdeSplitSources.cmake +18 -18
  50. data/vendor/libgit2/cmake/PkgBuildConfig.cmake +60 -60
  51. data/vendor/libgit2/cmake/SanitizeBool.cmake +20 -20
  52. data/vendor/libgit2/cmake/SelectGSSAPI.cmake +37 -37
  53. data/vendor/libgit2/cmake/SelectHTTPParser.cmake +34 -0
  54. data/vendor/libgit2/cmake/SelectHTTPSBackend.cmake +129 -101
  55. data/vendor/libgit2/cmake/SelectHashes.cmake +113 -54
  56. data/vendor/libgit2/cmake/SelectRegex.cmake +56 -0
  57. data/vendor/libgit2/cmake/SelectSSH.cmake +46 -0
  58. data/vendor/libgit2/cmake/SelectXdiff.cmake +9 -0
  59. data/vendor/libgit2/cmake/SelectZlib.cmake +38 -0
  60. data/vendor/libgit2/deps/chromium-zlib/CMakeLists.txt +6 -6
  61. data/vendor/libgit2/deps/llhttp/CMakeLists.txt +8 -0
  62. data/vendor/libgit2/deps/llhttp/LICENSE-MIT +22 -0
  63. data/vendor/libgit2/deps/llhttp/api.c +510 -0
  64. data/vendor/libgit2/deps/llhttp/http.c +170 -0
  65. data/vendor/libgit2/deps/llhttp/llhttp.c +10168 -0
  66. data/vendor/libgit2/deps/llhttp/llhttp.h +897 -0
  67. data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +33 -31
  68. data/vendor/libgit2/deps/ntlmclient/crypt_builtin_md4.c +311 -0
  69. data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.c +2 -1
  70. data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.c +0 -20
  71. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +7 -5
  72. data/vendor/libgit2/deps/ntlmclient/ntlm.c +25 -25
  73. data/vendor/libgit2/deps/ntlmclient/ntlm.h +4 -4
  74. data/vendor/libgit2/deps/ntlmclient/ntlmclient.h +2 -2
  75. data/vendor/libgit2/deps/ntlmclient/unicode_builtin.c +5 -4
  76. data/vendor/libgit2/deps/ntlmclient/unicode_iconv.c +2 -1
  77. data/vendor/libgit2/deps/ntlmclient/utf8.h +1176 -721
  78. data/vendor/libgit2/deps/ntlmclient/util.h +11 -0
  79. data/vendor/libgit2/deps/pcre/CMakeLists.txt +89 -88
  80. data/vendor/libgit2/deps/pcre/LICENCE +5 -5
  81. data/vendor/libgit2/deps/pcre/pcre.h +2 -2
  82. data/vendor/libgit2/deps/pcre/pcre_compile.c +6 -3
  83. data/vendor/libgit2/deps/pcre/pcre_exec.c +2 -2
  84. data/vendor/libgit2/deps/winhttp/CMakeLists.txt +14 -16
  85. data/vendor/libgit2/deps/xdiff/CMakeLists.txt +28 -0
  86. data/vendor/libgit2/deps/xdiff/git-xdiff.h +56 -0
  87. data/vendor/libgit2/{src → deps}/xdiff/xdiff.h +15 -15
  88. data/vendor/libgit2/{src → deps}/xdiff/xdiffi.c +152 -125
  89. data/vendor/libgit2/{src → deps}/xdiff/xdiffi.h +2 -4
  90. data/vendor/libgit2/{src → deps}/xdiff/xemit.c +26 -10
  91. data/vendor/libgit2/{src → deps}/xdiff/xhistogram.c +92 -94
  92. data/vendor/libgit2/{src → deps}/xdiff/xinclude.h +1 -12
  93. data/vendor/libgit2/{src → deps}/xdiff/xmacros.h +18 -1
  94. data/vendor/libgit2/{src → deps}/xdiff/xmerge.c +126 -137
  95. data/vendor/libgit2/{src → deps}/xdiff/xpatience.c +26 -46
  96. data/vendor/libgit2/{src → deps}/xdiff/xprepare.c +24 -46
  97. data/vendor/libgit2/{src → deps}/xdiff/xutils.c +36 -8
  98. data/vendor/libgit2/{src → deps}/xdiff/xutils.h +2 -1
  99. data/vendor/libgit2/deps/zlib/CMakeLists.txt +6 -1
  100. data/vendor/libgit2/deps/zlib/LICENSE +22 -0
  101. data/vendor/libgit2/deps/zlib/adler32.c +7 -22
  102. data/vendor/libgit2/deps/zlib/crc32.c +931 -317
  103. data/vendor/libgit2/deps/zlib/crc32.h +9441 -436
  104. data/vendor/libgit2/deps/zlib/deflate.c +428 -453
  105. data/vendor/libgit2/deps/zlib/deflate.h +51 -23
  106. data/vendor/libgit2/deps/zlib/gzguts.h +15 -19
  107. data/vendor/libgit2/deps/zlib/infback.c +19 -31
  108. data/vendor/libgit2/deps/zlib/inffast.c +15 -18
  109. data/vendor/libgit2/deps/zlib/inffast.h +1 -1
  110. data/vendor/libgit2/deps/zlib/inflate.c +75 -110
  111. data/vendor/libgit2/deps/zlib/inflate.h +3 -2
  112. data/vendor/libgit2/deps/zlib/inftrees.c +6 -11
  113. data/vendor/libgit2/deps/zlib/inftrees.h +6 -6
  114. data/vendor/libgit2/deps/zlib/trees.c +294 -380
  115. data/vendor/libgit2/deps/zlib/zconf.h +23 -14
  116. data/vendor/libgit2/deps/zlib/zlib.h +310 -284
  117. data/vendor/libgit2/deps/zlib/zutil.c +20 -46
  118. data/vendor/libgit2/deps/zlib/zutil.h +24 -41
  119. data/vendor/libgit2/include/git2/annotated_commit.h +12 -5
  120. data/vendor/libgit2/include/git2/apply.h +43 -8
  121. data/vendor/libgit2/include/git2/attr.h +28 -6
  122. data/vendor/libgit2/include/git2/blame.h +137 -29
  123. data/vendor/libgit2/include/git2/blob.h +85 -29
  124. data/vendor/libgit2/include/git2/branch.h +25 -16
  125. data/vendor/libgit2/include/git2/buffer.h +24 -82
  126. data/vendor/libgit2/include/git2/cert.h +4 -3
  127. data/vendor/libgit2/include/git2/checkout.h +88 -34
  128. data/vendor/libgit2/include/git2/cherrypick.h +10 -3
  129. data/vendor/libgit2/include/git2/clone.h +28 -12
  130. data/vendor/libgit2/include/git2/commit.h +134 -3
  131. data/vendor/libgit2/include/git2/common.h +172 -59
  132. data/vendor/libgit2/include/git2/config.h +118 -32
  133. data/vendor/libgit2/include/git2/credential.h +32 -3
  134. data/vendor/libgit2/include/git2/credential_helpers.h +2 -0
  135. data/vendor/libgit2/include/git2/deprecated.h +141 -3
  136. data/vendor/libgit2/include/git2/describe.h +20 -3
  137. data/vendor/libgit2/include/git2/diff.h +95 -19
  138. data/vendor/libgit2/include/git2/email.h +10 -30
  139. data/vendor/libgit2/include/git2/errors.h +51 -61
  140. data/vendor/libgit2/include/git2/experimental.h +20 -0
  141. data/vendor/libgit2/include/git2/filter.h +21 -9
  142. data/vendor/libgit2/include/git2/global.h +8 -1
  143. data/vendor/libgit2/include/git2/graph.h +4 -2
  144. data/vendor/libgit2/include/git2/ignore.h +11 -1
  145. data/vendor/libgit2/include/git2/index.h +111 -11
  146. data/vendor/libgit2/include/git2/indexer.h +67 -2
  147. data/vendor/libgit2/include/git2/mailmap.h +7 -1
  148. data/vendor/libgit2/include/git2/merge.h +70 -5
  149. data/vendor/libgit2/include/git2/message.h +4 -2
  150. data/vendor/libgit2/include/git2/net.h +3 -1
  151. data/vendor/libgit2/include/git2/notes.h +9 -6
  152. data/vendor/libgit2/include/git2/object.h +57 -7
  153. data/vendor/libgit2/include/git2/odb.h +156 -33
  154. data/vendor/libgit2/include/git2/odb_backend.h +132 -16
  155. data/vendor/libgit2/include/git2/oid.h +116 -17
  156. data/vendor/libgit2/include/git2/oidarray.h +7 -1
  157. data/vendor/libgit2/include/git2/pack.h +37 -9
  158. data/vendor/libgit2/include/git2/patch.h +10 -3
  159. data/vendor/libgit2/include/git2/pathspec.h +10 -1
  160. data/vendor/libgit2/include/git2/proxy.h +11 -1
  161. data/vendor/libgit2/include/git2/rebase.h +18 -7
  162. data/vendor/libgit2/include/git2/refdb.h +5 -2
  163. data/vendor/libgit2/include/git2/reflog.h +4 -3
  164. data/vendor/libgit2/include/git2/refs.h +11 -8
  165. data/vendor/libgit2/include/git2/refspec.h +14 -4
  166. data/vendor/libgit2/include/git2/remote.h +295 -54
  167. data/vendor/libgit2/include/git2/repository.h +95 -25
  168. data/vendor/libgit2/include/git2/reset.h +18 -5
  169. data/vendor/libgit2/include/git2/revert.h +9 -4
  170. data/vendor/libgit2/include/git2/revparse.h +4 -4
  171. data/vendor/libgit2/include/git2/revwalk.h +7 -3
  172. data/vendor/libgit2/include/git2/signature.h +47 -2
  173. data/vendor/libgit2/include/git2/stash.h +78 -10
  174. data/vendor/libgit2/include/git2/status.h +24 -11
  175. data/vendor/libgit2/include/git2/stdint.h +87 -85
  176. data/vendor/libgit2/include/git2/strarray.h +2 -16
  177. data/vendor/libgit2/include/git2/submodule.h +27 -11
  178. data/vendor/libgit2/include/git2/sys/alloc.h +12 -34
  179. data/vendor/libgit2/include/git2/sys/commit.h +77 -3
  180. data/vendor/libgit2/include/git2/sys/commit_graph.h +110 -59
  181. data/vendor/libgit2/include/git2/sys/config.h +80 -4
  182. data/vendor/libgit2/include/git2/sys/credential.h +4 -3
  183. data/vendor/libgit2/include/git2/sys/diff.h +21 -1
  184. data/vendor/libgit2/include/git2/sys/email.h +7 -0
  185. data/vendor/libgit2/include/git2/sys/errors.h +76 -0
  186. data/vendor/libgit2/include/git2/sys/filter.h +66 -3
  187. data/vendor/libgit2/include/git2/sys/hashsig.h +11 -0
  188. data/vendor/libgit2/include/git2/sys/index.h +3 -2
  189. data/vendor/libgit2/include/git2/sys/mempack.h +32 -2
  190. data/vendor/libgit2/include/git2/sys/merge.h +55 -7
  191. data/vendor/libgit2/include/git2/sys/midx.h +47 -4
  192. data/vendor/libgit2/include/git2/sys/odb_backend.h +10 -9
  193. data/vendor/libgit2/include/git2/sys/openssl.h +8 -1
  194. data/vendor/libgit2/include/git2/sys/path.h +12 -1
  195. data/vendor/libgit2/include/git2/sys/refdb_backend.h +40 -36
  196. data/vendor/libgit2/include/git2/sys/refs.h +3 -2
  197. data/vendor/libgit2/include/git2/sys/remote.h +53 -0
  198. data/vendor/libgit2/include/git2/sys/repository.h +63 -3
  199. data/vendor/libgit2/include/git2/sys/stream.h +26 -3
  200. data/vendor/libgit2/include/git2/sys/transport.h +87 -41
  201. data/vendor/libgit2/include/git2/tag.h +4 -1
  202. data/vendor/libgit2/include/git2/trace.h +9 -3
  203. data/vendor/libgit2/include/git2/transaction.h +3 -2
  204. data/vendor/libgit2/include/git2/transport.h +11 -3
  205. data/vendor/libgit2/include/git2/tree.h +20 -8
  206. data/vendor/libgit2/include/git2/types.h +26 -10
  207. data/vendor/libgit2/include/git2/version.h +63 -6
  208. data/vendor/libgit2/include/git2/worktree.h +30 -8
  209. data/vendor/libgit2/include/git2.h +1 -0
  210. data/vendor/libgit2/src/CMakeLists.txt +203 -420
  211. data/vendor/libgit2/src/README.md +12 -0
  212. data/vendor/libgit2/src/cli/CMakeLists.txt +56 -0
  213. data/vendor/libgit2/src/cli/README.md +26 -0
  214. data/vendor/libgit2/src/{branch.h → cli/cmd.c} +10 -8
  215. data/vendor/libgit2/src/cli/cmd.h +37 -0
  216. data/vendor/libgit2/src/cli/cmd_blame.c +287 -0
  217. data/vendor/libgit2/src/cli/cmd_cat_file.c +202 -0
  218. data/vendor/libgit2/src/cli/cmd_clone.c +190 -0
  219. data/vendor/libgit2/src/cli/cmd_config.c +241 -0
  220. data/vendor/libgit2/src/cli/cmd_hash_object.c +152 -0
  221. data/vendor/libgit2/src/cli/cmd_help.c +85 -0
  222. data/vendor/libgit2/src/cli/cmd_index_pack.c +114 -0
  223. data/vendor/libgit2/src/cli/cmd_init.c +102 -0
  224. data/vendor/libgit2/src/cli/common.c +168 -0
  225. data/vendor/libgit2/src/cli/common.h +63 -0
  226. data/vendor/libgit2/src/cli/error.h +51 -0
  227. data/vendor/libgit2/src/cli/main.c +134 -0
  228. data/vendor/libgit2/src/cli/opt.c +695 -0
  229. data/vendor/libgit2/src/cli/opt.h +367 -0
  230. data/vendor/libgit2/src/cli/opt_usage.c +263 -0
  231. data/vendor/libgit2/src/cli/opt_usage.h +40 -0
  232. data/vendor/libgit2/src/cli/progress.c +395 -0
  233. data/vendor/libgit2/src/cli/progress.h +129 -0
  234. data/vendor/libgit2/src/cli/sighandler.h +20 -0
  235. data/vendor/libgit2/src/cli/unix/sighandler.c +37 -0
  236. data/vendor/libgit2/src/cli/win32/precompiled.h +3 -0
  237. data/vendor/libgit2/src/cli/win32/sighandler.c +37 -0
  238. data/vendor/libgit2/src/libgit2/CMakeLists.txt +140 -0
  239. data/vendor/libgit2/src/{annotated_commit.c → libgit2/annotated_commit.c} +2 -2
  240. data/vendor/libgit2/src/{annotated_commit.h → libgit2/annotated_commit.h} +2 -2
  241. data/vendor/libgit2/src/{apply.c → libgit2/apply.c} +32 -34
  242. data/vendor/libgit2/src/{apply.h → libgit2/apply.h} +2 -2
  243. data/vendor/libgit2/src/{attr.c → libgit2/attr.c} +48 -31
  244. data/vendor/libgit2/src/{attr_file.c → libgit2/attr_file.c} +25 -20
  245. data/vendor/libgit2/src/{attr_file.h → libgit2/attr_file.h} +6 -4
  246. data/vendor/libgit2/src/{attrcache.c → libgit2/attrcache.c} +87 -46
  247. data/vendor/libgit2/src/{attrcache.h → libgit2/attrcache.h} +5 -9
  248. data/vendor/libgit2/src/{blame.c → libgit2/blame.c} +152 -57
  249. data/vendor/libgit2/src/{blame.h → libgit2/blame.h} +1 -0
  250. data/vendor/libgit2/src/{blame_git.c → libgit2/blame_git.c} +1 -2
  251. data/vendor/libgit2/src/{blob.c → libgit2/blob.c} +38 -29
  252. data/vendor/libgit2/src/{blob.h → libgit2/blob.h} +3 -3
  253. data/vendor/libgit2/src/{branch.c → libgit2/branch.c} +164 -118
  254. data/vendor/libgit2/src/libgit2/branch.h +31 -0
  255. data/vendor/libgit2/src/libgit2/buf.c +126 -0
  256. data/vendor/libgit2/src/libgit2/buf.h +50 -0
  257. data/vendor/libgit2/src/{cache.c → libgit2/cache.c} +22 -17
  258. data/vendor/libgit2/src/{cache.h → libgit2/cache.h} +7 -9
  259. data/vendor/libgit2/src/{checkout.c → libgit2/checkout.c} +107 -91
  260. data/vendor/libgit2/src/{checkout.h → libgit2/checkout.h} +0 -2
  261. data/vendor/libgit2/src/{cherrypick.c → libgit2/cherrypick.c} +14 -15
  262. data/vendor/libgit2/src/{clone.c → libgit2/clone.c} +254 -203
  263. data/vendor/libgit2/src/{clone.h → libgit2/clone.h} +4 -1
  264. data/vendor/libgit2/src/{commit.c → libgit2/commit.c} +296 -77
  265. data/vendor/libgit2/src/libgit2/commit.h +87 -0
  266. data/vendor/libgit2/src/{commit_graph.c → libgit2/commit_graph.c} +246 -135
  267. data/vendor/libgit2/src/{commit_graph.h → libgit2/commit_graph.h} +33 -8
  268. data/vendor/libgit2/src/{commit_list.c → libgit2/commit_list.c} +17 -7
  269. data/vendor/libgit2/src/{commit_list.h → libgit2/commit_list.h} +1 -0
  270. data/vendor/libgit2/src/libgit2/common.h +55 -0
  271. data/vendor/libgit2/src/{config.c → libgit2/config.c} +490 -360
  272. data/vendor/libgit2/src/libgit2/config.cmake.in +3 -0
  273. data/vendor/libgit2/src/{config.h → libgit2/config.h} +24 -6
  274. data/vendor/libgit2/src/{config_backend.h → libgit2/config_backend.h} +8 -10
  275. data/vendor/libgit2/src/{config_cache.c → libgit2/config_cache.c} +4 -5
  276. data/vendor/libgit2/src/{config_file.c → libgit2/config_file.c} +212 -183
  277. data/vendor/libgit2/src/libgit2/config_list.c +285 -0
  278. data/vendor/libgit2/src/libgit2/config_list.h +32 -0
  279. data/vendor/libgit2/src/libgit2/config_mem.c +374 -0
  280. data/vendor/libgit2/src/{config_parse.c → libgit2/config_parse.c} +37 -32
  281. data/vendor/libgit2/src/{config_snapshot.c → libgit2/config_snapshot.c} +24 -31
  282. data/vendor/libgit2/src/{crlf.c → libgit2/crlf.c} +24 -21
  283. data/vendor/libgit2/src/{describe.c → libgit2/describe.c} +62 -51
  284. data/vendor/libgit2/src/{diff.c → libgit2/diff.c} +44 -14
  285. data/vendor/libgit2/src/{diff.h → libgit2/diff.h} +8 -10
  286. data/vendor/libgit2/src/{diff_driver.c → libgit2/diff_driver.c} +46 -55
  287. data/vendor/libgit2/src/{diff_driver.h → libgit2/diff_driver.h} +5 -5
  288. data/vendor/libgit2/src/{diff_file.c → libgit2/diff_file.c} +45 -27
  289. data/vendor/libgit2/src/{diff_generate.c → libgit2/diff_generate.c} +70 -20
  290. data/vendor/libgit2/src/{diff_generate.h → libgit2/diff_generate.h} +5 -3
  291. data/vendor/libgit2/src/{diff_parse.c → libgit2/diff_parse.c} +22 -6
  292. data/vendor/libgit2/src/{diff_print.c → libgit2/diff_print.c} +192 -105
  293. data/vendor/libgit2/src/{diff_stats.c → libgit2/diff_stats.c} +40 -29
  294. data/vendor/libgit2/src/libgit2/diff_stats.h +18 -0
  295. data/vendor/libgit2/src/{diff_tform.c → libgit2/diff_tform.c} +49 -16
  296. data/vendor/libgit2/src/{diff_xdiff.c → libgit2/diff_xdiff.c} +4 -8
  297. data/vendor/libgit2/src/{diff_xdiff.h → libgit2/diff_xdiff.h} +1 -1
  298. data/vendor/libgit2/src/{email.c → libgit2/email.c} +58 -40
  299. data/vendor/libgit2/src/{email.h → libgit2/email.h} +1 -1
  300. data/vendor/libgit2/src/{transports/ssh.h → libgit2/experimental.h.in} +3 -4
  301. data/vendor/libgit2/src/{fetch.c → libgit2/fetch.c} +105 -30
  302. data/vendor/libgit2/src/{fetch.h → libgit2/fetch.h} +1 -3
  303. data/vendor/libgit2/src/{fetchhead.c → libgit2/fetchhead.c} +30 -28
  304. data/vendor/libgit2/src/{filter.c → libgit2/filter.c} +132 -58
  305. data/vendor/libgit2/src/{filter.h → libgit2/filter.h} +26 -5
  306. data/vendor/libgit2/src/{win32 → libgit2}/git2.rc +3 -3
  307. data/vendor/libgit2/src/libgit2/grafts.c +270 -0
  308. data/vendor/libgit2/src/libgit2/grafts.h +35 -0
  309. data/vendor/libgit2/src/{graph.c → libgit2/graph.c} +1 -1
  310. data/vendor/libgit2/src/libgit2/hashmap_oid.h +30 -0
  311. data/vendor/libgit2/src/{ident.c → libgit2/ident.c} +20 -20
  312. data/vendor/libgit2/src/{ignore.c → libgit2/ignore.c} +44 -39
  313. data/vendor/libgit2/src/{ignore.h → libgit2/ignore.h} +2 -2
  314. data/vendor/libgit2/src/{index.c → libgit2/index.c} +460 -276
  315. data/vendor/libgit2/src/{index.h → libgit2/index.h} +21 -5
  316. data/vendor/libgit2/src/libgit2/index_map.c +95 -0
  317. data/vendor/libgit2/src/libgit2/index_map.h +28 -0
  318. data/vendor/libgit2/src/{indexer.c → libgit2/indexer.c} +208 -124
  319. data/vendor/libgit2/src/{iterator.c → libgit2/iterator.c} +102 -71
  320. data/vendor/libgit2/src/{iterator.h → libgit2/iterator.h} +8 -5
  321. data/vendor/libgit2/src/libgit2/libgit2.c +268 -0
  322. data/vendor/libgit2/src/{mailmap.c → libgit2/mailmap.c} +39 -37
  323. data/vendor/libgit2/src/{merge.c → libgit2/merge.c} +83 -73
  324. data/vendor/libgit2/src/{merge.h → libgit2/merge.h} +1 -14
  325. data/vendor/libgit2/src/{merge_driver.c → libgit2/merge_driver.c} +4 -4
  326. data/vendor/libgit2/src/{merge_file.c → libgit2/merge_file.c} +13 -5
  327. data/vendor/libgit2/src/{message.c → libgit2/message.c} +21 -10
  328. data/vendor/libgit2/src/{midx.c → libgit2/midx.c} +174 -112
  329. data/vendor/libgit2/src/{midx.h → libgit2/midx.h} +17 -6
  330. data/vendor/libgit2/src/{mwindow.c → libgit2/mwindow.c} +53 -57
  331. data/vendor/libgit2/src/{mwindow.h → libgit2/mwindow.h} +9 -2
  332. data/vendor/libgit2/src/{notes.c → libgit2/notes.c} +29 -37
  333. data/vendor/libgit2/src/{object.c → libgit2/object.c} +166 -35
  334. data/vendor/libgit2/src/{object.h → libgit2/object.h} +17 -2
  335. data/vendor/libgit2/src/{odb.c → libgit2/odb.c} +261 -88
  336. data/vendor/libgit2/src/{odb.h → libgit2/odb.h} +44 -5
  337. data/vendor/libgit2/src/{odb_loose.c → libgit2/odb_loose.c} +192 -134
  338. data/vendor/libgit2/src/{odb_mempack.c → libgit2/odb_mempack.c} +67 -22
  339. data/vendor/libgit2/src/{odb_pack.c → libgit2/odb_pack.c} +162 -89
  340. data/vendor/libgit2/src/{oid.c → libgit2/oid.c} +171 -92
  341. data/vendor/libgit2/src/libgit2/oid.h +284 -0
  342. data/vendor/libgit2/src/libgit2/oidarray.c +89 -0
  343. data/vendor/libgit2/src/{oidarray.h → libgit2/oidarray.h} +5 -1
  344. data/vendor/libgit2/src/{pack-objects.c → libgit2/pack-objects.c} +126 -66
  345. data/vendor/libgit2/src/{pack-objects.h → libgit2/pack-objects.h} +28 -12
  346. data/vendor/libgit2/src/{pack.c → libgit2/pack.c} +146 -111
  347. data/vendor/libgit2/src/{pack.h → libgit2/pack.h} +45 -25
  348. data/vendor/libgit2/src/{parse.c → libgit2/parse.c} +8 -4
  349. data/vendor/libgit2/src/{parse.h → libgit2/parse.h} +1 -1
  350. data/vendor/libgit2/src/{patch.c → libgit2/patch.c} +3 -3
  351. data/vendor/libgit2/src/{patch.h → libgit2/patch.h} +8 -1
  352. data/vendor/libgit2/src/{patch_generate.c → libgit2/patch_generate.c} +51 -16
  353. data/vendor/libgit2/src/{patch_generate.h → libgit2/patch_generate.h} +5 -5
  354. data/vendor/libgit2/src/{patch_parse.c → libgit2/patch_parse.c} +42 -34
  355. data/vendor/libgit2/src/libgit2/path.c +375 -0
  356. data/vendor/libgit2/src/libgit2/path.h +68 -0
  357. data/vendor/libgit2/src/{pathspec.c → libgit2/pathspec.c} +7 -7
  358. data/vendor/libgit2/src/{pathspec.h → libgit2/pathspec.h} +2 -2
  359. data/vendor/libgit2/src/{proxy.c → libgit2/proxy.c} +4 -1
  360. data/vendor/libgit2/src/{proxy.h → libgit2/proxy.h} +1 -1
  361. data/vendor/libgit2/src/{push.c → libgit2/push.c} +116 -60
  362. data/vendor/libgit2/src/{push.h → libgit2/push.h} +5 -16
  363. data/vendor/libgit2/src/{reader.c → libgit2/reader.c} +9 -9
  364. data/vendor/libgit2/src/{reader.h → libgit2/reader.h} +2 -2
  365. data/vendor/libgit2/src/{rebase.c → libgit2/rebase.c} +147 -147
  366. data/vendor/libgit2/src/{refdb_fs.c → libgit2/refdb_fs.c} +639 -254
  367. data/vendor/libgit2/src/{reflog.c → libgit2/reflog.c} +8 -7
  368. data/vendor/libgit2/src/{reflog.h → libgit2/reflog.h} +3 -2
  369. data/vendor/libgit2/src/{refs.c → libgit2/refs.c} +67 -39
  370. data/vendor/libgit2/src/{refs.h → libgit2/refs.h} +8 -3
  371. data/vendor/libgit2/src/{refspec.c → libgit2/refspec.c} +60 -38
  372. data/vendor/libgit2/src/{refspec.h → libgit2/refspec.h} +13 -2
  373. data/vendor/libgit2/src/{remote.c → libgit2/remote.c} +821 -454
  374. data/vendor/libgit2/src/libgit2/remote.h +101 -0
  375. data/vendor/libgit2/src/{repository.c → libgit2/repository.c} +1377 -594
  376. data/vendor/libgit2/src/{repository.h → libgit2/repository.h} +43 -12
  377. data/vendor/libgit2/src/{reset.c → libgit2/reset.c} +8 -5
  378. data/vendor/libgit2/src/{revert.c → libgit2/revert.c} +18 -22
  379. data/vendor/libgit2/src/{revparse.c → libgit2/revparse.c} +76 -44
  380. data/vendor/libgit2/src/{revwalk.c → libgit2/revwalk.c} +48 -19
  381. data/vendor/libgit2/src/{revwalk.h → libgit2/revwalk.h} +3 -3
  382. data/vendor/libgit2/src/{libgit2.c → libgit2/settings.c} +162 -95
  383. data/vendor/libgit2/src/{settings.h → libgit2/settings.h} +6 -2
  384. data/vendor/libgit2/src/{signature.c → libgit2/signature.c} +144 -21
  385. data/vendor/libgit2/src/{signature.h → libgit2/signature.h} +1 -2
  386. data/vendor/libgit2/src/{stash.c → libgit2/stash.c} +243 -68
  387. data/vendor/libgit2/src/{status.c → libgit2/status.c} +5 -2
  388. data/vendor/libgit2/src/{strarray.c → libgit2/strarray.c} +1 -0
  389. data/vendor/libgit2/src/libgit2/strarray.h +25 -0
  390. data/vendor/libgit2/src/{streams → libgit2/streams}/mbedtls.c +62 -67
  391. data/vendor/libgit2/src/{streams → libgit2/streams}/openssl.c +41 -24
  392. data/vendor/libgit2/src/{streams → libgit2/streams}/openssl.h +2 -0
  393. data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_dynamic.c +11 -3
  394. data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_dynamic.h +6 -3
  395. data/vendor/libgit2/src/libgit2/streams/schannel.c +715 -0
  396. data/vendor/libgit2/src/libgit2/streams/schannel.h +28 -0
  397. data/vendor/libgit2/src/libgit2/streams/socket.c +428 -0
  398. data/vendor/libgit2/src/{streams → libgit2/streams}/socket.h +3 -1
  399. data/vendor/libgit2/src/{streams → libgit2/streams}/stransport.c +79 -19
  400. data/vendor/libgit2/src/{streams → libgit2/streams}/tls.c +5 -0
  401. data/vendor/libgit2/src/{submodule.c → libgit2/submodule.c} +279 -220
  402. data/vendor/libgit2/src/{submodule.h → libgit2/submodule.h} +10 -11
  403. data/vendor/libgit2/src/libgit2/sysdir.c +650 -0
  404. data/vendor/libgit2/src/{sysdir.h → libgit2/sysdir.h} +55 -18
  405. data/vendor/libgit2/src/{tag.c → libgit2/tag.c} +74 -43
  406. data/vendor/libgit2/src/{tag.h → libgit2/tag.h} +2 -2
  407. data/vendor/libgit2/src/{trace.c → libgit2/trace.c} +1 -14
  408. data/vendor/libgit2/src/{trace.h → libgit2/trace.h} +5 -22
  409. data/vendor/libgit2/src/{trailer.c → libgit2/trailer.c} +7 -7
  410. data/vendor/libgit2/src/{transaction.c → libgit2/transaction.c} +27 -21
  411. data/vendor/libgit2/src/{transaction.h → libgit2/transaction.h} +4 -1
  412. data/vendor/libgit2/src/{transport.c → libgit2/transport.c} +14 -11
  413. data/vendor/libgit2/src/{transports → libgit2/transports}/auth.c +7 -9
  414. data/vendor/libgit2/src/{transports → libgit2/transports}/auth.h +3 -5
  415. data/vendor/libgit2/src/{transports/auth_negotiate.c → libgit2/transports/auth_gssapi.c} +44 -45
  416. data/vendor/libgit2/src/{transports → libgit2/transports}/auth_negotiate.h +1 -1
  417. data/vendor/libgit2/src/{transports → libgit2/transports}/auth_ntlm.h +1 -2
  418. data/vendor/libgit2/src/{transports/auth_ntlm.c → libgit2/transports/auth_ntlmclient.c} +22 -22
  419. data/vendor/libgit2/src/libgit2/transports/auth_sspi.c +341 -0
  420. data/vendor/libgit2/src/{transports → libgit2/transports}/credential.c +1 -1
  421. data/vendor/libgit2/src/{transports → libgit2/transports}/git.c +16 -19
  422. data/vendor/libgit2/src/{transports → libgit2/transports}/http.c +49 -24
  423. data/vendor/libgit2/src/{transports → libgit2/transports}/http.h +0 -11
  424. data/vendor/libgit2/src/{transports → libgit2/transports}/httpclient.c +188 -134
  425. data/vendor/libgit2/src/{transports → libgit2/transports}/httpclient.h +10 -0
  426. data/vendor/libgit2/src/libgit2/transports/httpparser.c +128 -0
  427. data/vendor/libgit2/src/libgit2/transports/httpparser.h +99 -0
  428. data/vendor/libgit2/src/{transports → libgit2/transports}/local.c +159 -127
  429. data/vendor/libgit2/src/{transports → libgit2/transports}/smart.c +142 -165
  430. data/vendor/libgit2/src/{transports → libgit2/transports}/smart.h +56 -36
  431. data/vendor/libgit2/src/{transports → libgit2/transports}/smart_pkt.c +307 -74
  432. data/vendor/libgit2/src/{transports → libgit2/transports}/smart_protocol.c +297 -97
  433. data/vendor/libgit2/src/libgit2/transports/ssh.c +85 -0
  434. data/vendor/libgit2/src/libgit2/transports/ssh_exec.c +347 -0
  435. data/vendor/libgit2/src/libgit2/transports/ssh_exec.h +26 -0
  436. data/vendor/libgit2/src/{transports/ssh.c → libgit2/transports/ssh_libssh2.c} +414 -268
  437. data/vendor/libgit2/src/libgit2/transports/ssh_libssh2.h +28 -0
  438. data/vendor/libgit2/src/{transports → libgit2/transports}/winhttp.c +101 -75
  439. data/vendor/libgit2/src/{tree-cache.c → libgit2/tree-cache.c} +30 -20
  440. data/vendor/libgit2/src/{tree-cache.h → libgit2/tree-cache.h} +7 -5
  441. data/vendor/libgit2/src/{tree.c → libgit2/tree.c} +128 -110
  442. data/vendor/libgit2/src/{tree.h → libgit2/tree.h} +7 -6
  443. data/vendor/libgit2/src/{worktree.c → libgit2/worktree.c} +160 -121
  444. data/vendor/libgit2/src/{worktree.h → libgit2/worktree.h} +1 -1
  445. data/vendor/libgit2/src/util/CMakeLists.txt +77 -0
  446. data/vendor/libgit2/src/{alloc.c → util/alloc.c} +69 -7
  447. data/vendor/libgit2/src/util/alloc.h +65 -0
  448. data/vendor/libgit2/src/util/allocators/debugalloc.c +73 -0
  449. data/vendor/libgit2/src/util/allocators/debugalloc.h +17 -0
  450. data/vendor/libgit2/src/util/allocators/failalloc.c +32 -0
  451. data/vendor/libgit2/src/util/allocators/failalloc.h +17 -0
  452. data/vendor/libgit2/src/util/allocators/stdalloc.c +37 -0
  453. data/vendor/libgit2/src/{allocators → util/allocators}/stdalloc.h +1 -1
  454. data/vendor/libgit2/src/util/allocators/win32_leakcheck.c +50 -0
  455. data/vendor/libgit2/src/{allocators → util/allocators}/win32_leakcheck.h +1 -1
  456. data/vendor/libgit2/src/{array.h → util/array.h} +25 -19
  457. data/vendor/libgit2/src/{assert_safe.h → util/assert_safe.h} +16 -0
  458. data/vendor/libgit2/src/{cc-compat.h → util/cc-compat.h} +5 -1
  459. data/vendor/libgit2/src/util/ctype_compat.h +70 -0
  460. data/vendor/libgit2/src/{date.c → util/date.c} +35 -33
  461. data/vendor/libgit2/src/util/date.h +45 -0
  462. data/vendor/libgit2/src/util/errors.c +401 -0
  463. data/vendor/libgit2/src/{errors.h → util/errors.h} +22 -19
  464. data/vendor/libgit2/src/{filebuf.c → util/filebuf.c} +35 -30
  465. data/vendor/libgit2/src/{filebuf.h → util/filebuf.h} +21 -8
  466. data/vendor/libgit2/src/{path.c → util/fs_path.c} +591 -615
  467. data/vendor/libgit2/src/{path.h → util/fs_path.h} +257 -181
  468. data/vendor/libgit2/src/{futils.c → util/futils.c} +144 -95
  469. data/vendor/libgit2/src/{futils.h → util/futils.h} +40 -18
  470. data/vendor/libgit2/src/{features.h.in → util/git2_features.h.in} +33 -2
  471. data/vendor/libgit2/src/{common.h → util/git2_util.h} +26 -59
  472. data/vendor/libgit2/src/util/hash/builtin.c +53 -0
  473. data/vendor/libgit2/src/{hash/sha1/openssl.h → util/hash/builtin.h} +6 -6
  474. data/vendor/libgit2/src/{hash/sha1 → util/hash}/collisiondetect.c +3 -3
  475. data/vendor/libgit2/src/{hash/sha1 → util/hash}/collisiondetect.h +3 -3
  476. data/vendor/libgit2/src/util/hash/common_crypto.c +112 -0
  477. data/vendor/libgit2/src/{hash/sha1 → util/hash}/common_crypto.h +11 -3
  478. data/vendor/libgit2/src/util/hash/mbedtls.c +92 -0
  479. data/vendor/libgit2/src/{hash/sha1 → util/hash}/mbedtls.h +14 -4
  480. data/vendor/libgit2/src/util/hash/openssl.c +347 -0
  481. data/vendor/libgit2/src/util/hash/openssl.h +61 -0
  482. data/vendor/libgit2/src/util/hash/rfc6234/sha.h +243 -0
  483. data/vendor/libgit2/src/util/hash/rfc6234/sha224-256.c +601 -0
  484. data/vendor/libgit2/src/util/hash/sha.h +73 -0
  485. data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/sha1.c +1 -1
  486. data/vendor/libgit2/src/util/hash/win32.c +549 -0
  487. data/vendor/libgit2/src/util/hash/win32.h +60 -0
  488. data/vendor/libgit2/src/util/hash.c +158 -0
  489. data/vendor/libgit2/src/util/hash.h +61 -0
  490. data/vendor/libgit2/src/util/hashmap.h +424 -0
  491. data/vendor/libgit2/src/util/hashmap_str.h +43 -0
  492. data/vendor/libgit2/src/{integer.h → util/integer.h} +3 -1
  493. data/vendor/libgit2/src/{map.h → util/map.h} +1 -1
  494. data/vendor/libgit2/src/util/net.c +1160 -0
  495. data/vendor/libgit2/src/{net.h → util/net.h} +45 -4
  496. data/vendor/libgit2/src/{pool.c → util/pool.c} +1 -1
  497. data/vendor/libgit2/src/{pool.h → util/pool.h} +6 -1
  498. data/vendor/libgit2/src/{posix.c → util/posix.c} +57 -3
  499. data/vendor/libgit2/src/{posix.h → util/posix.h} +26 -1
  500. data/vendor/libgit2/src/{pqueue.h → util/pqueue.h} +3 -3
  501. data/vendor/libgit2/src/util/process.h +222 -0
  502. data/vendor/libgit2/src/util/rand.c +230 -0
  503. data/vendor/libgit2/src/util/rand.h +37 -0
  504. data/vendor/libgit2/src/{regexp.c → util/regexp.c} +5 -5
  505. data/vendor/libgit2/src/{regexp.h → util/regexp.h} +1 -1
  506. data/vendor/libgit2/src/{runtime.c → util/runtime.c} +1 -1
  507. data/vendor/libgit2/src/{runtime.h → util/runtime.h} +1 -1
  508. data/vendor/libgit2/src/{sortedcache.c → util/sortedcache.c} +15 -14
  509. data/vendor/libgit2/src/{sortedcache.h → util/sortedcache.h} +5 -5
  510. data/vendor/libgit2/src/util/staticstr.h +66 -0
  511. data/vendor/libgit2/src/{buffer.c → util/str.c} +159 -153
  512. data/vendor/libgit2/src/util/str.h +357 -0
  513. data/vendor/libgit2/src/util/strlist.c +108 -0
  514. data/vendor/libgit2/src/util/strlist.h +36 -0
  515. data/vendor/libgit2/src/{thread.c → util/thread.c} +1 -1
  516. data/vendor/libgit2/src/{thread.h → util/thread.h} +23 -22
  517. data/vendor/libgit2/src/{tsort.c → util/tsort.c} +1 -1
  518. data/vendor/libgit2/src/{unix → util/unix}/map.c +1 -3
  519. data/vendor/libgit2/src/{unix → util/unix}/posix.h +1 -6
  520. data/vendor/libgit2/src/util/unix/process.c +629 -0
  521. data/vendor/libgit2/src/{unix → util/unix}/realpath.c +24 -8
  522. data/vendor/libgit2/src/{utf8.c → util/utf8.c} +1 -1
  523. data/vendor/libgit2/src/{utf8.h → util/utf8.h} +1 -1
  524. data/vendor/libgit2/src/{util.c → util/util.c} +24 -19
  525. data/vendor/libgit2/src/{util.h → util/util.h} +30 -81
  526. data/vendor/libgit2/src/{varint.h → util/varint.h} +1 -1
  527. data/vendor/libgit2/src/{vector.c → util/vector.c} +3 -3
  528. data/vendor/libgit2/src/{vector.h → util/vector.h} +4 -4
  529. data/vendor/libgit2/src/{wildmatch.h → util/wildmatch.h} +1 -1
  530. data/vendor/libgit2/src/{win32 → util/win32}/dir.h +1 -1
  531. data/vendor/libgit2/src/{win32 → util/win32}/error.c +1 -1
  532. data/vendor/libgit2/src/{win32 → util/win32}/error.h +1 -1
  533. data/vendor/libgit2/src/{win32 → util/win32}/map.c +1 -1
  534. data/vendor/libgit2/src/{win32 → util/win32}/path_w32.c +148 -17
  535. data/vendor/libgit2/src/{win32 → util/win32}/path_w32.h +3 -1
  536. data/vendor/libgit2/src/{win32 → util/win32}/posix.h +1 -2
  537. data/vendor/libgit2/src/{win32 → util/win32}/posix_w32.c +42 -35
  538. data/vendor/libgit2/src/util/win32/precompiled.c +1 -0
  539. data/vendor/libgit2/src/{win32 → util/win32}/precompiled.h +1 -1
  540. data/vendor/libgit2/src/util/win32/process.c +506 -0
  541. data/vendor/libgit2/src/{win32 → util/win32}/thread.h +1 -1
  542. data/vendor/libgit2/src/util/win32/utf-conv.c +144 -0
  543. data/vendor/libgit2/src/util/win32/utf-conv.h +127 -0
  544. data/vendor/libgit2/src/{win32 → util/win32}/w32_buffer.c +2 -3
  545. data/vendor/libgit2/src/{win32 → util/win32}/w32_buffer.h +3 -4
  546. data/vendor/libgit2/src/{win32 → util/win32}/w32_leakcheck.c +1 -1
  547. data/vendor/libgit2/src/{win32 → util/win32}/w32_leakcheck.h +1 -1
  548. data/vendor/libgit2/src/{win32 → util/win32}/w32_util.c +1 -1
  549. data/vendor/libgit2/src/{win32 → util/win32}/w32_util.h +1 -1
  550. data/vendor/libgit2/src/{zstream.c → util/zstream.c} +5 -5
  551. data/vendor/libgit2/src/{zstream.h → util/zstream.h} +5 -5
  552. metadata +431 -362
  553. data/vendor/libgit2/cmake/FindIconv.cmake +0 -45
  554. data/vendor/libgit2/deps/http-parser/CMakeLists.txt +0 -6
  555. data/vendor/libgit2/deps/http-parser/COPYING +0 -23
  556. data/vendor/libgit2/deps/http-parser/http_parser.c +0 -2182
  557. data/vendor/libgit2/deps/http-parser/http_parser.h +0 -305
  558. data/vendor/libgit2/deps/zlib/COPYING +0 -27
  559. data/vendor/libgit2/include/git2/sys/reflog.h +0 -21
  560. data/vendor/libgit2/src/alloc.h +0 -40
  561. data/vendor/libgit2/src/allocators/failalloc.c +0 -92
  562. data/vendor/libgit2/src/allocators/failalloc.h +0 -23
  563. data/vendor/libgit2/src/allocators/stdalloc.c +0 -150
  564. data/vendor/libgit2/src/allocators/win32_leakcheck.c +0 -118
  565. data/vendor/libgit2/src/buffer.h +0 -374
  566. data/vendor/libgit2/src/commit.h +0 -46
  567. data/vendor/libgit2/src/config_entries.c +0 -237
  568. data/vendor/libgit2/src/config_entries.h +0 -24
  569. data/vendor/libgit2/src/config_mem.c +0 -220
  570. data/vendor/libgit2/src/errors.c +0 -238
  571. data/vendor/libgit2/src/hash/sha1/common_crypto.c +0 -57
  572. data/vendor/libgit2/src/hash/sha1/generic.c +0 -300
  573. data/vendor/libgit2/src/hash/sha1/generic.h +0 -19
  574. data/vendor/libgit2/src/hash/sha1/mbedtls.c +0 -46
  575. data/vendor/libgit2/src/hash/sha1/openssl.c +0 -59
  576. data/vendor/libgit2/src/hash/sha1/win32.c +0 -333
  577. data/vendor/libgit2/src/hash/sha1/win32.h +0 -128
  578. data/vendor/libgit2/src/hash/sha1.h +0 -38
  579. data/vendor/libgit2/src/hash.c +0 -110
  580. data/vendor/libgit2/src/hash.h +0 -46
  581. data/vendor/libgit2/src/idxmap.c +0 -157
  582. data/vendor/libgit2/src/idxmap.h +0 -177
  583. data/vendor/libgit2/src/khash.h +0 -615
  584. data/vendor/libgit2/src/libgit2.h +0 -15
  585. data/vendor/libgit2/src/message.h +0 -17
  586. data/vendor/libgit2/src/net.c +0 -540
  587. data/vendor/libgit2/src/netops.c +0 -125
  588. data/vendor/libgit2/src/netops.h +0 -68
  589. data/vendor/libgit2/src/offmap.c +0 -101
  590. data/vendor/libgit2/src/offmap.h +0 -133
  591. data/vendor/libgit2/src/oid.h +0 -51
  592. data/vendor/libgit2/src/oidarray.c +0 -43
  593. data/vendor/libgit2/src/oidmap.c +0 -107
  594. data/vendor/libgit2/src/oidmap.h +0 -128
  595. data/vendor/libgit2/src/remote.h +0 -55
  596. data/vendor/libgit2/src/streams/socket.c +0 -239
  597. data/vendor/libgit2/src/strmap.c +0 -100
  598. data/vendor/libgit2/src/strmap.h +0 -131
  599. data/vendor/libgit2/src/sysdir.c +0 -347
  600. data/vendor/libgit2/src/threadstate.c +0 -84
  601. data/vendor/libgit2/src/threadstate.h +0 -24
  602. data/vendor/libgit2/src/win32/findfile.c +0 -230
  603. data/vendor/libgit2/src/win32/findfile.h +0 -19
  604. data/vendor/libgit2/src/win32/utf-conv.c +0 -146
  605. data/vendor/libgit2/src/win32/utf-conv.h +0 -60
  606. /data/vendor/libgit2/{src → deps}/xdiff/xemit.h +0 -0
  607. /data/vendor/libgit2/{src → deps}/xdiff/xprepare.h +0 -0
  608. /data/vendor/libgit2/{src → deps}/xdiff/xtypes.h +0 -0
  609. /data/vendor/libgit2/src/{win32 → cli/win32}/precompiled.c +0 -0
  610. /data/vendor/libgit2/src/{attr.h → libgit2/attr.h} +0 -0
  611. /data/vendor/libgit2/src/{blame_git.h → libgit2/blame_git.h} +0 -0
  612. /data/vendor/libgit2/src/{config_parse.h → libgit2/config_parse.h} +0 -0
  613. /data/vendor/libgit2/src/{delta.c → libgit2/delta.c} +0 -0
  614. /data/vendor/libgit2/src/{delta.h → libgit2/delta.h} +0 -0
  615. /data/vendor/libgit2/src/{diff_file.h → libgit2/diff_file.h} +0 -0
  616. /data/vendor/libgit2/src/{diff_parse.h → libgit2/diff_parse.h} +0 -0
  617. /data/vendor/libgit2/src/{diff_tform.h → libgit2/diff_tform.h} +0 -0
  618. /data/vendor/libgit2/src/{fetchhead.h → libgit2/fetchhead.h} +0 -0
  619. /data/vendor/libgit2/src/{hashsig.c → libgit2/hashsig.c} +0 -0
  620. /data/vendor/libgit2/src/{indexer.h → libgit2/indexer.h} +0 -0
  621. /data/vendor/libgit2/src/{mailmap.h → libgit2/mailmap.h} +0 -0
  622. /data/vendor/libgit2/src/{merge_driver.h → libgit2/merge_driver.h} +0 -0
  623. /data/vendor/libgit2/src/{notes.h → libgit2/notes.h} +0 -0
  624. /data/vendor/libgit2/src/{object_api.c → libgit2/object_api.c} +0 -0
  625. /data/vendor/libgit2/src/{patch_parse.h → libgit2/patch_parse.h} +0 -0
  626. /data/vendor/libgit2/src/{refdb.c → libgit2/refdb.c} +0 -0
  627. /data/vendor/libgit2/src/{refdb.h → libgit2/refdb.h} +0 -0
  628. /data/vendor/libgit2/src/{repo_template.h → libgit2/repo_template.h} +0 -0
  629. /data/vendor/libgit2/src/{status.h → libgit2/status.h} +0 -0
  630. /data/vendor/libgit2/src/{stream.h → libgit2/stream.h} +0 -0
  631. /data/vendor/libgit2/src/{streams → libgit2/streams}/mbedtls.h +0 -0
  632. /data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_legacy.c +0 -0
  633. /data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_legacy.h +0 -0
  634. /data/vendor/libgit2/src/{streams → libgit2/streams}/registry.c +0 -0
  635. /data/vendor/libgit2/src/{streams → libgit2/streams}/registry.h +0 -0
  636. /data/vendor/libgit2/src/{streams → libgit2/streams}/stransport.h +0 -0
  637. /data/vendor/libgit2/src/{streams → libgit2/streams}/tls.h +0 -0
  638. /data/vendor/libgit2/src/{transports → libgit2/transports}/credential_helpers.c +0 -0
  639. /data/vendor/libgit2/src/{userdiff.h → libgit2/userdiff.h} +0 -0
  640. /data/vendor/libgit2/src/{bitvec.h → util/bitvec.h} +0 -0
  641. /data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/sha1.h +0 -0
  642. /data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/ubc_check.c +0 -0
  643. /data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/ubc_check.h +0 -0
  644. /data/vendor/libgit2/src/{pqueue.c → util/pqueue.c} +0 -0
  645. /data/vendor/libgit2/src/{strnlen.h → util/strnlen.h} +0 -0
  646. /data/vendor/libgit2/src/{unix → util/unix}/pthread.h +0 -0
  647. /data/vendor/libgit2/src/{varint.c → util/varint.c} +0 -0
  648. /data/vendor/libgit2/src/{wildmatch.c → util/wildmatch.c} +0 -0
  649. /data/vendor/libgit2/src/{win32 → util/win32}/dir.c +0 -0
  650. /data/vendor/libgit2/src/{win32 → util/win32}/mingw-compat.h +0 -0
  651. /data/vendor/libgit2/src/{win32 → util/win32}/msvc-compat.h +0 -0
  652. /data/vendor/libgit2/src/{win32 → util/win32}/reparse.h +0 -0
  653. /data/vendor/libgit2/src/{win32 → util/win32}/thread.c +0 -0
  654. /data/vendor/libgit2/src/{win32 → util/win32}/version.h +0 -0
  655. /data/vendor/libgit2/src/{win32 → util/win32}/w32_common.h +0 -0
  656. /data/vendor/libgit2/src/{win32 → util/win32}/win32-compat.h +0 -0
@@ -19,7 +19,6 @@
19
19
  #include "repository.h"
20
20
  #include "blame_git.h"
21
21
 
22
-
23
22
  static int hunk_byfinalline_search_cmp(const void *key, const void *entry)
24
23
  {
25
24
  git_blame_hunk *hunk = (git_blame_hunk*)entry;
@@ -60,10 +59,11 @@ static bool hunk_starts_at_or_after_line(git_blame_hunk *hunk, size_t line)
60
59
  }
61
60
 
62
61
  static git_blame_hunk *new_hunk(
63
- size_t start,
64
- size_t lines,
65
- size_t orig_start,
66
- const char *path)
62
+ size_t start,
63
+ size_t lines,
64
+ size_t orig_start,
65
+ const char *path,
66
+ git_blame *blame)
67
67
  {
68
68
  git_blame_hunk *hunk = git__calloc(1, sizeof(git_blame_hunk));
69
69
  if (!hunk) return NULL;
@@ -72,25 +72,31 @@ static git_blame_hunk *new_hunk(
72
72
  hunk->final_start_line_number = start;
73
73
  hunk->orig_start_line_number = orig_start;
74
74
  hunk->orig_path = path ? git__strdup(path) : NULL;
75
+ git_oid_clear(&hunk->orig_commit_id, blame->repository->oid_type);
76
+ git_oid_clear(&hunk->final_commit_id, blame->repository->oid_type);
75
77
 
76
78
  return hunk;
77
79
  }
78
80
 
79
81
  static void free_hunk(git_blame_hunk *hunk)
80
82
  {
81
- git__free((void*)hunk->orig_path);
83
+ git__free((char *)hunk->orig_path);
84
+ git__free((char *)hunk->summary);
82
85
  git_signature_free(hunk->final_signature);
86
+ git_signature_free(hunk->final_committer);
83
87
  git_signature_free(hunk->orig_signature);
88
+ git_signature_free(hunk->orig_committer);
84
89
  git__free(hunk);
85
90
  }
86
91
 
87
- static git_blame_hunk *dup_hunk(git_blame_hunk *hunk)
92
+ static git_blame_hunk *dup_hunk(git_blame_hunk *hunk, git_blame *blame)
88
93
  {
89
94
  git_blame_hunk *newhunk = new_hunk(
90
95
  hunk->final_start_line_number,
91
96
  hunk->lines_in_hunk,
92
97
  hunk->orig_start_line_number,
93
- hunk->orig_path);
98
+ hunk->orig_path,
99
+ blame);
94
100
 
95
101
  if (!newhunk)
96
102
  return NULL;
@@ -100,7 +106,10 @@ static git_blame_hunk *dup_hunk(git_blame_hunk *hunk)
100
106
  newhunk->boundary = hunk->boundary;
101
107
 
102
108
  if (git_signature_dup(&newhunk->final_signature, hunk->final_signature) < 0 ||
103
- git_signature_dup(&newhunk->orig_signature, hunk->orig_signature) < 0) {
109
+ git_signature_dup(&newhunk->final_committer, hunk->final_committer) < 0 ||
110
+ git_signature_dup(&newhunk->orig_signature, hunk->orig_signature) < 0 ||
111
+ git_signature_dup(&newhunk->orig_committer, hunk->orig_committer) < 0 ||
112
+ (newhunk->summary = git__strdup(hunk->summary)) == NULL) {
104
113
  free_hunk(newhunk);
105
114
  return NULL;
106
115
  }
@@ -113,12 +122,12 @@ static git_blame_hunk *dup_hunk(git_blame_hunk *hunk)
113
122
  static void shift_hunks_by(git_vector *v, size_t start_line, int shift_by)
114
123
  {
115
124
  size_t i;
116
-
117
- if (!git_vector_bsearch2(&i, v, hunk_byfinalline_search_cmp, &start_line)) {
118
- for (; i < v->length; i++) {
119
- git_blame_hunk *hunk = (git_blame_hunk*)v->contents[i];
120
- hunk->final_start_line_number += shift_by;
125
+ for (i = 0; i < v->length; i++) {
126
+ git_blame_hunk *hunk = (git_blame_hunk*)v->contents[i];
127
+ if(hunk->final_start_line_number < start_line){
128
+ continue;
121
129
  }
130
+ hunk->final_start_line_number += shift_by;
122
131
  }
123
132
  }
124
133
 
@@ -135,10 +144,9 @@ git_blame *git_blame__alloc(
135
144
  gbr->options = opts;
136
145
 
137
146
  if (git_vector_init(&gbr->hunks, 8, hunk_cmp) < 0 ||
138
- git_vector_init(&gbr->paths, 8, paths_cmp) < 0 ||
139
- (gbr->path = git__strdup(path)) == NULL ||
140
- git_vector_insert(&gbr->paths, git__strdup(path)) < 0)
141
- {
147
+ git_vector_init(&gbr->paths, 8, paths_cmp) < 0 ||
148
+ (gbr->path = git__strdup(path)) == NULL ||
149
+ git_vector_insert(&gbr->paths, git__strdup(path)) < 0) {
142
150
  git_blame_free(gbr);
143
151
  return NULL;
144
152
  }
@@ -161,9 +169,11 @@ void git_blame_free(git_blame *blame)
161
169
 
162
170
  git_vector_foreach(&blame->hunks, i, hunk)
163
171
  free_hunk(hunk);
164
- git_vector_free(&blame->hunks);
165
172
 
166
- git_vector_free_deep(&blame->paths);
173
+ git_vector_dispose(&blame->hunks);
174
+ git_array_clear(blame->lines);
175
+
176
+ git_vector_dispose_deep(&blame->paths);
167
177
 
168
178
  git_array_clear(blame->line_index);
169
179
 
@@ -174,31 +184,76 @@ void git_blame_free(git_blame *blame)
174
184
  git__free(blame);
175
185
  }
176
186
 
177
- uint32_t git_blame_get_hunk_count(git_blame *blame)
187
+ size_t git_blame_hunkcount(git_blame *blame)
178
188
  {
179
189
  GIT_ASSERT_ARG(blame);
180
- return (uint32_t)blame->hunks.length;
190
+
191
+ return blame->hunks.length;
192
+ }
193
+
194
+ size_t git_blame_linecount(git_blame *blame)
195
+ {
196
+ GIT_ASSERT_ARG(blame);
197
+
198
+ return git_array_size(blame->line_index);
199
+ }
200
+
201
+ const git_blame_line *git_blame_line_byindex(
202
+ git_blame *blame,
203
+ size_t idx)
204
+ {
205
+ GIT_ASSERT_ARG_WITH_RETVAL(blame, NULL);
206
+ GIT_ASSERT_WITH_RETVAL(idx > 0 && idx <= git_array_size(blame->line_index), NULL);
207
+
208
+ return git_array_get(blame->lines, idx - 1);
181
209
  }
182
210
 
183
- const git_blame_hunk *git_blame_get_hunk_byindex(git_blame *blame, uint32_t index)
211
+ const git_blame_hunk *git_blame_hunk_byindex(
212
+ git_blame *blame,
213
+ size_t index)
184
214
  {
185
215
  GIT_ASSERT_ARG_WITH_RETVAL(blame, NULL);
186
- return (git_blame_hunk*)git_vector_get(&blame->hunks, index);
216
+ return git_vector_get(&blame->hunks, index);
187
217
  }
188
218
 
189
- const git_blame_hunk *git_blame_get_hunk_byline(git_blame *blame, size_t lineno)
219
+ const git_blame_hunk *git_blame_hunk_byline(
220
+ git_blame *blame,
221
+ size_t lineno)
190
222
  {
191
223
  size_t i, new_lineno = lineno;
192
224
 
193
225
  GIT_ASSERT_ARG_WITH_RETVAL(blame, NULL);
194
226
 
195
- if (!git_vector_bsearch2(&i, &blame->hunks, hunk_byfinalline_search_cmp, &new_lineno)) {
196
- return git_blame_get_hunk_byindex(blame, (uint32_t)i);
197
- }
227
+ if (git_vector_bsearch2(&i, &blame->hunks,
228
+ hunk_byfinalline_search_cmp, &new_lineno) != 0)
229
+ return NULL;
230
+
231
+ return git_blame_hunk_byindex(blame, i);
232
+ }
198
233
 
199
- return NULL;
234
+ #ifndef GIT_DEPRECATE_HARD
235
+ uint32_t git_blame_get_hunk_count(git_blame *blame)
236
+ {
237
+ size_t count = git_blame_hunkcount(blame);
238
+ GIT_ASSERT(count < UINT32_MAX);
239
+ return (uint32_t)count;
200
240
  }
201
241
 
242
+ const git_blame_hunk *git_blame_get_hunk_byindex(
243
+ git_blame *blame,
244
+ uint32_t index)
245
+ {
246
+ return git_blame_hunk_byindex(blame, index);
247
+ }
248
+
249
+ const git_blame_hunk *git_blame_get_hunk_byline(
250
+ git_blame *blame,
251
+ size_t lineno)
252
+ {
253
+ return git_blame_hunk_byline(blame, lineno);
254
+ }
255
+ #endif
256
+
202
257
  static int normalize_options(
203
258
  git_blame_options *out,
204
259
  const git_blame_options *in,
@@ -235,7 +290,8 @@ static git_blame_hunk *split_hunk_in_vector(
235
290
  git_vector *vec,
236
291
  git_blame_hunk *hunk,
237
292
  size_t rel_line,
238
- bool return_new)
293
+ bool return_new,
294
+ git_blame *blame)
239
295
  {
240
296
  size_t new_line_count;
241
297
  git_blame_hunk *nh;
@@ -248,8 +304,9 @@ static git_blame_hunk *split_hunk_in_vector(
248
304
  }
249
305
 
250
306
  new_line_count = hunk->lines_in_hunk - rel_line;
251
- nh = new_hunk(hunk->final_start_line_number + rel_line, new_line_count,
252
- hunk->orig_start_line_number + rel_line, hunk->orig_path);
307
+ nh = new_hunk(hunk->final_start_line_number + rel_line,
308
+ new_line_count, hunk->orig_start_line_number + rel_line,
309
+ hunk->orig_path, blame);
253
310
 
254
311
  if (!nh)
255
312
  return NULL;
@@ -276,42 +333,77 @@ static int index_blob_lines(git_blame *blame)
276
333
  const char *buf = blame->final_buf;
277
334
  size_t len = blame->final_buf_size;
278
335
  int num = 0, incomplete = 0, bol = 1;
336
+ git_blame_line *line = NULL;
279
337
  size_t *i;
280
338
 
281
339
  if (len && buf[len-1] != '\n')
282
340
  incomplete++; /* incomplete line at the end */
341
+
283
342
  while (len--) {
284
343
  if (bol) {
285
344
  i = git_array_alloc(blame->line_index);
286
345
  GIT_ERROR_CHECK_ALLOC(i);
287
346
  *i = buf - blame->final_buf;
347
+
348
+ GIT_ASSERT(line == NULL);
349
+ line = git_array_alloc(blame->lines);
350
+ GIT_ERROR_CHECK_ALLOC(line);
351
+
352
+ line->ptr = buf;
288
353
  bol = 0;
289
354
  }
355
+
290
356
  if (*buf++ == '\n') {
357
+ GIT_ASSERT(line);
358
+ line->len = (buf - line->ptr) - 1;
359
+ line = NULL;
360
+
291
361
  num++;
292
362
  bol = 1;
293
363
  }
294
364
  }
365
+
295
366
  i = git_array_alloc(blame->line_index);
296
367
  GIT_ERROR_CHECK_ALLOC(i);
297
368
  *i = buf - blame->final_buf;
369
+
370
+ if (!bol) {
371
+ GIT_ASSERT(line);
372
+ line->len = buf - line->ptr;
373
+ line = NULL;
374
+ }
375
+
376
+ GIT_ASSERT(!line);
377
+
298
378
  blame->num_lines = num + incomplete;
299
379
  return blame->num_lines;
300
380
  }
301
381
 
302
382
  static git_blame_hunk *hunk_from_entry(git_blame__entry *e, git_blame *blame)
303
383
  {
384
+ const char *summary;
304
385
  git_blame_hunk *h = new_hunk(
305
- e->lno+1, e->num_lines, e->s_lno+1, e->suspect->path);
386
+ e->lno+1, e->num_lines, e->s_lno+1, e->suspect->path,
387
+ blame);
306
388
 
307
389
  if (!h)
308
390
  return NULL;
309
391
 
310
392
  git_oid_cpy(&h->final_commit_id, git_commit_id(e->suspect->commit));
311
393
  git_oid_cpy(&h->orig_commit_id, git_commit_id(e->suspect->commit));
312
- git_commit_author_with_mailmap(
313
- &h->final_signature, e->suspect->commit, blame->mailmap);
314
- git_signature_dup(&h->orig_signature, h->final_signature);
394
+
395
+ if (git_commit_author_with_mailmap(
396
+ &h->final_signature, e->suspect->commit, blame->mailmap) < 0 ||
397
+ git_commit_committer_with_mailmap(
398
+ &h->final_committer, e->suspect->commit, blame->mailmap) < 0 ||
399
+ git_signature_dup(&h->orig_signature, h->final_signature) < 0 ||
400
+ git_signature_dup(&h->orig_committer, h->final_committer) < 0 ||
401
+ (summary = git_commit_summary(e->suspect->commit)) == NULL ||
402
+ (h->summary = git__strdup(summary)) == NULL) {
403
+ free_hunk(h);
404
+ return NULL;
405
+ }
406
+
315
407
  h->boundary = e->is_boundary ? 1 : 0;
316
408
  return h;
317
409
  }
@@ -340,12 +432,12 @@ static int blame_internal(git_blame *blame)
340
432
 
341
433
  if ((error = load_blob(blame)) < 0 ||
342
434
  (error = git_blame__get_origin(&o, blame, blame->final, blame->path)) < 0)
343
- goto cleanup;
435
+ goto on_error;
344
436
 
345
437
  if (git_blob_rawsize(blame->final_blob) > SIZE_MAX) {
346
438
  git_error_set(GIT_ERROR_NOMEMORY, "blob is too large to blame");
347
439
  error = -1;
348
- goto cleanup;
440
+ goto on_error;
349
441
  }
350
442
 
351
443
  blame->final_buf = git_blob_rawcontent(blame->final_blob);
@@ -364,17 +456,19 @@ static int blame_internal(git_blame *blame)
364
456
 
365
457
  blame->ent = ent;
366
458
 
367
- error = git_blame__like_git(blame, blame->options.flags);
459
+ if ((error = git_blame__like_git(blame, blame->options.flags)) < 0)
460
+ goto on_error;
368
461
 
369
- cleanup:
370
- for (ent = blame->ent; ent; ) {
371
- git_blame__entry *e = ent->next;
462
+ for (ent = blame->ent; ent; ent = ent->next) {
372
463
  git_blame_hunk *h = hunk_from_entry(ent, blame);
373
-
374
464
  git_vector_insert(&blame->hunks, h);
465
+ }
375
466
 
467
+ on_error:
468
+ for (ent = blame->ent; ent; ) {
469
+ git_blame__entry *next = ent->next;
376
470
  git_blame__free_entry(ent);
377
- ent = e;
471
+ ent = next;
378
472
  }
379
473
 
380
474
  return error;
@@ -437,20 +531,21 @@ static int buffer_hunk_cb(
437
531
 
438
532
  GIT_UNUSED(delta);
439
533
 
440
- wedge_line = (hunk->old_lines == 0) ? hunk->new_start : hunk->old_start;
534
+ wedge_line = (hunk->new_start >= hunk->old_start || hunk->old_lines==0) ? hunk->new_start : hunk->old_start;
441
535
  blame->current_diff_line = wedge_line;
442
-
443
- blame->current_hunk = (git_blame_hunk*)git_blame_get_hunk_byline(blame, wedge_line);
536
+ blame->current_hunk = (git_blame_hunk*)git_blame_hunk_byline(blame, wedge_line);
444
537
  if (!blame->current_hunk) {
445
538
  /* Line added at the end of the file */
446
- blame->current_hunk = new_hunk(wedge_line, 0, wedge_line, blame->path);
539
+ blame->current_hunk = new_hunk(wedge_line, 0, wedge_line,
540
+ blame->path, blame);
541
+ blame->current_diff_line++;
447
542
  GIT_ERROR_CHECK_ALLOC(blame->current_hunk);
448
-
449
543
  git_vector_insert(&blame->hunks, blame->current_hunk);
450
544
  } else if (!hunk_starts_at_or_after_line(blame->current_hunk, wedge_line)){
451
545
  /* If this hunk doesn't start between existing hunks, split a hunk up so it does */
452
546
  blame->current_hunk = split_hunk_in_vector(&blame->hunks, blame->current_hunk,
453
- wedge_line - blame->current_hunk->orig_start_line_number, true);
547
+ wedge_line - blame->current_hunk->final_start_line_number, true,
548
+ blame);
454
549
  GIT_ERROR_CHECK_ALLOC(blame->current_hunk);
455
550
  }
456
551
 
@@ -475,13 +570,12 @@ static int buffer_line_cb(
475
570
  hunk_ends_at_or_before_line(blame->current_hunk, blame->current_diff_line)) {
476
571
  /* Append to the current buffer-blame hunk */
477
572
  blame->current_hunk->lines_in_hunk++;
478
- shift_hunks_by(&blame->hunks, blame->current_diff_line+1, 1);
573
+ shift_hunks_by(&blame->hunks, blame->current_diff_line, 1);
479
574
  } else {
480
575
  /* Create a new buffer-blame hunk with this line */
481
576
  shift_hunks_by(&blame->hunks, blame->current_diff_line, 1);
482
- blame->current_hunk = new_hunk(blame->current_diff_line, 1, 0, blame->path);
577
+ blame->current_hunk = new_hunk(blame->current_diff_line, 1, 0, blame->path, blame);
483
578
  GIT_ERROR_CHECK_ALLOC(blame->current_hunk);
484
-
485
579
  git_vector_insert_sorted(&blame->hunks, blame->current_hunk, NULL);
486
580
  }
487
581
  blame->current_diff_line++;
@@ -489,15 +583,16 @@ static int buffer_line_cb(
489
583
 
490
584
  if (line->origin == GIT_DIFF_LINE_DELETION) {
491
585
  /* Trim the line from the current hunk; remove it if it's now empty */
492
- size_t shift_base = blame->current_diff_line + blame->current_hunk->lines_in_hunk+1;
586
+ size_t shift_base = blame->current_diff_line + blame->current_hunk->lines_in_hunk;
493
587
 
494
588
  if (--(blame->current_hunk->lines_in_hunk) == 0) {
495
589
  size_t i;
496
- shift_base--;
590
+ size_t i_next;
497
591
  if (!git_vector_search2(&i, &blame->hunks, ptrs_equal_cmp, blame->current_hunk)) {
498
592
  git_vector_remove(&blame->hunks, i);
499
593
  free_hunk(blame->current_hunk);
500
- blame->current_hunk = (git_blame_hunk*)git_blame_get_hunk_byindex(blame, (uint32_t)i);
594
+ i_next = min( i , blame->hunks.length -1);
595
+ blame->current_hunk = (git_blame_hunk*)git_blame_hunk_byindex(blame, (uint32_t)i_next);
501
596
  }
502
597
  }
503
598
  shift_hunks_by(&blame->hunks, shift_base, -1);
@@ -527,7 +622,7 @@ int git_blame_buffer(
527
622
 
528
623
  /* Duplicate all of the hunk structures in the reference blame */
529
624
  git_vector_foreach(&reference->hunks, i, hunk) {
530
- git_blame_hunk *h = dup_hunk(hunk);
625
+ git_blame_hunk *h = dup_hunk(hunk, blame);
531
626
  GIT_ERROR_CHECK_ALLOC(h);
532
627
 
533
628
  git_vector_insert(&blame->hunks, h);
@@ -71,6 +71,7 @@ struct git_blame {
71
71
  git_blame_options options;
72
72
 
73
73
  git_vector hunks;
74
+ git_array_t(git_blame_line) lines;
74
75
  git_vector paths;
75
76
 
76
77
  git_blob *final_blob;
@@ -9,7 +9,6 @@
9
9
 
10
10
  #include "commit.h"
11
11
  #include "blob.h"
12
- #include "xdiff/xinclude.h"
13
12
  #include "diff_xdiff.h"
14
13
 
15
14
  /*
@@ -393,7 +392,7 @@ static void fill_origin_blob(git_blame__origin *o, mmfile_t *file)
393
392
  memset(file, 0, sizeof(*file));
394
393
  if (o->blob) {
395
394
  file->ptr = (char*)git_blob_rawcontent(o->blob);
396
- file->size = (size_t)git_blob_rawsize(o->blob);
395
+ file->size = (long)git_blob_rawsize(o->blob);
397
396
  }
398
397
  }
399
398
 
@@ -12,6 +12,7 @@
12
12
  #include "git2/repository.h"
13
13
  #include "git2/odb_backend.h"
14
14
 
15
+ #include "buf.h"
15
16
  #include "filebuf.h"
16
17
  #include "filter.h"
17
18
 
@@ -35,12 +36,12 @@ git_object_size_t git_blob_rawsize(const git_blob *blob)
35
36
  return (git_object_size_t)git_odb_object_size(blob->data.odb);
36
37
  }
37
38
 
38
- int git_blob__getbuf(git_buf *buffer, git_blob *blob)
39
+ int git_blob__getbuf(git_str *buffer, git_blob *blob)
39
40
  {
40
41
  git_object_size_t size = git_blob_rawsize(blob);
41
42
 
42
43
  GIT_ERROR_CHECK_BLOBSIZE(size);
43
- return git_buf_set(buffer, git_blob_rawcontent(blob), (size_t)size);
44
+ return git_str_set(buffer, git_blob_rawcontent(blob), (size_t)size);
44
45
  }
45
46
 
46
47
  void git_blob__free(void *_blob)
@@ -51,11 +52,12 @@ void git_blob__free(void *_blob)
51
52
  git__free(blob);
52
53
  }
53
54
 
54
- int git_blob__parse_raw(void *_blob, const char *data, size_t size)
55
+ int git_blob__parse_raw(void *_blob, const char *data, size_t size, git_oid_t oid_type)
55
56
  {
56
57
  git_blob *blob = (git_blob *) _blob;
57
58
 
58
59
  GIT_ASSERT_ARG(blob);
60
+ GIT_UNUSED(oid_type);
59
61
 
60
62
  blob->raw = 1;
61
63
  blob->data.raw.data = data;
@@ -63,11 +65,12 @@ int git_blob__parse_raw(void *_blob, const char *data, size_t size)
63
65
  return 0;
64
66
  }
65
67
 
66
- int git_blob__parse(void *_blob, git_odb_object *odb_obj)
68
+ int git_blob__parse(void *_blob, git_odb_object *odb_obj, git_oid_t oid_type)
67
69
  {
68
70
  git_blob *blob = (git_blob *) _blob;
69
71
 
70
72
  GIT_ASSERT_ARG(blob);
73
+ GIT_UNUSED(oid_type);
71
74
 
72
75
  git_cached_obj_incref((git_cached_obj *)odb_obj);
73
76
  blob->raw = 0;
@@ -100,7 +103,7 @@ static int write_file_stream(
100
103
  git_oid *id, git_odb *odb, const char *path, git_object_size_t file_size)
101
104
  {
102
105
  int fd, error;
103
- char buffer[FILEIO_BUFSIZE];
106
+ char buffer[GIT_BUFSIZE_FILEIO];
104
107
  git_odb_stream *stream = NULL;
105
108
  ssize_t read_len = -1;
106
109
  git_object_size_t written = 0;
@@ -142,9 +145,9 @@ static int write_file_filtered(
142
145
  git_repository* repo)
143
146
  {
144
147
  int error;
145
- git_buf tgt = GIT_BUF_INIT;
148
+ git_str tgt = GIT_STR_INIT;
146
149
 
147
- error = git_filter_list_apply_to_file(&tgt, fl, repo, full_path);
150
+ error = git_filter_list__apply_to_file(&tgt, fl, repo, full_path);
148
151
 
149
152
  /* Write the file to disk if it was properly filtered */
150
153
  if (!error) {
@@ -153,7 +156,7 @@ static int write_file_filtered(
153
156
  error = git_odb_write(id, odb, tgt.ptr, tgt.size, GIT_OBJECT_BLOB);
154
157
  }
155
158
 
156
- git_buf_dispose(&tgt);
159
+ git_str_dispose(&tgt);
157
160
  return error;
158
161
  }
159
162
 
@@ -193,7 +196,7 @@ int git_blob__create_from_paths(
193
196
  git_odb *odb = NULL;
194
197
  git_object_size_t size;
195
198
  mode_t mode;
196
- git_buf path = GIT_BUF_INIT;
199
+ git_str path = GIT_STR_INIT;
197
200
 
198
201
  GIT_ASSERT_ARG(hint_path || !try_load_filters);
199
202
 
@@ -204,7 +207,7 @@ int git_blob__create_from_paths(
204
207
  content_path = path.ptr;
205
208
  }
206
209
 
207
- if ((error = git_path_lstat(content_path, &st)) < 0 ||
210
+ if ((error = git_fs_path_lstat(content_path, &st)) < 0 ||
208
211
  (error = git_repository_odb(&odb, repo)) < 0)
209
212
  goto done;
210
213
 
@@ -261,7 +264,7 @@ int git_blob__create_from_paths(
261
264
 
262
265
  done:
263
266
  git_odb_free(odb);
264
- git_buf_dispose(&path);
267
+ git_str_dispose(&path);
265
268
 
266
269
  return error;
267
270
  }
@@ -276,11 +279,11 @@ int git_blob_create_from_disk(
276
279
  git_oid *id, git_repository *repo, const char *path)
277
280
  {
278
281
  int error;
279
- git_buf full_path = GIT_BUF_INIT;
282
+ git_str full_path = GIT_STR_INIT;
280
283
  const char *workdir, *hintpath = NULL;
281
284
 
282
- if ((error = git_path_prettify(&full_path, path, NULL)) < 0) {
283
- git_buf_dispose(&full_path);
285
+ if ((error = git_fs_path_prettify(&full_path, path, NULL)) < 0) {
286
+ git_str_dispose(&full_path);
284
287
  return error;
285
288
  }
286
289
 
@@ -290,9 +293,9 @@ int git_blob_create_from_disk(
290
293
  hintpath = full_path.ptr + strlen(workdir);
291
294
 
292
295
  error = git_blob__create_from_paths(
293
- id, NULL, repo, git_buf_cstr(&full_path), hintpath, 0, !!hintpath);
296
+ id, NULL, repo, git_str_cstr(&full_path), hintpath, 0, !!hintpath);
294
297
 
295
- git_buf_dispose(&full_path);
298
+ git_str_dispose(&full_path);
296
299
  return error;
297
300
  }
298
301
 
@@ -330,7 +333,7 @@ static int blob_writestream_write(git_writestream *_stream, const char *buffer,
330
333
  int git_blob_create_from_stream(git_writestream **out, git_repository *repo, const char *hintpath)
331
334
  {
332
335
  int error;
333
- git_buf path = GIT_BUF_INIT;
336
+ git_str path = GIT_STR_INIT;
334
337
  blob_writestream *stream;
335
338
 
336
339
  GIT_ASSERT_ARG(out);
@@ -349,11 +352,11 @@ int git_blob_create_from_stream(git_writestream **out, git_repository *repo, con
349
352
  stream->parent.close = blob_writestream_close;
350
353
  stream->parent.free = blob_writestream_free;
351
354
 
352
- if ((error = git_repository_item_path(&path, repo, GIT_REPOSITORY_ITEM_OBJECTS)) < 0
353
- || (error = git_buf_joinpath(&path, path.ptr, "streamed")) < 0)
355
+ if ((error = git_repository__item_path(&path, repo, GIT_REPOSITORY_ITEM_OBJECTS)) < 0
356
+ || (error = git_str_joinpath(&path, path.ptr, "streamed")) < 0)
354
357
  goto cleanup;
355
358
 
356
- if ((error = git_filebuf_open_withsize(&stream->fbuf, git_buf_cstr(&path), GIT_FILEBUF_TEMPORARY,
359
+ if ((error = git_filebuf_open_withsize(&stream->fbuf, git_str_cstr(&path), GIT_FILEBUF_TEMPORARY,
357
360
  0666, 2 * 1024 * 1024)) < 0)
358
361
  goto cleanup;
359
362
 
@@ -363,7 +366,7 @@ cleanup:
363
366
  if (error < 0)
364
367
  blob_writestream_free((git_writestream *) stream);
365
368
 
366
- git_buf_dispose(&path);
369
+ git_str_dispose(&path);
367
370
  return error;
368
371
  }
369
372
 
@@ -391,16 +394,25 @@ cleanup:
391
394
 
392
395
  int git_blob_is_binary(const git_blob *blob)
393
396
  {
394
- git_buf content = GIT_BUF_INIT;
397
+ git_str content = GIT_STR_INIT;
395
398
  git_object_size_t size;
396
399
 
397
400
  GIT_ASSERT_ARG(blob);
398
401
 
399
402
  size = git_blob_rawsize(blob);
400
403
 
401
- git_buf_attach_notowned(&content, git_blob_rawcontent(blob),
404
+ git_str_attach_notowned(&content, git_blob_rawcontent(blob),
402
405
  (size_t)min(size, GIT_FILTER_BYTES_TO_CHECK_NUL));
403
- return git_buf_is_binary(&content);
406
+ return git_str_is_binary(&content);
407
+ }
408
+
409
+ int git_blob_data_is_binary(const char *str, size_t len)
410
+ {
411
+ git_str content = GIT_STR_INIT;
412
+
413
+ git_str_attach_notowned(&content, str, len);
414
+
415
+ return git_str_is_binary(&content);
404
416
  }
405
417
 
406
418
  int git_blob_filter_options_init(
@@ -418,10 +430,10 @@ int git_blob_filter(
418
430
  const char *path,
419
431
  git_blob_filter_options *given_opts)
420
432
  {
421
- int error = 0;
422
- git_filter_list *fl = NULL;
423
433
  git_blob_filter_options opts = GIT_BLOB_FILTER_OPTIONS_INIT;
424
434
  git_filter_options filter_opts = GIT_FILTER_OPTIONS_INIT;
435
+ git_filter_list *fl = NULL;
436
+ int error = 0;
425
437
 
426
438
  GIT_ASSERT_ARG(blob);
427
439
  GIT_ASSERT_ARG(path);
@@ -430,9 +442,6 @@ int git_blob_filter(
430
442
  GIT_ERROR_CHECK_VERSION(
431
443
  given_opts, GIT_BLOB_FILTER_OPTIONS_VERSION, "git_blob_filter_options");
432
444
 
433
- if (git_buf_sanitize(out) < 0)
434
- return -1;
435
-
436
445
  if (given_opts != NULL)
437
446
  memcpy(&opts, given_opts, sizeof(git_blob_filter_options));
438
447
 
@@ -36,9 +36,9 @@ struct git_blob {
36
36
  } while(0)
37
37
 
38
38
  void git_blob__free(void *blob);
39
- int git_blob__parse(void *blob, git_odb_object *obj);
40
- int git_blob__parse_raw(void *blob, const char *data, size_t size);
41
- int git_blob__getbuf(git_buf *buffer, git_blob *blob);
39
+ int git_blob__parse(void *blob, git_odb_object *obj, git_oid_t oid_type);
40
+ int git_blob__parse_raw(void *blob, const char *data, size_t size, git_oid_t oid_type);
41
+ int git_blob__getbuf(git_str *buffer, git_blob *blob);
42
42
 
43
43
  extern int git_blob__create_from_paths(
44
44
  git_oid *out_oid,