rugged 0.16.0 → 0.17.0b1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (392) hide show
  1. data/README.md +373 -243
  2. data/Rakefile +22 -0
  3. data/ext/rugged/extconf.rb +9 -6
  4. data/ext/rugged/rugged.c +123 -31
  5. data/ext/rugged/rugged.h +11 -10
  6. data/ext/rugged/rugged_blob.c +181 -18
  7. data/ext/rugged/rugged_commit.c +196 -18
  8. data/ext/rugged/rugged_config.c +94 -5
  9. data/ext/rugged/rugged_object.c +54 -1
  10. data/ext/rugged/rugged_reference.c +203 -15
  11. data/ext/rugged/{remote.c → rugged_remote.c} +35 -10
  12. data/ext/rugged/rugged_repo.c +323 -81
  13. data/ext/rugged/rugged_revwalk.c +57 -4
  14. data/ext/rugged/rugged_signature.c +3 -3
  15. data/ext/rugged/rugged_tag.c +72 -1
  16. data/ext/rugged/rugged_tree.c +70 -2
  17. data/ext/rugged/vendor/libgit2-dist/deps/regex/config.h +7 -0
  18. data/ext/rugged/vendor/libgit2-dist/deps/regex/regcomp.c +3856 -0
  19. data/ext/rugged/vendor/libgit2-dist/deps/regex/regex.c +85 -0
  20. data/ext/rugged/vendor/libgit2-dist/deps/regex/regex.h +582 -0
  21. data/ext/rugged/vendor/libgit2-dist/deps/regex/regex_internal.c +1744 -0
  22. data/ext/rugged/vendor/libgit2-dist/deps/regex/regex_internal.h +810 -0
  23. data/ext/rugged/vendor/libgit2-dist/deps/regex/regexec.c +4369 -0
  24. data/ext/rugged/vendor/libgit2-dist/examples/diff.c +238 -0
  25. data/ext/rugged/vendor/libgit2-dist/examples/general.c +4 -4
  26. data/ext/rugged/vendor/libgit2-dist/examples/network/fetch.c +101 -85
  27. data/ext/rugged/vendor/libgit2-dist/examples/network/git2.c +7 -3
  28. data/ext/rugged/vendor/libgit2-dist/examples/network/index-pack.c +80 -25
  29. data/ext/rugged/vendor/libgit2-dist/examples/network/ls-remote.c +6 -6
  30. data/ext/rugged/vendor/libgit2-dist/include/git2/attr.h +224 -0
  31. data/ext/rugged/vendor/libgit2-dist/include/git2/blob.h +59 -5
  32. data/ext/rugged/vendor/libgit2-dist/include/git2/branch.h +114 -7
  33. data/ext/rugged/vendor/libgit2-dist/include/git2/commit.h +14 -7
  34. data/ext/rugged/vendor/libgit2-dist/include/git2/common.h +4 -3
  35. data/ext/rugged/vendor/libgit2-dist/include/git2/config.h +105 -27
  36. data/ext/rugged/vendor/libgit2-dist/include/git2/diff.h +409 -0
  37. data/ext/rugged/vendor/libgit2-dist/include/git2/errors.h +47 -82
  38. data/ext/rugged/vendor/libgit2-dist/include/git2/index.h +25 -10
  39. data/ext/rugged/vendor/libgit2-dist/include/git2/indexer.h +46 -1
  40. data/ext/rugged/vendor/libgit2-dist/include/git2/merge.h +35 -0
  41. data/ext/rugged/vendor/libgit2-dist/include/git2/net.h +1 -1
  42. data/ext/rugged/vendor/libgit2-dist/include/git2/notes.h +139 -0
  43. data/ext/rugged/vendor/libgit2-dist/include/git2/object.h +5 -5
  44. data/ext/rugged/vendor/libgit2-dist/include/git2/odb.h +13 -13
  45. data/ext/rugged/vendor/libgit2-dist/include/git2/odb_backend.h +8 -8
  46. data/ext/rugged/vendor/libgit2-dist/include/git2/oid.h +14 -9
  47. data/ext/rugged/vendor/libgit2-dist/include/git2/reflog.h +5 -5
  48. data/ext/rugged/vendor/libgit2-dist/include/git2/refs.h +37 -17
  49. data/ext/rugged/vendor/libgit2-dist/include/git2/refspec.h +17 -9
  50. data/ext/rugged/vendor/libgit2-dist/include/git2/remote.h +83 -16
  51. data/ext/rugged/vendor/libgit2-dist/include/git2/repository.h +24 -10
  52. data/ext/rugged/vendor/libgit2-dist/include/git2/reset.h +44 -0
  53. data/ext/rugged/vendor/libgit2-dist/include/git2/revparse.h +36 -0
  54. data/ext/rugged/vendor/libgit2-dist/include/git2/revwalk.h +74 -6
  55. data/ext/rugged/vendor/libgit2-dist/include/git2/signature.h +3 -3
  56. data/ext/rugged/vendor/libgit2-dist/include/git2/status.h +120 -19
  57. data/ext/rugged/vendor/libgit2-dist/include/git2/submodule.h +103 -0
  58. data/ext/rugged/vendor/libgit2-dist/include/git2/tag.h +28 -10
  59. data/ext/rugged/vendor/libgit2-dist/include/git2/threads.h +1 -1
  60. data/ext/rugged/vendor/libgit2-dist/include/git2/tree.h +13 -13
  61. data/ext/rugged/vendor/libgit2-dist/include/git2/types.h +16 -2
  62. data/ext/rugged/vendor/libgit2-dist/include/git2/version.h +3 -3
  63. data/ext/rugged/vendor/libgit2-dist/include/git2/windows.h +1 -1
  64. data/ext/rugged/vendor/libgit2-dist/include/git2.h +7 -2
  65. data/ext/rugged/vendor/libgit2-dist/src/attr.c +677 -0
  66. data/ext/rugged/vendor/libgit2-dist/src/attr.h +56 -0
  67. data/ext/rugged/vendor/libgit2-dist/src/attr_file.c +609 -0
  68. data/ext/rugged/vendor/libgit2-dist/src/attr_file.h +145 -0
  69. data/ext/rugged/vendor/libgit2-dist/src/blob.c +213 -60
  70. data/ext/rugged/vendor/libgit2-dist/src/blob.h +2 -1
  71. data/ext/rugged/vendor/libgit2-dist/src/branch.c +208 -0
  72. data/ext/rugged/vendor/libgit2-dist/src/branch.h +17 -0
  73. data/ext/rugged/vendor/libgit2-dist/src/bswap.h +1 -1
  74. data/ext/rugged/vendor/libgit2-dist/src/buffer.c +395 -46
  75. data/ext/rugged/vendor/libgit2-dist/src/buffer.h +112 -9
  76. data/ext/rugged/vendor/libgit2-dist/src/cache.c +37 -49
  77. data/ext/rugged/vendor/libgit2-dist/src/cache.h +7 -17
  78. data/ext/rugged/vendor/libgit2-dist/src/cc-compat.h +18 -16
  79. data/ext/rugged/vendor/libgit2-dist/src/commit.c +56 -90
  80. data/ext/rugged/vendor/libgit2-dist/src/commit.h +1 -1
  81. data/ext/rugged/vendor/libgit2-dist/src/common.h +12 -5
  82. data/ext/rugged/vendor/libgit2-dist/src/{win32 → compat}/fnmatch.c +1 -1
  83. data/ext/rugged/vendor/libgit2-dist/src/{win32 → compat}/fnmatch.h +3 -3
  84. data/ext/rugged/vendor/libgit2-dist/src/config.c +247 -158
  85. data/ext/rugged/vendor/libgit2-dist/src/config.h +10 -1
  86. data/ext/rugged/vendor/libgit2-dist/src/config_cache.c +94 -0
  87. data/ext/rugged/vendor/libgit2-dist/src/config_file.c +606 -496
  88. data/ext/rugged/vendor/libgit2-dist/src/config_file.h +31 -0
  89. data/ext/rugged/vendor/libgit2-dist/src/crlf.c +228 -0
  90. data/ext/rugged/vendor/libgit2-dist/src/date.c +876 -0
  91. data/ext/rugged/vendor/libgit2-dist/src/delta-apply.c +15 -9
  92. data/ext/rugged/vendor/libgit2-dist/src/delta-apply.h +2 -2
  93. data/ext/rugged/vendor/libgit2-dist/src/diff.c +814 -0
  94. data/ext/rugged/vendor/libgit2-dist/src/diff.h +43 -0
  95. data/ext/rugged/vendor/libgit2-dist/src/diff_output.c +794 -0
  96. data/ext/rugged/vendor/libgit2-dist/src/errors.c +89 -74
  97. data/ext/rugged/vendor/libgit2-dist/src/fetch.c +94 -66
  98. data/ext/rugged/vendor/libgit2-dist/src/fetch.h +5 -4
  99. data/ext/rugged/vendor/libgit2-dist/src/filebuf.c +157 -100
  100. data/ext/rugged/vendor/libgit2-dist/src/filebuf.h +22 -8
  101. data/ext/rugged/vendor/libgit2-dist/src/fileops.c +330 -206
  102. data/ext/rugged/vendor/libgit2-dist/src/fileops.h +82 -51
  103. data/ext/rugged/vendor/libgit2-dist/src/filter.c +165 -0
  104. data/ext/rugged/vendor/libgit2-dist/src/filter.h +119 -0
  105. data/ext/rugged/vendor/libgit2-dist/src/global.c +4 -4
  106. data/ext/rugged/vendor/libgit2-dist/src/global.h +4 -1
  107. data/ext/rugged/vendor/libgit2-dist/src/hash.c +1 -1
  108. data/ext/rugged/vendor/libgit2-dist/src/hash.h +1 -1
  109. data/ext/rugged/vendor/libgit2-dist/src/ignore.c +203 -0
  110. data/ext/rugged/vendor/libgit2-dist/src/ignore.h +38 -0
  111. data/ext/rugged/vendor/libgit2-dist/src/index.c +220 -169
  112. data/ext/rugged/vendor/libgit2-dist/src/index.h +5 -1
  113. data/ext/rugged/vendor/libgit2-dist/src/indexer.c +601 -102
  114. data/ext/rugged/vendor/libgit2-dist/src/iterator.c +748 -0
  115. data/ext/rugged/vendor/libgit2-dist/src/iterator.h +151 -0
  116. data/ext/rugged/vendor/libgit2-dist/src/khash.h +608 -0
  117. data/ext/rugged/vendor/libgit2-dist/src/map.h +6 -1
  118. data/ext/rugged/vendor/libgit2-dist/src/message.c +61 -0
  119. data/ext/rugged/vendor/libgit2-dist/src/message.h +14 -0
  120. data/ext/rugged/vendor/libgit2-dist/src/mwindow.c +27 -29
  121. data/ext/rugged/vendor/libgit2-dist/src/mwindow.h +4 -4
  122. data/ext/rugged/vendor/libgit2-dist/src/netops.c +375 -56
  123. data/ext/rugged/vendor/libgit2-dist/src/netops.h +12 -9
  124. data/ext/rugged/vendor/libgit2-dist/src/notes.c +548 -0
  125. data/ext/rugged/vendor/libgit2-dist/src/notes.h +28 -0
  126. data/ext/rugged/vendor/libgit2-dist/src/object.c +59 -21
  127. data/ext/rugged/vendor/libgit2-dist/src/odb.c +212 -175
  128. data/ext/rugged/vendor/libgit2-dist/src/odb.h +39 -2
  129. data/ext/rugged/vendor/libgit2-dist/src/odb_loose.c +238 -241
  130. data/ext/rugged/vendor/libgit2-dist/src/odb_pack.c +94 -106
  131. data/ext/rugged/vendor/libgit2-dist/src/oid.c +59 -60
  132. data/ext/rugged/vendor/libgit2-dist/src/oidmap.h +42 -0
  133. data/ext/rugged/vendor/libgit2-dist/src/pack.c +198 -170
  134. data/ext/rugged/vendor/libgit2-dist/src/pack.h +16 -9
  135. data/ext/rugged/vendor/libgit2-dist/src/path.c +496 -106
  136. data/ext/rugged/vendor/libgit2-dist/src/path.h +214 -20
  137. data/ext/rugged/vendor/libgit2-dist/src/pkt.c +88 -159
  138. data/ext/rugged/vendor/libgit2-dist/src/pkt.h +9 -5
  139. data/ext/rugged/vendor/libgit2-dist/src/pool.c +294 -0
  140. data/ext/rugged/vendor/libgit2-dist/src/pool.h +125 -0
  141. data/ext/rugged/vendor/libgit2-dist/src/posix.c +38 -16
  142. data/ext/rugged/vendor/libgit2-dist/src/posix.h +20 -2
  143. data/ext/rugged/vendor/libgit2-dist/src/ppc/sha1.c +1 -1
  144. data/ext/rugged/vendor/libgit2-dist/src/ppc/sha1.h +1 -1
  145. data/ext/rugged/vendor/libgit2-dist/src/pqueue.c +7 -7
  146. data/ext/rugged/vendor/libgit2-dist/src/pqueue.h +1 -1
  147. data/ext/rugged/vendor/libgit2-dist/src/protocol.c +21 -13
  148. data/ext/rugged/vendor/libgit2-dist/src/protocol.h +1 -1
  149. data/ext/rugged/vendor/libgit2-dist/src/reflog.c +125 -103
  150. data/ext/rugged/vendor/libgit2-dist/src/reflog.h +1 -1
  151. data/ext/rugged/vendor/libgit2-dist/src/refs.c +713 -640
  152. data/ext/rugged/vendor/libgit2-dist/src/refs.h +27 -3
  153. data/ext/rugged/vendor/libgit2-dist/src/refspec.c +51 -17
  154. data/ext/rugged/vendor/libgit2-dist/src/refspec.h +13 -1
  155. data/ext/rugged/vendor/libgit2-dist/src/remote.c +307 -119
  156. data/ext/rugged/vendor/libgit2-dist/src/remote.h +3 -2
  157. data/ext/rugged/vendor/libgit2-dist/src/repository.c +593 -442
  158. data/ext/rugged/vendor/libgit2-dist/src/repository.h +80 -2
  159. data/ext/rugged/vendor/libgit2-dist/src/reset.c +103 -0
  160. data/ext/rugged/vendor/libgit2-dist/src/revparse.c +753 -0
  161. data/ext/rugged/vendor/libgit2-dist/src/revwalk.c +434 -158
  162. data/ext/rugged/vendor/libgit2-dist/src/sha1.c +3 -3
  163. data/ext/rugged/vendor/libgit2-dist/src/sha1.h +2 -2
  164. data/ext/rugged/vendor/libgit2-dist/src/sha1_lookup.c +3 -2
  165. data/ext/rugged/vendor/libgit2-dist/src/sha1_lookup.h +1 -1
  166. data/ext/rugged/vendor/libgit2-dist/src/signature.c +69 -80
  167. data/ext/rugged/vendor/libgit2-dist/src/signature.h +1 -1
  168. data/ext/rugged/vendor/libgit2-dist/src/status.c +184 -638
  169. data/ext/rugged/vendor/libgit2-dist/src/strmap.h +64 -0
  170. data/ext/rugged/vendor/libgit2-dist/src/submodule.c +387 -0
  171. data/ext/rugged/vendor/libgit2-dist/src/tag.c +162 -137
  172. data/ext/rugged/vendor/libgit2-dist/src/tag.h +2 -1
  173. data/ext/rugged/vendor/libgit2-dist/src/thread-utils.c +1 -1
  174. data/ext/rugged/vendor/libgit2-dist/src/thread-utils.h +8 -8
  175. data/ext/rugged/vendor/libgit2-dist/src/transport.c +31 -19
  176. data/ext/rugged/vendor/libgit2-dist/src/transport.h +31 -11
  177. data/ext/rugged/vendor/libgit2-dist/src/transports/git.c +168 -193
  178. data/ext/rugged/vendor/libgit2-dist/src/transports/http.c +192 -241
  179. data/ext/rugged/vendor/libgit2-dist/src/transports/local.c +92 -86
  180. data/ext/rugged/vendor/libgit2-dist/src/tree-cache.c +32 -49
  181. data/ext/rugged/vendor/libgit2-dist/src/tree-cache.h +1 -1
  182. data/ext/rugged/vendor/libgit2-dist/src/tree.c +172 -145
  183. data/ext/rugged/vendor/libgit2-dist/src/tree.h +16 -2
  184. data/ext/rugged/vendor/libgit2-dist/src/tsort.c +16 -14
  185. data/ext/rugged/vendor/libgit2-dist/src/unix/map.c +8 -24
  186. data/ext/rugged/vendor/libgit2-dist/src/unix/posix.h +9 -3
  187. data/ext/rugged/vendor/libgit2-dist/src/util.c +94 -38
  188. data/ext/rugged/vendor/libgit2-dist/src/util.h +119 -13
  189. data/ext/rugged/vendor/libgit2-dist/src/vector.c +84 -31
  190. data/ext/rugged/vendor/libgit2-dist/src/vector.h +37 -4
  191. data/ext/rugged/vendor/libgit2-dist/src/win32/dir.c +81 -41
  192. data/ext/rugged/vendor/libgit2-dist/src/{dir.h → win32/dir.h} +4 -9
  193. data/ext/rugged/vendor/libgit2-dist/src/win32/map.c +19 -35
  194. data/ext/rugged/vendor/libgit2-dist/src/win32/mingw-compat.h +1 -1
  195. data/ext/rugged/vendor/libgit2-dist/src/win32/msvc-compat.h +5 -1
  196. data/ext/rugged/vendor/libgit2-dist/src/win32/posix.h +10 -8
  197. data/ext/rugged/vendor/libgit2-dist/src/win32/posix_w32.c +262 -118
  198. data/ext/rugged/vendor/libgit2-dist/src/win32/pthread.c +12 -9
  199. data/ext/rugged/vendor/libgit2-dist/src/win32/pthread.h +1 -1
  200. data/ext/rugged/vendor/libgit2-dist/src/win32/utf-conv.c +30 -26
  201. data/ext/rugged/vendor/libgit2-dist/src/win32/utf-conv.h +2 -1
  202. data/ext/rugged/vendor/libgit2-dist/src/xdiff/xdiff.h +135 -0
  203. data/ext/rugged/vendor/libgit2-dist/src/xdiff/xdiffi.c +572 -0
  204. data/ext/rugged/vendor/libgit2-dist/src/xdiff/xdiffi.h +63 -0
  205. data/ext/rugged/vendor/libgit2-dist/src/xdiff/xemit.c +253 -0
  206. data/ext/rugged/vendor/libgit2-dist/src/xdiff/xemit.h +36 -0
  207. data/ext/rugged/vendor/libgit2-dist/src/xdiff/xhistogram.c +371 -0
  208. data/ext/rugged/vendor/libgit2-dist/src/xdiff/xinclude.h +46 -0
  209. data/ext/rugged/vendor/libgit2-dist/src/xdiff/xmacros.h +54 -0
  210. data/ext/rugged/vendor/libgit2-dist/src/xdiff/xmerge.c +619 -0
  211. data/ext/rugged/vendor/libgit2-dist/src/xdiff/xpatience.c +358 -0
  212. data/ext/rugged/vendor/libgit2-dist/src/xdiff/xprepare.c +483 -0
  213. data/ext/rugged/vendor/libgit2-dist/src/xdiff/xprepare.h +34 -0
  214. data/ext/rugged/vendor/libgit2-dist/src/xdiff/xtypes.h +67 -0
  215. data/ext/rugged/vendor/libgit2-dist/src/xdiff/xutils.c +419 -0
  216. data/ext/rugged/vendor/libgit2-dist/src/xdiff/xutils.h +49 -0
  217. data/ext/rugged/vendor/libgit2-dist/tests-clar/attr/attr_expect.h +43 -0
  218. data/ext/rugged/vendor/libgit2-dist/tests-clar/attr/file.c +226 -0
  219. data/ext/rugged/vendor/libgit2-dist/tests-clar/attr/flags.c +108 -0
  220. data/ext/rugged/vendor/libgit2-dist/tests-clar/attr/lookup.c +262 -0
  221. data/ext/rugged/vendor/libgit2-dist/tests-clar/attr/repo.c +273 -0
  222. data/ext/rugged/vendor/libgit2-dist/{tests-clay → tests-clar}/buf/basic.c +5 -5
  223. data/ext/rugged/vendor/libgit2-dist/tests-clar/clar_helpers.c +181 -0
  224. data/ext/rugged/vendor/libgit2-dist/tests-clar/clar_libgit2.h +55 -0
  225. data/ext/rugged/vendor/libgit2-dist/tests-clar/commit/commit.c +44 -0
  226. data/ext/rugged/vendor/libgit2-dist/tests-clar/commit/parse.c +350 -0
  227. data/ext/rugged/vendor/libgit2-dist/tests-clar/commit/signature.c +65 -0
  228. data/ext/rugged/vendor/libgit2-dist/tests-clar/commit/write.c +140 -0
  229. data/ext/rugged/vendor/libgit2-dist/{tests-clay → tests-clar}/config/add.c +3 -3
  230. data/ext/rugged/vendor/libgit2-dist/tests-clar/config/multivar.c +151 -0
  231. data/ext/rugged/vendor/libgit2-dist/{tests-clay → tests-clar}/config/new.c +5 -5
  232. data/ext/rugged/vendor/libgit2-dist/{tests-clay → tests-clar}/config/read.c +44 -32
  233. data/ext/rugged/vendor/libgit2-dist/tests-clar/config/stress.c +61 -0
  234. data/ext/rugged/vendor/libgit2-dist/{tests-clay → tests-clar}/config/write.c +20 -5
  235. data/ext/rugged/vendor/libgit2-dist/tests-clar/core/buffer.c +613 -0
  236. data/ext/rugged/vendor/libgit2-dist/{tests-clay → tests-clar}/core/dirent.c +39 -26
  237. data/ext/rugged/vendor/libgit2-dist/tests-clar/core/env.c +115 -0
  238. data/ext/rugged/vendor/libgit2-dist/tests-clar/core/errors.c +60 -0
  239. data/ext/rugged/vendor/libgit2-dist/{tests-clay → tests-clar}/core/filebuf.c +4 -18
  240. data/ext/rugged/vendor/libgit2-dist/tests-clar/core/hex.c +22 -0
  241. data/ext/rugged/vendor/libgit2-dist/{tests-clay → tests-clar}/core/oid.c +6 -6
  242. data/ext/rugged/vendor/libgit2-dist/tests-clar/core/path.c +420 -0
  243. data/ext/rugged/vendor/libgit2-dist/tests-clar/core/pool.c +85 -0
  244. data/ext/rugged/vendor/libgit2-dist/tests-clar/core/rmdir.c +68 -0
  245. data/ext/rugged/vendor/libgit2-dist/{tests-clay → tests-clar}/core/string.c +1 -1
  246. data/ext/rugged/vendor/libgit2-dist/tests-clar/core/strmap.c +102 -0
  247. data/ext/rugged/vendor/libgit2-dist/{tests-clay → tests-clar}/core/strtol.c +1 -1
  248. data/ext/rugged/vendor/libgit2-dist/tests-clar/core/vector.c +191 -0
  249. data/ext/rugged/vendor/libgit2-dist/tests-clar/date/date.c +15 -0
  250. data/ext/rugged/vendor/libgit2-dist/tests-clar/diff/blob.c +254 -0
  251. data/ext/rugged/vendor/libgit2-dist/tests-clar/diff/diff_helpers.c +104 -0
  252. data/ext/rugged/vendor/libgit2-dist/tests-clar/diff/diff_helpers.h +47 -0
  253. data/ext/rugged/vendor/libgit2-dist/tests-clar/diff/index.c +92 -0
  254. data/ext/rugged/vendor/libgit2-dist/tests-clar/diff/iterator.c +572 -0
  255. data/ext/rugged/vendor/libgit2-dist/tests-clar/diff/patch.c +99 -0
  256. data/ext/rugged/vendor/libgit2-dist/tests-clar/diff/tree.c +210 -0
  257. data/ext/rugged/vendor/libgit2-dist/tests-clar/diff/workdir.c +543 -0
  258. data/ext/rugged/vendor/libgit2-dist/tests-clar/index/read_tree.c +46 -0
  259. data/ext/rugged/vendor/libgit2-dist/{tests-clay → tests-clar}/index/rename.c +2 -12
  260. data/ext/rugged/vendor/libgit2-dist/tests-clar/index/tests.c +246 -0
  261. data/ext/rugged/vendor/libgit2-dist/tests-clar/network/createremotethenload.c +33 -0
  262. data/ext/rugged/vendor/libgit2-dist/tests-clar/network/remotelocal.c +137 -0
  263. data/ext/rugged/vendor/libgit2-dist/tests-clar/network/remotes.c +183 -0
  264. data/ext/rugged/vendor/libgit2-dist/tests-clar/notes/notes.c +133 -0
  265. data/ext/rugged/vendor/libgit2-dist/tests-clar/notes/notesref.c +57 -0
  266. data/ext/rugged/vendor/libgit2-dist/tests-clar/object/blob/filter.c +125 -0
  267. data/ext/rugged/vendor/libgit2-dist/tests-clar/object/blob/fromchunks.c +87 -0
  268. data/ext/rugged/vendor/libgit2-dist/tests-clar/object/blob/write.c +69 -0
  269. data/ext/rugged/vendor/libgit2-dist/tests-clar/object/commit/commitstagedfile.c +126 -0
  270. data/ext/rugged/vendor/libgit2-dist/tests-clar/object/lookup.c +63 -0
  271. data/ext/rugged/vendor/libgit2-dist/tests-clar/object/message.c +171 -0
  272. data/ext/rugged/vendor/libgit2-dist/{tests-clay → tests-clar}/object/raw/chars.c +3 -14
  273. data/ext/rugged/vendor/libgit2-dist/{tests-clay → tests-clar}/object/raw/compare.c +4 -4
  274. data/ext/rugged/vendor/libgit2-dist/{tests-clay → tests-clar}/object/raw/convert.c +10 -10
  275. data/ext/rugged/vendor/libgit2-dist/{tests-clay → tests-clar}/object/raw/data.h +0 -0
  276. data/ext/rugged/vendor/libgit2-dist/{tests-clay → tests-clar}/object/raw/fromstr.c +1 -1
  277. data/ext/rugged/vendor/libgit2-dist/{tests-clay → tests-clar}/object/raw/hash.c +21 -17
  278. data/ext/rugged/vendor/libgit2-dist/{tests-clay → tests-clar}/object/raw/short.c +1 -1
  279. data/ext/rugged/vendor/libgit2-dist/{tests-clay → tests-clar}/object/raw/size.c +1 -1
  280. data/ext/rugged/vendor/libgit2-dist/{tests-clay → tests-clar}/object/raw/type2string.c +14 -14
  281. data/ext/rugged/vendor/libgit2-dist/tests-clar/object/raw/write.c +455 -0
  282. data/ext/rugged/vendor/libgit2-dist/tests-clar/object/tag/peel.c +56 -0
  283. data/ext/rugged/vendor/libgit2-dist/tests-clar/object/tag/read.c +130 -0
  284. data/ext/rugged/vendor/libgit2-dist/tests-clar/object/tag/write.c +192 -0
  285. data/ext/rugged/vendor/libgit2-dist/{tests-clay → tests-clar}/object/tree/frompath.c +22 -16
  286. data/ext/rugged/vendor/libgit2-dist/tests-clar/object/tree/read.c +75 -0
  287. data/ext/rugged/vendor/libgit2-dist/tests-clar/object/tree/write.c +84 -0
  288. data/ext/rugged/vendor/libgit2-dist/{tests-clay → tests-clar}/odb/loose.c +1 -1
  289. data/ext/rugged/vendor/libgit2-dist/{tests-clay → tests-clar}/odb/loose_data.h +0 -0
  290. data/ext/rugged/vendor/libgit2-dist/tests-clar/odb/mixed.c +24 -0
  291. data/ext/rugged/vendor/libgit2-dist/{tests-clay → tests-clar}/odb/pack_data.h +0 -0
  292. data/ext/rugged/vendor/libgit2-dist/{tests-clay → tests-clar}/odb/packed.c +1 -1
  293. data/ext/rugged/vendor/libgit2-dist/{tests-clay → tests-clar}/odb/sorting.c +1 -1
  294. data/ext/rugged/vendor/libgit2-dist/tests-clar/refs/branches/create.c +113 -0
  295. data/ext/rugged/vendor/libgit2-dist/tests-clar/refs/branches/delete.c +91 -0
  296. data/ext/rugged/vendor/libgit2-dist/tests-clar/refs/branches/listall.c +78 -0
  297. data/ext/rugged/vendor/libgit2-dist/tests-clar/refs/branches/move.c +72 -0
  298. data/ext/rugged/vendor/libgit2-dist/tests-clar/refs/crashes.c +17 -0
  299. data/ext/rugged/vendor/libgit2-dist/tests-clar/refs/create.c +149 -0
  300. data/ext/rugged/vendor/libgit2-dist/tests-clar/refs/delete.c +85 -0
  301. data/ext/rugged/vendor/libgit2-dist/tests-clar/refs/list.c +53 -0
  302. data/ext/rugged/vendor/libgit2-dist/tests-clar/refs/listall.c +36 -0
  303. data/ext/rugged/vendor/libgit2-dist/tests-clar/refs/lookup.c +42 -0
  304. data/ext/rugged/vendor/libgit2-dist/tests-clar/refs/normalize.c +200 -0
  305. data/ext/rugged/vendor/libgit2-dist/tests-clar/refs/overwrite.c +136 -0
  306. data/ext/rugged/vendor/libgit2-dist/tests-clar/refs/pack.c +67 -0
  307. data/ext/rugged/vendor/libgit2-dist/tests-clar/refs/read.c +194 -0
  308. data/ext/rugged/vendor/libgit2-dist/tests-clar/refs/reflog.c +123 -0
  309. data/ext/rugged/vendor/libgit2-dist/tests-clar/refs/rename.c +339 -0
  310. data/ext/rugged/vendor/libgit2-dist/tests-clar/refs/revparse.c +174 -0
  311. data/ext/rugged/vendor/libgit2-dist/tests-clar/refs/unicode.c +42 -0
  312. data/ext/rugged/vendor/libgit2-dist/tests-clar/repo/discover.c +142 -0
  313. data/ext/rugged/vendor/libgit2-dist/{tests-clay → tests-clar}/repo/getters.c +19 -1
  314. data/ext/rugged/vendor/libgit2-dist/tests-clar/repo/init.c +235 -0
  315. data/ext/rugged/vendor/libgit2-dist/tests-clar/repo/open.c +282 -0
  316. data/ext/rugged/vendor/libgit2-dist/tests-clar/repo/setters.c +80 -0
  317. data/ext/rugged/vendor/libgit2-dist/tests-clar/reset/mixed.c +47 -0
  318. data/ext/rugged/vendor/libgit2-dist/tests-clar/reset/reset_helpers.c +10 -0
  319. data/ext/rugged/vendor/libgit2-dist/tests-clar/reset/reset_helpers.h +6 -0
  320. data/ext/rugged/vendor/libgit2-dist/tests-clar/reset/soft.c +102 -0
  321. data/ext/rugged/vendor/libgit2-dist/{tests/t05-revwalk.c → tests-clar/revwalk/basic.c} +85 -44
  322. data/ext/rugged/vendor/libgit2-dist/tests-clar/revwalk/mergebase.c +148 -0
  323. data/ext/rugged/vendor/libgit2-dist/tests-clar/status/ignore.c +133 -0
  324. data/ext/rugged/vendor/libgit2-dist/{tests-clay → tests-clar}/status/single.c +2 -11
  325. data/ext/rugged/vendor/libgit2-dist/tests-clar/status/status_data.h +202 -0
  326. data/ext/rugged/vendor/libgit2-dist/tests-clar/status/status_helpers.c +49 -0
  327. data/ext/rugged/vendor/libgit2-dist/tests-clar/status/status_helpers.h +33 -0
  328. data/ext/rugged/vendor/libgit2-dist/tests-clar/status/submodules.c +112 -0
  329. data/ext/rugged/vendor/libgit2-dist/tests-clar/status/worktree.c +649 -0
  330. data/ext/rugged/vendor/libgit2-dist/tests-clar/threads/basic.c +20 -0
  331. data/ext/rugged/vendor/libgit2-dist.tar.gz +0 -0
  332. data/lib/rugged/commit.rb +35 -0
  333. data/lib/rugged/object.rb +7 -0
  334. data/lib/rugged/reference.rb +9 -0
  335. data/lib/rugged/repository.rb +99 -3
  336. data/lib/rugged/tag.rb +22 -0
  337. data/lib/rugged/tree.rb +8 -0
  338. data/lib/rugged/version.rb +1 -1
  339. data/lib/rugged.rb +4 -1
  340. data/test/blob_test.rb +2 -2
  341. data/test/commit_test.rb +27 -13
  342. data/test/config_test.rb +44 -0
  343. data/test/coverage/HEAD.json +1 -1
  344. data/test/fixtures/testrepo.git/config +2 -0
  345. data/test/fixtures/testrepo.git/objects/7f/043268ea43ce18e3540acaabf9e090c91965b0 +0 -0
  346. data/test/lib_test.rb +7 -0
  347. data/test/object_test.rb +3 -3
  348. data/test/reference_test.rb +46 -8
  349. data/test/remote_test.rb +8 -2
  350. data/test/repo_pack_test.rb +3 -3
  351. data/test/repo_test.rb +79 -11
  352. data/test/tag_test.rb +9 -2
  353. data/test/test_helper.rb +21 -0
  354. data/test/tree_test.rb +18 -6
  355. metadata +205 -81
  356. data/ext/rugged/vendor/libgit2-dist/include/git2/zlib.h +0 -40
  357. data/ext/rugged/vendor/libgit2-dist/src/hashtable.c +0 -243
  358. data/ext/rugged/vendor/libgit2-dist/src/hashtable.h +0 -80
  359. data/ext/rugged/vendor/libgit2-dist/tests/t00-core.c +0 -628
  360. data/ext/rugged/vendor/libgit2-dist/tests/t01-data.h +0 -322
  361. data/ext/rugged/vendor/libgit2-dist/tests/t01-rawobj.c +0 -638
  362. data/ext/rugged/vendor/libgit2-dist/tests/t03-data.h +0 -344
  363. data/ext/rugged/vendor/libgit2-dist/tests/t03-objwrite.c +0 -255
  364. data/ext/rugged/vendor/libgit2-dist/tests/t04-commit.c +0 -788
  365. data/ext/rugged/vendor/libgit2-dist/tests/t06-index.c +0 -219
  366. data/ext/rugged/vendor/libgit2-dist/tests/t07-hashtable.c +0 -192
  367. data/ext/rugged/vendor/libgit2-dist/tests/t08-tag.c +0 -357
  368. data/ext/rugged/vendor/libgit2-dist/tests/t09-tree.c +0 -221
  369. data/ext/rugged/vendor/libgit2-dist/tests/t10-refs.c +0 -1294
  370. data/ext/rugged/vendor/libgit2-dist/tests/t12-repo.c +0 -174
  371. data/ext/rugged/vendor/libgit2-dist/tests/t13-threads.c +0 -41
  372. data/ext/rugged/vendor/libgit2-dist/tests/t17-bufs.c +0 -61
  373. data/ext/rugged/vendor/libgit2-dist/tests/t18-status.c +0 -448
  374. data/ext/rugged/vendor/libgit2-dist/tests/test_helpers.c +0 -310
  375. data/ext/rugged/vendor/libgit2-dist/tests/test_helpers.h +0 -83
  376. data/ext/rugged/vendor/libgit2-dist/tests/test_lib.c +0 -198
  377. data/ext/rugged/vendor/libgit2-dist/tests/test_lib.h +0 -54
  378. data/ext/rugged/vendor/libgit2-dist/tests/test_main.c +0 -89
  379. data/ext/rugged/vendor/libgit2-dist/tests-clay/clay.h +0 -187
  380. data/ext/rugged/vendor/libgit2-dist/tests-clay/clay_libgit2.h +0 -28
  381. data/ext/rugged/vendor/libgit2-dist/tests-clay/clay_main.c +0 -1073
  382. data/ext/rugged/vendor/libgit2-dist/tests-clay/config/stress.c +0 -39
  383. data/ext/rugged/vendor/libgit2-dist/tests-clay/core/path.c +0 -139
  384. data/ext/rugged/vendor/libgit2-dist/tests-clay/core/rmdir.c +0 -50
  385. data/ext/rugged/vendor/libgit2-dist/tests-clay/core/vector.c +0 -66
  386. data/ext/rugged/vendor/libgit2-dist/tests-clay/network/remotes.c +0 -50
  387. data/ext/rugged/vendor/libgit2-dist/tests-clay/repo/init.c +0 -104
  388. data/ext/rugged/vendor/libgit2-dist/tests-clay/repo/open.c +0 -54
  389. data/ext/rugged/vendor/libgit2-dist/tests-clay/status/status_data.h +0 -48
  390. data/ext/rugged/vendor/libgit2-dist/tests-clay/status/worktree.c +0 -124
  391. data/lib/rugged/objects.rb +0 -45
  392. data/test/fixtures/testrepo.git/refs/heads/new_name +0 -1
