rugged 0.26.7 → 0.27.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (341) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -2
  3. data/ext/rugged/rugged_blame.c +6 -3
  4. data/ext/rugged/rugged_branch_collection.c +3 -6
  5. data/ext/rugged/rugged_commit.c +56 -0
  6. data/ext/rugged/rugged_config.c +44 -9
  7. data/ext/rugged/rugged_diff.c +3 -14
  8. data/ext/rugged/rugged_diff_hunk.c +1 -3
  9. data/ext/rugged/rugged_index.c +1 -5
  10. data/ext/rugged/rugged_note.c +1 -4
  11. data/ext/rugged/rugged_patch.c +1 -4
  12. data/ext/rugged/rugged_reference_collection.c +1 -7
  13. data/ext/rugged/rugged_remote.c +5 -8
  14. data/ext/rugged/rugged_remote_collection.c +1 -6
  15. data/ext/rugged/rugged_repo.c +16 -48
  16. data/ext/rugged/rugged_revwalk.c +7 -16
  17. data/ext/rugged/rugged_settings.c +28 -0
  18. data/ext/rugged/rugged_submodule_collection.c +3 -4
  19. data/ext/rugged/rugged_tag_collection.c +1 -5
  20. data/ext/rugged/rugged_tree.c +2 -3
  21. data/lib/rugged/repository.rb +43 -0
  22. data/lib/rugged/version.rb +1 -1
  23. data/vendor/libgit2/AUTHORS +1 -0
  24. data/vendor/libgit2/CMakeLists.txt +61 -510
  25. data/vendor/libgit2/cmake/Modules/EnableWarnings.cmake +14 -0
  26. data/vendor/libgit2/cmake/Modules/FindCoreFoundation.cmake +25 -8
  27. data/vendor/libgit2/cmake/Modules/FindSecurity.cmake +27 -8
  28. data/vendor/libgit2/cmake/Modules/FindStatNsec.cmake +20 -0
  29. data/vendor/libgit2/cmake/Modules/IdeSplitSources.cmake +22 -0
  30. data/vendor/libgit2/deps/http-parser/CMakeLists.txt +3 -0
  31. data/vendor/libgit2/deps/regex/CMakeLists.txt +2 -0
  32. data/vendor/libgit2/deps/winhttp/CMakeLists.txt +26 -0
  33. data/vendor/libgit2/deps/zlib/CMakeLists.txt +4 -0
  34. data/vendor/libgit2/include/git2/config.h +29 -2
  35. data/vendor/libgit2/include/git2/describe.h +1 -1
  36. data/vendor/libgit2/include/git2/diff.h +59 -8
  37. data/vendor/libgit2/include/git2/graph.h +3 -0
  38. data/vendor/libgit2/include/git2/merge.h +6 -0
  39. data/vendor/libgit2/include/git2/message.h +43 -3
  40. data/vendor/libgit2/include/git2/notes.h +89 -0
  41. data/vendor/libgit2/include/git2/odb.h +8 -1
  42. data/vendor/libgit2/include/git2/patch.h +2 -2
  43. data/vendor/libgit2/include/git2/pathspec.h +35 -18
  44. data/vendor/libgit2/include/git2/refs.h +3 -0
  45. data/vendor/libgit2/include/git2/remote.h +34 -4
  46. data/vendor/libgit2/include/git2/repository.h +6 -6
  47. data/vendor/libgit2/include/git2/reset.h +4 -4
  48. data/vendor/libgit2/include/git2/status.h +4 -0
  49. data/vendor/libgit2/include/git2/sys/config.h +4 -1
  50. data/vendor/libgit2/include/git2/sys/odb_backend.h +2 -1
  51. data/vendor/libgit2/include/git2/tree.h +4 -3
  52. data/vendor/libgit2/include/git2/types.h +1 -0
  53. data/vendor/libgit2/include/git2/version.h +4 -4
  54. data/vendor/libgit2/include/git2/worktree.h +1 -1
  55. data/vendor/libgit2/src/CMakeLists.txt +463 -0
  56. data/vendor/libgit2/src/annotated_commit.c +1 -1
  57. data/vendor/libgit2/src/annotated_commit.h +2 -0
  58. data/vendor/libgit2/src/apply.c +2 -1
  59. data/vendor/libgit2/src/apply.h +2 -0
  60. data/vendor/libgit2/src/attr.c +24 -4
  61. data/vendor/libgit2/src/attr.h +2 -0
  62. data/vendor/libgit2/src/attr_file.c +9 -2
  63. data/vendor/libgit2/src/attr_file.h +2 -0
  64. data/vendor/libgit2/src/attrcache.c +9 -1
  65. data/vendor/libgit2/src/attrcache.h +2 -0
  66. data/vendor/libgit2/src/blame.c +1 -0
  67. data/vendor/libgit2/src/blame.h +2 -1
  68. data/vendor/libgit2/src/blame_git.c +1 -0
  69. data/vendor/libgit2/src/blame_git.h +2 -0
  70. data/vendor/libgit2/src/blob.c +2 -2
  71. data/vendor/libgit2/src/blob.h +2 -0
  72. data/vendor/libgit2/src/branch.c +8 -1
  73. data/vendor/libgit2/src/branch.h +2 -0
  74. data/vendor/libgit2/src/buf_text.c +7 -7
  75. data/vendor/libgit2/src/buf_text.h +3 -3
  76. data/vendor/libgit2/src/buffer.c +31 -1
  77. data/vendor/libgit2/src/buffer.h +3 -0
  78. data/vendor/libgit2/src/cache.c +2 -2
  79. data/vendor/libgit2/src/cache.h +2 -0
  80. data/vendor/libgit2/src/cc-compat.h +3 -3
  81. data/vendor/libgit2/src/checkout.c +30 -19
  82. data/vendor/libgit2/src/checkout.h +2 -0
  83. data/vendor/libgit2/src/cherrypick.c +1 -0
  84. data/vendor/libgit2/src/clone.c +2 -1
  85. data/vendor/libgit2/src/clone.h +4 -0
  86. data/vendor/libgit2/src/commit.c +2 -1
  87. data/vendor/libgit2/src/commit.h +2 -0
  88. data/vendor/libgit2/src/commit_list.c +1 -1
  89. data/vendor/libgit2/src/commit_list.h +2 -0
  90. data/vendor/libgit2/src/common.h +11 -5
  91. data/vendor/libgit2/src/config.c +12 -10
  92. data/vendor/libgit2/src/config.h +2 -0
  93. data/vendor/libgit2/src/config_cache.c +1 -0
  94. data/vendor/libgit2/src/config_file.c +287 -786
  95. data/vendor/libgit2/src/config_file.h +4 -3
  96. data/vendor/libgit2/src/config_parse.c +525 -0
  97. data/vendor/libgit2/src/config_parse.h +64 -0
  98. data/vendor/libgit2/src/crlf.c +2 -1
  99. data/vendor/libgit2/src/delta.c +28 -30
  100. data/vendor/libgit2/src/delta.h +1 -0
  101. data/vendor/libgit2/src/describe.c +3 -1
  102. data/vendor/libgit2/src/diff.c +148 -2
  103. data/vendor/libgit2/src/diff.h +3 -1
  104. data/vendor/libgit2/src/diff_driver.c +12 -9
  105. data/vendor/libgit2/src/diff_driver.h +4 -1
  106. data/vendor/libgit2/src/diff_file.c +7 -4
  107. data/vendor/libgit2/src/diff_file.h +1 -0
  108. data/vendor/libgit2/src/diff_generate.c +6 -3
  109. data/vendor/libgit2/src/diff_generate.h +6 -1
  110. data/vendor/libgit2/src/diff_parse.c +5 -4
  111. data/vendor/libgit2/src/diff_parse.h +2 -0
  112. data/vendor/libgit2/src/diff_print.c +2 -0
  113. data/vendor/libgit2/src/diff_stats.c +2 -0
  114. data/vendor/libgit2/src/diff_tform.c +2 -1
  115. data/vendor/libgit2/src/diff_tform.h +4 -1
  116. data/vendor/libgit2/src/diff_xdiff.c +5 -2
  117. data/vendor/libgit2/src/diff_xdiff.h +2 -0
  118. data/vendor/libgit2/src/errors.c +2 -0
  119. data/vendor/libgit2/src/features.h.in +36 -0
  120. data/vendor/libgit2/src/fetch.c +2 -2
  121. data/vendor/libgit2/src/fetch.h +4 -0
  122. data/vendor/libgit2/src/fetchhead.c +3 -3
  123. data/vendor/libgit2/src/fetchhead.h +3 -0
  124. data/vendor/libgit2/src/filebuf.c +2 -1
  125. data/vendor/libgit2/src/filebuf.h +2 -0
  126. data/vendor/libgit2/src/fileops.c +12 -1
  127. data/vendor/libgit2/src/fileops.h +7 -1
  128. data/vendor/libgit2/src/filter.c +2 -1
  129. data/vendor/libgit2/src/filter.h +1 -0
  130. data/vendor/libgit2/src/fnmatch.c +2 -2
  131. data/vendor/libgit2/src/fnmatch.h +3 -4
  132. data/vendor/libgit2/src/global.c +4 -3
  133. data/vendor/libgit2/src/global.h +1 -5
  134. data/vendor/libgit2/src/graph.c +2 -0
  135. data/vendor/libgit2/src/hash.c +0 -1
  136. data/vendor/libgit2/src/hash.h +3 -1
  137. data/vendor/libgit2/src/hash/hash_collisiondetect.h +3 -3
  138. data/vendor/libgit2/src/hash/hash_common_crypto.h +18 -5
  139. data/vendor/libgit2/src/hash/hash_generic.c +2 -2
  140. data/vendor/libgit2/src/hash/hash_generic.h +5 -3
  141. data/vendor/libgit2/src/hash/hash_openssl.h +3 -3
  142. data/vendor/libgit2/src/hash/hash_win32.c +57 -14
  143. data/vendor/libgit2/src/hash/hash_win32.h +4 -3
  144. data/vendor/libgit2/src/hashsig.c +3 -0
  145. data/vendor/libgit2/src/ident.c +2 -0
  146. data/vendor/libgit2/src/idxmap.h +2 -1
  147. data/vendor/libgit2/src/ignore.c +14 -2
  148. data/vendor/libgit2/src/ignore.h +2 -0
  149. data/vendor/libgit2/src/index.c +20 -40
  150. data/vendor/libgit2/src/index.h +2 -0
  151. data/vendor/libgit2/src/indexer.c +13 -5
  152. data/vendor/libgit2/src/indexer.h +5 -1
  153. data/vendor/libgit2/src/integer.h +1 -1
  154. data/vendor/libgit2/src/iterator.c +44 -3
  155. data/vendor/libgit2/src/iterator.h +3 -0
  156. data/vendor/libgit2/src/map.h +1 -1
  157. data/vendor/libgit2/src/merge.c +155 -33
  158. data/vendor/libgit2/src/merge.h +2 -0
  159. data/vendor/libgit2/src/merge_driver.c +2 -2
  160. data/vendor/libgit2/src/merge_driver.h +2 -0
  161. data/vendor/libgit2/src/merge_file.c +3 -0
  162. data/vendor/libgit2/src/message.h +3 -1
  163. data/vendor/libgit2/src/mwindow.c +1 -1
  164. data/vendor/libgit2/src/mwindow.h +2 -0
  165. data/vendor/libgit2/src/netops.c +75 -62
  166. data/vendor/libgit2/src/netops.h +2 -1
  167. data/vendor/libgit2/src/notes.c +164 -48
  168. data/vendor/libgit2/src/notes.h +1 -1
  169. data/vendor/libgit2/src/object.c +14 -3
  170. data/vendor/libgit2/src/object.h +4 -0
  171. data/vendor/libgit2/src/object_api.c +3 -2
  172. data/vendor/libgit2/src/odb.c +104 -38
  173. data/vendor/libgit2/src/odb.h +3 -1
  174. data/vendor/libgit2/src/odb_loose.c +414 -267
  175. data/vendor/libgit2/src/odb_mempack.c +1 -0
  176. data/vendor/libgit2/src/odb_pack.c +2 -1
  177. data/vendor/libgit2/src/offmap.h +1 -0
  178. data/vendor/libgit2/src/oid.c +2 -1
  179. data/vendor/libgit2/src/oid.h +3 -8
  180. data/vendor/libgit2/src/oidarray.c +2 -1
  181. data/vendor/libgit2/src/oidarray.h +1 -0
  182. data/vendor/libgit2/src/oidmap.h +1 -0
  183. data/vendor/libgit2/src/pack-objects.c +5 -1
  184. data/vendor/libgit2/src/pack-objects.h +1 -1
  185. data/vendor/libgit2/src/pack.c +2 -6
  186. data/vendor/libgit2/src/pack.h +2 -1
  187. data/vendor/libgit2/src/parse.c +121 -0
  188. data/vendor/libgit2/src/parse.h +61 -0
  189. data/vendor/libgit2/src/patch.c +9 -2
  190. data/vendor/libgit2/src/patch.h +2 -0
  191. data/vendor/libgit2/src/patch_generate.c +6 -5
  192. data/vendor/libgit2/src/patch_generate.h +1 -0
  193. data/vendor/libgit2/src/patch_parse.c +265 -276
  194. data/vendor/libgit2/src/patch_parse.h +6 -11
  195. data/vendor/libgit2/src/path.c +24 -181
  196. data/vendor/libgit2/src/path.h +14 -73
  197. data/vendor/libgit2/src/pathspec.c +2 -1
  198. data/vendor/libgit2/src/pathspec.h +2 -1
  199. data/vendor/libgit2/src/pool.c +8 -0
  200. data/vendor/libgit2/src/pool.h +1 -0
  201. data/vendor/libgit2/src/posix.c +2 -1
  202. data/vendor/libgit2/src/posix.h +1 -0
  203. data/vendor/libgit2/src/pqueue.c +1 -0
  204. data/vendor/libgit2/src/pqueue.h +2 -0
  205. data/vendor/libgit2/src/proxy.c +2 -1
  206. data/vendor/libgit2/src/proxy.h +3 -1
  207. data/vendor/libgit2/src/push.c +4 -171
  208. data/vendor/libgit2/src/push.h +2 -0
  209. data/vendor/libgit2/src/rebase.c +1 -0
  210. data/vendor/libgit2/src/refdb.c +2 -3
  211. data/vendor/libgit2/src/refdb.h +2 -0
  212. data/vendor/libgit2/src/refdb_fs.c +5 -3
  213. data/vendor/libgit2/src/refdb_fs.h +4 -0
  214. data/vendor/libgit2/src/reflog.c +1 -0
  215. data/vendor/libgit2/src/reflog.h +2 -1
  216. data/vendor/libgit2/src/refs.c +1 -0
  217. data/vendor/libgit2/src/refs.h +2 -1
  218. data/vendor/libgit2/src/refspec.c +2 -2
  219. data/vendor/libgit2/src/refspec.h +2 -0
  220. data/vendor/libgit2/src/remote.c +56 -10
  221. data/vendor/libgit2/src/remote.h +2 -0
  222. data/vendor/libgit2/src/repository.c +16 -14
  223. data/vendor/libgit2/src/repository.h +2 -0
  224. data/vendor/libgit2/src/reset.c +6 -5
  225. data/vendor/libgit2/src/revert.c +1 -0
  226. data/vendor/libgit2/src/revparse.c +3 -5
  227. data/vendor/libgit2/src/revwalk.c +2 -2
  228. data/vendor/libgit2/src/revwalk.h +2 -0
  229. data/vendor/libgit2/src/settings.c +6 -8
  230. data/vendor/libgit2/src/sha1_lookup.c +2 -216
  231. data/vendor/libgit2/src/sha1_lookup.h +2 -6
  232. data/vendor/libgit2/src/signature.c +8 -3
  233. data/vendor/libgit2/src/signature.h +2 -0
  234. data/vendor/libgit2/src/sortedcache.c +7 -0
  235. data/vendor/libgit2/src/sortedcache.h +2 -0
  236. data/vendor/libgit2/src/stash.c +1 -0
  237. data/vendor/libgit2/src/status.c +14 -9
  238. data/vendor/libgit2/src/status.h +2 -0
  239. data/vendor/libgit2/src/{curl_stream.c → streams/curl.c} +2 -0
  240. data/vendor/libgit2/src/{curl_stream.h → streams/curl.h} +4 -2
  241. data/vendor/libgit2/src/{openssl_stream.c → streams/openssl.c} +47 -18
  242. data/vendor/libgit2/src/{openssl_stream.h → streams/openssl.h} +6 -2
  243. data/vendor/libgit2/src/{socket_stream.c → streams/socket.c} +2 -2
  244. data/vendor/libgit2/src/{socket_stream.h → streams/socket.h} +4 -2
  245. data/vendor/libgit2/src/{stransport_stream.c → streams/stransport.c} +4 -2
  246. data/vendor/libgit2/src/{stransport_stream.h → streams/stransport.h} +4 -2
  247. data/vendor/libgit2/src/{tls_stream.c → streams/tls.c} +4 -3
  248. data/vendor/libgit2/src/{tls_stream.h → streams/tls.h} +4 -2
  249. data/vendor/libgit2/src/submodule.c +28 -80
  250. data/vendor/libgit2/src/submodule.h +2 -13
  251. data/vendor/libgit2/src/sysdir.c +75 -8
  252. data/vendor/libgit2/src/sysdir.h +2 -1
  253. data/vendor/libgit2/src/tag.c +2 -2
  254. data/vendor/libgit2/src/tag.h +2 -0
  255. data/vendor/libgit2/src/thread-utils.c +1 -0
  256. data/vendor/libgit2/src/thread-utils.h +1 -1
  257. data/vendor/libgit2/src/trace.c +2 -2
  258. data/vendor/libgit2/src/trace.h +2 -0
  259. data/vendor/libgit2/src/trailer.c +416 -0
  260. data/vendor/libgit2/src/transaction.c +2 -1
  261. data/vendor/libgit2/src/transport.c +2 -0
  262. data/vendor/libgit2/src/transports/auth.c +2 -1
  263. data/vendor/libgit2/src/transports/auth.h +4 -3
  264. data/vendor/libgit2/src/transports/auth_negotiate.c +2 -1
  265. data/vendor/libgit2/src/transports/auth_negotiate.h +3 -3
  266. data/vendor/libgit2/src/transports/cred.c +2 -0
  267. data/vendor/libgit2/src/transports/cred.h +4 -2
  268. data/vendor/libgit2/src/transports/cred_helpers.c +1 -0
  269. data/vendor/libgit2/src/transports/git.c +3 -1
  270. data/vendor/libgit2/src/transports/http.c +10 -14
  271. data/vendor/libgit2/src/transports/http.h +23 -0
  272. data/vendor/libgit2/src/transports/local.c +23 -5
  273. data/vendor/libgit2/src/transports/smart.c +3 -1
  274. data/vendor/libgit2/src/transports/smart.h +23 -16
  275. data/vendor/libgit2/src/transports/smart_pkt.c +114 -130
  276. data/vendor/libgit2/src/transports/smart_protocol.c +26 -22
  277. data/vendor/libgit2/src/transports/ssh.c +12 -7
  278. data/vendor/libgit2/src/transports/ssh.h +4 -2
  279. data/vendor/libgit2/src/transports/winhttp.c +19 -21
  280. data/vendor/libgit2/src/tree-cache.c +1 -0
  281. data/vendor/libgit2/src/tree-cache.h +1 -0
  282. data/vendor/libgit2/src/tree.c +20 -14
  283. data/vendor/libgit2/src/tree.h +2 -0
  284. data/vendor/libgit2/src/tsort.c +0 -1
  285. data/vendor/libgit2/src/unix/map.c +4 -1
  286. data/vendor/libgit2/src/unix/posix.h +8 -4
  287. data/vendor/libgit2/src/unix/pthread.h +1 -1
  288. data/vendor/libgit2/src/unix/realpath.c +4 -1
  289. data/vendor/libgit2/src/util.c +6 -5
  290. data/vendor/libgit2/src/util.h +39 -111
  291. data/vendor/libgit2/src/varint.c +0 -1
  292. data/vendor/libgit2/src/varint.h +2 -0
  293. data/vendor/libgit2/src/vector.c +1 -1
  294. data/vendor/libgit2/src/win32/dir.c +3 -0
  295. data/vendor/libgit2/src/win32/dir.h +4 -3
  296. data/vendor/libgit2/src/win32/error.c +1 -1
  297. data/vendor/libgit2/src/win32/error.h +4 -2
  298. data/vendor/libgit2/src/win32/findfile.c +2 -1
  299. data/vendor/libgit2/src/win32/findfile.h +4 -2
  300. data/vendor/libgit2/src/win32/map.c +2 -0
  301. data/vendor/libgit2/src/win32/mingw-compat.h +3 -3
  302. data/vendor/libgit2/src/win32/msvc-compat.h +3 -3
  303. data/vendor/libgit2/src/win32/path_w32.c +7 -12
  304. data/vendor/libgit2/src/win32/path_w32.h +3 -2
  305. data/vendor/libgit2/src/win32/posix.h +2 -2
  306. data/vendor/libgit2/src/win32/posix_w32.c +11 -5
  307. data/vendor/libgit2/src/win32/precompiled.h +2 -1
  308. data/vendor/libgit2/src/win32/reparse.h +2 -2
  309. data/vendor/libgit2/src/win32/thread.c +1 -0
  310. data/vendor/libgit2/src/win32/thread.h +2 -2
  311. data/vendor/libgit2/src/win32/utf-conv.c +0 -1
  312. data/vendor/libgit2/src/win32/utf-conv.h +4 -3
  313. data/vendor/libgit2/src/win32/w32_buffer.c +1 -1
  314. data/vendor/libgit2/src/win32/w32_buffer.h +4 -2
  315. data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.c +2 -1
  316. data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.h +85 -2
  317. data/vendor/libgit2/src/win32/w32_stack.c +2 -1
  318. data/vendor/libgit2/src/win32/w32_stack.h +5 -3
  319. data/vendor/libgit2/src/win32/w32_util.h +4 -2
  320. data/vendor/libgit2/src/win32/win32-compat.h +3 -3
  321. data/vendor/libgit2/src/worktree.c +4 -5
  322. data/vendor/libgit2/src/worktree.h +2 -0
  323. data/vendor/libgit2/src/xdiff/xdiff.h +22 -13
  324. data/vendor/libgit2/src/xdiff/xdiffi.c +523 -81
  325. data/vendor/libgit2/src/xdiff/xdiffi.h +2 -2
  326. data/vendor/libgit2/src/xdiff/xemit.c +63 -39
  327. data/vendor/libgit2/src/xdiff/xemit.h +2 -2
  328. data/vendor/libgit2/src/xdiff/xhistogram.c +0 -1
  329. data/vendor/libgit2/src/xdiff/xinclude.h +3 -2
  330. data/vendor/libgit2/src/xdiff/xmacros.h +2 -2
  331. data/vendor/libgit2/src/xdiff/xmerge.c +80 -20
  332. data/vendor/libgit2/src/xdiff/xpatience.c +41 -9
  333. data/vendor/libgit2/src/xdiff/xprepare.c +2 -2
  334. data/vendor/libgit2/src/xdiff/xprepare.h +2 -2
  335. data/vendor/libgit2/src/xdiff/xtypes.h +2 -2
  336. data/vendor/libgit2/src/xdiff/xutils.c +47 -27
  337. data/vendor/libgit2/src/xdiff/xutils.h +2 -5
  338. data/vendor/libgit2/src/zstream.c +65 -45
  339. data/vendor/libgit2/src/zstream.h +9 -2
  340. metadata +27 -13
  341. data/vendor/libgit2/include/git2/sys/remote.h +0 -16
