rugged 1.4.2 → 1.5.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 (439) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +34 -2
  3. data/ext/rugged/extconf.rb +1 -0
  4. data/ext/rugged/rugged.c +16 -0
  5. data/ext/rugged/rugged.h +4 -0
  6. data/ext/rugged/rugged_remote.c +10 -10
  7. data/ext/rugged/rugged_repo.c +2 -7
  8. data/ext/rugged/rugged_settings.c +5 -0
  9. data/lib/rugged/tree.rb +4 -0
  10. data/lib/rugged/version.rb +1 -1
  11. data/vendor/libgit2/CMakeLists.txt +16 -3
  12. data/vendor/libgit2/COPYING +40 -0
  13. data/vendor/libgit2/cmake/AddClarTest.cmake +7 -0
  14. data/vendor/libgit2/cmake/FindPCRE.cmake +3 -4
  15. data/vendor/libgit2/cmake/FindPCRE2.cmake +1 -1
  16. data/vendor/libgit2/cmake/SelectHTTPSBackend.cmake +1 -1
  17. data/vendor/libgit2/cmake/SelectHashes.cmake +62 -14
  18. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +3 -1
  19. data/vendor/libgit2/deps/zlib/adler32.c +7 -0
  20. data/vendor/libgit2/deps/zlib/crc32.c +975 -288
  21. data/vendor/libgit2/deps/zlib/crc32.h +9441 -436
  22. data/vendor/libgit2/deps/zlib/deflate.c +83 -31
  23. data/vendor/libgit2/deps/zlib/deflate.h +12 -15
  24. data/vendor/libgit2/deps/zlib/gzguts.h +3 -2
  25. data/vendor/libgit2/deps/zlib/infback.c +2 -1
  26. data/vendor/libgit2/deps/zlib/inffast.c +14 -14
  27. data/vendor/libgit2/deps/zlib/inflate.c +39 -8
  28. data/vendor/libgit2/deps/zlib/inflate.h +3 -2
  29. data/vendor/libgit2/deps/zlib/inftrees.c +3 -3
  30. data/vendor/libgit2/deps/zlib/trees.c +27 -48
  31. data/vendor/libgit2/deps/zlib/zlib.h +126 -100
  32. data/vendor/libgit2/deps/zlib/zutil.c +2 -2
  33. data/vendor/libgit2/deps/zlib/zutil.h +12 -9
  34. data/vendor/libgit2/include/git2/branch.h +2 -2
  35. data/vendor/libgit2/include/git2/common.h +22 -1
  36. data/vendor/libgit2/include/git2/config.h +6 -6
  37. data/vendor/libgit2/include/git2/deprecated.h +2 -0
  38. data/vendor/libgit2/include/git2/errors.h +19 -4
  39. data/vendor/libgit2/include/git2/merge.h +1 -1
  40. data/vendor/libgit2/include/git2/status.h +5 -2
  41. data/vendor/libgit2/include/git2/sys/remote.h +15 -0
  42. data/vendor/libgit2/include/git2/sys/transport.h +9 -5
  43. data/vendor/libgit2/include/git2/version.h +27 -6
  44. data/vendor/libgit2/src/CMakeLists.txt +104 -214
  45. data/vendor/libgit2/src/README.md +12 -0
  46. data/vendor/libgit2/src/cli/CMakeLists.txt +53 -0
  47. data/vendor/libgit2/src/cli/README.md +26 -0
  48. data/vendor/libgit2/src/cli/cli.h +20 -0
  49. data/vendor/libgit2/src/cli/cmd.c +21 -0
  50. data/vendor/libgit2/src/cli/cmd.h +33 -0
  51. data/vendor/libgit2/src/cli/cmd_cat_file.c +204 -0
  52. data/vendor/libgit2/src/cli/cmd_clone.c +176 -0
  53. data/vendor/libgit2/src/cli/cmd_hash_object.c +135 -0
  54. data/vendor/libgit2/src/cli/cmd_help.c +86 -0
  55. data/vendor/libgit2/src/cli/error.h +51 -0
  56. data/vendor/libgit2/src/cli/main.c +106 -0
  57. data/vendor/libgit2/src/cli/opt.c +669 -0
  58. data/vendor/libgit2/src/cli/opt.h +349 -0
  59. data/vendor/libgit2/src/cli/opt_usage.c +194 -0
  60. data/vendor/libgit2/src/cli/opt_usage.h +35 -0
  61. data/vendor/libgit2/src/cli/progress.c +345 -0
  62. data/vendor/libgit2/src/cli/progress.h +117 -0
  63. data/vendor/libgit2/src/cli/sighandler.h +20 -0
  64. data/vendor/libgit2/src/cli/unix/sighandler.c +36 -0
  65. data/vendor/libgit2/src/{win32 → cli/win32}/precompiled.c +0 -0
  66. data/vendor/libgit2/src/cli/win32/precompiled.h +3 -0
  67. data/vendor/libgit2/src/cli/win32/sighandler.c +37 -0
  68. data/vendor/libgit2/src/features.h.in +9 -0
  69. data/vendor/libgit2/src/libgit2/CMakeLists.txt +131 -0
  70. data/vendor/libgit2/src/{annotated_commit.c → libgit2/annotated_commit.c} +0 -0
  71. data/vendor/libgit2/src/{annotated_commit.h → libgit2/annotated_commit.h} +0 -0
  72. data/vendor/libgit2/src/{apply.c → libgit2/apply.c} +0 -0
  73. data/vendor/libgit2/src/{apply.h → libgit2/apply.h} +0 -0
  74. data/vendor/libgit2/src/{attr.c → libgit2/attr.c} +0 -0
  75. data/vendor/libgit2/src/{attr.h → libgit2/attr.h} +0 -0
  76. data/vendor/libgit2/src/{attr_file.c → libgit2/attr_file.c} +0 -0
  77. data/vendor/libgit2/src/{attr_file.h → libgit2/attr_file.h} +0 -0
  78. data/vendor/libgit2/src/{attrcache.c → libgit2/attrcache.c} +0 -0
  79. data/vendor/libgit2/src/{attrcache.h → libgit2/attrcache.h} +0 -0
  80. data/vendor/libgit2/src/{blame.c → libgit2/blame.c} +0 -0
  81. data/vendor/libgit2/src/{blame.h → libgit2/blame.h} +0 -0
  82. data/vendor/libgit2/src/{blame_git.c → libgit2/blame_git.c} +0 -0
  83. data/vendor/libgit2/src/{blame_git.h → libgit2/blame_git.h} +0 -0
  84. data/vendor/libgit2/src/{blob.c → libgit2/blob.c} +1 -1
  85. data/vendor/libgit2/src/{blob.h → libgit2/blob.h} +0 -0
  86. data/vendor/libgit2/src/{branch.c → libgit2/branch.c} +14 -9
  87. data/vendor/libgit2/src/{branch.h → libgit2/branch.h} +0 -0
  88. data/vendor/libgit2/src/{buf.c → libgit2/buf.c} +0 -0
  89. data/vendor/libgit2/src/{buf.h → libgit2/buf.h} +0 -0
  90. data/vendor/libgit2/src/{cache.c → libgit2/cache.c} +0 -0
  91. data/vendor/libgit2/src/{cache.h → libgit2/cache.h} +0 -0
  92. data/vendor/libgit2/src/{checkout.c → libgit2/checkout.c} +0 -0
  93. data/vendor/libgit2/src/{checkout.h → libgit2/checkout.h} +0 -0
  94. data/vendor/libgit2/src/{cherrypick.c → libgit2/cherrypick.c} +0 -0
  95. data/vendor/libgit2/src/{clone.c → libgit2/clone.c} +0 -0
  96. data/vendor/libgit2/src/{clone.h → libgit2/clone.h} +0 -0
  97. data/vendor/libgit2/src/{commit.c → libgit2/commit.c} +0 -0
  98. data/vendor/libgit2/src/{commit.h → libgit2/commit.h} +0 -0
  99. data/vendor/libgit2/src/{commit_graph.c → libgit2/commit_graph.c} +20 -17
  100. data/vendor/libgit2/src/{commit_graph.h → libgit2/commit_graph.h} +1 -1
  101. data/vendor/libgit2/src/{commit_list.c → libgit2/commit_list.c} +0 -0
  102. data/vendor/libgit2/src/{commit_list.h → libgit2/commit_list.h} +0 -0
  103. data/vendor/libgit2/src/libgit2/common.h +55 -0
  104. data/vendor/libgit2/src/{config.c → libgit2/config.c} +14 -7
  105. data/vendor/libgit2/src/{config.h → libgit2/config.h} +0 -0
  106. data/vendor/libgit2/src/{config_backend.h → libgit2/config_backend.h} +0 -0
  107. data/vendor/libgit2/src/{config_cache.c → libgit2/config_cache.c} +0 -0
  108. data/vendor/libgit2/src/{config_entries.c → libgit2/config_entries.c} +0 -0
  109. data/vendor/libgit2/src/{config_entries.h → libgit2/config_entries.h} +0 -0
  110. data/vendor/libgit2/src/{config_file.c → libgit2/config_file.c} +0 -0
  111. data/vendor/libgit2/src/{config_mem.c → libgit2/config_mem.c} +0 -0
  112. data/vendor/libgit2/src/{config_parse.c → libgit2/config_parse.c} +0 -0
  113. data/vendor/libgit2/src/{config_parse.h → libgit2/config_parse.h} +0 -0
  114. data/vendor/libgit2/src/{config_snapshot.c → libgit2/config_snapshot.c} +0 -0
  115. data/vendor/libgit2/src/{crlf.c → libgit2/crlf.c} +0 -0
  116. data/vendor/libgit2/src/{delta.c → libgit2/delta.c} +0 -0
  117. data/vendor/libgit2/src/{delta.h → libgit2/delta.h} +0 -0
  118. data/vendor/libgit2/src/{describe.c → libgit2/describe.c} +0 -0
  119. data/vendor/libgit2/src/{diff.c → libgit2/diff.c} +0 -0
  120. data/vendor/libgit2/src/{diff.h → libgit2/diff.h} +0 -0
  121. data/vendor/libgit2/src/{diff_driver.c → libgit2/diff_driver.c} +0 -0
  122. data/vendor/libgit2/src/{diff_driver.h → libgit2/diff_driver.h} +0 -0
  123. data/vendor/libgit2/src/{diff_file.c → libgit2/diff_file.c} +0 -0
  124. data/vendor/libgit2/src/{diff_file.h → libgit2/diff_file.h} +0 -0
  125. data/vendor/libgit2/src/{diff_generate.c → libgit2/diff_generate.c} +0 -0
  126. data/vendor/libgit2/src/{diff_generate.h → libgit2/diff_generate.h} +0 -0
  127. data/vendor/libgit2/src/{diff_parse.c → libgit2/diff_parse.c} +0 -0
  128. data/vendor/libgit2/src/{diff_parse.h → libgit2/diff_parse.h} +0 -0
  129. data/vendor/libgit2/src/{diff_print.c → libgit2/diff_print.c} +5 -0
  130. data/vendor/libgit2/src/{diff_stats.c → libgit2/diff_stats.c} +0 -0
  131. data/vendor/libgit2/src/{diff_stats.h → libgit2/diff_stats.h} +0 -0
  132. data/vendor/libgit2/src/{diff_tform.c → libgit2/diff_tform.c} +0 -0
  133. data/vendor/libgit2/src/{diff_tform.h → libgit2/diff_tform.h} +0 -0
  134. data/vendor/libgit2/src/{diff_xdiff.c → libgit2/diff_xdiff.c} +1 -0
  135. data/vendor/libgit2/src/{diff_xdiff.h → libgit2/diff_xdiff.h} +0 -0
  136. data/vendor/libgit2/src/{email.c → libgit2/email.c} +0 -0
  137. data/vendor/libgit2/src/{email.h → libgit2/email.h} +0 -0
  138. data/vendor/libgit2/src/{errors.c → libgit2/errors.c} +0 -0
  139. data/vendor/libgit2/src/{errors.h → libgit2/errors.h} +1 -2
  140. data/vendor/libgit2/src/{fetch.c → libgit2/fetch.c} +5 -2
  141. data/vendor/libgit2/src/{fetch.h → libgit2/fetch.h} +0 -0
  142. data/vendor/libgit2/src/{fetchhead.c → libgit2/fetchhead.c} +0 -0
  143. data/vendor/libgit2/src/{fetchhead.h → libgit2/fetchhead.h} +0 -0
  144. data/vendor/libgit2/src/{filter.c → libgit2/filter.c} +31 -1
  145. data/vendor/libgit2/src/{filter.h → libgit2/filter.h} +0 -0
  146. data/vendor/libgit2/src/{win32 → libgit2}/git2.rc +0 -0
  147. data/vendor/libgit2/src/{graph.c → libgit2/graph.c} +0 -0
  148. data/vendor/libgit2/src/{hashsig.c → libgit2/hashsig.c} +0 -0
  149. data/vendor/libgit2/src/{ident.c → libgit2/ident.c} +0 -0
  150. data/vendor/libgit2/src/{idxmap.c → libgit2/idxmap.c} +0 -0
  151. data/vendor/libgit2/src/{idxmap.h → libgit2/idxmap.h} +0 -0
  152. data/vendor/libgit2/src/{ignore.c → libgit2/ignore.c} +0 -0
  153. data/vendor/libgit2/src/{ignore.h → libgit2/ignore.h} +0 -0
  154. data/vendor/libgit2/src/{index.c → libgit2/index.c} +6 -6
  155. data/vendor/libgit2/src/{index.h → libgit2/index.h} +0 -0
  156. data/vendor/libgit2/src/{indexer.c → libgit2/indexer.c} +2 -2
  157. data/vendor/libgit2/src/{indexer.h → libgit2/indexer.h} +0 -0
  158. data/vendor/libgit2/src/{iterator.c → libgit2/iterator.c} +3 -3
  159. data/vendor/libgit2/src/{iterator.h → libgit2/iterator.h} +0 -0
  160. data/vendor/libgit2/src/{libgit2.c → libgit2/libgit2.c} +13 -0
  161. data/vendor/libgit2/src/{libgit2.h → libgit2/libgit2.h} +0 -0
  162. data/vendor/libgit2/src/{mailmap.c → libgit2/mailmap.c} +0 -0
  163. data/vendor/libgit2/src/{mailmap.h → libgit2/mailmap.h} +0 -0
  164. data/vendor/libgit2/src/{merge.c → libgit2/merge.c} +0 -0
  165. data/vendor/libgit2/src/{merge.h → libgit2/merge.h} +0 -0
  166. data/vendor/libgit2/src/{merge_driver.c → libgit2/merge_driver.c} +0 -0
  167. data/vendor/libgit2/src/{merge_driver.h → libgit2/merge_driver.h} +0 -0
  168. data/vendor/libgit2/src/{merge_file.c → libgit2/merge_file.c} +0 -0
  169. data/vendor/libgit2/src/{message.c → libgit2/message.c} +0 -0
  170. data/vendor/libgit2/src/{midx.c → libgit2/midx.c} +28 -26
  171. data/vendor/libgit2/src/{midx.h → libgit2/midx.h} +2 -1
  172. data/vendor/libgit2/src/{mwindow.c → libgit2/mwindow.c} +9 -9
  173. data/vendor/libgit2/src/{mwindow.h → libgit2/mwindow.h} +1 -1
  174. data/vendor/libgit2/src/{netops.c → libgit2/netops.c} +0 -1
  175. data/vendor/libgit2/src/{netops.h → libgit2/netops.h} +0 -0
  176. data/vendor/libgit2/src/{notes.c → libgit2/notes.c} +0 -0
  177. data/vendor/libgit2/src/{notes.h → libgit2/notes.h} +0 -0
  178. data/vendor/libgit2/src/{object.c → libgit2/object.c} +1 -0
  179. data/vendor/libgit2/src/{object.h → libgit2/object.h} +0 -0
  180. data/vendor/libgit2/src/{object_api.c → libgit2/object_api.c} +0 -0
  181. data/vendor/libgit2/src/{odb.c → libgit2/odb.c} +2 -2
  182. data/vendor/libgit2/src/{odb.h → libgit2/odb.h} +0 -0
  183. data/vendor/libgit2/src/{odb_loose.c → libgit2/odb_loose.c} +0 -0
  184. data/vendor/libgit2/src/{odb_mempack.c → libgit2/odb_mempack.c} +0 -0
  185. data/vendor/libgit2/src/{odb_pack.c → libgit2/odb_pack.c} +0 -0
  186. data/vendor/libgit2/src/{offmap.c → libgit2/offmap.c} +0 -0
  187. data/vendor/libgit2/src/{offmap.h → libgit2/offmap.h} +0 -0
  188. data/vendor/libgit2/src/{oid.c → libgit2/oid.c} +2 -21
  189. data/vendor/libgit2/src/{oid.h → libgit2/oid.h} +35 -2
  190. data/vendor/libgit2/src/{oidarray.c → libgit2/oidarray.c} +0 -0
  191. data/vendor/libgit2/src/{oidarray.h → libgit2/oidarray.h} +0 -0
  192. data/vendor/libgit2/src/{oidmap.c → libgit2/oidmap.c} +1 -1
  193. data/vendor/libgit2/src/{oidmap.h → libgit2/oidmap.h} +0 -0
  194. data/vendor/libgit2/src/{pack-objects.c → libgit2/pack-objects.c} +0 -0
  195. data/vendor/libgit2/src/{pack-objects.h → libgit2/pack-objects.h} +0 -0
  196. data/vendor/libgit2/src/{pack.c → libgit2/pack.c} +24 -18
  197. data/vendor/libgit2/src/{pack.h → libgit2/pack.h} +3 -2
  198. data/vendor/libgit2/src/{parse.c → libgit2/parse.c} +0 -0
  199. data/vendor/libgit2/src/{parse.h → libgit2/parse.h} +0 -0
  200. data/vendor/libgit2/src/{patch.c → libgit2/patch.c} +0 -0
  201. data/vendor/libgit2/src/{patch.h → libgit2/patch.h} +0 -0
  202. data/vendor/libgit2/src/{patch_generate.c → libgit2/patch_generate.c} +0 -0
  203. data/vendor/libgit2/src/{patch_generate.h → libgit2/patch_generate.h} +0 -0
  204. data/vendor/libgit2/src/{patch_parse.c → libgit2/patch_parse.c} +0 -0
  205. data/vendor/libgit2/src/{patch_parse.h → libgit2/patch_parse.h} +0 -0
  206. data/vendor/libgit2/src/{path.c → libgit2/path.c} +1 -0
  207. data/vendor/libgit2/src/{path.h → libgit2/path.h} +0 -0
  208. data/vendor/libgit2/src/{pathspec.c → libgit2/pathspec.c} +0 -0
  209. data/vendor/libgit2/src/{pathspec.h → libgit2/pathspec.h} +0 -0
  210. data/vendor/libgit2/src/{proxy.c → libgit2/proxy.c} +0 -0
  211. data/vendor/libgit2/src/{proxy.h → libgit2/proxy.h} +0 -0
  212. data/vendor/libgit2/src/{push.c → libgit2/push.c} +0 -0
  213. data/vendor/libgit2/src/{push.h → libgit2/push.h} +0 -0
  214. data/vendor/libgit2/src/{reader.c → libgit2/reader.c} +0 -0
  215. data/vendor/libgit2/src/{reader.h → libgit2/reader.h} +0 -0
  216. data/vendor/libgit2/src/{rebase.c → libgit2/rebase.c} +11 -1
  217. data/vendor/libgit2/src/{refdb.c → libgit2/refdb.c} +0 -0
  218. data/vendor/libgit2/src/{refdb.h → libgit2/refdb.h} +0 -0
  219. data/vendor/libgit2/src/{refdb_fs.c → libgit2/refdb_fs.c} +6 -2
  220. data/vendor/libgit2/src/{reflog.c → libgit2/reflog.c} +0 -0
  221. data/vendor/libgit2/src/{reflog.h → libgit2/reflog.h} +0 -0
  222. data/vendor/libgit2/src/{refs.c → libgit2/refs.c} +0 -0
  223. data/vendor/libgit2/src/{refs.h → libgit2/refs.h} +0 -0
  224. data/vendor/libgit2/src/{refspec.c → libgit2/refspec.c} +0 -0
  225. data/vendor/libgit2/src/{refspec.h → libgit2/refspec.h} +0 -0
  226. data/vendor/libgit2/src/{remote.c → libgit2/remote.c} +6 -3
  227. data/vendor/libgit2/src/{remote.h → libgit2/remote.h} +1 -1
  228. data/vendor/libgit2/src/{repo_template.h → libgit2/repo_template.h} +0 -0
  229. data/vendor/libgit2/src/{repository.c → libgit2/repository.c} +155 -22
  230. data/vendor/libgit2/src/{repository.h → libgit2/repository.h} +1 -0
  231. data/vendor/libgit2/src/{reset.c → libgit2/reset.c} +0 -0
  232. data/vendor/libgit2/src/{revert.c → libgit2/revert.c} +0 -0
  233. data/vendor/libgit2/src/{revparse.c → libgit2/revparse.c} +0 -0
  234. data/vendor/libgit2/src/{revwalk.c → libgit2/revwalk.c} +0 -0
  235. data/vendor/libgit2/src/{revwalk.h → libgit2/revwalk.h} +0 -0
  236. data/vendor/libgit2/src/{settings.h → libgit2/settings.h} +0 -0
  237. data/vendor/libgit2/src/{signature.c → libgit2/signature.c} +0 -0
  238. data/vendor/libgit2/src/{signature.h → libgit2/signature.h} +0 -0
  239. data/vendor/libgit2/src/{stash.c → libgit2/stash.c} +0 -0
  240. data/vendor/libgit2/src/{status.c → libgit2/status.c} +0 -0
  241. data/vendor/libgit2/src/{status.h → libgit2/status.h} +0 -0
  242. data/vendor/libgit2/src/{strarray.c → libgit2/strarray.c} +0 -0
  243. data/vendor/libgit2/src/{stream.h → libgit2/stream.h} +0 -0
  244. data/vendor/libgit2/src/{streams → libgit2/streams}/mbedtls.c +0 -0
  245. data/vendor/libgit2/src/{streams → libgit2/streams}/mbedtls.h +0 -0
  246. data/vendor/libgit2/src/{streams → libgit2/streams}/openssl.c +0 -0
  247. data/vendor/libgit2/src/{streams → libgit2/streams}/openssl.h +0 -0
  248. data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_dynamic.c +0 -0
  249. data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_dynamic.h +0 -0
  250. data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_legacy.c +0 -0
  251. data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_legacy.h +0 -0
  252. data/vendor/libgit2/src/{streams → libgit2/streams}/registry.c +0 -0
  253. data/vendor/libgit2/src/{streams → libgit2/streams}/registry.h +0 -0
  254. data/vendor/libgit2/src/{streams → libgit2/streams}/socket.c +0 -0
  255. data/vendor/libgit2/src/{streams → libgit2/streams}/socket.h +0 -0
  256. data/vendor/libgit2/src/{streams → libgit2/streams}/stransport.c +0 -0
  257. data/vendor/libgit2/src/{streams → libgit2/streams}/stransport.h +0 -0
  258. data/vendor/libgit2/src/{streams → libgit2/streams}/tls.c +0 -0
  259. data/vendor/libgit2/src/{streams → libgit2/streams}/tls.h +0 -0
  260. data/vendor/libgit2/src/{submodule.c → libgit2/submodule.c} +0 -0
  261. data/vendor/libgit2/src/{submodule.h → libgit2/submodule.h} +0 -0
  262. data/vendor/libgit2/src/{sysdir.c → libgit2/sysdir.c} +0 -0
  263. data/vendor/libgit2/src/{sysdir.h → libgit2/sysdir.h} +0 -0
  264. data/vendor/libgit2/src/{tag.c → libgit2/tag.c} +15 -5
  265. data/vendor/libgit2/src/{tag.h → libgit2/tag.h} +0 -0
  266. data/vendor/libgit2/src/{threadstate.c → libgit2/threadstate.c} +0 -0
  267. data/vendor/libgit2/src/{threadstate.h → libgit2/threadstate.h} +0 -0
  268. data/vendor/libgit2/src/{trace.c → libgit2/trace.c} +0 -0
  269. data/vendor/libgit2/src/{trace.h → libgit2/trace.h} +0 -0
  270. data/vendor/libgit2/src/{trailer.c → libgit2/trailer.c} +0 -0
  271. data/vendor/libgit2/src/{transaction.c → libgit2/transaction.c} +0 -0
  272. data/vendor/libgit2/src/{transaction.h → libgit2/transaction.h} +0 -0
  273. data/vendor/libgit2/src/{transport.c → libgit2/transport.c} +0 -0
  274. data/vendor/libgit2/src/{transports → libgit2/transports}/auth.c +0 -0
  275. data/vendor/libgit2/src/{transports → libgit2/transports}/auth.h +0 -0
  276. data/vendor/libgit2/src/{transports → libgit2/transports}/auth_negotiate.c +0 -0
  277. data/vendor/libgit2/src/{transports → libgit2/transports}/auth_negotiate.h +0 -0
  278. data/vendor/libgit2/src/{transports → libgit2/transports}/auth_ntlm.c +0 -0
  279. data/vendor/libgit2/src/{transports → libgit2/transports}/auth_ntlm.h +0 -0
  280. data/vendor/libgit2/src/{transports → libgit2/transports}/credential.c +0 -0
  281. data/vendor/libgit2/src/{transports → libgit2/transports}/credential_helpers.c +0 -0
  282. data/vendor/libgit2/src/{transports → libgit2/transports}/git.c +0 -0
  283. data/vendor/libgit2/src/{transports → libgit2/transports}/http.c +0 -0
  284. data/vendor/libgit2/src/{transports → libgit2/transports}/http.h +0 -0
  285. data/vendor/libgit2/src/{transports → libgit2/transports}/httpclient.c +1 -1
  286. data/vendor/libgit2/src/{transports → libgit2/transports}/httpclient.h +0 -0
  287. data/vendor/libgit2/src/{transports → libgit2/transports}/local.c +0 -0
  288. data/vendor/libgit2/src/{transports → libgit2/transports}/smart.c +12 -0
  289. data/vendor/libgit2/src/{transports → libgit2/transports}/smart.h +0 -0
  290. data/vendor/libgit2/src/{transports → libgit2/transports}/smart_pkt.c +0 -0
  291. data/vendor/libgit2/src/{transports → libgit2/transports}/smart_protocol.c +0 -0
  292. data/vendor/libgit2/src/{transports → libgit2/transports}/ssh.c +0 -0
  293. data/vendor/libgit2/src/{transports → libgit2/transports}/ssh.h +0 -0
  294. data/vendor/libgit2/src/{transports → libgit2/transports}/winhttp.c +0 -0
  295. data/vendor/libgit2/src/{tree-cache.c → libgit2/tree-cache.c} +1 -1
  296. data/vendor/libgit2/src/{tree-cache.h → libgit2/tree-cache.h} +0 -0
  297. data/vendor/libgit2/src/{tree.c → libgit2/tree.c} +16 -23
  298. data/vendor/libgit2/src/{tree.h → libgit2/tree.h} +1 -1
  299. data/vendor/libgit2/src/{userdiff.h → libgit2/userdiff.h} +0 -0
  300. data/vendor/libgit2/src/{worktree.c → libgit2/worktree.c} +0 -0
  301. data/vendor/libgit2/src/{worktree.h → libgit2/worktree.h} +0 -0
  302. data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/git-xdiff.h +0 -0
  303. data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xdiff.h +0 -0
  304. data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xdiffi.c +0 -0
  305. data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xdiffi.h +0 -0
  306. data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xemit.c +0 -0
  307. data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xemit.h +0 -0
  308. data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xhistogram.c +0 -0
  309. data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xinclude.h +0 -0
  310. data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xmacros.h +0 -0
  311. data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xmerge.c +0 -0
  312. data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xpatience.c +0 -0
  313. data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xprepare.c +0 -0
  314. data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xprepare.h +0 -0
  315. data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xtypes.h +0 -0
  316. data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xutils.c +0 -0
  317. data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xutils.h +0 -0
  318. data/vendor/libgit2/src/util/CMakeLists.txt +74 -0
  319. data/vendor/libgit2/src/{alloc.c → util/alloc.c} +0 -0
  320. data/vendor/libgit2/src/{alloc.h → util/alloc.h} +0 -0
  321. data/vendor/libgit2/src/{allocators → util/allocators}/failalloc.c +0 -0
  322. data/vendor/libgit2/src/{allocators → util/allocators}/failalloc.h +1 -1
  323. data/vendor/libgit2/src/{allocators → util/allocators}/stdalloc.c +0 -0
  324. data/vendor/libgit2/src/{allocators → util/allocators}/stdalloc.h +1 -1
  325. data/vendor/libgit2/src/{allocators → util/allocators}/win32_leakcheck.c +0 -0
  326. data/vendor/libgit2/src/{allocators → util/allocators}/win32_leakcheck.h +1 -1
  327. data/vendor/libgit2/src/{array.h → util/array.h} +1 -1
  328. data/vendor/libgit2/src/{assert_safe.h → util/assert_safe.h} +16 -0
  329. data/vendor/libgit2/src/{bitvec.h → util/bitvec.h} +0 -0
  330. data/vendor/libgit2/src/{cc-compat.h → util/cc-compat.h} +0 -0
  331. data/vendor/libgit2/src/{date.c → util/date.c} +4 -3
  332. data/vendor/libgit2/src/{date.h → util/date.h} +0 -0
  333. data/vendor/libgit2/src/{filebuf.c → util/filebuf.c} +1 -1
  334. data/vendor/libgit2/src/{filebuf.h → util/filebuf.h} +1 -1
  335. data/vendor/libgit2/src/{fs_path.c → util/fs_path.c} +219 -65
  336. data/vendor/libgit2/src/{fs_path.h → util/fs_path.h} +47 -9
  337. data/vendor/libgit2/src/{futils.c → util/futils.c} +44 -2
  338. data/vendor/libgit2/src/{futils.h → util/futils.h} +2 -1
  339. data/vendor/libgit2/src/{common.h → util/git2_util.h} +13 -59
  340. data/vendor/libgit2/src/util/hash/builtin.c +53 -0
  341. data/vendor/libgit2/src/{hash/sha1/openssl.h → util/hash/builtin.h} +6 -6
  342. data/vendor/libgit2/src/{hash/sha1 → util/hash}/collisiondetect.c +1 -1
  343. data/vendor/libgit2/src/{hash/sha1 → util/hash}/collisiondetect.h +3 -3
  344. data/vendor/libgit2/src/{hash/sha1 → util/hash}/common_crypto.c +55 -0
  345. data/vendor/libgit2/src/{hash/sha1 → util/hash}/common_crypto.h +11 -3
  346. data/vendor/libgit2/src/{hash/sha1 → util/hash}/mbedtls.c +46 -0
  347. data/vendor/libgit2/src/{hash/sha1 → util/hash}/mbedtls.h +14 -4
  348. data/vendor/libgit2/src/util/hash/openssl.c +194 -0
  349. data/vendor/libgit2/src/util/hash/openssl.h +45 -0
  350. data/vendor/libgit2/src/util/hash/rfc6234/sha.h +355 -0
  351. data/vendor/libgit2/src/util/hash/rfc6234/sha224-256.c +601 -0
  352. data/vendor/libgit2/src/util/hash/sha.h +70 -0
  353. data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/sha1.c +0 -0
  354. data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/sha1.h +0 -0
  355. data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/ubc_check.c +0 -0
  356. data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/ubc_check.h +0 -0
  357. data/vendor/libgit2/src/util/hash/win32.c +549 -0
  358. data/vendor/libgit2/src/util/hash/win32.h +60 -0
  359. data/vendor/libgit2/src/{hash.c → util/hash.c} +17 -1
  360. data/vendor/libgit2/src/{hash.h → util/hash.h} +5 -3
  361. data/vendor/libgit2/src/{integer.h → util/integer.h} +0 -0
  362. data/vendor/libgit2/src/{khash.h → util/khash.h} +0 -0
  363. data/vendor/libgit2/src/{map.h → util/map.h} +1 -1
  364. data/vendor/libgit2/src/{net.c → util/net.c} +0 -1
  365. data/vendor/libgit2/src/{net.h → util/net.h} +1 -1
  366. data/vendor/libgit2/src/{pool.c → util/pool.c} +0 -0
  367. data/vendor/libgit2/src/{pool.h → util/pool.h} +1 -1
  368. data/vendor/libgit2/src/{posix.c → util/posix.c} +0 -0
  369. data/vendor/libgit2/src/{posix.h → util/posix.h} +1 -1
  370. data/vendor/libgit2/src/{pqueue.c → util/pqueue.c} +0 -0
  371. data/vendor/libgit2/src/{pqueue.h → util/pqueue.h} +1 -1
  372. data/vendor/libgit2/src/{rand.c → util/rand.c} +7 -3
  373. data/vendor/libgit2/src/{rand.h → util/rand.h} +1 -1
  374. data/vendor/libgit2/src/{regexp.c → util/regexp.c} +0 -0
  375. data/vendor/libgit2/src/{regexp.h → util/regexp.h} +1 -1
  376. data/vendor/libgit2/src/{runtime.c → util/runtime.c} +1 -1
  377. data/vendor/libgit2/src/{runtime.h → util/runtime.h} +1 -1
  378. data/vendor/libgit2/src/{sortedcache.c → util/sortedcache.c} +0 -0
  379. data/vendor/libgit2/src/{sortedcache.h → util/sortedcache.h} +1 -1
  380. data/vendor/libgit2/src/{str.c → util/str.c} +0 -0
  381. data/vendor/libgit2/src/{str.h → util/str.h} +1 -1
  382. data/vendor/libgit2/src/{strmap.c → util/strmap.c} +0 -0
  383. data/vendor/libgit2/src/{strmap.h → util/strmap.h} +1 -1
  384. data/vendor/libgit2/src/{strnlen.h → util/strnlen.h} +0 -0
  385. data/vendor/libgit2/src/{thread.c → util/thread.c} +1 -1
  386. data/vendor/libgit2/src/{thread.h → util/thread.h} +0 -0
  387. data/vendor/libgit2/src/{tsort.c → util/tsort.c} +1 -1
  388. data/vendor/libgit2/src/{unix → util/unix}/map.c +1 -1
  389. data/vendor/libgit2/src/{unix → util/unix}/posix.h +1 -1
  390. data/vendor/libgit2/src/{unix → util/unix}/pthread.h +0 -0
  391. data/vendor/libgit2/src/{unix → util/unix}/realpath.c +1 -1
  392. data/vendor/libgit2/src/{utf8.c → util/utf8.c} +1 -1
  393. data/vendor/libgit2/src/{utf8.h → util/utf8.h} +1 -1
  394. data/vendor/libgit2/src/{util.c → util/util.c} +1 -1
  395. data/vendor/libgit2/src/{util.h → util/util.h} +1 -1
  396. data/vendor/libgit2/src/{varint.c → util/varint.c} +0 -0
  397. data/vendor/libgit2/src/{varint.h → util/varint.h} +1 -1
  398. data/vendor/libgit2/src/{vector.c → util/vector.c} +0 -0
  399. data/vendor/libgit2/src/{vector.h → util/vector.h} +1 -1
  400. data/vendor/libgit2/src/{wildmatch.c → util/wildmatch.c} +0 -0
  401. data/vendor/libgit2/src/{wildmatch.h → util/wildmatch.h} +1 -1
  402. data/vendor/libgit2/src/{win32 → util/win32}/dir.c +0 -0
  403. data/vendor/libgit2/src/{win32 → util/win32}/dir.h +1 -1
  404. data/vendor/libgit2/src/{win32 → util/win32}/error.c +0 -0
  405. data/vendor/libgit2/src/{win32 → util/win32}/error.h +1 -1
  406. data/vendor/libgit2/src/{win32 → util/win32}/findfile.c +0 -0
  407. data/vendor/libgit2/src/{win32 → util/win32}/findfile.h +1 -1
  408. data/vendor/libgit2/src/{win32 → util/win32}/map.c +1 -1
  409. data/vendor/libgit2/src/{win32 → util/win32}/mingw-compat.h +0 -0
  410. data/vendor/libgit2/src/{win32 → util/win32}/msvc-compat.h +0 -0
  411. data/vendor/libgit2/src/{win32 → util/win32}/path_w32.c +0 -0
  412. data/vendor/libgit2/src/{win32 → util/win32}/path_w32.h +1 -1
  413. data/vendor/libgit2/src/{win32 → util/win32}/posix.h +1 -1
  414. data/vendor/libgit2/src/{win32 → util/win32}/posix_w32.c +1 -1
  415. data/vendor/libgit2/src/util/win32/precompiled.c +1 -0
  416. data/vendor/libgit2/src/{win32 → util/win32}/precompiled.h +1 -1
  417. data/vendor/libgit2/src/{win32 → util/win32}/reparse.h +0 -0
  418. data/vendor/libgit2/src/{win32 → util/win32}/thread.c +0 -0
  419. data/vendor/libgit2/src/{win32 → util/win32}/thread.h +1 -1
  420. data/vendor/libgit2/src/{win32 → util/win32}/utf-conv.c +0 -0
  421. data/vendor/libgit2/src/{win32 → util/win32}/utf-conv.h +1 -1
  422. data/vendor/libgit2/src/{win32 → util/win32}/version.h +0 -0
  423. data/vendor/libgit2/src/{win32 → util/win32}/w32_buffer.c +0 -0
  424. data/vendor/libgit2/src/{win32 → util/win32}/w32_buffer.h +1 -1
  425. data/vendor/libgit2/src/{win32 → util/win32}/w32_common.h +0 -0
  426. data/vendor/libgit2/src/{win32 → util/win32}/w32_leakcheck.c +0 -0
  427. data/vendor/libgit2/src/{win32 → util/win32}/w32_leakcheck.h +1 -1
  428. data/vendor/libgit2/src/{win32 → util/win32}/w32_util.c +0 -0
  429. data/vendor/libgit2/src/{win32 → util/win32}/w32_util.h +1 -1
  430. data/vendor/libgit2/src/{win32 → util/win32}/win32-compat.h +0 -0
  431. data/vendor/libgit2/src/{zstream.c → util/zstream.c} +0 -0
  432. data/vendor/libgit2/src/{zstream.h → util/zstream.h} +1 -1
  433. metadata +394 -365
  434. data/vendor/libgit2/src/hash/sha1/generic.c +0 -300
  435. data/vendor/libgit2/src/hash/sha1/generic.h +0 -19
  436. data/vendor/libgit2/src/hash/sha1/openssl.c +0 -59
  437. data/vendor/libgit2/src/hash/sha1/win32.c +0 -333
  438. data/vendor/libgit2/src/hash/sha1/win32.h +0 -128
  439. data/vendor/libgit2/src/hash/sha1.h +0 -40
