rugged 1.4.5 → 1.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (424) 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/include/git2/branch.h +2 -2
  20. data/vendor/libgit2/include/git2/common.h +11 -0
  21. data/vendor/libgit2/include/git2/config.h +6 -6
  22. data/vendor/libgit2/include/git2/deprecated.h +2 -0
  23. data/vendor/libgit2/include/git2/errors.h +17 -3
  24. data/vendor/libgit2/include/git2/merge.h +1 -1
  25. data/vendor/libgit2/include/git2/status.h +5 -2
  26. data/vendor/libgit2/include/git2/sys/remote.h +15 -0
  27. data/vendor/libgit2/include/git2/sys/transport.h +9 -5
  28. data/vendor/libgit2/include/git2/version.h +27 -6
  29. data/vendor/libgit2/src/CMakeLists.txt +104 -214
  30. data/vendor/libgit2/src/README.md +12 -0
  31. data/vendor/libgit2/src/cli/CMakeLists.txt +53 -0
  32. data/vendor/libgit2/src/cli/README.md +26 -0
  33. data/vendor/libgit2/src/cli/cli.h +20 -0
  34. data/vendor/libgit2/src/cli/cmd.c +21 -0
  35. data/vendor/libgit2/src/cli/cmd.h +33 -0
  36. data/vendor/libgit2/src/cli/cmd_cat_file.c +204 -0
  37. data/vendor/libgit2/src/cli/cmd_clone.c +176 -0
  38. data/vendor/libgit2/src/cli/cmd_hash_object.c +135 -0
  39. data/vendor/libgit2/src/cli/cmd_help.c +86 -0
  40. data/vendor/libgit2/src/cli/error.h +51 -0
  41. data/vendor/libgit2/src/cli/main.c +106 -0
  42. data/vendor/libgit2/src/cli/opt.c +669 -0
  43. data/vendor/libgit2/src/cli/opt.h +349 -0
  44. data/vendor/libgit2/src/cli/opt_usage.c +194 -0
  45. data/vendor/libgit2/src/cli/opt_usage.h +35 -0
  46. data/vendor/libgit2/src/cli/progress.c +345 -0
  47. data/vendor/libgit2/src/cli/progress.h +117 -0
  48. data/vendor/libgit2/src/cli/sighandler.h +20 -0
  49. data/vendor/libgit2/src/cli/unix/sighandler.c +36 -0
  50. data/vendor/libgit2/src/cli/win32/precompiled.h +3 -0
  51. data/vendor/libgit2/src/cli/win32/sighandler.c +37 -0
  52. data/vendor/libgit2/src/features.h.in +9 -0
  53. data/vendor/libgit2/src/libgit2/CMakeLists.txt +131 -0
  54. data/vendor/libgit2/src/{blob.c → libgit2/blob.c} +1 -1
  55. data/vendor/libgit2/src/{branch.c → libgit2/branch.c} +14 -9
  56. data/vendor/libgit2/src/{commit_graph.c → libgit2/commit_graph.c} +20 -17
  57. data/vendor/libgit2/src/{commit_graph.h → libgit2/commit_graph.h} +1 -1
  58. data/vendor/libgit2/src/libgit2/common.h +55 -0
  59. data/vendor/libgit2/src/{config.c → libgit2/config.c} +2 -2
  60. data/vendor/libgit2/src/{describe.c → libgit2/describe.c} +1 -1
  61. data/vendor/libgit2/src/{diff_xdiff.c → libgit2/diff_xdiff.c} +1 -0
  62. data/vendor/libgit2/src/{errors.h → libgit2/errors.h} +1 -2
  63. data/vendor/libgit2/src/{filter.c → libgit2/filter.c} +31 -1
  64. data/vendor/libgit2/src/{index.c → libgit2/index.c} +6 -6
  65. data/vendor/libgit2/src/{indexer.c → libgit2/indexer.c} +2 -2
  66. data/vendor/libgit2/src/{iterator.c → libgit2/iterator.c} +3 -3
  67. data/vendor/libgit2/src/{libgit2.c → libgit2/libgit2.c} +5 -0
  68. data/vendor/libgit2/src/{midx.c → libgit2/midx.c} +20 -23
  69. data/vendor/libgit2/src/{midx.h → libgit2/midx.h} +2 -1
  70. data/vendor/libgit2/src/{mwindow.c → libgit2/mwindow.c} +9 -9
  71. data/vendor/libgit2/src/{mwindow.h → libgit2/mwindow.h} +1 -1
  72. data/vendor/libgit2/src/{netops.c → libgit2/netops.c} +0 -1
  73. data/vendor/libgit2/src/{object.c → libgit2/object.c} +1 -0
  74. data/vendor/libgit2/src/{odb.c → libgit2/odb.c} +2 -2
  75. data/vendor/libgit2/src/{oid.c → libgit2/oid.c} +2 -21
  76. data/vendor/libgit2/src/{oid.h → libgit2/oid.h} +35 -2
  77. data/vendor/libgit2/src/{oidmap.c → libgit2/oidmap.c} +1 -1
  78. data/vendor/libgit2/src/{pack.c → libgit2/pack.c} +24 -18
  79. data/vendor/libgit2/src/{pack.h → libgit2/pack.h} +3 -2
  80. data/vendor/libgit2/src/{path.c → libgit2/path.c} +1 -0
  81. data/vendor/libgit2/src/{rebase.c → libgit2/rebase.c} +11 -1
  82. data/vendor/libgit2/src/{refdb_fs.c → libgit2/refdb_fs.c} +6 -2
  83. data/vendor/libgit2/src/{remote.c → libgit2/remote.c} +1 -1
  84. data/vendor/libgit2/src/{remote.h → libgit2/remote.h} +1 -1
  85. data/vendor/libgit2/src/{repository.c → libgit2/repository.c} +1 -0
  86. data/vendor/libgit2/src/{tag.c → libgit2/tag.c} +15 -5
  87. data/vendor/libgit2/src/{transports → libgit2/transports}/httpclient.c +1 -1
  88. data/vendor/libgit2/src/{transports → libgit2/transports}/smart.c +12 -0
  89. data/vendor/libgit2/src/{transports → libgit2/transports}/ssh.c +91 -326
  90. data/vendor/libgit2/src/{tree-cache.c → libgit2/tree-cache.c} +1 -1
  91. data/vendor/libgit2/src/{tree.c → libgit2/tree.c} +16 -23
  92. data/vendor/libgit2/src/{tree.h → libgit2/tree.h} +1 -1
  93. data/vendor/libgit2/src/util/CMakeLists.txt +74 -0
  94. data/vendor/libgit2/src/{allocators → util/allocators}/failalloc.h +1 -1
  95. data/vendor/libgit2/src/{allocators → util/allocators}/stdalloc.h +1 -1
  96. data/vendor/libgit2/src/{allocators → util/allocators}/win32_leakcheck.h +1 -1
  97. data/vendor/libgit2/src/{array.h → util/array.h} +1 -1
  98. data/vendor/libgit2/src/{assert_safe.h → util/assert_safe.h} +16 -0
  99. data/vendor/libgit2/src/{date.c → util/date.c} +4 -3
  100. data/vendor/libgit2/src/{filebuf.c → util/filebuf.c} +1 -1
  101. data/vendor/libgit2/src/{filebuf.h → util/filebuf.h} +1 -1
  102. data/vendor/libgit2/src/{fs_path.c → util/fs_path.c} +17 -11
  103. data/vendor/libgit2/src/{fs_path.h → util/fs_path.h} +1 -1
  104. data/vendor/libgit2/src/{futils.c → util/futils.c} +44 -2
  105. data/vendor/libgit2/src/{futils.h → util/futils.h} +2 -1
  106. data/vendor/libgit2/src/{common.h → util/git2_util.h} +13 -59
  107. data/vendor/libgit2/src/util/hash/builtin.c +53 -0
  108. data/vendor/libgit2/src/{hash/sha1/openssl.h → util/hash/builtin.h} +6 -6
  109. data/vendor/libgit2/src/{hash/sha1 → util/hash}/collisiondetect.c +1 -1
  110. data/vendor/libgit2/src/{hash/sha1 → util/hash}/collisiondetect.h +3 -3
  111. data/vendor/libgit2/src/{hash/sha1 → util/hash}/common_crypto.c +55 -0
  112. data/vendor/libgit2/src/{hash/sha1 → util/hash}/common_crypto.h +11 -3
  113. data/vendor/libgit2/src/{hash/sha1 → util/hash}/mbedtls.c +46 -0
  114. data/vendor/libgit2/src/{hash/sha1 → util/hash}/mbedtls.h +14 -4
  115. data/vendor/libgit2/src/util/hash/openssl.c +194 -0
  116. data/vendor/libgit2/src/util/hash/openssl.h +45 -0
  117. data/vendor/libgit2/src/util/hash/rfc6234/sha.h +355 -0
  118. data/vendor/libgit2/src/util/hash/rfc6234/sha224-256.c +601 -0
  119. data/vendor/libgit2/src/util/hash/sha.h +70 -0
  120. data/vendor/libgit2/src/util/hash/win32.c +549 -0
  121. data/vendor/libgit2/src/util/hash/win32.h +60 -0
  122. data/vendor/libgit2/src/{hash.c → util/hash.c} +17 -1
  123. data/vendor/libgit2/src/{hash.h → util/hash.h} +5 -3
  124. data/vendor/libgit2/src/{map.h → util/map.h} +1 -1
  125. data/vendor/libgit2/src/{net.c → util/net.c} +0 -1
  126. data/vendor/libgit2/src/{net.h → util/net.h} +1 -1
  127. data/vendor/libgit2/src/{pool.h → util/pool.h} +1 -1
  128. data/vendor/libgit2/src/{posix.h → util/posix.h} +1 -1
  129. data/vendor/libgit2/src/{pqueue.h → util/pqueue.h} +1 -1
  130. data/vendor/libgit2/src/{rand.c → util/rand.c} +7 -3
  131. data/vendor/libgit2/src/{rand.h → util/rand.h} +1 -1
  132. data/vendor/libgit2/src/{regexp.h → util/regexp.h} +1 -1
  133. data/vendor/libgit2/src/{runtime.c → util/runtime.c} +1 -1
  134. data/vendor/libgit2/src/{runtime.h → util/runtime.h} +1 -1
  135. data/vendor/libgit2/src/{sortedcache.h → util/sortedcache.h} +1 -1
  136. data/vendor/libgit2/src/{str.h → util/str.h} +1 -1
  137. data/vendor/libgit2/src/{strmap.h → util/strmap.h} +1 -1
  138. data/vendor/libgit2/src/{thread.c → util/thread.c} +1 -1
  139. data/vendor/libgit2/src/{tsort.c → util/tsort.c} +1 -1
  140. data/vendor/libgit2/src/{unix → util/unix}/map.c +1 -1
  141. data/vendor/libgit2/src/{unix → util/unix}/posix.h +1 -1
  142. data/vendor/libgit2/src/{unix → util/unix}/realpath.c +1 -1
  143. data/vendor/libgit2/src/{utf8.c → util/utf8.c} +1 -1
  144. data/vendor/libgit2/src/{utf8.h → util/utf8.h} +1 -1
  145. data/vendor/libgit2/src/{util.c → util/util.c} +1 -1
  146. data/vendor/libgit2/src/{util.h → util/util.h} +1 -1
  147. data/vendor/libgit2/src/{varint.h → util/varint.h} +1 -1
  148. data/vendor/libgit2/src/{vector.h → util/vector.h} +1 -1
  149. data/vendor/libgit2/src/{wildmatch.h → util/wildmatch.h} +1 -1
  150. data/vendor/libgit2/src/{win32 → util/win32}/dir.h +1 -1
  151. data/vendor/libgit2/src/{win32 → util/win32}/error.h +1 -1
  152. data/vendor/libgit2/src/{win32 → util/win32}/findfile.h +1 -1
  153. data/vendor/libgit2/src/{win32 → util/win32}/map.c +1 -1
  154. data/vendor/libgit2/src/{win32 → util/win32}/path_w32.h +1 -1
  155. data/vendor/libgit2/src/{win32 → util/win32}/posix.h +1 -1
  156. data/vendor/libgit2/src/{win32 → util/win32}/posix_w32.c +1 -1
  157. data/vendor/libgit2/src/util/win32/precompiled.c +1 -0
  158. data/vendor/libgit2/src/{win32 → util/win32}/precompiled.h +1 -1
  159. data/vendor/libgit2/src/{win32 → util/win32}/thread.h +1 -1
  160. data/vendor/libgit2/src/{win32 → util/win32}/utf-conv.h +1 -1
  161. data/vendor/libgit2/src/{win32 → util/win32}/w32_buffer.h +1 -1
  162. data/vendor/libgit2/src/{win32 → util/win32}/w32_leakcheck.h +1 -1
  163. data/vendor/libgit2/src/{win32 → util/win32}/w32_util.h +1 -1
  164. data/vendor/libgit2/src/{zstream.h → util/zstream.h} +1 -1
  165. metadata +390 -361
  166. data/vendor/libgit2/src/hash/sha1/generic.c +0 -300
  167. data/vendor/libgit2/src/hash/sha1/generic.h +0 -19
  168. data/vendor/libgit2/src/hash/sha1/openssl.c +0 -59
  169. data/vendor/libgit2/src/hash/sha1/win32.c +0 -333
  170. data/vendor/libgit2/src/hash/sha1/win32.h +0 -128
  171. data/vendor/libgit2/src/hash/sha1.h +0 -40
  172. /data/vendor/libgit2/src/{win32 → cli/win32}/precompiled.c +0 -0
  173. /data/vendor/libgit2/src/{annotated_commit.c → libgit2/annotated_commit.c} +0 -0
  174. /data/vendor/libgit2/src/{annotated_commit.h → libgit2/annotated_commit.h} +0 -0
  175. /data/vendor/libgit2/src/{apply.c → libgit2/apply.c} +0 -0
  176. /data/vendor/libgit2/src/{apply.h → libgit2/apply.h} +0 -0
  177. /data/vendor/libgit2/src/{attr.c → libgit2/attr.c} +0 -0
  178. /data/vendor/libgit2/src/{attr.h → libgit2/attr.h} +0 -0
  179. /data/vendor/libgit2/src/{attr_file.c → libgit2/attr_file.c} +0 -0
  180. /data/vendor/libgit2/src/{attr_file.h → libgit2/attr_file.h} +0 -0
  181. /data/vendor/libgit2/src/{attrcache.c → libgit2/attrcache.c} +0 -0
  182. /data/vendor/libgit2/src/{attrcache.h → libgit2/attrcache.h} +0 -0
  183. /data/vendor/libgit2/src/{blame.c → libgit2/blame.c} +0 -0
  184. /data/vendor/libgit2/src/{blame.h → libgit2/blame.h} +0 -0
  185. /data/vendor/libgit2/src/{blame_git.c → libgit2/blame_git.c} +0 -0
  186. /data/vendor/libgit2/src/{blame_git.h → libgit2/blame_git.h} +0 -0
  187. /data/vendor/libgit2/src/{blob.h → libgit2/blob.h} +0 -0
  188. /data/vendor/libgit2/src/{branch.h → libgit2/branch.h} +0 -0
  189. /data/vendor/libgit2/src/{buf.c → libgit2/buf.c} +0 -0
  190. /data/vendor/libgit2/src/{buf.h → libgit2/buf.h} +0 -0
  191. /data/vendor/libgit2/src/{cache.c → libgit2/cache.c} +0 -0
  192. /data/vendor/libgit2/src/{cache.h → libgit2/cache.h} +0 -0
  193. /data/vendor/libgit2/src/{checkout.c → libgit2/checkout.c} +0 -0
  194. /data/vendor/libgit2/src/{checkout.h → libgit2/checkout.h} +0 -0
  195. /data/vendor/libgit2/src/{cherrypick.c → libgit2/cherrypick.c} +0 -0
  196. /data/vendor/libgit2/src/{clone.c → libgit2/clone.c} +0 -0
  197. /data/vendor/libgit2/src/{clone.h → libgit2/clone.h} +0 -0
  198. /data/vendor/libgit2/src/{commit.c → libgit2/commit.c} +0 -0
  199. /data/vendor/libgit2/src/{commit.h → libgit2/commit.h} +0 -0
  200. /data/vendor/libgit2/src/{commit_list.c → libgit2/commit_list.c} +0 -0
  201. /data/vendor/libgit2/src/{commit_list.h → libgit2/commit_list.h} +0 -0
  202. /data/vendor/libgit2/src/{config.h → libgit2/config.h} +0 -0
  203. /data/vendor/libgit2/src/{config_backend.h → libgit2/config_backend.h} +0 -0
  204. /data/vendor/libgit2/src/{config_cache.c → libgit2/config_cache.c} +0 -0
  205. /data/vendor/libgit2/src/{config_entries.c → libgit2/config_entries.c} +0 -0
  206. /data/vendor/libgit2/src/{config_entries.h → libgit2/config_entries.h} +0 -0
  207. /data/vendor/libgit2/src/{config_file.c → libgit2/config_file.c} +0 -0
  208. /data/vendor/libgit2/src/{config_mem.c → libgit2/config_mem.c} +0 -0
  209. /data/vendor/libgit2/src/{config_parse.c → libgit2/config_parse.c} +0 -0
  210. /data/vendor/libgit2/src/{config_parse.h → libgit2/config_parse.h} +0 -0
  211. /data/vendor/libgit2/src/{config_snapshot.c → libgit2/config_snapshot.c} +0 -0
  212. /data/vendor/libgit2/src/{crlf.c → libgit2/crlf.c} +0 -0
  213. /data/vendor/libgit2/src/{delta.c → libgit2/delta.c} +0 -0
  214. /data/vendor/libgit2/src/{delta.h → libgit2/delta.h} +0 -0
  215. /data/vendor/libgit2/src/{diff.c → libgit2/diff.c} +0 -0
  216. /data/vendor/libgit2/src/{diff.h → libgit2/diff.h} +0 -0
  217. /data/vendor/libgit2/src/{diff_driver.c → libgit2/diff_driver.c} +0 -0
  218. /data/vendor/libgit2/src/{diff_driver.h → libgit2/diff_driver.h} +0 -0
  219. /data/vendor/libgit2/src/{diff_file.c → libgit2/diff_file.c} +0 -0
  220. /data/vendor/libgit2/src/{diff_file.h → libgit2/diff_file.h} +0 -0
  221. /data/vendor/libgit2/src/{diff_generate.c → libgit2/diff_generate.c} +0 -0
  222. /data/vendor/libgit2/src/{diff_generate.h → libgit2/diff_generate.h} +0 -0
  223. /data/vendor/libgit2/src/{diff_parse.c → libgit2/diff_parse.c} +0 -0
  224. /data/vendor/libgit2/src/{diff_parse.h → libgit2/diff_parse.h} +0 -0
  225. /data/vendor/libgit2/src/{diff_print.c → libgit2/diff_print.c} +0 -0
  226. /data/vendor/libgit2/src/{diff_stats.c → libgit2/diff_stats.c} +0 -0
  227. /data/vendor/libgit2/src/{diff_stats.h → libgit2/diff_stats.h} +0 -0
  228. /data/vendor/libgit2/src/{diff_tform.c → libgit2/diff_tform.c} +0 -0
  229. /data/vendor/libgit2/src/{diff_tform.h → libgit2/diff_tform.h} +0 -0
  230. /data/vendor/libgit2/src/{diff_xdiff.h → libgit2/diff_xdiff.h} +0 -0
  231. /data/vendor/libgit2/src/{email.c → libgit2/email.c} +0 -0
  232. /data/vendor/libgit2/src/{email.h → libgit2/email.h} +0 -0
  233. /data/vendor/libgit2/src/{errors.c → libgit2/errors.c} +0 -0
  234. /data/vendor/libgit2/src/{fetch.c → libgit2/fetch.c} +0 -0
  235. /data/vendor/libgit2/src/{fetch.h → libgit2/fetch.h} +0 -0
  236. /data/vendor/libgit2/src/{fetchhead.c → libgit2/fetchhead.c} +0 -0
  237. /data/vendor/libgit2/src/{fetchhead.h → libgit2/fetchhead.h} +0 -0
  238. /data/vendor/libgit2/src/{filter.h → libgit2/filter.h} +0 -0
  239. /data/vendor/libgit2/src/{win32 → libgit2}/git2.rc +0 -0
  240. /data/vendor/libgit2/src/{graph.c → libgit2/graph.c} +0 -0
  241. /data/vendor/libgit2/src/{hashsig.c → libgit2/hashsig.c} +0 -0
  242. /data/vendor/libgit2/src/{ident.c → libgit2/ident.c} +0 -0
  243. /data/vendor/libgit2/src/{idxmap.c → libgit2/idxmap.c} +0 -0
  244. /data/vendor/libgit2/src/{idxmap.h → libgit2/idxmap.h} +0 -0
  245. /data/vendor/libgit2/src/{ignore.c → libgit2/ignore.c} +0 -0
  246. /data/vendor/libgit2/src/{ignore.h → libgit2/ignore.h} +0 -0
  247. /data/vendor/libgit2/src/{index.h → libgit2/index.h} +0 -0
  248. /data/vendor/libgit2/src/{indexer.h → libgit2/indexer.h} +0 -0
  249. /data/vendor/libgit2/src/{iterator.h → libgit2/iterator.h} +0 -0
  250. /data/vendor/libgit2/src/{libgit2.h → libgit2/libgit2.h} +0 -0
  251. /data/vendor/libgit2/src/{mailmap.c → libgit2/mailmap.c} +0 -0
  252. /data/vendor/libgit2/src/{mailmap.h → libgit2/mailmap.h} +0 -0
  253. /data/vendor/libgit2/src/{merge.c → libgit2/merge.c} +0 -0
  254. /data/vendor/libgit2/src/{merge.h → libgit2/merge.h} +0 -0
  255. /data/vendor/libgit2/src/{merge_driver.c → libgit2/merge_driver.c} +0 -0
  256. /data/vendor/libgit2/src/{merge_driver.h → libgit2/merge_driver.h} +0 -0
  257. /data/vendor/libgit2/src/{merge_file.c → libgit2/merge_file.c} +0 -0
  258. /data/vendor/libgit2/src/{message.c → libgit2/message.c} +0 -0
  259. /data/vendor/libgit2/src/{netops.h → libgit2/netops.h} +0 -0
  260. /data/vendor/libgit2/src/{notes.c → libgit2/notes.c} +0 -0
  261. /data/vendor/libgit2/src/{notes.h → libgit2/notes.h} +0 -0
  262. /data/vendor/libgit2/src/{object.h → libgit2/object.h} +0 -0
  263. /data/vendor/libgit2/src/{object_api.c → libgit2/object_api.c} +0 -0
  264. /data/vendor/libgit2/src/{odb.h → libgit2/odb.h} +0 -0
  265. /data/vendor/libgit2/src/{odb_loose.c → libgit2/odb_loose.c} +0 -0
  266. /data/vendor/libgit2/src/{odb_mempack.c → libgit2/odb_mempack.c} +0 -0
  267. /data/vendor/libgit2/src/{odb_pack.c → libgit2/odb_pack.c} +0 -0
  268. /data/vendor/libgit2/src/{offmap.c → libgit2/offmap.c} +0 -0
  269. /data/vendor/libgit2/src/{offmap.h → libgit2/offmap.h} +0 -0
  270. /data/vendor/libgit2/src/{oidarray.c → libgit2/oidarray.c} +0 -0
  271. /data/vendor/libgit2/src/{oidarray.h → libgit2/oidarray.h} +0 -0
  272. /data/vendor/libgit2/src/{oidmap.h → libgit2/oidmap.h} +0 -0
  273. /data/vendor/libgit2/src/{pack-objects.c → libgit2/pack-objects.c} +0 -0
  274. /data/vendor/libgit2/src/{pack-objects.h → libgit2/pack-objects.h} +0 -0
  275. /data/vendor/libgit2/src/{parse.c → libgit2/parse.c} +0 -0
  276. /data/vendor/libgit2/src/{parse.h → libgit2/parse.h} +0 -0
  277. /data/vendor/libgit2/src/{patch.c → libgit2/patch.c} +0 -0
  278. /data/vendor/libgit2/src/{patch.h → libgit2/patch.h} +0 -0
  279. /data/vendor/libgit2/src/{patch_generate.c → libgit2/patch_generate.c} +0 -0
  280. /data/vendor/libgit2/src/{patch_generate.h → libgit2/patch_generate.h} +0 -0
  281. /data/vendor/libgit2/src/{patch_parse.c → libgit2/patch_parse.c} +0 -0
  282. /data/vendor/libgit2/src/{patch_parse.h → libgit2/patch_parse.h} +0 -0
  283. /data/vendor/libgit2/src/{path.h → libgit2/path.h} +0 -0
  284. /data/vendor/libgit2/src/{pathspec.c → libgit2/pathspec.c} +0 -0
  285. /data/vendor/libgit2/src/{pathspec.h → libgit2/pathspec.h} +0 -0
  286. /data/vendor/libgit2/src/{proxy.c → libgit2/proxy.c} +0 -0
  287. /data/vendor/libgit2/src/{proxy.h → libgit2/proxy.h} +0 -0
  288. /data/vendor/libgit2/src/{push.c → libgit2/push.c} +0 -0
  289. /data/vendor/libgit2/src/{push.h → libgit2/push.h} +0 -0
  290. /data/vendor/libgit2/src/{reader.c → libgit2/reader.c} +0 -0
  291. /data/vendor/libgit2/src/{reader.h → libgit2/reader.h} +0 -0
  292. /data/vendor/libgit2/src/{refdb.c → libgit2/refdb.c} +0 -0
  293. /data/vendor/libgit2/src/{refdb.h → libgit2/refdb.h} +0 -0
  294. /data/vendor/libgit2/src/{reflog.c → libgit2/reflog.c} +0 -0
  295. /data/vendor/libgit2/src/{reflog.h → libgit2/reflog.h} +0 -0
  296. /data/vendor/libgit2/src/{refs.c → libgit2/refs.c} +0 -0
  297. /data/vendor/libgit2/src/{refs.h → libgit2/refs.h} +0 -0
  298. /data/vendor/libgit2/src/{refspec.c → libgit2/refspec.c} +0 -0
  299. /data/vendor/libgit2/src/{refspec.h → libgit2/refspec.h} +0 -0
  300. /data/vendor/libgit2/src/{repo_template.h → libgit2/repo_template.h} +0 -0
  301. /data/vendor/libgit2/src/{repository.h → libgit2/repository.h} +0 -0
  302. /data/vendor/libgit2/src/{reset.c → libgit2/reset.c} +0 -0
  303. /data/vendor/libgit2/src/{revert.c → libgit2/revert.c} +0 -0
  304. /data/vendor/libgit2/src/{revparse.c → libgit2/revparse.c} +0 -0
  305. /data/vendor/libgit2/src/{revwalk.c → libgit2/revwalk.c} +0 -0
  306. /data/vendor/libgit2/src/{revwalk.h → libgit2/revwalk.h} +0 -0
  307. /data/vendor/libgit2/src/{settings.h → libgit2/settings.h} +0 -0
  308. /data/vendor/libgit2/src/{signature.c → libgit2/signature.c} +0 -0
  309. /data/vendor/libgit2/src/{signature.h → libgit2/signature.h} +0 -0
  310. /data/vendor/libgit2/src/{stash.c → libgit2/stash.c} +0 -0
  311. /data/vendor/libgit2/src/{status.c → libgit2/status.c} +0 -0
  312. /data/vendor/libgit2/src/{status.h → libgit2/status.h} +0 -0
  313. /data/vendor/libgit2/src/{strarray.c → libgit2/strarray.c} +0 -0
  314. /data/vendor/libgit2/src/{stream.h → libgit2/stream.h} +0 -0
  315. /data/vendor/libgit2/src/{streams → libgit2/streams}/mbedtls.c +0 -0
  316. /data/vendor/libgit2/src/{streams → libgit2/streams}/mbedtls.h +0 -0
  317. /data/vendor/libgit2/src/{streams → libgit2/streams}/openssl.c +0 -0
  318. /data/vendor/libgit2/src/{streams → libgit2/streams}/openssl.h +0 -0
  319. /data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_dynamic.c +0 -0
  320. /data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_dynamic.h +0 -0
  321. /data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_legacy.c +0 -0
  322. /data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_legacy.h +0 -0
  323. /data/vendor/libgit2/src/{streams → libgit2/streams}/registry.c +0 -0
  324. /data/vendor/libgit2/src/{streams → libgit2/streams}/registry.h +0 -0
  325. /data/vendor/libgit2/src/{streams → libgit2/streams}/socket.c +0 -0
  326. /data/vendor/libgit2/src/{streams → libgit2/streams}/socket.h +0 -0
  327. /data/vendor/libgit2/src/{streams → libgit2/streams}/stransport.c +0 -0
  328. /data/vendor/libgit2/src/{streams → libgit2/streams}/stransport.h +0 -0
  329. /data/vendor/libgit2/src/{streams → libgit2/streams}/tls.c +0 -0
  330. /data/vendor/libgit2/src/{streams → libgit2/streams}/tls.h +0 -0
  331. /data/vendor/libgit2/src/{submodule.c → libgit2/submodule.c} +0 -0
  332. /data/vendor/libgit2/src/{submodule.h → libgit2/submodule.h} +0 -0
  333. /data/vendor/libgit2/src/{sysdir.c → libgit2/sysdir.c} +0 -0
  334. /data/vendor/libgit2/src/{sysdir.h → libgit2/sysdir.h} +0 -0
  335. /data/vendor/libgit2/src/{tag.h → libgit2/tag.h} +0 -0
  336. /data/vendor/libgit2/src/{threadstate.c → libgit2/threadstate.c} +0 -0
  337. /data/vendor/libgit2/src/{threadstate.h → libgit2/threadstate.h} +0 -0
  338. /data/vendor/libgit2/src/{trace.c → libgit2/trace.c} +0 -0
  339. /data/vendor/libgit2/src/{trace.h → libgit2/trace.h} +0 -0
  340. /data/vendor/libgit2/src/{trailer.c → libgit2/trailer.c} +0 -0
  341. /data/vendor/libgit2/src/{transaction.c → libgit2/transaction.c} +0 -0
  342. /data/vendor/libgit2/src/{transaction.h → libgit2/transaction.h} +0 -0
  343. /data/vendor/libgit2/src/{transport.c → libgit2/transport.c} +0 -0
  344. /data/vendor/libgit2/src/{transports → libgit2/transports}/auth.c +0 -0
  345. /data/vendor/libgit2/src/{transports → libgit2/transports}/auth.h +0 -0
  346. /data/vendor/libgit2/src/{transports → libgit2/transports}/auth_negotiate.c +0 -0
  347. /data/vendor/libgit2/src/{transports → libgit2/transports}/auth_negotiate.h +0 -0
  348. /data/vendor/libgit2/src/{transports → libgit2/transports}/auth_ntlm.c +0 -0
  349. /data/vendor/libgit2/src/{transports → libgit2/transports}/auth_ntlm.h +0 -0
  350. /data/vendor/libgit2/src/{transports → libgit2/transports}/credential.c +0 -0
  351. /data/vendor/libgit2/src/{transports → libgit2/transports}/credential_helpers.c +0 -0
  352. /data/vendor/libgit2/src/{transports → libgit2/transports}/git.c +0 -0
  353. /data/vendor/libgit2/src/{transports → libgit2/transports}/http.c +0 -0
  354. /data/vendor/libgit2/src/{transports → libgit2/transports}/http.h +0 -0
  355. /data/vendor/libgit2/src/{transports → libgit2/transports}/httpclient.h +0 -0
  356. /data/vendor/libgit2/src/{transports → libgit2/transports}/local.c +0 -0
  357. /data/vendor/libgit2/src/{transports → libgit2/transports}/smart.h +0 -0
  358. /data/vendor/libgit2/src/{transports → libgit2/transports}/smart_pkt.c +0 -0
  359. /data/vendor/libgit2/src/{transports → libgit2/transports}/smart_protocol.c +0 -0
  360. /data/vendor/libgit2/src/{transports → libgit2/transports}/ssh.h +0 -0
  361. /data/vendor/libgit2/src/{transports → libgit2/transports}/winhttp.c +0 -0
  362. /data/vendor/libgit2/src/{tree-cache.h → libgit2/tree-cache.h} +0 -0
  363. /data/vendor/libgit2/src/{userdiff.h → libgit2/userdiff.h} +0 -0
  364. /data/vendor/libgit2/src/{worktree.c → libgit2/worktree.c} +0 -0
  365. /data/vendor/libgit2/src/{worktree.h → libgit2/worktree.h} +0 -0
  366. /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/git-xdiff.h +0 -0
  367. /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xdiff.h +0 -0
  368. /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xdiffi.c +0 -0
  369. /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xdiffi.h +0 -0
  370. /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xemit.c +0 -0
  371. /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xemit.h +0 -0
  372. /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xhistogram.c +0 -0
  373. /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xinclude.h +0 -0
  374. /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xmacros.h +0 -0
  375. /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xmerge.c +0 -0
  376. /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xpatience.c +0 -0
  377. /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xprepare.c +0 -0
  378. /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xprepare.h +0 -0
  379. /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xtypes.h +0 -0
  380. /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xutils.c +0 -0
  381. /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xutils.h +0 -0
  382. /data/vendor/libgit2/src/{alloc.c → util/alloc.c} +0 -0
  383. /data/vendor/libgit2/src/{alloc.h → util/alloc.h} +0 -0
  384. /data/vendor/libgit2/src/{allocators → util/allocators}/failalloc.c +0 -0
  385. /data/vendor/libgit2/src/{allocators → util/allocators}/stdalloc.c +0 -0
  386. /data/vendor/libgit2/src/{allocators → util/allocators}/win32_leakcheck.c +0 -0
  387. /data/vendor/libgit2/src/{bitvec.h → util/bitvec.h} +0 -0
  388. /data/vendor/libgit2/src/{cc-compat.h → util/cc-compat.h} +0 -0
  389. /data/vendor/libgit2/src/{date.h → util/date.h} +0 -0
  390. /data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/sha1.c +0 -0
  391. /data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/sha1.h +0 -0
  392. /data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/ubc_check.c +0 -0
  393. /data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/ubc_check.h +0 -0
  394. /data/vendor/libgit2/src/{integer.h → util/integer.h} +0 -0
  395. /data/vendor/libgit2/src/{khash.h → util/khash.h} +0 -0
  396. /data/vendor/libgit2/src/{pool.c → util/pool.c} +0 -0
  397. /data/vendor/libgit2/src/{posix.c → util/posix.c} +0 -0
  398. /data/vendor/libgit2/src/{pqueue.c → util/pqueue.c} +0 -0
  399. /data/vendor/libgit2/src/{regexp.c → util/regexp.c} +0 -0
  400. /data/vendor/libgit2/src/{sortedcache.c → util/sortedcache.c} +0 -0
  401. /data/vendor/libgit2/src/{str.c → util/str.c} +0 -0
  402. /data/vendor/libgit2/src/{strmap.c → util/strmap.c} +0 -0
  403. /data/vendor/libgit2/src/{strnlen.h → util/strnlen.h} +0 -0
  404. /data/vendor/libgit2/src/{thread.h → util/thread.h} +0 -0
  405. /data/vendor/libgit2/src/{unix → util/unix}/pthread.h +0 -0
  406. /data/vendor/libgit2/src/{varint.c → util/varint.c} +0 -0
  407. /data/vendor/libgit2/src/{vector.c → util/vector.c} +0 -0
  408. /data/vendor/libgit2/src/{wildmatch.c → util/wildmatch.c} +0 -0
  409. /data/vendor/libgit2/src/{win32 → util/win32}/dir.c +0 -0
  410. /data/vendor/libgit2/src/{win32 → util/win32}/error.c +0 -0
  411. /data/vendor/libgit2/src/{win32 → util/win32}/findfile.c +0 -0
  412. /data/vendor/libgit2/src/{win32 → util/win32}/mingw-compat.h +0 -0
  413. /data/vendor/libgit2/src/{win32 → util/win32}/msvc-compat.h +0 -0
  414. /data/vendor/libgit2/src/{win32 → util/win32}/path_w32.c +0 -0
  415. /data/vendor/libgit2/src/{win32 → util/win32}/reparse.h +0 -0
  416. /data/vendor/libgit2/src/{win32 → util/win32}/thread.c +0 -0
  417. /data/vendor/libgit2/src/{win32 → util/win32}/utf-conv.c +0 -0
  418. /data/vendor/libgit2/src/{win32 → util/win32}/version.h +0 -0
  419. /data/vendor/libgit2/src/{win32 → util/win32}/w32_buffer.c +0 -0
  420. /data/vendor/libgit2/src/{win32 → util/win32}/w32_common.h +0 -0
  421. /data/vendor/libgit2/src/{win32 → util/win32}/w32_leakcheck.c +0 -0
  422. /data/vendor/libgit2/src/{win32 → util/win32}/w32_util.c +0 -0
  423. /data/vendor/libgit2/src/{win32 → util/win32}/win32-compat.h +0 -0
  424. /data/vendor/libgit2/src/{zstream.c → util/zstream.c} +0 -0