@@ -0,0 +1,14 @@
1
+ MACRO(ENABLE_WARNINGS flag)
2
+ IF(ENABLE_WERROR)
3
+ ADD_C_FLAG_IF_SUPPORTED(-Werror=${flag})
4
+ ELSE()
5
+ ADD_C_FLAG_IF_SUPPORTED(-W${flag})
6
+ ENDIF()
7
+ ENDMACRO()
8
+
9
+ MACRO(DISABLE_WARNINGS flag)
10
+ ADD_C_FLAG_IF_SUPPORTED(-Wno-${flag})
11
+ IF(ENABLE_WERROR)
12
+ ADD_C_FLAG_IF_SUPPORTED(-Wno-error=${flag})
13
+ ENDIF()
14
+ ENDMACRO()
@@ -1,9 +1,26 @@
1
- IF (COREFOUNDATION_INCLUDE_DIR AND COREFOUNDATION_DIRS)
2
- SET(COREFOUNDATION_FOUND TRUE)
3
- ELSE ()
4
- FIND_PATH(COREFOUNDATION_INCLUDE_DIR NAMES CoreFoundation.h)
5
- FIND_LIBRARY(COREFOUNDATION_DIRS NAMES CoreFoundation)
6
- IF (COREFOUNDATION_INCLUDE_DIR AND COREFOUNDATION_DIRS)
7
- SET(COREFOUNDATION_FOUND TRUE)
8
- ENDIF ()
1
+ # Find CoreFoundation.framework
2
+ # This will define :
3
+ #
4
+ # COREFOUNDATION_FOUND
5
+ # COREFOUNDATION_LIBRARIES
6
+ # COREFOUNDATION_LDFLAGS
7
+ #
8
+
9
+ FIND_PATH(COREFOUNDATION_INCLUDE_DIR NAMES CoreFoundation.h)
10
+ FIND_LIBRARY(COREFOUNDATION_LIBRARIES NAMES CoreFoundation)
11
+ IF (COREFOUNDATION_INCLUDE_DIR AND COREFOUNDATION_LIBRARIES)
12
+ IF (NOT CoreFoundation_FIND_QUIETLY)
13
+ MESSAGE("-- Found CoreFoundation ${COREFOUNDATION_LIBRARIES}")
14
+ ENDIF()
15
+ SET(COREFOUNDATION_FOUND TRUE)
16
+ SET(COREFOUNDATION_LDFLAGS "-framework CoreFoundation")
9
17
  ENDIF ()