@@ -0,0 +1,131 @@
1
+ # libgit2: the shared library: this CMakeLists.txt compiles the core
2
+ # git library functionality.
3
+
4
+ add_library(libgit2 OBJECT)
5
+ set_target_properties(libgit2 PROPERTIES C_STANDARD 90)
6
+ set_target_properties(libgit2 PROPERTIES C_EXTENSIONS OFF)
7
+
8
+ include(PkgBuildConfig)
9
+
10
+ set(LIBGIT2_INCLUDES
11
+ "${PROJECT_BINARY_DIR}/src"
12
+ "${PROJECT_SOURCE_DIR}/src/libgit2"
13
+ "${PROJECT_SOURCE_DIR}/src/util"
14
+ "${PROJECT_SOURCE_DIR}/include")
15
+
16
+ if(WIN32 AND EMBED_SSH_PATH)
17
+ file(GLOB SRC_SSH "${EMBED_SSH_PATH}/src/*.c")
18
+ list(SORT SRC_SSH)
19
+ target_sources(libgit2 PRIVATE ${SRC_SSH})
20
+
21
+ list(APPEND LIBGIT2_SYSTEM_INCLUDES "${EMBED_SSH_PATH}/include")
22
+ file(WRITE "${EMBED_SSH_PATH}/src/libssh2_config.h" "#define HAVE_WINCNG\n#define LIBSSH2_WINCNG\n#include \"../win32/libssh2_config.h\"")
23
+ set(GIT_SSH 1)
24
+ endif()
25
+
26
+ # Collect sourcefiles
27
+ file(GLOB SRC_H
28
+ "${PROJECT_SOURCE_DIR}/include/git2.h"
29
+ "${PROJECT_SOURCE_DIR}/include/git2/*.h"
30
+ "${PROJECT_SOURCE_DIR}/include/git2/sys/*.h")
31
+ list(SORT SRC_H)
32
+ target_sources(libgit2 PRIVATE ${SRC_H})
33
+
34
+ file(GLOB SRC_GIT2 *.c *.h
35
+ streams/*.c streams/*.h
36
+ transports/*.c transports/*.h
37
+ xdiff/*.c xdiff/*.h)
38
+ list(SORT SRC_GIT2)
39
+ target_sources(libgit2 PRIVATE ${SRC_GIT2})
40
+
41
+ if(WIN32 AND NOT CYGWIN)
42
+ # Add resource information on Windows
43
+ set(SRC_RC "git2.rc")
44
+ endif()
45
+
46
+ if(APPLE)
47
+ # The old Secure Transport API has been deprecated in macOS 10.15.
48
+ set_source_files_properties(streams/stransport.c PROPERTIES COMPILE_FLAGS -Wno-deprecated)
49
+ endif()
50
+
51
+ # the xdiff dependency is not (yet) warning-free, disable warnings
52
+ # as errors for the xdiff sources until we've sorted them out
53
+ if(MSVC)
54
+ set_source_files_properties(xdiff/xdiffi.c PROPERTIES COMPILE_FLAGS -WX-)
55
+ set_source_files_properties(xdiff/xemit.c PROPERTIES COMPILE_FLAGS -WX-)
56
+ set_source_files_properties(xdiff/xhistogram.c PROPERTIES COMPILE_FLAGS -WX-)
57
+ set_source_files_properties(xdiff/xmerge.c PROPERTIES COMPILE_FLAGS -WX-)
58
+ set_source_files_properties(xdiff/xutils.c PROPERTIES COMPILE_FLAGS -WX-)
59
+ set_source_files_properties(xdiff/xpatience.c PROPERTIES COMPILE_FLAGS -WX-)
60
+ else()
61
+ set_source_files_properties(xdiff/xdiffi.c PROPERTIES COMPILE_FLAGS "-Wno-sign-compare -Wno-unused-parameter")
62
+ set_source_files_properties(xdiff/xemit.c PROPERTIES COMPILE_FLAGS "-Wno-sign-compare -Wno-unused-parameter")
63
+ set_source_files_properties(xdiff/xhistogram.c PROPERTIES COMPILE_FLAGS "-Wno-sign-compare")
64
+ set_source_files_properties(xdiff/xutils.c PROPERTIES COMPILE_FLAGS "-Wno-sign-compare")
65
+ set_source_files_properties(xdiff/xpatience.c PROPERTIES COMPILE_FLAGS "-Wno-sign-compare")
66
+ endif()
67
+
68
+ ide_split_sources(libgit2)
69
+ list(APPEND LIBGIT2_OBJECTS $<TARGET_OBJECTS:util> $<TARGET_OBJECTS:libgit2> ${LIBGIT2_DEPENDENCY_OBJECTS})
70
+
71
+ target_include_directories(libgit2 PRIVATE ${LIBGIT2_INCLUDES} ${LIBGIT2_DEPENDENCY_INCLUDES} PUBLIC ${PROJECT_SOURCE_DIR}/include)
72
+ target_include_directories(libgit2 SYSTEM PRIVATE ${LIBGIT2_SYSTEM_INCLUDES})
73
+
74
+ set(LIBGIT2_INCLUDES ${LIBGIT2_INCLUDES} PARENT_SCOPE)
75
+ set(LIBGIT2_OBJECTS ${LIBGIT2_OBJECTS} PARENT_SCOPE)
76
+ set(LIBGIT2_DEPENDENCY_INCLUDES ${LIBGIT2_DEPENDENCY_INCLUDES} PARENT_SCOPE)
77
+ set(LIBGIT2_DEPENDENCY_OBJECTS ${LIBGIT2_DEPENDENCY_OBJECTS} PARENT_SCOPE)
78
+ set(LIBGIT2_SYSTEM_INCLUDES ${LIBGIT2_SYSTEM_INCLUDES} PARENT_SCOPE)
79
+ set(LIBGIT2_SYSTEM_LIBS ${LIBGIT2_SYSTEM_LIBS} PARENT_SCOPE)
80
+
81
+ #
82
+ # Compile and link libgit2
83
+ #
84
+
85
+ add_library(libgit2package ${SRC_RC} ${LIBGIT2_OBJECTS})
86
+ target_link_libraries(libgit2package ${LIBGIT2_SYSTEM_LIBS})
87
+
88
+ set_target_properties(libgit2package PROPERTIES C_STANDARD 90)
89
+ set_target_properties(libgit2package PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
90
+ set_target_properties(libgit2package PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
91
+ set_target_properties(libgit2package PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
92
+
93
+ # Workaround for Cmake bug #0011240 (see http://public.kitware.com/Bug/view.php?id=11240)
94
+ # Win64+MSVC+static libs = linker error
95
+ if(MSVC AND GIT_ARCH_64 AND NOT BUILD_SHARED_LIBS)
96
+ set_target_properties(libgit2package PROPERTIES STATIC_LIBRARY_FLAGS "/MACHINE:x64")
97
+ endif()
98
+
99
+ ide_split_sources(libgit2package)
100
+
101
+ if(SONAME)
102
+ set_target_properties(libgit2package PROPERTIES VERSION ${libgit2_VERSION})
103
+ set_target_properties(libgit2package PROPERTIES SOVERSION "${libgit2_VERSION_MAJOR}.${libgit2_VERSION_MINOR}")
104
+ if(LIBGIT2_FILENAME)
105
+ target_compile_definitions(libgit2package PRIVATE LIBGIT2_FILENAME=\"${LIBGIT2_FILENAME}\")
106
+ set_target_properties(libgit2package PROPERTIES OUTPUT_NAME ${LIBGIT2_FILENAME})
107
+ elseif(DEFINED LIBGIT2_PREFIX)
108
+ set_target_properties(libgit2package PROPERTIES PREFIX "${LIBGIT2_PREFIX}")
109
+ endif()
110
+ endif()
111
+
112
+ pkg_build_config(NAME libgit2
113
+ VERSION ${libgit2_VERSION}
114
+ DESCRIPTION "The git library, take 2"
115
+ LIBS_SELF git2
116
+ PRIVATE_LIBS ${LIBGIT2_PC_LIBS}
117
+ REQUIRES ${LIBGIT2_PC_REQUIRES})
118
+
119
+ if(MSVC_IDE)
120
+ # Precompiled headers
121
+ set_target_properties(libgit2package PROPERTIES COMPILE_FLAGS "/Yuprecompiled.h /FIprecompiled.h")
122
+ set_source_files_properties(win32/precompiled.c COMPILE_FLAGS "/Ycprecompiled.h")
123
+ endif()
124
+
125
+ # Install
126
+ install(TARGETS libgit2package
127
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
128
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
129
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
130
+ install(DIRECTORY ${PROJECT_SOURCE_DIR}/include/git2 DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
131
+ install(FILES ${PROJECT_SOURCE_DIR}/include/git2.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -101,7 +101,7 @@ static int write_file_stream(
101
101
  git_oid *id, git_odb *odb, const char *path, git_object_size_t file_size)
102
102
  {
103
103
  int fd, error;
104
- char buffer[FILEIO_BUFSIZE];
104
+ char buffer[GIT_BUFSIZE_FILEIO];
105
105
  git_odb_stream *stream = NULL;
106
106
  ssize_t read_len = -1;
107
107
  git_object_size_t written = 0;
File without changes
@@ -53,6 +53,17 @@ static int not_a_local_branch(const char *reference_name)
53
53
  return -1;
54
54
  }
55
55
 
56
+ static bool branch_name_is_valid(const char *branch_name)
57
+ {
58
+ /*
59
+ * Discourage branch name starting with dash,
60
+ * https://github.com/git/git/commit/6348624010888b
61
+ * and discourage HEAD as branch name,
62
+ * https://github.com/git/git/commit/a625b092cc5994
63
+ */
64
+ return branch_name[0] != '-' && git__strcmp(branch_name, "HEAD");
65
+ }
66
+
56
67
  static int create_branch(
57
68
  git_reference **ref_out,
58
69
  git_repository *repository,
@@ -73,8 +84,8 @@ static int create_branch(
73
84
  GIT_ASSERT_ARG(ref_out);
74
85
  GIT_ASSERT_ARG(git_commit_owner(commit) == repository);
75
86
 
76
- if (!git__strcmp(branch_name, "HEAD")) {
77
- git_error_set(GIT_ERROR_REFERENCE, "'HEAD' is not a valid branch name");
87
+ if (!branch_name_is_valid(branch_name)) {
88
+ git_error_set(GIT_ERROR_REFERENCE, "'%s' is not a valid branch name", branch_name);
78
89
  error = -1;
79
90
  goto cleanup;
80
91
  }
@@ -797,13 +808,7 @@ int git_branch_name_is_valid(int *valid, const char *name)
797
808
 
798
809
  *valid = 0;
799
810
 
800
- /*
801
- * Discourage branch name starting with dash,
802
- * https://github.com/git/git/commit/6348624010888b
803
- * and discourage HEAD as branch name,
804
- * https://github.com/git/git/commit/a625b092cc5994
805
- */
806
- if (!name || name[0] == '-' || !git__strcmp(name, "HEAD"))
811
+ if (!name || !branch_name_is_valid(name))
807
812
  goto done;
808
813
 
809
814
  if ((error = git_str_puts(&ref_name, GIT_REFS_HEADS_DIR)) < 0 ||
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -138,7 +138,7 @@ static int commit_graph_parse_oid_lookup(
138
138
  struct git_commit_graph_chunk *chunk_oid_lookup)
139
139
  {
140
140
  uint32_t i;
141
- git_oid *oid, *prev_oid, zero_oid = {{0}};
141
+ unsigned char *oid, *prev_oid, zero_oid[GIT_OID_RAWSZ] = {0};
142
142
 
143
143
  if (chunk_oid_lookup->offset == 0)
144
144
  return commit_graph_error("missing OID Lookup chunk");
@@ -147,10 +147,10 @@ static int commit_graph_parse_oid_lookup(
147
147
  if (chunk_oid_lookup->length != file->num_commits * GIT_OID_RAWSZ)
148
148
  return commit_graph_error("OID Lookup chunk has wrong length");
149
149
 
150
- file->oid_lookup = oid = (git_oid *)(data + chunk_oid_lookup->offset);
151
- prev_oid = &zero_oid;
152
- for (i = 0; i < file->num_commits; ++i, ++oid) {
153
- if (git_oid_cmp(prev_oid, oid) >= 0)
150
+ file->oid_lookup = oid = (unsigned char *)(data + chunk_oid_lookup->offset);
151
+ prev_oid = zero_oid;
152
+ for (i = 0; i < file->num_commits; ++i, oid += GIT_OID_RAWSZ) {
153
+ if (git_oid_raw_cmp(prev_oid, oid) >= 0)
154
154
  return commit_graph_error("OID Lookup index is non-monotonic");
155
155
  prev_oid = oid;
156
156
  }
@@ -437,7 +437,7 @@ static int git_commit_graph_entry_get_byindex(
437
437
  }
438
438
 
439
439
  commit_data = file->commit_data + pos * (GIT_OID_RAWSZ + 4 * sizeof(uint32_t));
440
- git_oid_cpy(&e->tree_oid, (const git_oid *)commit_data);
440
+ git_oid_fromraw(&e->tree_oid, commit_data);
441
441
  e->parent_indices[0] = ntohl(*((uint32_t *)(commit_data + GIT_OID_RAWSZ)));
442
442
  e->parent_indices[1] = ntohl(
443
443
  *((uint32_t *)(commit_data + GIT_OID_RAWSZ + sizeof(uint32_t))));
@@ -470,7 +470,8 @@ static int git_commit_graph_entry_get_byindex(
470
470
  e->parent_count++;
471
471
  }
472
472
  }
473
- git_oid_cpy(&e->sha1, &file->oid_lookup[pos]);
473
+
474
+ git_oid_fromraw(&e->sha1, &file->oid_lookup[pos * GIT_OID_RAWSZ]);
474
475
  return 0;
475
476
  }
476
477
 
@@ -514,7 +515,7 @@ int git_commit_graph_entry_find(
514
515
  {
515
516
  int pos, found = 0;
516
517
  uint32_t hi, lo;
517
- const git_oid *current = NULL;
518
+ const unsigned char *current = NULL;
518
519
 
519
520
  GIT_ASSERT_ARG(e);
520
521
  GIT_ASSERT_ARG(file);
@@ -528,26 +529,25 @@ int git_commit_graph_entry_find(
528
529
  if (pos >= 0) {
529
530
  /* An object matching exactly the oid was found */
530
531
  found = 1;
531
- current = file->oid_lookup + pos;
532
+ current = file->oid_lookup + (pos * GIT_OID_RAWSZ);
532
533
  } else {
533
534
  /* No object was found */
534
535
  /* pos refers to the object with the "closest" oid to short_oid */
535
536
  pos = -1 - pos;
536
537
  if (pos < (int)file->num_commits) {
537
- current = file->oid_lookup + pos;
538
+ current = file->oid_lookup + (pos * GIT_OID_RAWSZ);
538
539
 
539
- if (!git_oid_ncmp(short_oid, current, len))
540
+ if (!git_oid_raw_ncmp(short_oid->id, current, len))
540
541
  found = 1;
541
542
  }
542
543
  }
543
544
 
544
545
  if (found && len != GIT_OID_HEXSZ && pos + 1 < (int)file->num_commits) {
545
546
  /* Check for ambiguousity */
546
- const git_oid *next = current + 1;
547
+ const unsigned char *next = current + GIT_OID_RAWSZ;
547
548
 
548
- if (!git_oid_ncmp(short_oid, next, len)) {
549
+ if (!git_oid_raw_ncmp(short_oid->id, next, len))
549
550
  found = 2;
550
- }
551
551
  }
552
552
 
553
553
  if (!found)
@@ -1019,7 +1019,9 @@ static int commit_graph_write(
1019
1019
  /* Fill the OID Lookup table. */
1020
1020
  git_vector_foreach (&w->commits, i, packed_commit) {
1021
1021
  error = git_str_put(&oid_lookup,
1022
- (const char *)&packed_commit->sha1, sizeof(git_oid));
1022
+ (const char *)&packed_commit->sha1.id,
1023
+ GIT_OID_RAWSZ);
1024
+
1023
1025
  if (error < 0)
1024
1026
  goto cleanup;
1025
1027
  }
@@ -1034,8 +1036,9 @@ static int commit_graph_write(
1034
1036
  unsigned int parentcount = (unsigned int)git_array_size(packed_commit->parents);
1035
1037
 
1036
1038
  error = git_str_put(&commit_data,
1037
- (const char *)&packed_commit->tree_oid,
1038
- sizeof(git_oid));
1039
+ (const char *)&packed_commit->tree_oid.id,
1040
+ GIT_OID_RAWSZ);
1041
+
1039
1042
  if (error < 0)
1040
1043
  goto cleanup;
1041
1044
 
@@ -36,7 +36,7 @@ typedef struct git_commit_graph_file {
36
36
  uint32_t num_commits;
37
37
 
38
38
  /* The OID Lookup table. */
39
- git_oid *oid_lookup;
39
+ unsigned char *oid_lookup;
40
40
 
41
41
  /*
42
42
  * The Commit Data table. Each entry contains the OID of the commit followed
@@ -0,0 +1,55 @@
1
+ /*
2
+ * Copyright (C) the libgit2 contributors. All rights reserved.
3
+ *
4
+ * This file is part of libgit2, distributed under the GNU GPL v2 with
5
+ * a Linking Exception. For full terms see the included COPYING file.
6
+ */
7
+ #ifndef INCLUDE_common_h__
8
+ #define INCLUDE_common_h__
9
+
10
+ #include "git2_util.h"
11
+ #include "errors.h"
12
+
13
+ /*
14
+ * Include the declarations for deprecated functions; this ensures
15
+ * that they're decorated with the proper extern/visibility attributes.
16
+ */
17
+ #include "git2/deprecated.h"
18
+
19
+ #include "posix.h"
20
+
21
+ /**
22
+ * Initialize a structure with a version.
23
+ */
24
+ GIT_INLINE(void) git__init_structure(void *structure, size_t len, unsigned int version)
25
+ {
26
+ memset(structure, 0, len);
27
+ *((int*)structure) = version;
28
+ }
29
+ #define GIT_INIT_STRUCTURE(S,V) git__init_structure(S, sizeof(*S), V)
30
+
31
+ #define GIT_INIT_STRUCTURE_FROM_TEMPLATE(PTR,VERSION,TYPE,TPL) do { \
32
+ TYPE _tmpl = TPL; \
33
+ GIT_ERROR_CHECK_VERSION(&(VERSION), _tmpl.version, #TYPE); \
34
+ memcpy((PTR), &_tmpl, sizeof(_tmpl)); } while (0)
35
+
36
+ /**
37
+ * Check a versioned structure for validity
38
+ */
39
+ GIT_INLINE(int) git_error__check_version(const void *structure, unsigned int expected_max, const char *name)
40
+ {
41
+ unsigned int actual;
42
+
43
+ if (!structure)
44
+ return 0;
45
+
46
+ actual = *(const unsigned int*)structure;
47
+ if (actual > 0 && actual <= expected_max)
48
+ return 0;
49
+
50
+ git_error_set(GIT_ERROR_INVALID, "invalid version %d on %s", actual, name);
51
+ return -1;
52
+ }
53
+ #define GIT_ERROR_CHECK_VERSION(S,V,N) if (git_error__check_version(S,V,N) < 0) return -1
54
+
55
+ #endif
@@ -1137,7 +1137,7 @@ int git_config__find_global(git_str *path)
1137
1137
 
1138
1138
  int git_config_find_xdg(git_buf *path)
1139
1139
  {
1140
- GIT_BUF_WRAP_PRIVATE(path, git_sysdir_find_global_file, GIT_CONFIG_FILENAME_XDG);
1140
+ GIT_BUF_WRAP_PRIVATE(path, git_sysdir_find_xdg_file, GIT_CONFIG_FILENAME_XDG);
1141
1141
  }
1142
1142
 
1143
1143
  int git_config__find_xdg(git_str *path)
@@ -1147,7 +1147,7 @@ int git_config__find_xdg(git_str *path)
1147
1147
 
1148
1148
  int git_config_find_system(git_buf *path)
1149
1149
  {
1150
- GIT_BUF_WRAP_PRIVATE(path, git_sysdir_find_global_file, GIT_CONFIG_FILENAME_SYSTEM);
1150
+ GIT_BUF_WRAP_PRIVATE(path, git_sysdir_find_system_file, GIT_CONFIG_FILENAME_SYSTEM);
1151
1151
  }
1152
1152
 
1153
1153
  int git_config__find_system(git_str *path)
@@ -1170,14 +1170,21 @@ int git_config_find_programdata(git_buf *path)
1170
1170
 
1171
1171
  int git_config__find_programdata(git_str *path)
1172
1172
  {
1173
- int ret;
1173
+ git_fs_path_owner_t owner_level =
1174
+ GIT_FS_PATH_OWNER_CURRENT_USER |
1175
+ GIT_FS_PATH_OWNER_ADMINISTRATOR;
1176
+ bool is_safe;
1174
1177
 
1175
- ret = git_sysdir_find_programdata_file(path, GIT_CONFIG_FILENAME_PROGRAMDATA);
1178
+ if (git_sysdir_find_programdata_file(path, GIT_CONFIG_FILENAME_PROGRAMDATA) < 0 ||
1179
+ git_fs_path_owner_is(&is_safe, path->ptr, owner_level) < 0)
1180
+ return -1;
1176
1181
 
1177
- if (ret != GIT_OK)
1178
- return ret;
1182
+ if (!is_safe) {
1183
+ git_error_set(GIT_ERROR_CONFIG, "programdata path has invalid ownership");
1184
+ return -1;
1185
+ }
1179
1186
 
1180
- return git_fs_path_validate_system_file_ownership(path->ptr);
1187
+ return 0;
1181
1188
  }
1182
1189
 
1183
1190
  int git_config__global_location(git_str *buf)
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -316,6 +316,11 @@ static int diff_print_oid_range(
316
316
  static int diff_delta_format_path(
317
317
  git_str *out, const char *prefix, const char *filename)
318
318
  {
319
+ if (!filename) {
320
+ /* don't prefix "/dev/null" */
321
+ return git_str_puts(out, "/dev/null");
322
+ }
323
+
319
324
  if (git_str_joinpath(out, prefix, filename) < 0)
320
325
  return -1;
321
326
 
@@ -11,6 +11,7 @@
11
11
  #include "diff.h"
12
12
  #include "diff_driver.h"
13
13
  #include "patch_generate.h"
14
+ #include "utf8.h"
14
15
 
15
16
  static int git_xdiff_scan_int(const char **str, int *value)
16
17
  {
File without changes
File without changes
File without changes
@@ -11,9 +11,8 @@
11
11
  #include "common.h"
12
12
 
13
13
  /*
14
- * Set the error message for this thread, formatting as needed.
14
+ * `vprintf`-style formatting for the error message for this thread.
15
15
  */
16
- void git_error_set(int error_class, const char *fmt, ...) GIT_FORMAT_PRINTF(2, 3);
17
16
  void git_error_vset(int error_class, const char *fmt, va_list ap);
18
17
 
19
18
  /**
@@ -76,8 +76,11 @@ static int maybe_want_oid(git_remote *remote, git_refspec *spec)
76
76
  GIT_ERROR_CHECK_ALLOC(oid_head);
77
77
 
78
78
  git_oid_fromstr(&oid_head->oid, spec->src);
79
- oid_head->name = git__strdup(spec->dst);
80
- GIT_ERROR_CHECK_ALLOC(oid_head->name);
79
+
80
+ if (spec->dst) {
81
+ oid_head->name = git__strdup(spec->dst);
82
+ GIT_ERROR_CHECK_ALLOC(oid_head->name);
83
+ }
81
84
 
82
85
  if (git_vector_insert(&remote->local_heads, oid_head) < 0 ||
83
86
  git_vector_insert(&remote->refs, oid_head) < 0)
File without changes