@@ -8,6 +8,8 @@
8
8
  #ifndef INCLUDE_sys_git_remote_h
9
9
  #define INCLUDE_sys_git_remote_h
10
10
 
11
+ #include "git2/remote.h"
12
+
11
13
  /**
12
14
  * @file git2/sys/remote.h
13
15
  * @brief Low-level remote functionality for custom transports
@@ -26,6 +28,19 @@ typedef enum {
26
28
  GIT_REMOTE_CAPABILITY_REACHABLE_OID = (1 << 1),
27
29
  } git_remote_capability_t;
28
30
 
31
+ /**
32
+ * Disposes libgit2-initialized fields from a git_remote_connect_options.
33
+ * This should only be used for git_remote_connect_options returned by
34
+ * git_transport_remote_connect_options.
35
+ *
36
+ * Note that this does not free the `git_remote_connect_options` itself, just
37
+ * the memory pointed to by it.
38
+ *
39
+ * @param opts The `git_remote_connect_options` struct to dispose.
40
+ */
41
+ GIT_EXTERN(void) git_remote_connect_options_dispose(
42
+ git_remote_connect_options *opts);
43
+
29
44
  /** @} */
30
45
  GIT_END_DECL
31
46
  #endif
@@ -9,10 +9,11 @@
9
9
  #define INCLUDE_sys_git_transport_h