18
+
19
+ IF (CoreFoundation_FIND_REQUIRED AND NOT COREFOUNDATION_FOUND)
20
+ MESSAGE(FATAL "-- CoreFoundation not found")
21
+ ENDIF()
22
+
23
+ MARK_AS_ADVANCED(
24
+ COREFOUNDATION_INCLUDE_DIR
25
+ COREFOUNDATION_LIBRARIES
26
+ )
@@ -1,9 +1,28 @@
1
- IF (SECURITY_INCLUDE_DIR AND SECURITY_DIRS)
2
- SET(SECURITY_FOUND TRUE)
3
- ELSE ()
4
- FIND_PATH(SECURITY_INCLUDE_DIR NAMES Security/Security.h)
5
- FIND_LIBRARY(SECURITY_DIRS NAMES Security)
6
- IF (SECURITY_INCLUDE_DIR AND SECURITY_DIRS)
7
- SET(SECURITY_FOUND TRUE)
8
- ENDIF ()
1
+ # Find Security.framework
2
+ # This will define :
3
+ #
4
+ # SECURITY_FOUND
5
+ # SECURITY_LIBRARIES
6
+ # SECURITY_LDFLAGS
7
+ # SECURITY_HAS_SSLCREATECONTEXT
8
+ #
9
+
10
+ FIND_PATH(SECURITY_INCLUDE_DIR NAMES Security/Security.h)
11
+ FIND_LIBRARY(SECURITY_LIBRARIES NAMES Security)
12
+ IF (SECURITY_INCLUDE_DIR AND SECURITY_LIBRARIES)
13
+ IF (NOT Security_FIND_QUIETLY)
14
+ MESSAGE("-- Found Security ${SECURITY_LIBRARIES}")
15
+ ENDIF()
16
+ SET(SECURITY_FOUND TRUE)
17
+ SET(SECURITY_LDFLAGS "-framework Security")
18
+ CHECK_LIBRARY_EXISTS("${SECURITY_LIBRARIES}" SSLCreateContext "Security/SecureTransport.h" SECURITY_HAS_SSLCREATECONTEXT)
9
19
  ENDIF ()