@@ -1,39 +0,0 @@
1
- #include "clay_libgit2.h"
2
-
3
- #include "filebuf.h"
4
- #include "fileops.h"
5
- #include "posix.h"
6
-
7
- void test_config_stress__initialize(void)
8
- {
9
- git_filebuf file = GIT_FILEBUF_INIT;
10
-
11
- cl_git_pass(git_filebuf_open(&file, "git-test-config", 0));
12
-
13
- git_filebuf_printf(&file, "[color]\n\tui = auto\n");
14
- git_filebuf_printf(&file, "[core]\n\teditor = \n");
15
-
16
- cl_git_pass(git_filebuf_commit(&file, 0666));
17
- }
18
-
19
- void test_config_stress__cleanup(void)
20
- {
21
- p_unlink("git-test-config");
22
- }
23
-
24
- void test_config_stress__dont_break_on_invalid_input(void)
25
- {
26
- const char *editor, *color;
27
- struct git_config_file *file;
28
- git_config *config;
29
-
30
- cl_git_pass(git_futils_exists("git-test-config"));
31
- cl_git_pass(git_config_file__ondisk(&file, "git-test-config"));
32
- cl_git_pass(git_config_new(&config));
33
- cl_git_pass(git_config_add_file(config, file, 0));
34
-
35
- cl_git_pass(git_config_get_string(config, "color.ui", &color));
36
- cl_git_pass(git_config_get_string(config, "core.editor", &editor));
37
-
38
- git_config_free(config);
39
- }
@@ -1,139 +0,0 @@
1
- #include "clay_libgit2.h"
2
- #include <fileops.h>
3
-
4
- static void
5
- check_dirname(const char *A, const char *B)
6
- {
7
- char dir[64], *dir2;
8
-
9
- cl_assert(git_path_dirname_r(dir, sizeof(dir), A) >= 0);
10
- cl_assert(strcmp(dir, B) == 0);
11
- cl_assert((dir2 = git_path_dirname(A)) != NULL);
12
- cl_assert(strcmp(dir2, B) == 0);
13
-
14
- git__free(dir2);
15
- }
16
-
17
- static void
18
- check_basename(const char *A, const char *B)
19
- {
20
- char base[64], *base2;
21
-
22
- cl_assert(git_path_basename_r(base, sizeof(base), A) >= 0);
23
- cl_assert(strcmp(base, B) == 0);
24
- cl_assert((base2 = git_path_basename(A)) != NULL);
25
- cl_assert(strcmp(base2, B) == 0);
26
-
27
- git__free(base2);
28
- }
29
-
30
- static void
31
- check_topdir(const char *A, const char *B)
32
- {
33
- const char *dir;
34
-
35
- cl_assert((dir = git_path_topdir(A)) != NULL);
36
- cl_assert(strcmp(dir, B) == 0);
37
- }
38
-
39
- static void
40
- check_joinpath(const char *path_a, const char *path_b, const char *expected_path)
41
- {
42
- char joined_path[GIT_PATH_MAX];
43
-
44
- git_path_join(joined_path, path_a, path_b);
45
- cl_assert(strcmp(joined_path, expected_path) == 0);
46
- }
47
-
48
- static void
49
- check_joinpath_n(
50
- const char *path_a,
51
- const char *path_b,
52
- const char *path_c,
53
- const char *path_d,
54
- const char *expected_path)
55
- {
56
- char joined_path[GIT_PATH_MAX];
57
-
58
- git_path_join_n(joined_path, 4, path_a, path_b, path_c, path_d);
59
- cl_assert(strcmp(joined_path, expected_path) == 0);
60
- }
61
-
62
-
63
- /* get the dirname of a path */
64
- void test_core_path__0(void)
65
- {
66
-
67
- check_dirname(NULL, ".");
68
- check_dirname("", ".");
69
- check_dirname("a", ".");
70
- check_dirname("/", "/");
71
- check_dirname("/usr", "/");
72
- check_dirname("/usr/", "/");
73
- check_dirname("/usr/lib", "/usr");
74
- check_dirname("/usr/lib/", "/usr");
75
- check_dirname("/usr/lib//", "/usr");
76
- check_dirname("usr/lib", "usr");
77
- check_dirname("usr/lib/", "usr");
78
- check_dirname("usr/lib//", "usr");
79
- check_dirname(".git/", ".");
80
- }
81
-
82
- /* get the base name of a path */
83
- void test_core_path__1(void)
84
- {
85
- check_basename(NULL, ".");
86
- check_basename("", ".");
87
- check_basename("a", "a");
88
- check_basename("/", "/");
89
- check_basename("/usr", "usr");
90
- check_basename("/usr/", "usr");
91
- check_basename("/usr/lib", "lib");
92
- check_basename("/usr/lib//", "lib");
93
- check_basename("usr/lib", "lib");
94
- }
95
-
96
- /* get the latest component in a path */
97
- void test_core_path__2(void)
98
- {
99
- check_topdir(".git/", ".git/");
100
- check_topdir("/.git/", ".git/");
101
- check_topdir("usr/local/.git/", ".git/");
102
- check_topdir("./.git/", ".git/");
103
- check_topdir("/usr/.git/", ".git/");
104
- check_topdir("/", "/");
105
- check_topdir("a/", "a/");
106
-
107
- cl_assert(git_path_topdir("/usr/.git") == NULL);
108
- cl_assert(git_path_topdir(".") == NULL);
109
- cl_assert(git_path_topdir("") == NULL);
110
- cl_assert(git_path_topdir("a") == NULL);
111
- }
112
-
113
- /* properly join path components */
114
- void test_core_path__5(void)
115
- {
116
- check_joinpath("", "", "");
117
- check_joinpath("", "a", "a");
118
- check_joinpath("", "/a", "/a");
119
- check_joinpath("a", "", "a/");
120
- check_joinpath("a", "/", "a/");
121
- check_joinpath("a", "b", "a/b");
122
- check_joinpath("/", "a", "/a");
123
- check_joinpath("/", "", "/");
124
- check_joinpath("/a", "/b", "/a/b");
125
- check_joinpath("/a", "/b/", "/a/b/");
126
- check_joinpath("/a/", "b/", "/a/b/");
127
- check_joinpath("/a/", "/b/", "/a/b/");
128
- }
129
-
130
- /* properly join path components for more than one path */
131
- void test_core_path__6(void)
132
- {
133
- check_joinpath_n("", "", "", "", "");
134
- check_joinpath_n("", "a", "", "", "a/");
135
- check_joinpath_n("a", "", "", "", "a/");
136
- check_joinpath_n("", "", "", "a", "a");
137
- check_joinpath_n("a", "b", "", "/c/d/", "a/b/c/d/");
138
- check_joinpath_n("a", "b", "", "/c/d", "a/b/c/d");
139
- }
@@ -1,50 +0,0 @@
1
- #include "clay_libgit2.h"
2
- #include "fileops.h"
3
-
4
- static const char *empty_tmp_dir = "test_gitfo_rmdir_recurs_test";
5
-
6
- void test_core_rmdir__initialize(void)
7
- {
8
- char path[GIT_PATH_MAX];
9
-
10
- cl_must_pass(p_mkdir(empty_tmp_dir, 0777));
11
-
12
- git_path_join(path, empty_tmp_dir, "/one");
13
- cl_must_pass(p_mkdir(path, 0777));
14
-
15
- git_path_join(path, empty_tmp_dir, "/one/two_one");
16
- cl_must_pass(p_mkdir(path, 0777));
17
-
18
- git_path_join(path, empty_tmp_dir, "/one/two_two");
19
- cl_must_pass(p_mkdir(path, 0777));
20
-
21
- git_path_join(path, empty_tmp_dir, "/one/two_two/three");
22
- cl_must_pass(p_mkdir(path, 0777));
23
-
24
- git_path_join(path, empty_tmp_dir, "/two");
25
- cl_must_pass(p_mkdir(path, 0777));
26
- }
27
-
28
- /* make sure empty dir can be deleted recusively */
29
- void test_core_rmdir__delete_recursive(void)
30
- {
31
- cl_git_pass(git_futils_rmdir_r(empty_tmp_dir, 0));
32
- }
33
-
34
- /* make sure non-empty dir cannot be deleted recusively */
35
- void test_core_rmdir__fail_to_delete_non_empty_dir(void)
36
- {
37
- char file[GIT_PATH_MAX];
38
- int fd;
39
-
40
- git_path_join(file, empty_tmp_dir, "/two/file.txt");
41
-
42
- fd = p_creat(file, 0666);
43
- cl_assert(fd >= 0);
44
-
45
- cl_must_pass(p_close(fd));
46
- cl_git_fail(git_futils_rmdir_r(empty_tmp_dir, 0));
47
-
48
- cl_must_pass(p_unlink(file));
49
- cl_git_pass(git_futils_rmdir_r(empty_tmp_dir, 0));
50
- }
@@ -1,66 +0,0 @@
1
- #include "clay_libgit2.h"
2
- #include "vector.h"
3
-
4
- /* initial size of 1 would cause writing past array bounds */
5
- void test_core_vector__0(void)
6
- {
7
- git_vector x;
8
- int i;
9
- git_vector_init(&x, 1, NULL);
10
- for (i = 0; i < 10; ++i) {
11
- git_vector_insert(&x, (void*) 0xabc);
12
- }
13
- git_vector_free(&x);
14
- }
15
-
16
-
17
- /* don't read past array bounds on remove() */
18
- void test_core_vector__1(void)
19
- {
20
- git_vector x;
21
- // make initial capacity exact for our insertions.
22
- git_vector_init(&x, 3, NULL);
23
- git_vector_insert(&x, (void*) 0xabc);
24
- git_vector_insert(&x, (void*) 0xdef);
25
- git_vector_insert(&x, (void*) 0x123);
26
-
27
- git_vector_remove(&x, 0); // used to read past array bounds.
28
- git_vector_free(&x);
29
- }
30
-
31
-
32
- static int test_cmp(const void *a, const void *b)
33
- {
34
- return *(const int *)a - *(const int *)b;
35
- }
36
-
37
- /* remove duplicates */
38
- void test_core_vector__2(void)
39
- {
40
- git_vector x;
41
- int *ptrs[2];
42
-
43
- ptrs[0] = git__malloc(sizeof(int));
44
- ptrs[1] = git__malloc(sizeof(int));
45
-
46
- *ptrs[0] = 2;
47
- *ptrs[1] = 1;
48
-
49
- cl_git_pass(git_vector_init(&x, 5, test_cmp));
50
- cl_git_pass(git_vector_insert(&x, ptrs[0]));
51
- cl_git_pass(git_vector_insert(&x, ptrs[1]));
52
- cl_git_pass(git_vector_insert(&x, ptrs[1]));
53
- cl_git_pass(git_vector_insert(&x, ptrs[0]));
54
- cl_git_pass(git_vector_insert(&x, ptrs[1]));
55
- cl_assert(x.length == 5);
56
-
57
- git_vector_uniq(&x);
58
- cl_assert(x.length == 2);
59
-
60
- git_vector_free(&x);
61
-
62
- git__free(ptrs[0]);
63
- git__free(ptrs[1]);
64
- }
65
-
66
-
@@ -1,50 +0,0 @@
1
- #include "clay_libgit2.h"
2
-
3
- static git_remote *_remote;
4
- static git_repository *_repo;
5
- static const git_refspec *_refspec;
6
-
7
- void test_network_remotes__initialize(void)
8
- {
9
- cl_fixture_sandbox("testrepo.git");
10
-
11
- cl_git_pass(git_repository_open(&_repo, "testrepo.git"));
12
- cl_git_pass(git_remote_load(&_remote, _repo, "test"));
13
-
14
- _refspec = git_remote_fetchspec(_remote);
15
- cl_assert(_refspec != NULL);
16
- }
17
-
18
- void test_network_remotes__cleanup(void)
19
- {
20
- git_remote_free(_remote);
21
- git_repository_free(_repo);
22
- cl_fixture_cleanup("testrepo.git");
23
- }
24
-
25
- void test_network_remotes__parsing(void)
26
- {
27
- cl_assert(!strcmp(git_remote_name(_remote), "test"));
28
- cl_assert(!strcmp(git_remote_url(_remote), "git://github.com/libgit2/libgit2"));
29
- }
30
-
31
- void test_network_remotes__refspec_parsing(void)
32
- {
33
- cl_assert(!strcmp(git_refspec_src(_refspec), "refs/heads/*"));
34
- cl_assert(!strcmp(git_refspec_dst(_refspec), "refs/remotes/test/*"));
35
- }
36
-
37
- void test_network_remotes__fnmatch(void)
38
- {
39
- cl_git_pass(git_refspec_src_match(_refspec, "refs/heads/master"));
40
- cl_git_pass(git_refspec_src_match(_refspec, "refs/heads/multi/level/branch"));
41
- }
42
-
43
- void test_network_remotes__transform(void)
44
- {
45
- char ref[1024];
46
-
47
- memset(ref, 0x0, sizeof(ref));
48
- cl_git_pass(git_refspec_transform(ref, sizeof(ref), _refspec, "refs/heads/master"));
49
- cl_assert(!strcmp(ref, "refs/remotes/test/master"));
50
- }
@@ -1,104 +0,0 @@
1
- #include "clay_libgit2.h"
2
- #include "fileops.h"
3
-
4
- enum repo_mode {
5
- STANDARD_REPOSITORY = 0,
6
- BARE_REPOSITORY = 1
7
- };
8
-
9
- static git_repository *_repo;
10
-
11
- void test_repo_init__initialize(void)
12
- {
13
- _repo = NULL;
14
- }
15
-
16
- static void cleanup_repository(void *path)
17
- {
18
- git_repository_free(_repo);
19
- cl_fixture_cleanup((const char *)path);
20
- }
21
-
22
- static void ensure_repository_init(
23
- const char *working_directory,
24
- int is_bare,
25
- const char *expected_path_repository,
26
- const char *expected_working_directory)
27
- {
28
- const char *workdir;
29
-
30
- cl_git_pass(git_repository_init(&_repo, working_directory, is_bare));
31
-
32
- workdir = git_repository_workdir(_repo);
33
- if (workdir != NULL || expected_working_directory != NULL) {
34
- cl_assert(
35
- git__suffixcmp(workdir, expected_working_directory) == 0
36
- );
37
- }
38
-
39
- cl_assert(
40
- git__suffixcmp(git_repository_path(_repo), expected_path_repository) == 0
41
- );
42
-
43
- cl_assert(git_repository_is_bare(_repo) == is_bare);
44
-
45
- #ifdef GIT_WIN32
46
- if (!is_bare) {
47
- cl_assert((GetFileAttributes(_repo->path_repository) & FILE_ATTRIBUTE_HIDDEN) != 0);
48
- }
49
- #endif
50
-
51
- cl_assert(git_repository_is_empty(_repo));
52
- }
53
-
54
- void test_repo_init__standard_repo(void)
55
- {
56
- cl_set_cleanup(&cleanup_repository, "testrepo");
57
- ensure_repository_init("testrepo/", 0, "testrepo/.git/", "testrepo/");
58
- }
59
-
60
- void test_repo_init__standard_repo_noslash(void)
61
- {
62
- cl_set_cleanup(&cleanup_repository, "testrepo");
63
- ensure_repository_init("testrepo", 0, "testrepo/.git/", "testrepo/");
64
- }
65
-
66
- void test_repo_init__bare_repo(void)
67
- {
68
- cl_set_cleanup(&cleanup_repository, "testrepo.git");
69
- ensure_repository_init("testrepo.git/", 1, "testrepo.git/", NULL);
70
- }
71
-
72
- void test_repo_init__bare_repo_noslash(void)
73
- {
74
- cl_set_cleanup(&cleanup_repository, "testrepo.git");
75
- ensure_repository_init("testrepo.git", 1, "testrepo.git/", NULL);
76
- }
77
-
78
- #if 0
79
- BEGIN_TEST(init2, "Initialize and open a bare repo with a relative path escaping out of the current working directory")
80
- char path_repository[GIT_PATH_MAX];
81
- char current_workdir[GIT_PATH_MAX];
82
- const mode_t mode = 0777;
83
- git_repository* repo;
84
-
85
- must_pass(p_getcwd(current_workdir, sizeof(current_workdir)));
86
-
87
- git_path_join(path_repository, TEMP_REPO_FOLDER, "a/b/c/");
88
- must_pass(git_futils_mkdir_r(path_repository, mode));
89
-
90
- must_pass(chdir(path_repository));
91
-
92
- must_pass(git_repository_init(&repo, "../d/e.git", 1));
93
- must_pass(git__suffixcmp(repo->path_repository, "/a/b/d/e.git/"));
94
-
95
- git_repository_free(repo);
96
-
97
- must_pass(git_repository_open(&repo, "../d/e.git"));
98
-
99
- git_repository_free(repo);
100
-
101
- must_pass(chdir(current_workdir));
102
- must_pass(git_futils_rmdir_r(TEMP_REPO_FOLDER, 1));
103
- END_TEST
104
- #endif
@@ -1,54 +0,0 @@
1
- #include "clay_libgit2.h"
2
- #include "posix.h"
3
-
4
- void test_repo_open__bare_empty_repo(void)
5
- {
6
- git_repository *repo;
7
-
8
- cl_git_pass(git_repository_open(&repo, cl_fixture("empty_bare.git")));
9
- cl_assert(git_repository_path(repo) != NULL);
10
- cl_assert(git_repository_workdir(repo) == NULL);
11
-
12
- git_repository_free(repo);
13
- }
14
-
15
- void test_repo_open__standard_empty_repo(void)
16
- {
17
- git_repository *repo;
18
-
19
- cl_git_pass(git_repository_open(&repo, cl_fixture("empty_standard_repo/.gitted")));
20
- cl_assert(git_repository_path(repo) != NULL);
21
- cl_assert(git_repository_workdir(repo) != NULL);
22
-
23
- git_repository_free(repo);
24
- }
25
-
26
- /* TODO TODO */
27
- #if 0
28
- BEGIN_TEST(open2, "Open a bare repository with a relative path escaping out of the current working directory")
29
- char new_current_workdir[GIT_PATH_MAX];
30
- char current_workdir[GIT_PATH_MAX];
31
- char path_repository[GIT_PATH_MAX];
32
-
33
- const mode_t mode = 0777;
34
- git_repository* repo;
35
-
36
- /* Setup the repository to open */
37
- must_pass(p_getcwd(current_workdir, sizeof(current_workdir)));
38
- strcpy(path_repository, current_workdir);
39
- git_path_join_n(path_repository, 3, path_repository, TEMP_REPO_FOLDER, "a/d/e.git");
40
- must_pass(copydir_recurs(REPOSITORY_FOLDER, path_repository));
41
-
42
- /* Change the current working directory */
43
- git_path_join(new_current_workdir, TEMP_REPO_FOLDER, "a/b/c/");
44
- must_pass(git_futils_mkdir_r(new_current_workdir, mode));
45
- must_pass(chdir(new_current_workdir));
46
-
47
- must_pass(git_repository_open(&repo, "../../d/e.git"));
48
-
49
- git_repository_free(repo);
50
-
51
- must_pass(chdir(current_workdir));
52
- must_pass(git_futils_rmdir_r(TEMP_REPO_FOLDER, 1));
53
- END_TEST
54
- #endif
@@ -1,48 +0,0 @@
1
-
2
- struct status_entry_counts {
3
- int wrong_status_flags_count;
4
- int wrong_sorted_path;
5
- int entry_count;
6
- const unsigned int* expected_statuses;
7
- const char** expected_paths;
8
- int expected_entry_count;
9
- };
10
-
11
- static const char *entry_paths0[] = {
12
- "file_deleted",
13
- "modified_file",
14
- "new_file",
15
- "staged_changes",
16
- "staged_changes_file_deleted",
17
- "staged_changes_modified_file",
18
- "staged_delete_file_deleted",
19
- "staged_delete_modified_file",
20
- "staged_new_file",
21
- "staged_new_file_deleted_file",
22
- "staged_new_file_modified_file",
23
-
24
- "subdir/deleted_file",
25
- "subdir/modified_file",
26
- "subdir/new_file",
27
- };
28
-
29
- static const unsigned int entry_statuses0[] = {
30
- GIT_STATUS_WT_DELETED,
31
- GIT_STATUS_WT_MODIFIED,
32
- GIT_STATUS_WT_NEW,
33
- GIT_STATUS_INDEX_MODIFIED,
34
- GIT_STATUS_INDEX_MODIFIED | GIT_STATUS_WT_DELETED,
35
- GIT_STATUS_INDEX_MODIFIED | GIT_STATUS_WT_MODIFIED,
36
- GIT_STATUS_INDEX_DELETED,
37
- GIT_STATUS_INDEX_DELETED | GIT_STATUS_WT_NEW,
38
- GIT_STATUS_INDEX_NEW,
39
- GIT_STATUS_INDEX_NEW | GIT_STATUS_WT_DELETED,
40
- GIT_STATUS_INDEX_NEW | GIT_STATUS_WT_MODIFIED,
41
-
42
- GIT_STATUS_WT_DELETED,
43
- GIT_STATUS_WT_MODIFIED,
44
- GIT_STATUS_WT_NEW,
45
- };
46
-
47
- static const size_t entry_count0 = 14;
48
-
@@ -1,124 +0,0 @@
1
- #include "clay_libgit2.h"
2
- #include "fileops.h"
3
- #include "status_data.h"
4
-
5
-
6
- /**
7
- * Test fixtures
8
- */
9
- static git_repository *_repository = NULL;
10
-
11
-
12
- /**
13
- * Auxiliary methods
14
- */
15
- static int
16
- cb_status__normal( const char *path, unsigned int status_flags, void *payload)
17
- {
18
- struct status_entry_counts *counts = payload;
19
-
20
- if (counts->entry_count >= counts->expected_entry_count) {
21
- counts->wrong_status_flags_count++;
22
- goto exit;
23
- }
24
-
25
- if (strcmp(path, counts->expected_paths[counts->entry_count])) {
26
- counts->wrong_sorted_path++;
27
- goto exit;
28
- }
29
-
30
- if (status_flags != counts->expected_statuses[counts->entry_count])
31
- counts->wrong_status_flags_count++;
32
-
33
- exit:
34
- counts->entry_count++;
35
- return GIT_SUCCESS;
36
- }
37
-
38
- static int
39
- cb_status__count(const char *GIT_UNUSED(p), unsigned int GIT_UNUSED(s), void *payload)
40
- {
41
- volatile int *count = (int *)payload;
42
-
43
- GIT_UNUSED_ARG(p);
44
- GIT_UNUSED_ARG(s);
45
-
46
- *count++;
47
-
48
- return GIT_SUCCESS;
49
- }
50
-
51
-
52
-
53
- /**
54
- * Initializer
55
- *
56
- * This method is called once before starting each
57
- * test, and will load the required fixtures
58
- */
59
- void test_status_worktree__initialize(void)
60
- {
61
- /*
62
- * Sandbox the `status/` repository from our Fixtures.
63
- * This will copy the whole folder to our sandbox,
64
- * so now it can be accessed with `./status`
65
- */
66
- cl_fixture_sandbox("status");
67
-
68
- /*
69
- * Rename `status/.gitted` to `status/.git`
70
- * We do this because we cannot store a folder named `.git`
71
- * inside the fixtures folder in our libgit2 repo.
72
- */
73
- cl_git_pass(
74
- p_rename("status/.gitted", "status/.git")
75
- );
76
-
77
- /*
78
- * Open the sandboxed "status" repository
79
- */
80
- cl_git_pass(git_repository_open(&_repository, "status/.git"));
81
- }
82
-
83
- /**
84
- * Cleanup
85
- *
86
- * This will be called once after each test finishes, even
87
- * if the test failed
88
- */
89
- void test_status_worktree__cleanup(void)
90
- {
91
- git_repository_free(_repository);
92
- _repository = NULL;
93
-
94
- cl_fixture_cleanup("status");
95
- }
96
-
97
- /**
98
- * Tests - Status determination on a working tree
99
- */
100
- void test_status_worktree__whole_repository(void)
101
- {
102
- struct status_entry_counts counts;
103
-
104
- memset(&counts, 0x0, sizeof(struct status_entry_counts));
105
- counts.expected_entry_count = entry_count0;
106
- counts.expected_paths = entry_paths0;
107
- counts.expected_statuses = entry_statuses0;
108
-
109
- cl_git_pass(
110
- git_status_foreach(_repository, cb_status__normal, &counts)
111
- );
112
-
113
- cl_assert(counts.entry_count == counts.expected_entry_count);
114
- cl_assert(counts.wrong_status_flags_count == 0);
115
- cl_assert(counts.wrong_sorted_path == 0);
116
- }
117
-
118
- void test_status_worktree__empty_repository(void)
119
- {
120
- int count = 0;
121
-
122
- git_status_foreach(_repository, cb_status__count, &count);
123
- cl_assert(count == 0);
124
- }