10
10
 
11
11
  #include "git2/net.h"
12
+ #include "git2/proxy.h"
13
+ #include "git2/remote.h"
14
+ #include "git2/strarray.h"
12
15
  #include "git2/transport.h"
13
16
  #include "git2/types.h"
14
- #include "git2/strarray.h"
15
- #include "git2/proxy.h"
16
17
 
17
18
  /**
18
19
  * @file git2/sys/transport.h
@@ -261,14 +262,17 @@ GIT_EXTERN(int) git_transport_smart_certificate_check(git_transport *transport,
261
262
  GIT_EXTERN(int) git_transport_smart_credentials(git_credential **out, git_transport *transport, const char *user, int methods);
262
263
 
263
264
  /**
264
- * Get a copy of the proxy options
265
+ * Get a copy of the remote connect options
265
266
  *
266
- * The url is copied and must be freed by the caller.
267
+ * All data is copied and must be freed by the caller by calling
268
+ * `git_remote_connect_options_dispose`.
267
269
  *
268
270
  * @param out options struct to fill
269
271
  * @param transport the transport to extract the data from.
270
272
  */
271
- GIT_EXTERN(int) git_transport_smart_proxy_options(git_proxy_options *out, git_transport *transport);
273
+ GIT_EXTERN(int) git_transport_remote_connect_options(
274
+ git_remote_connect_options *out,
275
+ git_transport *transport);
272
276
 