20
+
21
+ IF (Security_FIND_REQUIRED AND NOT SECURITY_FOUND)
22
+ MESSAGE(FATAL "-- Security not found")
23
+ ENDIF()
24
+
25
+ MARK_AS_ADVANCED(
26
+ SECURITY_INCLUDE_DIR
27
+ SECURITY_LIBRARIES
28
+ )
@@ -0,0 +1,20 @@
1
+ CHECK_STRUCT_HAS_MEMBER ("struct stat" st_mtim "sys/types.h;sys/stat.h"
2
+ HAVE_STRUCT_STAT_ST_MTIM LANGUAGE C)
3
+ CHECK_STRUCT_HAS_MEMBER ("struct stat" st_mtimespec "sys/types.h;sys/stat.h"
4
+ HAVE_STRUCT_STAT_ST_MTIMESPEC LANGUAGE C)
5
+ CHECK_STRUCT_HAS_MEMBER("struct stat" st_mtime_nsec sys/stat.h
6
+ HAVE_STRUCT_STAT_MTIME_NSEC LANGUAGE C)
7
+
8
+ IF (HAVE_STRUCT_STAT_ST_MTIM)
9
+ CHECK_STRUCT_HAS_MEMBER("struct stat" st_mtim.tv_nsec sys/stat.h
10
+ HAVE_STRUCT_STAT_NSEC LANGUAGE C)
11
+ ELSEIF (HAVE_STRUCT_STAT_ST_MTIMESPEC)
12
+ CHECK_STRUCT_HAS_MEMBER("struct stat" st_mtimespec.tv_nsec sys/stat.h
13
+ HAVE_STRUCT_STAT_NSEC LANGUAGE C)
14
+ ELSE ()
15
+ SET( HAVE_STRUCT_STAT_NSEC ON )
16
+ ENDIF()
17
+
18
+ IF (HAVE_STRUCT_STAT_NSEC OR WIN32)
19
+ OPTION( USE_NSEC "Care about sub-second file mtimes and ctimes" ON )
20
+ ENDIF()
@@ -0,0 +1,22 @@
1
+ # This function splits the sources files up into their appropriate
2
+ # subdirectories. This is especially useful for IDEs like Xcode and
3
+ # Visual Studio, so that you can navigate into the libgit2_clar project,
4
+ # and see the folders within the tests folder (instead of just seeing all
5
+ # source and tests in a single folder.)
6
+ FUNCTION(IDE_SPLIT_SOURCES target)
7
+ IF(MSVC_IDE OR CMAKE_GENERATOR STREQUAL Xcode)
8
+ GET_TARGET_PROPERTY(sources ${target} SOURCES)
9
+ FOREACH(source ${sources})
10
+ IF(source MATCHES ".*/")
11
+ STRING(REPLACE ${libgit2_SOURCE_DIR}/ "" rel ${source})
12
+ IF(rel)
13
+ STRING(REGEX REPLACE "/([^/]*)$" "" rel ${rel})
14
+ IF(rel)
15
+ STRING(REPLACE "/" "\\\\" rel ${rel})
16
+ SOURCE_GROUP(${rel} FILES ${source})
17
+ ENDIF()
18
+ ENDIF()
19
+ ENDIF()
20
+ ENDFOREACH()
21
+ ENDIF()
22
+ ENDFUNCTION()
@@ -0,0 +1,3 @@
1
+ FILE(GLOB SRC_HTTP "*.c" "*.h")
2
+
3
+ ADD_LIBRARY(http-parser OBJECT ${SRC_HTTP})
@@ -0,0 +1,2 @@
1
+ INCLUDE_DIRECTORIES(".")
2
+ ADD_LIBRARY(regex OBJECT "regex.c" "regex.h")
@@ -0,0 +1,26 @@
1
+ FIND_PROGRAM(DLLTOOL dlltool CMAKE_FIND_ROOT_PATH_BOTH)
2
+ IF (NOT DLLTOOL)
3
+ MESSAGE(FATAL_ERROR "Could not find dlltool command")
4
+ ENDIF ()
5
+
6
+ SET(LIBWINHTTP_PATH "${libgit2_BINARY_DIR}/deps/winhttp")
7
+ SET(LIBWINHTTP_PATH ${LIBWINHTTP_PATH} PARENT_SCOPE)
8
+ FILE(MAKE_DIRECTORY ${LIBWINHTTP_PATH})
9
+
10
+ IF (CMAKE_SIZEOF_VOID_P EQUAL 8)
11
+ set(WINHTTP_DEF "winhttp64.def")
12
+ ELSE()
13
+ set(WINHTTP_DEF "winhttp.def")
14
+ ENDIF()
15
+
16
+ ADD_CUSTOM_COMMAND(
17
+ OUTPUT ${LIBWINHTTP_PATH}/libwinhttp.a
18
+ COMMAND ${DLLTOOL} -d ${WINHTTP_DEF} -k -D winhttp.dll -l libwinhttp.a
19
+ DEPENDS ${WINHTTP_DEF}
20
+ WORKING_DIRECTORY ${LIBWINHTTP_PATH}
21
+ )
22
+
23
+ SET_SOURCE_FILES_PROPERTIES(
24
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/transports/winhttp.c
25
+ PROPERTIES OBJECT_DEPENDS ${LIBWINHTTP_PATH}/libwinhttp.a
26
+ )
@@ -0,0 +1,4 @@
1
+ ADD_DEFINITIONS(-DNO_VIZ -DSTDC -DNO_GZIP)
2
+ FILE(GLOB SRC_ZLIB "*.c" "*.h")
3
+ INCLUDE_DIRECTORIES(".")
4
+ ADD_LIBRARY(zlib OBJECT ${SRC_ZLIB})
@@ -199,6 +199,8 @@ GIT_EXTERN(int) git_config_new(git_config **out);
199
199
  * @param path path to the configuration file to add
