rugged 1.4.5 → 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 (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__ */