273
277
  /*
274
278
  *** End of base transport interface ***
@@ -7,12 +7,33 @@
7
7
  #ifndef INCLUDE_git_version_h__
8
8
  #define INCLUDE_git_version_h__
9
9
 
10
- #define LIBGIT2_VERSION "1.4.5"
11
- #define LIBGIT2_VER_MAJOR 1
12
- #define LIBGIT2_VER_MINOR 4
13
- #define LIBGIT2_VER_REVISION 5
14
- #define LIBGIT2_VER_PATCH 0
10
+ /**
11
+ * The version string for libgit2. This string follows semantic
12
+ * versioning (v2) guidelines.
13
+ */
14
+ #define LIBGIT2_VERSION "1.5.0"
15
+
16
+ /** The major version number for this version of libgit2. */
17
+ #define LIBGIT2_VER_MAJOR 1
18
+
19
+ /** The minor version number for this version of libgit2. */
20
+ #define LIBGIT2_VER_MINOR 5
21
+
22
+ /** The revision ("teeny") version number for this version of libgit2. */
23
+ #define LIBGIT2_VER_REVISION 0
24
+
25
+ /** The Windows DLL patch number for this version of libgit2. */
26
+ #define LIBGIT2_VER_PATCH 0
27
+
28
+ /**
29
+ * The prerelease string for this version of libgit2. For development
30
+ * (nightly) builds, this will be "alpha". For prereleases, this will be
31
+ * a prerelease name like "beta" or "rc1". For final releases, this will
32
+ * be `NULL`.
33
+ */
34
+ #define LIBGIT2_VER_PRERELEASE NULL
15
35
 