200
200
  * @param level the priority level of the backend
201
201
  * @param force replace config file at the given priority level
202
+ * @param repo optional repository to allow parsing of
203
+ * conditional includes
202
204
  * @return 0 on success, GIT_EEXISTS when adding more than one file
203
205
  * for a given priority level (and force_replace set to 0),
204
206
  * GIT_ENOTFOUND when the file doesn't exist or error code
@@ -207,6 +209,7 @@ GIT_EXTERN(int) git_config_add_file_ondisk(
207
209
  git_config *cfg,
208
210
  const char *path,
209
211
  git_config_level_t level,
212
+ const git_repository *repo,
210
213
  int force);
211
214
 
212
215
  /**
@@ -398,6 +401,10 @@ GIT_EXTERN(int) git_config_get_string_buf(git_buf *out, const git_config *cfg, c
398
401
  *
399
402
  * The callback will be called on each variable found
400
403
  *
404
+ * The regular expression is applied case-sensitively on the normalized form of
405
+ * the variable name: the section and variable parts are lower-cased. The
406
+ * subsection is left unchanged.
407
+ *
401
408
  * @param cfg where to look for the variable
402
409
  * @param name the variable's name
403
410
  * @param regexp regular expression to filter which variables we're
@@ -410,6 +417,10 @@ GIT_EXTERN(int) git_config_get_multivar_foreach(const git_config *cfg, const cha
410
417
  /**
411
418
  * Get each value of a multivar
412
419
  *
420
+ * The regular expression is applied case-sensitively on the normalized form of
421
+ * the variable name: the section and variable parts are lower-cased. The
422
+ * subsection is left unchanged.
423
+ *
413
424
  * @param out pointer to store the iterator
414
425
  * @param cfg where to look for the variable
415
426
  * @param name the variable's name
@@ -487,6 +498,8 @@ GIT_EXTERN(int) git_config_set_string(git_config *cfg, const char *name, const c
487
498
  /**
488
499
  * Set a multivar in the local config file.
489
500
  *
501
+ * The regular expression is applied case-sensitively on the value.
502
+ *
490
503
  * @param cfg where to look for the variable
491
504
  * @param name the variable's name
492
505
  * @param regexp a regular expression to indicate which values to replace
@@ -506,6 +519,8 @@ GIT_EXTERN(int) git_config_delete_entry(git_config *cfg, const char *name);
506
519
  /**
507
520
  * Deletes one or several entries from a multivar in the local config file.
508
521
  *
522
+ * The regular expression is applied case-sensitively on the value.
523
+ *
509
524
  * @param cfg where to look for the variables
510
525
  * @param name the variable's name
511
526
  * @param regexp a regular expression to indicate which values to delete
@@ -552,6 +567,10 @@ GIT_EXTERN(int) git_config_iterator_new(git_config_iterator **out, const git_con
552
567
  * Use `git_config_next` to advance the iteration and
553
568
  * `git_config_iterator_free` when done.
554
569
  *
570
+ * The regular expression is applied case-sensitively on the normalized form of
571
+ * the variable name: the section and variable parts are lower-cased. The
572
+ * subsection is left unchanged.
573
+ *
555
574
  * @param out pointer to store the iterator
556
575
  * @param cfg where to ge the variables from
557
576
  * @param regexp regular expression to match the names
@@ -565,8 +584,12 @@ GIT_EXTERN(int) git_config_iterator_glob_new(git_config_iterator **out, const gi
565
584
  * regular expression that filters which config keys are passed to the
566
585
  * callback.
567
586
  *
568
- * The pointers passed to the callback are only valid as long as the
569
- * iteration is ongoing.
587
+ * The regular expression is applied case-sensitively on the normalized form of
588
+ * the variable name: the section and variable parts are lower-cased. The
589
+ * subsection is left unchanged.
590
+ *
591
+ * The regular expression is applied case-sensitively on the normalized form of
592
+ * the variable name: the case-insensitive parts are lower-case.
570
593
  *
571
594
  * @param cfg where to get the variables from
572
595
  * @param regexp regular expression to match against config names
@@ -693,6 +716,10 @@ GIT_EXTERN(int) git_config_parse_path(git_buf *out, const char *value);
693
716
  * This behaviors like `git_config_foreach_match` except instead of all config
694
717
  * entries it just enumerates through the given backend entry.
695
718
  *
719
+ * The regular expression is applied case-sensitively on the normalized form of
720
+ * the variable name: the section and variable parts are lower-cased. The
721
+ * subsection is left unchanged.
722
+ *
696
723
  * @param backend where to get the variables from
697
724
  * @param regexp regular expression to match against config names (can be NULL)
698
725
  * @param callback the function to call on each variable
@@ -23,7 +23,7 @@ GIT_BEGIN_DECL
23
23
  /**
24
24
  * Reference lookup strategy
25
25
  *
26
- * These behave like the --tags and --all optios to git-describe,
26
+ * These behave like the --tags and --all options to git-describe,
27
27
  * namely they say to look for any reference in either refs/tags/ or
28
28
  * refs/ respectively.
29
29
  */
