rugged 0.17.0b2 → 0.17.0.b6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (374) hide show
  1. data/Rakefile +10 -11
  2. data/ext/rugged/extconf.rb +5 -13
  3. data/ext/rugged/rugged_commit.c +2 -5
  4. data/ext/rugged/rugged_reference.c +29 -28
  5. data/ext/rugged/rugged_remote.c +1 -1
  6. data/ext/rugged/rugged_repo.c +4 -1
  7. data/ext/rugged/rugged_tree.c +20 -19
  8. data/lib/rugged/commit.rb +5 -1
  9. data/lib/rugged/repository.rb +6 -4
  10. data/lib/rugged/version.rb +1 -1
  11. data/test/config_test.rb +1 -1
  12. data/test/index_test.rb +4 -2
  13. data/test/object_test.rb +3 -3
  14. data/test/reference_test.rb +66 -1
  15. data/test/repo_test.rb +4 -4
  16. data/test/tree_test.rb +1 -1
  17. data/test/walker_test.rb +1 -1
  18. data/vendor/libgit2/Makefile.embed +42 -0
  19. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/deps/http-parser/http_parser.c +0 -0
  20. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/deps/http-parser/http_parser.h +0 -0
  21. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/deps/regex/config.h +0 -0
  22. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/deps/regex/regcomp.c +0 -0
  23. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/deps/regex/regex.c +0 -0
  24. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/deps/regex/regex.h +0 -0
  25. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/deps/regex/regex_internal.c +0 -0
  26. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/deps/regex/regex_internal.h +0 -0
  27. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/deps/regex/regexec.c +0 -0
  28. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/deps/zlib/adler32.c +0 -0
  29. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/deps/zlib/crc32.c +0 -0
  30. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/deps/zlib/crc32.h +0 -0
  31. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/deps/zlib/deflate.c +0 -0
  32. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/deps/zlib/deflate.h +0 -0
  33. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/deps/zlib/inffast.c +0 -0
  34. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/deps/zlib/inffast.h +0 -0
  35. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/deps/zlib/inffixed.h +0 -0
  36. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/deps/zlib/inflate.c +0 -0
  37. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/deps/zlib/inflate.h +0 -0
  38. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/deps/zlib/inftrees.c +0 -0
  39. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/deps/zlib/inftrees.h +0 -0
  40. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/deps/zlib/trees.c +0 -0
  41. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/deps/zlib/trees.h +0 -0
  42. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/deps/zlib/zconf.h +0 -0
  43. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/deps/zlib/zlib.h +0 -0
  44. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/deps/zlib/zutil.c +0 -0
  45. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/deps/zlib/zutil.h +0 -0
  46. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2.h +6 -0
  47. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/attr.h +35 -20
  48. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/blob.h +1 -1
  49. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/branch.h +62 -24
  50. data/vendor/libgit2/include/git2/checkout.h +66 -0
  51. data/vendor/libgit2/include/git2/clone.h +59 -0
  52. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/commit.h +22 -3
  53. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/common.h +27 -0
  54. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/config.h +22 -4
  55. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/diff.h +20 -1
  56. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/errors.h +2 -37
  57. data/vendor/libgit2/include/git2/ignore.h +74 -0
  58. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/index.h +37 -5
  59. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/indexer.h +2 -2
  60. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/inttypes.h +0 -0
  61. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/merge.h +10 -0
  62. data/vendor/libgit2/include/git2/message.h +43 -0
  63. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/net.h +0 -0
  64. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/notes.h +24 -20
  65. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/object.h +18 -1
  66. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/odb.h +16 -1
  67. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/odb_backend.h +8 -1
  68. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/oid.h +26 -2
  69. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/reflog.h +39 -9
  70. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/refs.h +55 -3
  71. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/refspec.h +0 -0
  72. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/remote.h +68 -2
  73. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/repository.h +39 -1
  74. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/reset.h +0 -0
  75. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/revparse.h +0 -0
  76. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/revwalk.h +2 -2
  77. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/signature.h +3 -0
  78. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/status.h +5 -2
  79. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/stdint.h +0 -0
  80. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/submodule.h +0 -0
  81. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/tag.h +3 -3
  82. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/threads.h +0 -0
  83. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/tree.h +77 -20
  84. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/types.h +14 -0
  85. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/version.h +0 -0
  86. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/include/git2/windows.h +0 -0
  87. data/vendor/libgit2/src/amiga/map.c +51 -0
  88. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/attr.c +39 -6
  89. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/attr.h +1 -0
  90. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/attr_file.c +2 -16
  91. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/attr_file.h +4 -0
  92. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/blob.c +0 -0
  93. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/blob.h +0 -0
  94. data/vendor/libgit2/src/branch.c +294 -0
  95. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/bswap.h +0 -0
  96. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/buffer.c +40 -0
  97. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/buffer.h +22 -0
  98. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/cache.c +1 -0
  99. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/cache.h +0 -0
  100. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/cc-compat.h +0 -0
  101. data/vendor/libgit2/src/checkout.c +230 -0
  102. data/vendor/libgit2/src/clone.c +254 -0
  103. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/commit.c +42 -16
  104. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/commit.h +0 -0
  105. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/common.h +3 -9
  106. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/compat/fnmatch.c +0 -0
  107. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/compat/fnmatch.h +0 -0
  108. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/config.c +15 -5
  109. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/config.h +0 -0
  110. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/config_cache.c +0 -0
  111. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/config_file.c +86 -19
  112. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/config_file.h +16 -1
  113. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/crlf.c +92 -4
  114. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/date.c +20 -20
  115. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/delta-apply.c +0 -0
  116. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/delta-apply.h +0 -0
  117. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/diff.c +45 -18
  118. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/diff.h +0 -0
  119. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/diff_output.c +63 -46
  120. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/errors.c +0 -0
  121. data/vendor/libgit2/src/fetch.c +380 -0
  122. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/fetch.h +1 -2
  123. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/filebuf.c +7 -2
  124. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/filebuf.h +0 -0
  125. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/fileops.c +16 -1
  126. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/fileops.h +10 -0
  127. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/filter.c +38 -2
  128. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/filter.h +15 -0
  129. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/global.c +5 -0
  130. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/global.h +2 -6
  131. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/hash.c +0 -0
  132. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/hash.h +0 -0
  133. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/ignore.c +50 -1
  134. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/ignore.h +0 -0
  135. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/index.c +95 -28
  136. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/index.h +5 -0
  137. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/indexer.c +27 -25
  138. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/iterator.c +0 -0
  139. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/iterator.h +0 -0
  140. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/khash.h +6 -4
  141. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/map.h +4 -0
  142. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/message.c +27 -2
  143. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/message.h +2 -1
  144. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/mwindow.c +54 -10
  145. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/mwindow.h +1 -1
  146. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/netops.c +48 -38
  147. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/netops.h +7 -4
  148. data/vendor/libgit2/src/notes.c +610 -0
  149. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/notes.h +0 -0
  150. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/object.c +73 -2
  151. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/odb.c +20 -1
  152. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/odb.h +0 -0
  153. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/odb_loose.c +89 -3
  154. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/odb_pack.c +61 -3
  155. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/oid.c +1 -6
  156. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/oidmap.h +1 -6
  157. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/pack.c +49 -4
  158. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/pack.h +5 -1
  159. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/path.c +144 -21
  160. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/path.h +46 -0
  161. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/pkt.c +30 -8
  162. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/pkt.h +0 -0
  163. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/pool.c +7 -0
  164. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/pool.h +7 -0
  165. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/posix.c +92 -1
  166. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/posix.h +36 -1
  167. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/ppc/sha1.c +0 -0
  168. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/ppc/sha1.h +0 -0
  169. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/pqueue.c +0 -0
  170. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/pqueue.h +0 -0
  171. data/vendor/libgit2/src/protocol.c +88 -0
  172. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/protocol.h +3 -9
  173. data/vendor/libgit2/src/reflog.c +489 -0
  174. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/reflog.h +3 -0
  175. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/refs.c +95 -52
  176. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/refs.h +0 -0
  177. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/refspec.c +0 -0
  178. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/refspec.h +0 -0
  179. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/remote.c +130 -8
  180. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/remote.h +6 -0
  181. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/repository.c +167 -42
  182. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/repository.h +7 -0
  183. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/reset.c +1 -1
  184. data/vendor/libgit2/src/revparse.c +830 -0
  185. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/revwalk.c +83 -15
  186. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/sha1.c +0 -0
  187. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/sha1.h +5 -0
  188. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/sha1_lookup.c +0 -0
  189. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/sha1_lookup.h +0 -0
  190. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/signature.c +19 -5
  191. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/signature.h +0 -0
  192. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/status.c +24 -18
  193. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/strmap.h +1 -1
  194. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/submodule.c +3 -3
  195. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/tag.c +2 -9
  196. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/tag.h +0 -0
  197. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/thread-utils.c +0 -0
  198. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/thread-utils.h +0 -0
  199. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/transport.c +0 -0
  200. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/transport.h +13 -9
  201. data/vendor/libgit2/src/transports/git.c +245 -0
  202. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/transports/http.c +93 -336
  203. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/transports/local.c +35 -32
  204. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/tree-cache.c +0 -0
  205. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/tree-cache.h +0 -0
  206. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/tree.c +214 -124
  207. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/tree.h +7 -3
  208. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/tsort.c +0 -0
  209. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/unix/map.c +2 -0
  210. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/unix/posix.h +2 -1
  211. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/util.c +30 -0
  212. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/util.h +13 -6
  213. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/vector.c +1 -1
  214. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/vector.h +5 -5
  215. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/win32/dir.c +0 -0
  216. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/win32/dir.h +0 -0
  217. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/win32/map.c +0 -0
  218. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/win32/mingw-compat.h +0 -0
  219. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/win32/msvc-compat.h +0 -0
  220. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/win32/posix.h +1 -0
  221. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/win32/posix_w32.c +17 -1
  222. data/vendor/libgit2/src/win32/precompiled.c +1 -0
  223. data/vendor/libgit2/src/win32/precompiled.h +19 -0
  224. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/win32/pthread.c +0 -0
  225. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/win32/pthread.h +0 -0
  226. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/win32/utf-conv.c +0 -0
  227. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/win32/utf-conv.h +0 -0
  228. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/xdiff/xdiff.h +0 -0
  229. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/xdiff/xdiffi.c +0 -0
  230. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/xdiff/xdiffi.h +0 -0
  231. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/xdiff/xemit.c +0 -0
  232. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/xdiff/xemit.h +0 -0
  233. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/xdiff/xhistogram.c +0 -0
  234. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/xdiff/xinclude.h +0 -0
  235. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/xdiff/xmacros.h +0 -0
  236. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/xdiff/xmerge.c +0 -0
  237. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/xdiff/xpatience.c +0 -0
  238. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/xdiff/xprepare.c +0 -0
  239. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/xdiff/xprepare.h +0 -0
  240. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/xdiff/xtypes.h +0 -0
  241. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/xdiff/xutils.c +0 -0
  242. data/{ext/rugged/vendor/libgit2-dist → vendor/libgit2}/src/xdiff/xutils.h +0 -0
  243. metadata +265 -348
  244. data/ext/rugged/vendor/libgit2-dist.tar.gz +0 -0
  245. data/ext/rugged/vendor/libgit2-dist/examples/diff.c +0 -238
  246. data/ext/rugged/vendor/libgit2-dist/examples/general.c +0 -451
  247. data/ext/rugged/vendor/libgit2-dist/examples/network/common.h +0 -14
  248. data/ext/rugged/vendor/libgit2-dist/examples/network/fetch.c +0 -113
  249. data/ext/rugged/vendor/libgit2-dist/examples/network/git2.c +0 -62
  250. data/ext/rugged/vendor/libgit2-dist/examples/network/index-pack.c +0 -102
  251. data/ext/rugged/vendor/libgit2-dist/examples/network/ls-remote.c +0 -76
  252. data/ext/rugged/vendor/libgit2-dist/examples/showindex.c +0 -43
  253. data/ext/rugged/vendor/libgit2-dist/src/branch.c +0 -208
  254. data/ext/rugged/vendor/libgit2-dist/src/branch.h +0 -17
  255. data/ext/rugged/vendor/libgit2-dist/src/fetch.c +0 -200
  256. data/ext/rugged/vendor/libgit2-dist/src/notes.c +0 -548
  257. data/ext/rugged/vendor/libgit2-dist/src/protocol.c +0 -58
  258. data/ext/rugged/vendor/libgit2-dist/src/reflog.c +0 -340
  259. data/ext/rugged/vendor/libgit2-dist/src/revparse.c +0 -748
  260. data/ext/rugged/vendor/libgit2-dist/src/transports/git.c +0 -477
  261. data/ext/rugged/vendor/libgit2-dist/tests-clar/attr/attr_expect.h +0 -43
  262. data/ext/rugged/vendor/libgit2-dist/tests-clar/attr/file.c +0 -226
  263. data/ext/rugged/vendor/libgit2-dist/tests-clar/attr/flags.c +0 -108
  264. data/ext/rugged/vendor/libgit2-dist/tests-clar/attr/lookup.c +0 -262
  265. data/ext/rugged/vendor/libgit2-dist/tests-clar/attr/repo.c +0 -273
  266. data/ext/rugged/vendor/libgit2-dist/tests-clar/buf/basic.c +0 -29
  267. data/ext/rugged/vendor/libgit2-dist/tests-clar/clar_helpers.c +0 -181
  268. data/ext/rugged/vendor/libgit2-dist/tests-clar/clar_libgit2.h +0 -55
  269. data/ext/rugged/vendor/libgit2-dist/tests-clar/commit/commit.c +0 -44
  270. data/ext/rugged/vendor/libgit2-dist/tests-clar/commit/parse.c +0 -350
  271. data/ext/rugged/vendor/libgit2-dist/tests-clar/commit/signature.c +0 -65
  272. data/ext/rugged/vendor/libgit2-dist/tests-clar/commit/write.c +0 -140
  273. data/ext/rugged/vendor/libgit2-dist/tests-clar/config/add.c +0 -37
  274. data/ext/rugged/vendor/libgit2-dist/tests-clar/config/multivar.c +0 -151
  275. data/ext/rugged/vendor/libgit2-dist/tests-clar/config/new.c +0 -36
  276. data/ext/rugged/vendor/libgit2-dist/tests-clar/config/read.c +0 -221
  277. data/ext/rugged/vendor/libgit2-dist/tests-clar/config/stress.c +0 -61
  278. data/ext/rugged/vendor/libgit2-dist/tests-clar/config/write.c +0 -92
  279. data/ext/rugged/vendor/libgit2-dist/tests-clar/core/buffer.c +0 -613
  280. data/ext/rugged/vendor/libgit2-dist/tests-clar/core/dirent.c +0 -235
  281. data/ext/rugged/vendor/libgit2-dist/tests-clar/core/env.c +0 -115
  282. data/ext/rugged/vendor/libgit2-dist/tests-clar/core/errors.c +0 -60
  283. data/ext/rugged/vendor/libgit2-dist/tests-clar/core/filebuf.c +0 -92
  284. data/ext/rugged/vendor/libgit2-dist/tests-clar/core/hex.c +0 -22
  285. data/ext/rugged/vendor/libgit2-dist/tests-clar/core/oid.c +0 -18
  286. data/ext/rugged/vendor/libgit2-dist/tests-clar/core/path.c +0 -420
  287. data/ext/rugged/vendor/libgit2-dist/tests-clar/core/pool.c +0 -85
  288. data/ext/rugged/vendor/libgit2-dist/tests-clar/core/rmdir.c +0 -68
  289. data/ext/rugged/vendor/libgit2-dist/tests-clar/core/string.c +0 -28
  290. data/ext/rugged/vendor/libgit2-dist/tests-clar/core/strmap.c +0 -102
  291. data/ext/rugged/vendor/libgit2-dist/tests-clar/core/strtol.c +0 -37
  292. data/ext/rugged/vendor/libgit2-dist/tests-clar/core/vector.c +0 -191
  293. data/ext/rugged/vendor/libgit2-dist/tests-clar/date/date.c +0 -15
  294. data/ext/rugged/vendor/libgit2-dist/tests-clar/diff/blob.c +0 -254
  295. data/ext/rugged/vendor/libgit2-dist/tests-clar/diff/diff_helpers.c +0 -104
  296. data/ext/rugged/vendor/libgit2-dist/tests-clar/diff/diff_helpers.h +0 -47
  297. data/ext/rugged/vendor/libgit2-dist/tests-clar/diff/index.c +0 -92
  298. data/ext/rugged/vendor/libgit2-dist/tests-clar/diff/iterator.c +0 -572
  299. data/ext/rugged/vendor/libgit2-dist/tests-clar/diff/patch.c +0 -99
  300. data/ext/rugged/vendor/libgit2-dist/tests-clar/diff/tree.c +0 -210
  301. data/ext/rugged/vendor/libgit2-dist/tests-clar/diff/workdir.c +0 -543
  302. data/ext/rugged/vendor/libgit2-dist/tests-clar/index/read_tree.c +0 -46
  303. data/ext/rugged/vendor/libgit2-dist/tests-clar/index/rename.c +0 -50
  304. data/ext/rugged/vendor/libgit2-dist/tests-clar/index/tests.c +0 -246
  305. data/ext/rugged/vendor/libgit2-dist/tests-clar/network/createremotethenload.c +0 -33
  306. data/ext/rugged/vendor/libgit2-dist/tests-clar/network/remotelocal.c +0 -137
  307. data/ext/rugged/vendor/libgit2-dist/tests-clar/network/remotes.c +0 -183
  308. data/ext/rugged/vendor/libgit2-dist/tests-clar/notes/notes.c +0 -133
  309. data/ext/rugged/vendor/libgit2-dist/tests-clar/notes/notesref.c +0 -57
  310. data/ext/rugged/vendor/libgit2-dist/tests-clar/object/blob/filter.c +0 -125
  311. data/ext/rugged/vendor/libgit2-dist/tests-clar/object/blob/fromchunks.c +0 -87
  312. data/ext/rugged/vendor/libgit2-dist/tests-clar/object/blob/write.c +0 -69
  313. data/ext/rugged/vendor/libgit2-dist/tests-clar/object/commit/commitstagedfile.c +0 -126
  314. data/ext/rugged/vendor/libgit2-dist/tests-clar/object/lookup.c +0 -63
  315. data/ext/rugged/vendor/libgit2-dist/tests-clar/object/message.c +0 -171
  316. data/ext/rugged/vendor/libgit2-dist/tests-clar/object/raw/chars.c +0 -41
  317. data/ext/rugged/vendor/libgit2-dist/tests-clar/object/raw/compare.c +0 -124
  318. data/ext/rugged/vendor/libgit2-dist/tests-clar/object/raw/convert.c +0 -75
  319. data/ext/rugged/vendor/libgit2-dist/tests-clar/object/raw/data.h +0 -323
  320. data/ext/rugged/vendor/libgit2-dist/tests-clar/object/raw/fromstr.c +0 -30
  321. data/ext/rugged/vendor/libgit2-dist/tests-clar/object/raw/hash.c +0 -166
  322. data/ext/rugged/vendor/libgit2-dist/tests-clar/object/raw/short.c +0 -94
  323. data/ext/rugged/vendor/libgit2-dist/tests-clar/object/raw/size.c +0 -13
  324. data/ext/rugged/vendor/libgit2-dist/tests-clar/object/raw/type2string.c +0 -54
  325. data/ext/rugged/vendor/libgit2-dist/tests-clar/object/raw/write.c +0 -455
  326. data/ext/rugged/vendor/libgit2-dist/tests-clar/object/tag/peel.c +0 -56
  327. data/ext/rugged/vendor/libgit2-dist/tests-clar/object/tag/read.c +0 -130
  328. data/ext/rugged/vendor/libgit2-dist/tests-clar/object/tag/write.c +0 -192
  329. data/ext/rugged/vendor/libgit2-dist/tests-clar/object/tree/frompath.c +0 -81
  330. data/ext/rugged/vendor/libgit2-dist/tests-clar/object/tree/read.c +0 -75
  331. data/ext/rugged/vendor/libgit2-dist/tests-clar/object/tree/write.c +0 -84
  332. data/ext/rugged/vendor/libgit2-dist/tests-clar/odb/loose.c +0 -84
  333. data/ext/rugged/vendor/libgit2-dist/tests-clar/odb/loose_data.h +0 -522
  334. data/ext/rugged/vendor/libgit2-dist/tests-clar/odb/mixed.c +0 -24
  335. data/ext/rugged/vendor/libgit2-dist/tests-clar/odb/pack_data.h +0 -151
  336. data/ext/rugged/vendor/libgit2-dist/tests-clar/odb/packed.c +0 -78
  337. data/ext/rugged/vendor/libgit2-dist/tests-clar/odb/sorting.c +0 -71
  338. data/ext/rugged/vendor/libgit2-dist/tests-clar/refs/branches/create.c +0 -113
  339. data/ext/rugged/vendor/libgit2-dist/tests-clar/refs/branches/delete.c +0 -91
  340. data/ext/rugged/vendor/libgit2-dist/tests-clar/refs/branches/listall.c +0 -78
  341. data/ext/rugged/vendor/libgit2-dist/tests-clar/refs/branches/move.c +0 -72
  342. data/ext/rugged/vendor/libgit2-dist/tests-clar/refs/crashes.c +0 -17
  343. data/ext/rugged/vendor/libgit2-dist/tests-clar/refs/create.c +0 -149
  344. data/ext/rugged/vendor/libgit2-dist/tests-clar/refs/delete.c +0 -85
  345. data/ext/rugged/vendor/libgit2-dist/tests-clar/refs/list.c +0 -53
  346. data/ext/rugged/vendor/libgit2-dist/tests-clar/refs/listall.c +0 -36
  347. data/ext/rugged/vendor/libgit2-dist/tests-clar/refs/lookup.c +0 -42
  348. data/ext/rugged/vendor/libgit2-dist/tests-clar/refs/normalize.c +0 -200
  349. data/ext/rugged/vendor/libgit2-dist/tests-clar/refs/overwrite.c +0 -136
  350. data/ext/rugged/vendor/libgit2-dist/tests-clar/refs/pack.c +0 -67
  351. data/ext/rugged/vendor/libgit2-dist/tests-clar/refs/read.c +0 -194
  352. data/ext/rugged/vendor/libgit2-dist/tests-clar/refs/reflog.c +0 -123
  353. data/ext/rugged/vendor/libgit2-dist/tests-clar/refs/rename.c +0 -339
  354. data/ext/rugged/vendor/libgit2-dist/tests-clar/refs/revparse.c +0 -174
  355. data/ext/rugged/vendor/libgit2-dist/tests-clar/refs/unicode.c +0 -42
  356. data/ext/rugged/vendor/libgit2-dist/tests-clar/repo/discover.c +0 -142
  357. data/ext/rugged/vendor/libgit2-dist/tests-clar/repo/getters.c +0 -86
  358. data/ext/rugged/vendor/libgit2-dist/tests-clar/repo/init.c +0 -249
  359. data/ext/rugged/vendor/libgit2-dist/tests-clar/repo/open.c +0 -282
  360. data/ext/rugged/vendor/libgit2-dist/tests-clar/repo/setters.c +0 -80
  361. data/ext/rugged/vendor/libgit2-dist/tests-clar/reset/mixed.c +0 -47
  362. data/ext/rugged/vendor/libgit2-dist/tests-clar/reset/reset_helpers.c +0 -10
  363. data/ext/rugged/vendor/libgit2-dist/tests-clar/reset/reset_helpers.h +0 -6
  364. data/ext/rugged/vendor/libgit2-dist/tests-clar/reset/soft.c +0 -102
  365. data/ext/rugged/vendor/libgit2-dist/tests-clar/revwalk/basic.c +0 -181
  366. data/ext/rugged/vendor/libgit2-dist/tests-clar/revwalk/mergebase.c +0 -148
  367. data/ext/rugged/vendor/libgit2-dist/tests-clar/status/ignore.c +0 -147
  368. data/ext/rugged/vendor/libgit2-dist/tests-clar/status/single.c +0 -29
  369. data/ext/rugged/vendor/libgit2-dist/tests-clar/status/status_data.h +0 -202
  370. data/ext/rugged/vendor/libgit2-dist/tests-clar/status/status_helpers.c +0 -49
  371. data/ext/rugged/vendor/libgit2-dist/tests-clar/status/status_helpers.h +0 -33
  372. data/ext/rugged/vendor/libgit2-dist/tests-clar/status/submodules.c +0 -112
  373. data/ext/rugged/vendor/libgit2-dist/tests-clar/status/worktree.c +0 -649
  374. data/ext/rugged/vendor/libgit2-dist/tests-clar/threads/basic.c +0 -20