16
- #define LIBGIT2_SOVERSION "1.4"
36
+ /** The library ABI soversion for this version of libgit2. */
37
+ #define LIBGIT2_SOVERSION "1.5"
17
38
 
18
39
  #endif
@@ -1,12 +1,22 @@
1
- add_library(git2internal OBJECT)
2
- set_target_properties(git2internal PROPERTIES C_STANDARD 90)
3
- set_target_properties(git2internal PROPERTIES C_EXTENSIONS OFF)
1
+ # The main libgit2 source tree: this CMakeLists.txt identifies platform
2
+ # support and includes the subprojects that make up core libgit2 support.
4
3
 
4
+ #
5
+ # Optional build configuration settings
6
+ #
5
7
 
6
8
  if(DEPRECATE_HARD)
7
9
  add_definitions(-DGIT_DEPRECATE_HARD)
8
10
  endif()
9
11
 
12
+ if(USE_LEAK_CHECKER STREQUAL "valgrind")
13
+ add_definitions(-DVALGRIND)
14
+ endif()
15
+
16
+ #
17
+ # Optional debugging functionality
18
+ #
19
+
10
20
  if(DEBUG_POOL)
11
21
  set(GIT_DEBUG_POOL 1)
12
22
  endif()
@@ -22,29 +32,32 @@ if(DEBUG_STRICT_OPEN)
22
32
  endif()
23
33
  add_feature_info(debugopen GIT_DEBUG_STRICT_OPEN "path validation in open")
24
34
 
35
+ #
36
+ # Optional feature enablement
37
+ #
25
38
 
26
- include(PkgBuildConfig)
27
- include(SanitizeBool)
39
+ include(SelectGSSAPI)
40
+ include(SelectHTTPSBackend)
41
+ include(SelectHashes)
42
+ include(SelectHTTPParser)
43
+ include(SelectRegex)
44
+ include(SelectSSH)
45
+ include(SelectWinHTTP)
46
+ include(SelectZlib)
28
47
 