@@ -200,12 +200,18 @@ typedef enum {
200
200
  /** Use the "patience diff" algorithm */
201
201
  GIT_DIFF_PATIENCE = (1u << 28),
202
202
  /** Take extra time to find minimal diff */
203
- GIT_DIFF_MINIMAL = (1 << 29),
203
+ GIT_DIFF_MINIMAL = (1u << 29),
204
204
 
205
205
  /** Include the necessary deflate / delta information so that `git-apply`
206
206
  * can apply given diff information to binary files.
207
207
  */
208
- GIT_DIFF_SHOW_BINARY = (1 << 30),
208
+ GIT_DIFF_SHOW_BINARY = (1u << 30),
209
+
210
+ /** Use a heuristic that takes indentation and whitespace into account
211
+ * which generally can produce better diffs when dealing with ambiguous
212
+ * diff hunks.
213
+ */
214
+ GIT_DIFF_INDENT_HEURISTIC = (1u << 31),
209
215
  } git_diff_option_t;
210
216
 
211
217
  /**
@@ -515,12 +521,12 @@ typedef int(*git_diff_binary_cb)(
515
521
  * Structure describing a hunk of a diff.
516
522
  */
517
523
  typedef struct {
518
- int old_start; /** Starting line number in old_file */
519
- int old_lines; /** Number of lines in old_file */
520
- int new_start; /** Starting line number in new_file */
521
- int new_lines; /** Number of lines in new_file */
522
- size_t header_len; /** Number of bytes in header text */
523
- char header[GIT_DIFF_HUNK_HEADER_SIZE]; /** Header text, NUL-byte terminated */
524
+ int old_start; /**< Starting line number in old_file */
525
+ int old_lines; /**< Number of lines in old_file */
526
+ int new_start; /**< Starting line number in new_file */
527
+ int new_lines; /**< Number of lines in new_file */
528
+ size_t header_len; /**< Number of bytes in header text */
529
+ char header[GIT_DIFF_HUNK_HEADER_SIZE]; /**< Header text, NUL-byte terminated */
524
530
  } git_diff_hunk;