@@ -0,0 +1,66 @@
1
+ /*
2
+ * Copyright (C) 2012 the libgit2 contributors
3
+ *
4
+ * This file is part of libgit2, distributed under the GNU GPL v2 with
5
+ * a Linking Exception. For full terms see the included COPYING file.
6
+ */
7
+ #ifndef INCLUDE_git_checkout_h__
8
+ #define INCLUDE_git_checkout_h__
9
+
10
+ #include "common.h"
11
+ #include "types.h"
12
+ #include "indexer.h"
13
+
14
+
15
+ /**
16
+ * @file git2/checkout.h
17
+ * @brief Git checkout routines
18
+ * @defgroup git_checkout Git checkout routines
19
+ * @ingroup Git
20
+ * @{
21
+ */
22
+ GIT_BEGIN_DECL
23
+
24
+
25
+ #define GIT_CHECKOUT_OVERWRITE_EXISTING 0 /* default */
26
+ #define GIT_CHECKOUT_SKIP_EXISTING 1
27
+
28
+ /* Use zeros to indicate default settings */
29
+ typedef struct git_checkout_opts {
30
+ int existing_file_action; /* default: GIT_CHECKOUT_OVERWRITE_EXISTING */
31
+ int disable_filters;
32
+ int dir_mode; /* default is 0755 */
33
+ int file_mode; /* default is 0644 */
34
+ int file_open_flags; /* default is O_CREAT | O_TRUNC | O_WRONLY */
35
+ } git_checkout_opts;
36
+
37
+ /**
38
+ * Updates files in the working tree to match the commit pointed to by HEAD.
39
+ *
40
+ * @param repo repository to check out (must be non-bare)
41
+ * @param opts specifies checkout options (may be NULL)
42
+ * @param stats structure through which progress information is reported
43
+ * @return 0 on success, GIT_ERROR otherwise (use giterr_last for information about the error)
44
+ */
45
+ GIT_EXTERN(int) git_checkout_head(git_repository *repo,
46
+ git_checkout_opts *opts,
47
+ git_indexer_stats *stats);
48
+
49
+
50
+
51
+ /**
52
+ * Updates files in the working tree to match a commit pointed to by a ref.
53
+ *
54
+ * @param ref reference to follow to a commit
55
+ * @param opts specifies checkout options (may be NULL)
56
+ * @param stats structure through which progress information is reported
57
+ * @return 0 on success, GIT_ERROR otherwise (use giterr_last for information about the error)
58
+ */
59
+ GIT_EXTERN(int) git_checkout_reference(git_reference *ref,
60
+ git_checkout_opts *opts,
61
+ git_indexer_stats *stats);
62
+
63
+
64
+ /** @} */
65
+ GIT_END_DECL
66
+ #endif
@@ -0,0 +1,59 @@
1
+ /*
2
+ * Copyright (C) 2012 the libgit2 contributors
3
+ *
4
+ * This file is part of libgit2, distributed under the GNU GPL v2 with
5
+ * a Linking Exception. For full terms see the included COPYING file.
6
+ */
7
+ #ifndef INCLUDE_git_clone_h__
8
+ #define INCLUDE_git_clone_h__
9
+
10
+ #include "common.h"
11
+ #include "types.h"
12
+ #include "indexer.h"
13
+ #include "checkout.h"
14
+
15
+
16
+ /**
17
+ * @file git2/clone.h
18
+ * @brief Git cloning routines
19
+ * @defgroup git_clone Git cloning routines
20
+ * @ingroup Git
21
+ * @{
22
+ */
23
+ GIT_BEGIN_DECL
24
+
25
+ /**
26
+ * Clone a remote repository, and checkout the branch pointed to by the remote
27
+ * HEAD.
28
+ *
29
+ * @param out pointer that will receive the resulting repository object
30
+ * @param origin_url repository to clone from
31
+ * @param workdir_path local directory to clone to
32
+ * @param fetch_stats pointer to structure that receives fetch progress information (may be NULL)
33
+ * @param checkout_opts options for the checkout step (may be NULL)
34
+ * @return 0 on success, GIT_ERROR otherwise (use giterr_last for information about the error)
35
+ */
36
+ GIT_EXTERN(int) git_clone(git_repository **out,
37
+ const char *origin_url,
38
+ const char *workdir_path,
39
+ git_indexer_stats *fetch_stats,
40
+ git_indexer_stats *checkout_stats,
41
+ git_checkout_opts *checkout_opts);
42
+
43
+ /**
44
+ * Create a bare clone of a remote repository.
45
+ *
46
+ * @param out pointer that will receive the resulting repository object
47
+ * @param origin_url repository to clone from
48
+ * @param dest_path local directory to clone to
49
+ * @param fetch_stats pointer to structure that receives fetch progress information (may be NULL)
50
+ * @return 0 on success, GIT_ERROR otherwise (use giterr_last for information about the error)
51
+ */
52
+ GIT_EXTERN(int) git_clone_bare(git_repository **out,
53
+ const char *origin_url,
54
+ const char *dest_path,
55
+ git_indexer_stats *fetch_stats);
56
+
57
+ /** @} */
58
+ GIT_END_DECL
59
+ #endif
@@ -48,7 +48,7 @@ GIT_INLINE(int) git_commit_lookup(git_commit **commit, git_repository *repo, con
48
48
  * @param len the length of the short identifier
49
49
  * @return 0 or an error code
50
50
  */
51
- GIT_INLINE(int) git_commit_lookup_prefix(git_commit **commit, git_repository *repo, const git_oid *id, unsigned len)
51
+ GIT_INLINE(int) git_commit_lookup_prefix(git_commit **commit, git_repository *repo, const git_oid *id, size_t len)
52
52
  {
53
53
  return git_object_lookup_prefix((git_object **)commit, repo, id, len, GIT_OBJ_COMMIT);
54
54
  }
@@ -178,12 +178,31 @@ GIT_EXTERN(int) git_commit_parent(git_commit **parent, git_commit *commit, unsig
178
178
  */
179
179
  GIT_EXTERN(const git_oid *) git_commit_parent_oid(git_commit *commit, unsigned int n);
180
180
 
181
+ /**
182
+ * Get the commit object that is the <n>th generation ancestor
183
+ * of the named commit object, following only the first parents.
184
+ * The returned commit has to be freed by the caller.
185
+ *
186
+ * Passing `0` as the generation number returns another instance of the
187
+ * base commit itself.
188
+ *
189
+ * @param ancestor Pointer where to store the ancestor commit
190
+ * @param commit a previously loaded commit.
191
+ * @param n the requested generation
192
+ * @return 0 on success; GIT_ENOTFOUND if no matching ancestor exists
193
+ * or an error code
194
+ */
195
+ GIT_EXTERN(int) git_commit_nth_gen_ancestor(
196
+ git_commit **ancestor,
197
+ const git_commit *commit,
198
+ unsigned int n);
199
+
181
200
  /**
182
201
  * Create a new commit in the repository using `git_object`
183
202
  * instances as parameters.
184
203
  *
185
- * The message will be cleaned up from excess whitespace
186
- * it will be made sure that the last line ends with a '\n'.
204
+ * The message will not be cleaned up. This can be achieved
205
+ * through `git_message_prettify()`.
187
206
  *
188
207
  * @param oid Pointer where to store the OID of the
189
208
  * newly created commit
@@ -55,6 +55,10 @@
55
55
  #define GIT_WIN32 1
56
56
  #endif
57
57
 
58
+ #ifdef __amigaos4__
59
+ #include <netinet/in.h>
60
+ #endif
61
+
58
62
  /**
59
63
  * @file git2/common.h
60
64
  * @brief Git common platform definitions
@@ -99,6 +103,29 @@ GIT_EXTERN(int) git_strarray_copy(git_strarray *tgt, const git_strarray *src);
99
103
  */
100
104
  GIT_EXTERN(void) git_libgit2_version(int *major, int *minor, int *rev);
101
105
 
106
+ /**
107
+ * Combinations of these values describe the capabilities of libgit2.
108
+ */
109
+ enum {
110
+ GIT_CAP_THREADS = ( 1 << 0 ),
111
+ GIT_CAP_HTTPS = ( 1 << 1 )
112
+ };
113
+
114
+ /**
115
+ * Query compile time options for libgit2.
116
+ *
117
+ * @return A combination of GIT_CAP_* values.
118
+ *
119
+ * - GIT_CAP_THREADS
120
+ * Libgit2 was compiled with thread support. Note that thread support is still to be seen as a
121
+ * 'work in progress'.
122
+ *
123
+ * - GIT_CAP_HTTPS
124
+ * Libgit2 supports the https:// protocol. This requires the open ssl library to be
125
+ * found when compiling libgit2.
126
+ */
127
+ GIT_EXTERN(int) git_libgit2_capabilities(void);
128
+
102
129
  /** @} */
103
130
  GIT_END_DECL
104
131
  #endif
@@ -33,7 +33,7 @@ struct git_config_file {
33
33
  int (*set)(struct git_config_file *, const char *key, const char *value);
34
34
  int (*set_multivar)(git_config_file *cfg, const char *name, const char *regexp, const char *value);
35
35
  int (*del)(struct git_config_file *, const char *key);
36
- int (*foreach)(struct git_config_file *, int (*fn)(const char *, const char *, void *), void *data);
36
+ int (*foreach)(struct git_config_file *, const char *, int (*fn)(const char *, const char *, void *), void *data);
37
37
  void (*free)(struct git_config_file *);
38
38
  };
39
39
 
@@ -302,18 +302,36 @@ GIT_EXTERN(int) git_config_delete(git_config *cfg, const char *name);
302
302
  * The callback receives the normalized name and value of each variable
303
303
  * in the config backend, and the data pointer passed to this function.
304
304
  * As soon as one of the callback functions returns something other than 0,
305
- * this function returns that value.
305
+ * this function stops iterating and returns `GIT_EUSER`.
306
306
  *
307
307
  * @param cfg where to get the variables from
308
308
  * @param callback the function to call on each variable
309
309
  * @param payload the data to pass to the callback
310
- * @return 0 or the return value of the callback which didn't return 0
310
+ * @return 0 on success, GIT_EUSER on non-zero callback, or error code
311
311
  */
312
312
  GIT_EXTERN(int) git_config_foreach(
313
313
  git_config *cfg,
314
314
  int (*callback)(const char *var_name, const char *value, void *payload),
315
315
  void *payload);
316
316
 
317
+ /**
318
+ * Perform an operation on each config variable matching a regular expression.
319
+ *
320
+ * This behaviors like `git_config_foreach` with an additional filter of a
321
+ * regular expression that filters which config keys are passed to the
322
+ * callback.
323
+ *
324
+ * @param cfg where to get the variables from
325
+ * @param regexp regular expression to match against config names
326
+ * @param callback the function to call on each variable
327
+ * @param payload the data to pass to the callback
328
+ * @return 0 or the return value of the callback which didn't return 0
329
+ */
330
+ GIT_EXTERN(int) git_config_foreach_match(
331
+ git_config *cfg,
332
+ const char *regexp,
333
+ int (*callback)(const char *var_name, const char *value, void *payload),
334
+ void *payload);
317
335
 
318
336
  /**
319
337
  * Query the value of a config variable and return it mapped to
@@ -324,7 +342,7 @@ GIT_EXTERN(int) git_config_foreach(
324
342
  *
325
343
  * A mapping array looks as follows:
326
344
  *
327
- * git_cvar_map autocrlf_mapping[3] = {
345
+ * git_cvar_map autocrlf_mapping[] = {
328
346
  * {GIT_CVAR_FALSE, NULL, GIT_AUTO_CRLF_FALSE},
329
347
  * {GIT_CVAR_TRUE, NULL, GIT_AUTO_CRLF_TRUE},
330
348
  * {GIT_CVAR_STRING, "input", GIT_AUTO_CRLF_INPUT},
@@ -46,6 +46,7 @@ enum {
46
46
  GIT_DIFF_INCLUDE_UNTRACKED = (1 << 8),
47
47
  GIT_DIFF_INCLUDE_UNMODIFIED = (1 << 9),
48
48
  GIT_DIFF_RECURSE_UNTRACKED_DIRS = (1 << 10),
49
+ GIT_DIFF_DISABLE_PATHSPEC_MATCH = (1 << 11),
49
50
  };
50
51
 
51
52
  /**
@@ -60,7 +61,7 @@ enum {
60
61
  typedef struct {
61
62
  uint32_t flags; /**< defaults to GIT_DIFF_NORMAL */
62
63
  uint16_t context_lines; /**< defaults to 3 */
63
- uint16_t interhunk_lines; /**< defaults to 3 */
64
+ uint16_t interhunk_lines; /**< defaults to 0 */
64
65
  char *old_prefix; /**< defaults to "a" */
65
66
  char *new_prefix; /**< defaults to "b" */
66
67
  git_strarray pathspec; /**< defaults to show all paths */
@@ -331,6 +332,9 @@ GIT_EXTERN(int) git_diff_merge(
331
332
  * callbacks will not be invoked for binary files on the diff list or for
332
333
  * files whose only changed is a file mode change.
333
334
  *
335
+ * Returning a non-zero value from any of the callbacks will terminate
336
+ * the iteration and cause this return `GIT_EUSER`.
337
+ *
334
338
  * @param diff A git_diff_list generated by one of the above functions.
335
339
  * @param cb_data Reference pointer that will be passed to your callbacks.
336
340
  * @param file_cb Callback function to make per file in the diff.
@@ -340,6 +344,7 @@ GIT_EXTERN(int) git_diff_merge(
340
344
  * @param line_cb Optional callback to make per line of diff text. This
341
345
  * same callback will be made for context lines, added, and
342
346
  * removed lines, and even for a deleted trailing newline.
347
+ * @return 0 on success, GIT_EUSER on non-zero callback, or error code
343
348
  */
344
349
  GIT_EXTERN(int) git_diff_foreach(
345
350
  git_diff_list *diff,
@@ -350,6 +355,14 @@ GIT_EXTERN(int) git_diff_foreach(
350
355
 
351
356
  /**
352
357
  * Iterate over a diff generating text output like "git diff --name-status".
358
+ *
359
+ * Returning a non-zero value from the callbacks will terminate the
360
+ * iteration and cause this return `GIT_EUSER`.
361
+ *
362
+ * @param diff A git_diff_list generated by one of the above functions.
363
+ * @param cb_data Reference pointer that will be passed to your callback.
364
+ * @param print_cb Callback to make per line of diff text.
365
+ * @return 0 on success, GIT_EUSER on non-zero callback, or error code
353
366
  */
354
367
  GIT_EXTERN(int) git_diff_print_compact(
355
368
  git_diff_list *diff,
@@ -361,6 +374,9 @@ GIT_EXTERN(int) git_diff_print_compact(
361
374
  *
362
375
  * This is a super easy way to generate a patch from a diff.
363
376
  *
377
+ * Returning a non-zero value from the callbacks will terminate the
378
+ * iteration and cause this return `GIT_EUSER`.
379
+ *
364
380
  * @param diff A git_diff_list generated by one of the above functions.
365
381
  * @param cb_data Reference pointer that will be passed to your callbacks.
366
382
  * @param print_cb Callback function to output lines of the diff. This
@@ -368,6 +384,7 @@ GIT_EXTERN(int) git_diff_print_compact(
368
384
  * headers, and diff lines. Fortunately, you can probably
369
385
  * use various GIT_DIFF_LINE constants to determine what
370
386
  * text you are given.
387
+ * @return 0 on success, GIT_EUSER on non-zero callback, or error code
371
388
  */
372
389
  GIT_EXTERN(int) git_diff_print_patch(
373
390
  git_diff_list *diff,
@@ -392,6 +409,8 @@ GIT_EXTERN(int) git_diff_print_patch(
392
409
  * When at least one of the blobs being dealt with is binary, the
393
410
  * `git_diff_delta` binary attribute will be set to 1 and no call to the
394
411
  * hunk_cb nor line_cb will be made.
412
+ *
413
+ * @return 0 on success, GIT_EUSER on non-zero callback, or error code
395
414
  */
396
415
  GIT_EXTERN(int) git_diff_blobs(
397
416
  git_blob *old_blob,
@@ -17,43 +17,6 @@
17
17
  */
18
18
  GIT_BEGIN_DECL
19
19
 
20
- #ifdef GIT_OLD_ERRORS
21
- enum {
22
- GIT_SUCCESS = 0,
23
- GIT_ENOTOID = -2,
24
- GIT_ENOTFOUND = -3,
25
- GIT_ENOMEM = -4,
26
- GIT_EOSERR = -5,
27
- GIT_EOBJTYPE = -6,
28
- GIT_ENOTAREPO = -7,
29
- GIT_EINVALIDTYPE = -8,
30
- GIT_EMISSINGOBJDATA = -9,
31
- GIT_EPACKCORRUPTED = -10,
32
- GIT_EFLOCKFAIL = -11,
33
- GIT_EZLIB = -12,
34
- GIT_EBUSY = -13,
35
- GIT_EBAREINDEX = -14,
36
- GIT_EINVALIDREFNAME = -15,
37
- GIT_EREFCORRUPTED = -16,
38
- GIT_ETOONESTEDSYMREF = -17,
39
- GIT_EPACKEDREFSCORRUPTED = -18,
40
- GIT_EINVALIDPATH = -19,
41
- GIT_EREVWALKOVER = -20,
42
- GIT_EINVALIDREFSTATE = -21,
43
- GIT_ENOTIMPLEMENTED = -22,
44
- GIT_EEXISTS = -23,
45
- GIT_EOVERFLOW = -24,
46
- GIT_ENOTNUM = -25,
47
- GIT_ESTREAM = -26,
48
- GIT_EINVALIDARGS = -27,
49
- GIT_EOBJCORRUPTED = -28,
50
- GIT_EAMBIGUOUS = -29,
51
- GIT_EPASSTHROUGH = -30,
52
- GIT_ENOMATCH = -31,
53
- GIT_ESHORTBUFFER = -32,
54
- };
55
- #endif
56
-
57
20
  /** Generic return codes */
58
21
  enum {
59
22
  GIT_OK = 0,
@@ -62,6 +25,7 @@ enum {
62
25
  GIT_EEXISTS = -4,
63
26
  GIT_EAMBIGUOUS = -5,
64
27
  GIT_EBUFS = -6,
28
+ GIT_EUSER = -7,
65
29
 
66
30
  GIT_PASSTHROUGH = -30,
67
31
  GIT_REVWALKOVER = -31,
@@ -72,6 +36,7 @@ typedef struct {
72
36
  int klass;
73
37
  } git_error;
74
38
 
39
+ /** Error classes */
75
40
  typedef enum {
76
41
  GITERR_NOMEMORY,
77
42
  GITERR_OS,
@@ -0,0 +1,74 @@
1
+ /*
2
+ * Copyright (C) 2012 the libgit2 contributors
3
+ *
4
+ * This file is part of libgit2, distributed under the GNU GPL v2 with
5
+ * a Linking Exception. For full terms see the included COPYING file.
6
+ */
7
+ #ifndef INCLUDE_git_ignore_h__
8
+ #define INCLUDE_git_ignore_h__
9
+
10
+ #include "common.h"
11
+ #include "types.h"
12
+
13
+ GIT_BEGIN_DECL
14
+
15
+ /**
16
+ * Add ignore rules for a repository.
17
+ *
18
+ * Excludesfile rules (i.e. .gitignore rules) are generally read from
19
+ * .gitignore files in the repository tree or from a shared system file
20
+ * only if a "core.excludesfile" config value is set. The library also
21
+ * keeps a set of per-repository internal ignores that can be configured
22
+ * in-memory and will not persist. This function allows you to add to
23
+ * that internal rules list.
24
+ *
25
+ * Example usage:
26
+ *
27
+ * error = git_ignore_add(myrepo, "*.c\ndir/\nFile with space\n");
28
+ *
29
+ * This would add three rules to the ignores.
30
+ *
31
+ * @param repo The repository to add ignore rules to.
32
+ * @param rules Text of rules, a la the contents of a .gitignore file.
33
+ * It is okay to have multiple rules in the text; if so,
34
+ * each rule should be terminated with a newline.
35
+ * @return 0 on success
36
+ */
37
+ GIT_EXTERN(int) git_ignore_add_rule(
38
+ git_repository *repo,
39
+ const char *rules);
40
+
41
+ /**
42
+ * Clear ignore rules that were explicitly added.
43
+ *
44
+ * Clears the internal ignore rules that have been set up. This will not
45
+ * turn off the rules in .gitignore files that actually exist in the
46
+ * filesystem.
47
+ *
48
+ * @param repo The repository to remove ignore rules from.
49
+ * @return 0 on success
50
+ */
51
+ GIT_EXTERN(int) git_ignore_clear_internal_rules(
52
+ git_repository *repo);
53
+
54
+ /**
55
+ * Test if the ignore rules apply to a given path.
56
+ *
57
+ * This function simply checks the ignore rules to see if they would apply
58
+ * to the given file. This indicates if the file would be ignored regardless
59
+ * of whether the file is already in the index or commited to the repository.
60
+ *
61
+ * @param ignored boolean returning 0 if the file is not ignored, 1 if it is
62
+ * @param repo a repository object
63
+ * @param path the file to check ignores for, relative to the repo's workdir.
64
+ * @return 0 if ignore rules could be processed for the file (regardless
65
+ * of whether it exists or not), or an error < 0 if they could not.
66
+ */
67
+ GIT_EXTERN(int) git_ignore_path_is_ignored(
68
+ int *ignored,
69
+ git_repository *repo,
70
+ const char *path);
71
+
72
+ GIT_END_DECL
73
+
74
+ #endif