29
- # This variable will contain the libraries we need to put into
30
- # libgit2.pc's Requires.private. That is, what we're linking to or
31
- # what someone who's statically linking us needs to link to.
32
- set(LIBGIT2_PC_REQUIRES "")
33
- # This will be set later if we use the system's http-parser library or
34
- # use iconv (OSX) and will be written to the Libs.private field in the
35
- # pc file.
36
- set(LIBGIT2_PC_LIBS "")
48
+ #
49
+ # Platform support
50
+ #
37
51
 
38
- set(LIBGIT2_INCLUDES
39
- "${CMAKE_CURRENT_BINARY_DIR}"
40
- "${PROJECT_SOURCE_DIR}/src"
41
- "${PROJECT_SOURCE_DIR}/include")
52
+ # futimes/futimens
42
53
 
43
54
  if(HAVE_FUTIMENS)
44
55
  set(GIT_USE_FUTIMENS 1)
45
56
  endif ()
46
57
  add_feature_info(futimens GIT_USE_FUTIMENS "futimens support")
47
58
 
59
+ # qsort
60
+
48
61
  check_prototype_definition(qsort_r
49
62
  "void qsort_r(void *base, size_t nmemb, size_t size, void *thunk, int (*compar)(void *, const void *, const void *))"
50
63
  "" "stdlib.h" GIT_QSORT_R_BSD)