525
531
 
526
532
  /**
@@ -1400,6 +1406,51 @@ GIT_EXTERN(int) git_diff_format_email_init_options(
1400
1406
  git_diff_format_email_options *opts,
1401
1407
  unsigned int version);
1402
1408
 
1409
+ /**
1410
+ * Patch ID options structure
1411
+ *
1412
+ * Initialize with `GIT_DIFF_PATCHID_OPTIONS_INIT` macro to
1413
+ * correctly set the default values and version.
1414
+ */
1415
+ typedef struct git_diff_patchid_options {
1416
+ unsigned int version;
1417
+ } git_diff_patchid_options;
1418
+
1419
+ #define GIT_DIFF_PATCHID_OPTIONS_VERSION 1
1420
+ #define GIT_DIFF_PATCHID_OPTIONS_INIT { GIT_DIFF_PATCHID_OPTIONS_VERSION }
1421
+
1422
+ /**
1423
+ * Initialize `git_diff_patchid_options` structure.
1424
+ *
1425
+ * Initializes the structure with default values. Equivalent to
1426
+ * creating an instance with `GIT_DIFF_PATCHID_OPTIONS_INIT`.
1427
+ */
1428
+ GIT_EXTERN(int) git_diff_patchid_init_options(
1429
+ git_diff_patchid_options *opts,
1430
+ unsigned int version);
1431
+
1432
+ /**
1433
+ * Calculate the patch ID for the given patch.
1434
+ *
1435
+ * Calculate a stable patch ID for the given patch by summing the
1436
+ * hash of the file diffs, ignoring whitespace and line numbers.
1437
+ * This can be used to derive whether two diffs are the same with
1438
+ * a high probability.
1439
+ *
1440
+ * Currently, this function only calculates stable patch IDs, as
1441
+ * defined in git-patch-id(1), and should in fact generate the
1442
+ * same IDs as the upstream git project does.
1443
+ *
1444
+ * @param out Pointer where the calculated patch ID shoul be
1445
+ * stored
1446
+ * @param diff The diff to calculate the ID for
1447
+ * @param opts Options for how to calculate the patch ID. This is
1448
+ * intended for future changes, as currently no options are
1449
+ * available.
1450
+ * @return 0 on success, an error code otherwise.
1451
+ */
1452
+ GIT_EXTERN(int) git_diff_patchid(git_oid *out, git_diff *diff, git_diff_patchid_options *opts);
1453
+
1403
1454
  GIT_END_DECL