@@ -55,69 +68,85 @@ check_prototype_definition(qsort_r
55
68
 
56
69
  check_function_exists(qsort_s GIT_QSORT_S)
57
70
 
71
+ # random / entropy data
72
+
58
73
  check_function_exists(getentropy GIT_RAND_GETENTROPY)
74
+ check_function_exists(getloadavg GIT_RAND_GETLOADAVG)
59
75
 
60
- # Find required dependencies
76
+ # determine architecture of the machine
61
77
 
62
- if(WIN32)
63
- list(APPEND LIBGIT2_SYSTEM_LIBS ws2_32)
64
- elseif(CMAKE_SYSTEM_NAME MATCHES "(Solaris|SunOS)")
65
- list(APPEND LIBGIT2_SYSTEM_LIBS socket nsl)
66
- list(APPEND LIBGIT2_PC_LIBS "-lsocket" "-lnsl")
67
- elseif(CMAKE_SYSTEM_NAME MATCHES "Haiku")
68
- list(APPEND LIBGIT2_SYSTEM_LIBS network)
69
- list(APPEND LIBGIT2_PC_LIBS "-lnetwork")
78
+ if(CMAKE_SIZEOF_VOID_P EQUAL 8)
79
+ set(GIT_ARCH_64 1)
80
+ elseif(CMAKE_SIZEOF_VOID_P EQUAL 4)
81
+ set(GIT_ARCH_32 1)
82
+ elseif(CMAKE_SIZEOF_VOID_P)
83
+ message(FATAL_ERROR "Unsupported architecture (pointer size is ${CMAKE_SIZEOF_VOID_P} bytes)")
84
+ else()
85
+ message(FATAL_ERROR "Unsupported architecture (CMAKE_SIZEOF_VOID_P is unset)")
86
+ endif()
87
+
88
+ # nanosecond mtime/ctime support
89
+
90
+ if(USE_NSEC)
91
+ set(GIT_USE_NSEC 1)
70
92
  endif()
71
93
 
94
+ # high-resolution stat support
95
+
96
+ if(HAVE_STRUCT_STAT_ST_MTIM)
97
+ set(GIT_USE_STAT_MTIM 1)
98
+ elseif(HAVE_STRUCT_STAT_ST_MTIMESPEC)
99
+ set(GIT_USE_STAT_MTIMESPEC 1)
100
+ elseif(HAVE_STRUCT_STAT_ST_MTIME_NSEC)
101
+ set(GIT_USE_STAT_MTIME_NSEC 1)
102
+ endif()
103
+
104
+ # realtime support
105
+
72
106
  check_library_exists(rt clock_gettime "time.h" NEED_LIBRT)
73
107
  if(NEED_LIBRT)
74
108
  list(APPEND LIBGIT2_SYSTEM_LIBS rt)
75
109
  list(APPEND LIBGIT2_PC_LIBS "-lrt")
76
110
  endif()
77
111
 
78
- if(USE_THREADS)
79
- list(APPEND LIBGIT2_SYSTEM_LIBS ${CMAKE_THREAD_LIBS_INIT})
80
- list(APPEND LIBGIT2_PC_LIBS ${CMAKE_THREAD_LIBS_INIT})
112
+ # platform libraries
113
+
114
+ if(WIN32)
115
+ list(APPEND LIBGIT2_SYSTEM_LIBS ws2_32)
81
116
  endif()
82
- add_feature_info(threadsafe USE_THREADS "threadsafe support")
83
117
 
118
+ if(CMAKE_SYSTEM_NAME MATCHES "(Solaris|SunOS)")
119
+ list(APPEND LIBGIT2_SYSTEM_LIBS socket nsl)
120
+ list(APPEND LIBGIT2_PC_LIBS "-lsocket" "-lnsl")
121
+ endif()
84
122
 
85
- if(WIN32 AND EMBED_SSH_PATH)
86
- file(GLOB SRC_SSH "${EMBED_SSH_PATH}/src/*.c")
87
- list(SORT SRC_SSH)
88
- target_sources(git2internal PRIVATE ${SRC_SSH})
123
+ if(CMAKE_SYSTEM_NAME MATCHES "Haiku")
124
+ list(APPEND LIBGIT2_SYSTEM_LIBS gnu network)
125
+ list(APPEND LIBGIT2_PC_LIBS "-lgnu -lnetwork")
126
+ endif()
89
127
 
90
- list(APPEND LIBGIT2_SYSTEM_INCLUDES "${EMBED_SSH_PATH}/include")
91
- file(WRITE "${EMBED_SSH_PATH}/src/libssh2_config.h" "#define HAVE_WINCNG\n#define LIBSSH2_WINCNG\n#include \"../win32/libssh2_config.h\"")
92
- set(GIT_SSH 1)
128
+ if(AMIGA)
129
+ add_definitions(-DNO_ADDRINFO -DNO_READDIR_R -DNO_MMAP)
93
130
  endif()
94
131
 
95
- include(SelectHTTPSBackend)
96
- include(SelectHashes)
97
- include(SelectHTTPParser)
98
- include(SelectRegex)
99
- include(SelectSSH)
100
- include(SelectWinHTTP)
101
- include(SelectZlib)
132
+ # threads
102
133
 
134
+ if(USE_THREADS)
135
+ if(NOT WIN32)
136
+ find_package(Threads REQUIRED)
137
+ list(APPEND LIBGIT2_SYSTEM_LIBS ${CMAKE_THREAD_LIBS_INIT})
138
+ list(APPEND LIBGIT2_PC_LIBS ${CMAKE_THREAD_LIBS_INIT})
139
+ endif()
103
140
 
104
- if(USE_SHA1 STREQUAL "CollisionDetection")
105
- file(GLOB SRC_SHA1 hash/sha1/collisiondetect.* hash/sha1/sha1dc/*)
106
- elseif(USE_SHA1 STREQUAL "OpenSSL")
107
- file(GLOB SRC_SHA1 hash/sha1/openssl.*)
108
- elseif(USE_SHA1 STREQUAL "CommonCrypto")
109
- file(GLOB SRC_SHA1 hash/sha1/common_crypto.*)
110
- elseif(USE_SHA1 STREQUAL "mbedTLS")
111
- file(GLOB SRC_SHA1 hash/sha1/mbedtls.*)
112
- elseif(USE_SHA1 STREQUAL "Win32")
113
- file(GLOB SRC_SHA1 hash/sha1/win32.*)
114
- elseif(USE_SHA1 STREQUAL "Generic")
115
- file(GLOB SRC_SHA1 hash/sha1/generic.*)
141
+ set(GIT_THREADS 1)
116
142
  endif()
117
- list(APPEND SRC_SHA1 "hash/sha1.h")
118
- target_sources(git2internal PRIVATE ${SRC_SHA1})
143
+ add_feature_info(threadsafe USE_THREADS "threadsafe support")
144
+
145
+ #
146
+ # Optional bundled features
147
+ #
119
148
 
120
- # Optional external dependency: ntlmclient
149
+ # ntlmclient
121
150
  if(USE_NTLMCLIENT)
122
151
  set(GIT_NTLM 1)
123
152
  add_subdirectory("${PROJECT_SOURCE_DIR}/deps/ntlmclient" "${PROJECT_BINARY_DIR}/deps/ntlmclient")
@@ -126,11 +155,10 @@ if(USE_NTLMCLIENT)
126
155
  endif()
127
156
  add_feature_info(ntlmclient GIT_NTLM "NTLM authentication support for Unix")
128
157
 
129
- # Optional external dependency: GSSAPI
158
+ #
159
+ # Optional external dependencies
130
160
 
131
- include(SelectGSSAPI)
132
-
133
- # Optional external dependency: iconv
161
+ # iconv
134
162
  if(USE_ICONV)
135
163
  find_package(Iconv)
136
164
  endif()
@@ -142,166 +170,28 @@ if(ICONV_FOUND)
142
170
  endif()
143
171
  add_feature_info(iconv GIT_USE_ICONV "iconv encoding conversion support")
144
172
 
173
+ #
174
+ # Configure support
175
+ #
145
176
 
146
- if(USE_THREADS)
147
- if(NOT WIN32)
148
- find_package(Threads REQUIRED)
149
- endif()
150
-
151
- set(GIT_THREADS 1)
152
- endif()
153
-
154
- if(USE_NSEC)
155
- set(GIT_USE_NSEC 1)
156
- endif()
157
-
158
- if(HAVE_STRUCT_STAT_ST_MTIM)
159
- set(GIT_USE_STAT_MTIM 1)
160
- elseif(HAVE_STRUCT_STAT_ST_MTIMESPEC)
161
- set(GIT_USE_STAT_MTIMESPEC 1)
162
- elseif(HAVE_STRUCT_STAT_ST_MTIME_NSEC)
163
- set(GIT_USE_STAT_MTIME_NSEC 1)
164
- endif()
165
-
166
- target_compile_definitions(git2internal PRIVATE _FILE_OFFSET_BITS=64)
167
-
168
- # Collect sourcefiles
169
- file(GLOB SRC_H
170
- "${PROJECT_SOURCE_DIR}/include/git2.h"
171
- "${PROJECT_SOURCE_DIR}/include/git2/*.h"
172
- "${PROJECT_SOURCE_DIR}/include/git2/sys/*.h")
173
- list(SORT SRC_H)
174
- target_sources(git2internal PRIVATE ${SRC_H})
175
-
176
- # On Windows use specific platform sources
177
- if(WIN32 AND NOT CYGWIN)
178
- set(WIN_RC "win32/git2.rc")
179
-
180
- file(GLOB SRC_OS win32/*.c win32/*.h)
181
- list(SORT SRC_OS)
182
- target_sources(git2internal PRIVATE ${SRC_OS})
183
- elseif(AMIGA)
184
- target_compile_definitions(git2internal PRIVATE NO_ADDRINFO NO_READDIR_R NO_MMAP)
185
- else()
186
- file(GLOB SRC_OS unix/*.c unix/*.h)
187
- list(SORT SRC_OS)
188
- target_sources(git2internal PRIVATE ${SRC_OS})
189
- endif()
190
-
191
- if(USE_LEAK_CHECKER STREQUAL "valgrind")
192
- target_compile_definitions(git2internal PRIVATE VALGRIND)
193
- endif()
177
+ configure_file(features.h.in git2/sys/features.h)
194
178
 
195
- file(GLOB SRC_GIT2 *.c *.h
196
- allocators/*.c allocators/*.h
197
- streams/*.c streams/*.h
198
- transports/*.c transports/*.h
199
- xdiff/*.c xdiff/*.h)
200
- list(SORT SRC_GIT2)
201
- target_sources(git2internal PRIVATE ${SRC_GIT2})
202
-
203
- if(APPLE)
204
- # The old Secure Transport API has been deprecated in macOS 10.15.
205
- set_source_files_properties(streams/stransport.c PROPERTIES COMPILE_FLAGS -Wno-deprecated)
206
- endif()
179
+ #
180
+ # Include child projects
181
+ #
207
182
 
208
- # the xdiff dependency is not (yet) warning-free, disable warnings as
209
- # errors for the xdiff sources until we've sorted them out
210
- if(MSVC)
211
- set_source_files_properties(xdiff/xdiffi.c PROPERTIES COMPILE_FLAGS -WX-)
212
- set_source_files_properties(xdiff/xemit.c PROPERTIES COMPILE_FLAGS -WX-)
213
- set_source_files_properties(xdiff/xhistogram.c PROPERTIES COMPILE_FLAGS -WX-)
214
- set_source_files_properties(xdiff/xmerge.c PROPERTIES COMPILE_FLAGS -WX-)
215
- set_source_files_properties(xdiff/xutils.c PROPERTIES COMPILE_FLAGS -WX-)
216
- set_source_files_properties(xdiff/xpatience.c PROPERTIES COMPILE_FLAGS -WX-)
217
- else()
218
- set_source_files_properties(xdiff/xdiffi.c PROPERTIES COMPILE_FLAGS "-Wno-sign-compare -Wno-unused-parameter")
219
- set_source_files_properties(xdiff/xemit.c PROPERTIES COMPILE_FLAGS "-Wno-sign-compare -Wno-unused-parameter")
220
- set_source_files_properties(xdiff/xhistogram.c PROPERTIES COMPILE_FLAGS "-Wno-sign-compare")
221
- set_source_files_properties(xdiff/xutils.c PROPERTIES COMPILE_FLAGS "-Wno-sign-compare")
222
- set_source_files_properties(xdiff/xpatience.c PROPERTIES COMPILE_FLAGS "-Wno-sign-compare")
223
- endif()
183
+ add_subdirectory(libgit2)
184
+ add_subdirectory(util)
224
185
 
225
- # Determine architecture of the machine
226
- if(CMAKE_SIZEOF_VOID_P EQUAL 8)
227
- set(GIT_ARCH_64 1)
228
- elseif(CMAKE_SIZEOF_VOID_P EQUAL 4)
229
- set(GIT_ARCH_32 1)
230
- elseif(CMAKE_SIZEOF_VOID_P)
231
- message(FATAL_ERROR "Unsupported architecture (pointer size is ${CMAKE_SIZEOF_VOID_P} bytes)")
232
- else()
233
- message(FATAL_ERROR "Unsupported architecture (CMAKE_SIZEOF_VOID_P is unset)")
186
+ if(BUILD_CLI)
187
+ add_subdirectory(cli)
234
188
  endif()
235
189
 
236
- configure_file(features.h.in git2/sys/features.h)
237
-
238
- ide_split_sources(git2internal)
239
- list(APPEND LIBGIT2_OBJECTS $<TARGET_OBJECTS:git2internal> ${LIBGIT2_DEPENDENCY_OBJECTS})
240
-
241
- target_include_directories(git2internal PRIVATE ${LIBGIT2_INCLUDES} ${LIBGIT2_DEPENDENCY_INCLUDES} PUBLIC ${PROJECT_SOURCE_DIR}/include)
242
- target_include_directories(git2internal SYSTEM PRIVATE ${LIBGIT2_SYSTEM_INCLUDES})
243
-
190
+ # re-export these to the root so that peer projects (tests, fuzzers,
191
+ # examples) can use them
244
192
  set(LIBGIT2_INCLUDES ${LIBGIT2_INCLUDES} PARENT_SCOPE)
245
193
  set(LIBGIT2_OBJECTS ${LIBGIT2_OBJECTS} PARENT_SCOPE)
246
194
  set(LIBGIT2_DEPENDENCY_INCLUDES ${LIBGIT2_DEPENDENCY_INCLUDES} PARENT_SCOPE)
247
195
  set(LIBGIT2_DEPENDENCY_OBJECTS ${LIBGIT2_DEPENDENCY_OBJECTS} PARENT_SCOPE)
248
196
  set(LIBGIT2_SYSTEM_INCLUDES ${LIBGIT2_SYSTEM_INCLUDES} PARENT_SCOPE)
249
197
  set(LIBGIT2_SYSTEM_LIBS ${LIBGIT2_SYSTEM_LIBS} PARENT_SCOPE)
250
-
251
- if(XCODE_VERSION)
252
- # This is required for Xcode to actually link the libgit2 library
253
- # when using only object libraries.
254
- file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/dummy.c "")
255
- list(APPEND LIBGIT2_OBJECTS ${CMAKE_CURRENT_BINARY_DIR}/dummy.c)
256
- endif()
257
-
258
- # Compile and link libgit2
259
- add_library(git2 ${WIN_RC} ${LIBGIT2_OBJECTS})
260
- target_link_libraries(git2 ${LIBGIT2_SYSTEM_LIBS})
261
-
262
- set_target_properties(git2 PROPERTIES C_STANDARD 90)
263
- set_target_properties(git2 PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
264
- set_target_properties(git2 PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
265
- set_target_properties(git2 PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
266
-
267
- # Workaround for Cmake bug #0011240 (see http://public.kitware.com/Bug/view.php?id=11240)
268
- # Win64+MSVC+static libs = linker error
269
- if(MSVC AND GIT_ARCH_64 AND NOT BUILD_SHARED_LIBS)
270
- set_target_properties(git2 PROPERTIES STATIC_LIBRARY_FLAGS "/MACHINE:x64")
271
- endif()
272
-
273
- ide_split_sources(git2)
274
-
275
- if(SONAME)
276
- set_target_properties(git2 PROPERTIES VERSION ${libgit2_VERSION})
277
- set_target_properties(git2 PROPERTIES SOVERSION "${libgit2_VERSION_MAJOR}.${libgit2_VERSION_MINOR}")
278
- if(LIBGIT2_FILENAME)
279
- target_compile_definitions(git2 PRIVATE LIBGIT2_FILENAME=\"${LIBGIT2_FILENAME}\")
280
- set_target_properties(git2 PROPERTIES OUTPUT_NAME ${LIBGIT2_FILENAME})
281
- elseif(DEFINED LIBGIT2_PREFIX)
282
- set_target_properties(git2 PROPERTIES PREFIX "${LIBGIT2_PREFIX}")
283
- endif()
284
- endif()
285
-
286
- pkg_build_config(NAME libgit2
287
- VERSION ${libgit2_VERSION}
288
- DESCRIPTION "The git library, take 2"
289
- LIBS_SELF git2
290
- PRIVATE_LIBS ${LIBGIT2_PC_LIBS}
291
- REQUIRES ${LIBGIT2_PC_REQUIRES}
292
- )
293
-
294
- if(MSVC_IDE)
295
- # Precompiled headers
296
- set_target_properties(git2 PROPERTIES COMPILE_FLAGS "/Yuprecompiled.h /FIprecompiled.h")
297
- set_source_files_properties(win32/precompiled.c COMPILE_FLAGS "/Ycprecompiled.h")
298
- endif()
299
-
300
- # Install
301
- install(TARGETS git2
302
- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
303
- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
304
- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
305
- )
306
- install(DIRECTORY ${PROJECT_SOURCE_DIR}/include/git2 DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
307
- install(FILES ${PROJECT_SOURCE_DIR}/include/git2.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
@@ -0,0 +1,12 @@
1
+ # libgit2 sources
2
+
3
+ This is the source that makes up the core of libgit2 and its related
4
+ projects.
5
+
6
+ * `cli`
7
+ A git-compatible command-line interface that uses libgit2.
8
+ * `libgit2`
9
+ This is the libgit2 project, a cross-platform, linkable library
10
+ implementation of Git that you can use in your application.
11
+ * `util`
12
+ A shared utility library for these projects.
@@ -0,0 +1,53 @@
1
+ set(CLI_INCLUDES
2
+ "${libgit2_BINARY_DIR}/src"
3
+ "${libgit2_SOURCE_DIR}/src/util"
4
+ "${libgit2_SOURCE_DIR}/src/cli"
5
+ "${libgit2_SOURCE_DIR}/include")
6
+
7
+ if(WIN32 AND NOT CYGWIN)
8
+ file(GLOB CLI_SRC_OS win32/*.c)
9
+ list(SORT CLI_SRC_OS)
10
+ else()
11
+ file(GLOB CLI_SRC_OS unix/*.c)
12
+ list(SORT CLI_SRC_OS)
13
+ endif()
14
+
15
+ file(GLOB CLI_SRC_C *.c *.h)
16
+ list(SORT CLI_SRC_C)
17
+
18
+ #
19
+ # The CLI currently needs to be statically linked against libgit2 because
20
+ # the utility library uses libgit2's thread-local error buffers. TODO:
21
+ # remove this dependency and allow us to dynamically link against libgit2.
22
+ #
23
+
24
+ if(BUILD_CLI STREQUAL "dynamic")
25
+ set(CLI_LIBGIT2_LIBRARY libgit2package)
26
+ else()
27
+ set(CLI_LIBGIT2_OBJECTS $<TARGET_OBJECTS:libgit2>)
28
+ endif()
29
+
30
+ #
31
+ # Compile and link the CLI
32
+ #
33
+
34
+ add_executable(git2_cli ${CLI_SRC_C} ${CLI_SRC_OS} ${CLI_OBJECTS}
35
+ $<TARGET_OBJECTS:util>
36
+ ${CLI_LIBGIT2_OBJECTS}
37
+ ${LIBGIT2_DEPENDENCY_OBJECTS})
38
+ target_link_libraries(git2_cli ${CLI_LIBGIT2_LIBRARY} ${LIBGIT2_SYSTEM_LIBS})
39
+
40
+ set_target_properties(git2_cli PROPERTIES C_STANDARD 90)
41
+ set_target_properties(git2_cli PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${libgit2_BINARY_DIR})
42
+
43
+ ide_split_sources(git2_cli)
44
+
45
+ target_include_directories(git2_cli PRIVATE ${CLI_INCLUDES})
46
+
47
+ if(MSVC_IDE)
48
+ # Precompiled headers
49
+ set_target_properties(git2_cli PROPERTIES COMPILE_FLAGS "/Yuprecompiled.h /FIprecompiled.h")
50
+ set_source_files_properties(win32/precompiled.c COMPILE_FLAGS "/Ycprecompiled.h")
51
+ endif()
52
+
53
+ install(TARGETS git2_cli RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
@@ -0,0 +1,26 @@
1
+ # cli
2
+
3
+ A git-compatible command-line interface that uses libgit2.
4
+
5
+ ## Adding commands
6
+
7
+ 1. Individual commands have a `main`-like top-level entrypoint. For example:
8
+
9
+ ```c
10
+ int cmd_help(int argc, char **argv)
11
+ ```
12
+
13
+ Although this is the same signature as `main`, commands are not built as
14
+ individual standalone executables, they'll be linked into the main cli.
15
+ (Though there may be an option for command executables to be built as
16
+ standalone executables in the future.)
17
+
18
+ 2. Commands are prototyped in `cmd.h` and added to `main.c`'s list of
19
+ commands (`cli_cmds[]`). Commands should be specified with their name,
20
+ entrypoint and a brief description that can be printed in `git help`.
21
+ This is done because commands are linked into the main cli.
22
+
23
+ 3. Commands should accept a `--help` option that displays their help
24
+ information. This will be shown when a user runs `<command> --help` and
25
+ when a user runs `help <command>`.
26
+
@@ -0,0 +1,20 @@
1
+ /*
2
+ * Copyright (C) the libgit2 contributors. All rights reserved.
3
+ *
4
+ * This file is part of libgit2, distributed under the GNU GPL v2 with
5
+ * a Linking Exception. For full terms see the included COPYING file.
6
+ */
7
+
8
+ #ifndef CLI_cli_h__
9
+ #define CLI_cli_h__
10
+
11
+ #define PROGRAM_NAME "git2"
12
+
13
+ #include "git2_util.h"
14
+
15
+ #include "error.h"
16
+ #include "opt.h"
17
+ #include "opt_usage.h"
18
+ #include "sighandler.h"
19
+
20
+ #endif /* CLI_cli_h__ */
@@ -0,0 +1,21 @@
1
+ /*
2
+ * Copyright (C) the libgit2 contributors. All rights reserved.
3
+ *
4
+ * This file is part of libgit2, distributed under the GNU GPL v2 with
5
+ * a Linking Exception. For full terms see the included COPYING file.
6
+ */
7
+
8
+ #include "cli.h"
9
+ #include "cmd.h"
10
+
11
+ const cli_cmd_spec *cli_cmd_spec_byname(const char *name)
12
+ {
13
+ const cli_cmd_spec *cmd;
14
+
15
+ for (cmd = cli_cmds; cmd->name; cmd++) {
16
+ if (!strcmp(cmd->name, name))
17
+ return cmd;
18
+ }
19
+
20
+ return NULL;
21
+ }
@@ -0,0 +1,33 @@
1
+ /*
2
+ * Copyright (C) the libgit2 contributors. All rights reserved.
3
+ *
4
+ * This file is part of libgit2, distributed under the GNU GPL v2 with
5
+ * a Linking Exception. For full terms see the included COPYING file.
6
+ */
7
+
8
+ #ifndef CLI_cmd_h__
9
+ #define CLI_cmd_h__
10
+
11
+ /* Command definitions */
12
+ typedef struct {
13
+ const char *name;
14
+ int (*fn)(int argc, char **argv);
15
+ const char *desc;
16
+ } cli_cmd_spec;
17
+
18
+ /* Options that are common to all commands (eg --help, --git-dir) */
19
+ extern const cli_opt_spec cli_common_opts[];
20
+
21
+ /* All the commands supported by the CLI */
22
+ extern const cli_cmd_spec cli_cmds[];
23
+
24
+ /* Find a command by name */
25
+ extern const cli_cmd_spec *cli_cmd_spec_byname(const char *name);
26
+
27
+ /* Commands */
28
+ extern int cmd_cat_file(int argc, char **argv);
29
+ extern int cmd_clone(int argc, char **argv);
30
+ extern int cmd_hash_object(int argc, char **argv);
31
+ extern int cmd_help(int argc, char **argv);
32
+
33
+ #endif /* CLI_cmd_h__ */