1404
1455
 
1405
1456
  /** @} */
@@ -40,6 +40,9 @@ GIT_EXTERN(int) git_graph_ahead_behind(size_t *ahead, size_t *behind, git_reposi
40
40
  /**
41
41
  * Determine if a commit is the descendant of another commit.
42
42
  *
43
+ * Note that a commit is not considered a descendant of itself, in contrast
44
+ * to `git merge-base --is-ancestor`.
45
+ *
43
46
  * @param commit a previously loaded commit.
44
47
  * @param ancestor a potential ancestor commit.
45
48
  * @return 1 if the given commit is a descendant of the potential ancestor,
@@ -162,6 +162,8 @@ typedef enum {
162
162
  GIT_MERGE_FILE_DIFF_MINIMAL = (1 << 7),
163
163
  } git_merge_file_flag_t;
164
164
 
165
+ #define GIT_MERGE_CONFLICT_MARKER_SIZE 7
166
+
165
167
  /**
166
168
  * Options for merging a file
167
169
  */
@@ -191,6 +193,10 @@ typedef struct {
191
193
 
192
194
  /** see `git_merge_file_flag_t` above */
193
195
  git_merge_file_flag_t flags;
196
+
197
+ /** The size of conflict markers (eg, "<<<<<<<"). Default is
198
+ * GIT_MERGE_CONFLICT_MARKER_SIZE. */
199
+ unsigned short marker_size;
194
200
  } git_merge_file_options;
195
201
 
196
202
  #define GIT_MERGE_FILE_OPTIONS_VERSION 1
@@ -19,10 +19,9 @@
19
19
  GIT_BEGIN_DECL
20
20
 
21
21
  /**
22
- * Clean up message from excess whitespace and make sure that the last line
23
- * ends with a '\n'.
22
+ * Clean up excess whitespace and make sure there is a trailing newline in the message.
24
23
  *
25
- * Optionally, can remove lines starting with a "#".
24
+ * Optionally, it can remove lines which start with the comment character.
26
25
  *
27
26
  * @param out The user-allocated git_buf which will be filled with the
28
27
  * cleaned up message.
@@ -38,6 +37,47 @@ GIT_BEGIN_DECL
38
37
  */
39
38
  GIT_EXTERN(int) git_message_prettify(git_buf *out, const char *message, int strip_comments, char comment_char);
40
39
 
40
+ /**
41
+ * Represents a single git message trailer.
42
+ */
43
+ typedef struct {
44
+ const char *key;
45
+ const char *value;
46
+ } git_message_trailer;
47
+
48
+ /**
49
+ * Represents an array of git message trailers.
50
+ *
51
+ * Struct members under the private comment are private, subject to change
52
+ * and should not be used by callers.
53
+ */
54
+ typedef struct {
55
+ git_message_trailer *trailers;
56
+ size_t count;
57
+
58
+ /* private */
59
+ char *_trailer_block;
60
+ } git_message_trailer_array;
61
+
62
+ /**
63
+ * Parse trailers out of a message, filling the array pointed to by +arr+.
64
+ *
65
+ * Trailers are key/value pairs in the last paragraph of a message, not
66
+ * including any patches or conflicts that may be present.
67
+ *
68
+ * @param arr A pre-allocated git_message_trailer_array struct to be filled in
69
+ * with any trailers found during parsing.
70
+ * @param message The message to be parsed
71
+ * @return 0 on success, or non-zero on error.
72
+ */
73
+ GIT_EXTERN(int) git_message_trailers(git_message_trailer_array *arr, const char *message);
74
+
75
+ /**
76
+ * Clean's up any allocated memory in the git_message_trailer_array filled by
77
+ * a call to git_message_trailers.
78
+ */
79
+ GIT_EXTERN(void) git_message_trailer_array_free(git_message_trailer_array *arr);
80
+
41
81
  /** @} */
42
82
  GIT_END_DECL
43
83