titanous-git 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (544) hide show
  1. data/History.txt +21 -0
  2. data/LICENSE +21 -0
  3. data/README +244 -0
  4. data/Rakefile +46 -0
  5. data/TODO +27 -0
  6. data/VERSION.yml +4 -0
  7. data/lib/git.rb +110 -0
  8. data/lib/git/author.rb +14 -0
  9. data/lib/git/base.rb +484 -0
  10. data/lib/git/branch.rb +106 -0
  11. data/lib/git/branches.rb +51 -0
  12. data/lib/git/diff.rb +150 -0
  13. data/lib/git/index.rb +5 -0
  14. data/lib/git/lib.rb +646 -0
  15. data/lib/git/log.rb +120 -0
  16. data/lib/git/object.rb +275 -0
  17. data/lib/git/path.rb +27 -0
  18. data/lib/git/remote.rb +42 -0
  19. data/lib/git/repository.rb +4 -0
  20. data/lib/git/stash.rb +27 -0
  21. data/lib/git/stashes.rb +47 -0
  22. data/lib/git/status.rb +114 -0
  23. data/lib/git/working_directory.rb +4 -0
  24. data/tests/all_tests.rb +4 -0
  25. data/tests/files/index +0 -0
  26. data/tests/files/working.git/HEAD +1 -0
  27. data/tests/files/working.git/config +4 -0
  28. data/tests/files/working.git/description +1 -0
  29. data/tests/files/working.git/hooks/applypatch-msg +15 -0
  30. data/tests/files/working.git/hooks/commit-msg +21 -0
  31. data/tests/files/working.git/hooks/post-commit +8 -0
  32. data/tests/files/working.git/hooks/post-receive +16 -0
  33. data/tests/files/working.git/hooks/post-update +8 -0
  34. data/tests/files/working.git/hooks/pre-applypatch +14 -0
  35. data/tests/files/working.git/hooks/pre-commit +70 -0
  36. data/tests/files/working.git/hooks/pre-rebase +150 -0
  37. data/tests/files/working.git/hooks/update +78 -0
  38. data/tests/files/working.git/info/exclude +6 -0
  39. data/tests/files/working.git/objects/00/62cdf4c1e63069eececf54325535e91fd57c42 +0 -0
  40. data/tests/files/working.git/objects/00/ea60e1331b184386392037a7267dfb4a7c7d86 +0 -0
  41. data/tests/files/working.git/objects/01/0b7b79019cb510d8c5849704fd10541655916d +0 -0
  42. data/tests/files/working.git/objects/01/dd46ebe07fc30c10c85c2e926c70f2d7058a6b +0 -0
  43. data/tests/files/working.git/objects/02/b2a02844d00574c234d17bec6294e832f3c4c1 +0 -0
  44. data/tests/files/working.git/objects/06/f4e8a840d23fc0ab94895a5d16827a19f75fb7 +0 -0
  45. data/tests/files/working.git/objects/0b/2fe00801b62b7760c23d554796b05abc16af92 +0 -0
  46. data/tests/files/working.git/objects/0b/5262f6ee3552a99b7081a317e8289d6a4d8e72 +0 -0
  47. data/tests/files/working.git/objects/0b/c0d846cf80b079e763e35c3af273171bf01fca +0 -0
  48. data/tests/files/working.git/objects/0d/2c47f07277b3ea30b0884f8e3acd68440507c8 +0 -0
  49. data/tests/files/working.git/objects/0d/519ca9c2eddc44431efe135d0fc8df00e0b975 +0 -0
  50. data/tests/files/working.git/objects/0f/845a0a981bc2f61354fcdd2b6eafe2b2c55c2d +3 -0
  51. data/tests/files/working.git/objects/0f/f4a0357c3d7221a2ef1e4c6b7d5c46d97fe250 +0 -0
  52. data/tests/files/working.git/objects/12/eb889f49f1464b32a51424d7724fb16f6c3a31 +0 -0
  53. data/tests/files/working.git/objects/15/34a65657edf4e5caaa5ce35652dca5e4c7d316 +0 -0
  54. data/tests/files/working.git/objects/15/378a1f3eafe4c5ab4f890883356df917ee5539 +2 -0
  55. data/tests/files/working.git/objects/16/9e6db43d4c09cd610179a7b9826483b4d94123 +0 -0
  56. data/tests/files/working.git/objects/16/d1f96acfd92d09c4f1f56d3441ac55dd30500e +0 -0
  57. data/tests/files/working.git/objects/16/ee5335538f11b4ffcc17b051f8d5db7570a055 +0 -0
  58. data/tests/files/working.git/objects/17/9ef0e0209e90af00f544ff414e0674dfb5f5c7 +0 -0
  59. data/tests/files/working.git/objects/19/9d2f8e60fddd1bb2a1b0bddedde35e5aa8b03f +0 -0
  60. data/tests/files/working.git/objects/1c/c8667014381e2788a94777532a788307f38d26 +1 -0
  61. data/tests/files/working.git/objects/1c/fcfba04eb4e461e9f930d22f528023ab1ddefc +0 -0
  62. data/tests/files/working.git/objects/1d/7be4117ded4534789d85c42ab579644cd3fa12 +0 -0
  63. data/tests/files/working.git/objects/1d/9e4767a95047ca5e395714985afaedb186f4cd +1 -0
  64. data/tests/files/working.git/objects/1f/09f2edb9c0d9275d15960771b363ca6940fbe3 +0 -0
  65. data/tests/files/working.git/objects/1f/691b879df15cf6742502ffc59833b4a40e7aef +0 -0
  66. data/tests/files/working.git/objects/23/751ef6c1fed1304ae1d07020aa73da6f2b93b0 +1 -0
  67. data/tests/files/working.git/objects/24/5582a71306d7360e40c07cd7d849a1aa14a31e +0 -0
  68. data/tests/files/working.git/objects/26/3e3c527004e7b742ed1f747c1bfb7e11825d7a +0 -0
  69. data/tests/files/working.git/objects/27/c0c003dda3e59ba236f53f6661faaf74432b5c +0 -0
  70. data/tests/files/working.git/objects/29/1b6be488d6abc586d3ee03ca61238766625a75 +0 -0
  71. data/tests/files/working.git/objects/2a/f6f7d51b7afdd404a871581ebb3b6ac07fb8cc +0 -0
  72. data/tests/files/working.git/objects/2c/ef51480d44dcc262d16be2812c692d940d5f29 +0 -0
  73. data/tests/files/working.git/objects/2e/20132e8fd40cb3e82248919a10900d31f1816a +0 -0
  74. data/tests/files/working.git/objects/2e/939fd37bbd2da971faa27c3e3de7d5aad40507 +0 -0
  75. data/tests/files/working.git/objects/2f/53e667d1d88e75b3fa300f9ab6e2d8ffd32a15 +0 -0
  76. data/tests/files/working.git/objects/32/4968b9dc40253f2c52a8e3856398c761dea856 +0 -0
  77. data/tests/files/working.git/objects/33/8ecb0183d507498aedb669b796b4f9e8880f00 +0 -0
  78. data/tests/files/working.git/objects/33/edabb4334cbe849a477a0d2893cdb768fa3091 +0 -0
  79. data/tests/files/working.git/objects/34/a566d193dc4702f03149969a2aad1443231560 +1 -0
  80. data/tests/files/working.git/objects/36/fe213c328fd280f33abe00069c4b92eb5a88d1 +0 -0
  81. data/tests/files/working.git/objects/39/66e9fa0e0b9fe9d3ef2fdaa6933f3d0bb82bc3 +0 -0
  82. data/tests/files/working.git/objects/3a/9f195756f5bd26b67c5e1fffd92d68d61be14e +2 -0
  83. data/tests/files/working.git/objects/3a/ac4b445017a8fc07502670ec2dbf744213dd48 +0 -0
  84. data/tests/files/working.git/objects/3b/6eeed9ce43ea893cf48d263da93448edae9f1c +0 -0
  85. data/tests/files/working.git/objects/3c/644f22b9b8edb06e7e298ecac8e71b133061f1 +0 -0
  86. data/tests/files/working.git/objects/3c/c71b13d906e445da52785ddeff40dad1163d49 +2 -0
  87. data/tests/files/working.git/objects/3c/f35bd14cf5f2dd08bbeef8698d700f3a038e5c +0 -0
  88. data/tests/files/working.git/objects/3d/331db92a8ead0565679efb76f328ae69ed1b77 +0 -0
  89. data/tests/files/working.git/objects/44/88516c3c936db58ea485ec2213dab9d13e6628 +0 -0
  90. data/tests/files/working.git/objects/44/987dd95c338fb573726541f270f1a7b55c9d51 +0 -0
  91. data/tests/files/working.git/objects/45/20c29b885e9db9b0df3c7bab7870157e1d00c3 +0 -0
  92. data/tests/files/working.git/objects/45/b983be36b73c0788dc9cbcb76cbb80fc7bb057 +0 -0
  93. data/tests/files/working.git/objects/46/00557506be20eb1501a4f15a52e684d4b9ee61 +0 -0
  94. data/tests/files/working.git/objects/46/a60232117527e7b57ac0dd5ea4af2cd3fdb696 +0 -0
  95. data/tests/files/working.git/objects/47/0f6a87fa51dd25f6db0f4725ae37791d449356 +0 -0
  96. data/tests/files/working.git/objects/47/2650d42fa9454e2e61e3da9f5c158b8af6d298 +0 -0
  97. data/tests/files/working.git/objects/47/8e5ee111572790b248eaa99140c5a8f728abc7 +0 -0
  98. data/tests/files/working.git/objects/48/bbf0db7e813affab7d8dd2842b8455ff9876be +0 -0
  99. data/tests/files/working.git/objects/49/b352299735fda3a333c69c6273178b0c3dfa08 +0 -0
  100. data/tests/files/working.git/objects/4a/1e3e4500962c3631a479726bf2e40469594cba +0 -0
  101. data/tests/files/working.git/objects/4a/2bee50944e9285e8f82216c9b0b8a7d3cdd315 +0 -0
  102. data/tests/files/working.git/objects/4a/4e676afe275afecf23130390fe96d0e6d00057 +0 -0
  103. data/tests/files/working.git/objects/4a/de99433ac3e4bcc874cd7de488de29399e9096 +1 -0
  104. data/tests/files/working.git/objects/4b/7c90536eaa830d8c1f6ff49a7885b581d6acef +1 -0
  105. data/tests/files/working.git/objects/4c/411dc8e6ea6fcba0ed56e84aa7707f881d24c7 +0 -0
  106. data/tests/files/working.git/objects/4c/ce9432b2f80461324a61611f6143f8544cd80f +1 -0
  107. data/tests/files/working.git/objects/4c/e44a75510cbfe200b131fdbcc56a86f1b2dc08 +0 -0
  108. data/tests/files/working.git/objects/4d/35ba97a858072c240d327e3ce30c28b333a1b0 +0 -0
  109. data/tests/files/working.git/objects/4d/ff9ef38ef09cbf0e36031bbee22b7cf0c7a8fc +1 -0
  110. data/tests/files/working.git/objects/4e/aafb1d843aec4f8f1612d03de46a08c2143ea9 +0 -0
  111. data/tests/files/working.git/objects/4e/ebc1b62c53241b7fbf7fb33b5230362595bfdd +0 -0
  112. data/tests/files/working.git/objects/4f/4065121cb78fe6116ae7e3075f5c5a446bd08b +0 -0
  113. data/tests/files/working.git/objects/50/3d77289b054742f507d8a8ce7cc51d3841d5b9 +0 -0
  114. data/tests/files/working.git/objects/52/4038b20b297f40d78e7d83e04e38049457312b +0 -0
  115. data/tests/files/working.git/objects/53/a72df554e585e239e41cb1fc498d5aee9bb164 +0 -0
  116. data/tests/files/working.git/objects/54/0200385c3b0b299c7a87ecf59ca94c32fbbe99 +0 -0
  117. data/tests/files/working.git/objects/54/5c81a2e8d1112d5f7356f840a22e8f6abcef8f +2 -0
  118. data/tests/files/working.git/objects/54/5ffc79786f268524c35e1e05b1770c7c74faf1 +3 -0
  119. data/tests/files/working.git/objects/54/6bec6f8872efa41d5d97a369f669165ecda0de +0 -0
  120. data/tests/files/working.git/objects/54/7a4bae347658f0d9eed0d35d31b4561aea7cf8 +2 -0
  121. data/tests/files/working.git/objects/56/195ef83e9e20ca75dddef0630633fc8060ed11 +0 -0
  122. data/tests/files/working.git/objects/57/7ddd894033c46a5fcf2c6f3c4e71cc72f86909 +0 -0
  123. data/tests/files/working.git/objects/58/501cbd0fc5ce832f6b34d37243a520dc19a6cc +1 -0
  124. data/tests/files/working.git/objects/58/73a650a91eb238005444d2c637b451f687951b +0 -0
  125. data/tests/files/working.git/objects/5a/28efd2fcf55b7b58eb7cc66b5db836155bc2bb +0 -0
  126. data/tests/files/working.git/objects/5b/0be7da7cc9ecdb6c2de5f818c30a42fbd2c9fa +1 -0
  127. data/tests/files/working.git/objects/5c/16fb8b958b51f6008f9722b279b1fde0defb76 +3 -0
  128. data/tests/files/working.git/objects/5d/4606820736043f9eed2a6336661d6892c820a5 +0 -0
  129. data/tests/files/working.git/objects/5e/392652a881999392c2757cf9b783c5d47b67f7 +0 -0
  130. data/tests/files/working.git/objects/5e/53019b3238362144c2766f02a2c00d91fcc023 +2 -0
  131. data/tests/files/working.git/objects/62/70c7f48ca41e6fb41b745ddc1bffe521d83194 +2 -0
  132. data/tests/files/working.git/objects/62/7e1097cda3b2e3ad6ba4d3772c0985e1ff349c +0 -0
  133. data/tests/files/working.git/objects/62/bb94c53efae4d53fd0649d129baef4aca87af7 +3 -0
  134. data/tests/files/working.git/objects/62/c9331ffe97bb6388fb7968662b4e97d121e2da +0 -0
  135. data/tests/files/working.git/objects/63/1446ec50808846e31fff786c065e69da2c673b +0 -0
  136. data/tests/files/working.git/objects/64/d0c52ac4c061cf1705e3005dfd86fb70374a14 +0 -0
  137. data/tests/files/working.git/objects/66/80a909b0e02b297bedbe143ef789d297235358 +0 -0
  138. data/tests/files/working.git/objects/6b/790ddc5eab30f18cabdd0513e8f8dac0d2d3ed +0 -0
  139. data/tests/files/working.git/objects/6c/2d312ebd67eed4c7e97e3923b3667764e7360e +0 -0
  140. data/tests/files/working.git/objects/6d/e8fb35c2e4a69addd030f2dbb4f73fd4742b5b +0 -0
  141. data/tests/files/working.git/objects/6e/d281c757a969ffe22f3dcfa5830c532479c726 +0 -0
  142. data/tests/files/working.git/objects/70/714b02913c1a249a5ab05021742f0bc7065df7 +0 -0
  143. data/tests/files/working.git/objects/71/894b736711ea0a5def4f536009364d07ee4db3 +2 -0
  144. data/tests/files/working.git/objects/71/c9a23879ff0ac8c49b92d107f3f89c6d1b2d92 +1 -0
  145. data/tests/files/working.git/objects/73/b171450704ea4350f9f884426389fe04c6cd51 +0 -0
  146. data/tests/files/working.git/objects/74/32b657191a10587335e74ae6f0966a7eed2976 +0 -0
  147. data/tests/files/working.git/objects/79/e5b9e6ee5a1e6c52676a6332fe9163adaa92cb +0 -0
  148. data/tests/files/working.git/objects/7c/076f209839d7f910e8c84e41cc94898287ef45 +0 -0
  149. data/tests/files/working.git/objects/7c/60c6ab64c74d52f973d18cd1933318a8d9ae2e +0 -0
  150. data/tests/files/working.git/objects/7c/ac4f8d519d524ed025732ee220f6451665a770 +0 -0
  151. data/tests/files/working.git/objects/7f/5625f6b3c7213287a12c89017361248ed88936 +0 -0
  152. data/tests/files/working.git/objects/7f/86d16e0254f64f784198c6a55ef9bf7adbe7ce +0 -0
  153. data/tests/files/working.git/objects/7f/bfee9f8882ada1ec45c4925baf5649d96c4a16 +0 -0
  154. data/tests/files/working.git/objects/81/25fbe8605d2884e732a185c9a24abcc0d12a1f +0 -0
  155. data/tests/files/working.git/objects/81/d4d5e9b6db474d0f432aa31d44bf690d841e94 +0 -0
  156. data/tests/files/working.git/objects/81/f545324202466d44115656ea463a5bb114345f +0 -0
  157. data/tests/files/working.git/objects/82/d331cf4d3d4ee537c4f866cab2633b46a8d090 +0 -0
  158. data/tests/files/working.git/objects/83/c6a1f0d7d8df18a9d9bfe917707aec37868418 +0 -0
  159. data/tests/files/working.git/objects/85/8f46dd7496faf7af72102ca15cccff832b5377 +0 -0
  160. data/tests/files/working.git/objects/87/c56502c73149f006631129f85dff697e000356 +0 -0
  161. data/tests/files/working.git/objects/88/cf23d06f519bec7b824acd52b87a729555f2e7 +0 -0
  162. data/tests/files/working.git/objects/8a/3fb747983bf2a7f4ef136af4bfcf7993a19307 +0 -0
  163. data/tests/files/working.git/objects/8b/00d915a0ee5aeb32e0b166e1054c2901338c9d +0 -0
  164. data/tests/files/working.git/objects/8c/e3ee48a7e7ec697a99ee33700ec624548ad9e8 +0 -0
  165. data/tests/files/working.git/objects/8d/ae07ab9d98b5fe04d4d7ed804cc36441b68dab +0 -0
  166. data/tests/files/working.git/objects/8d/c79ae7616abf1e2d4d5d97d566f2b2f6cee043 +0 -0
  167. data/tests/files/working.git/objects/92/4dec9203af851c3b3e564697ab3004b35b3c2f +0 -0
  168. data/tests/files/working.git/objects/93/06c056ba3ef9dca6f6365af38148c71196533a +0 -0
  169. data/tests/files/working.git/objects/93/5badc874edd62a8629aaf103418092c73f0a56 +1 -0
  170. data/tests/files/working.git/objects/94/c827875e2cadb8bc8d4cdd900f19aa9e8634c7 +0 -0
  171. data/tests/files/working.git/objects/95/ef665df6ebd69842c5e74a24cb8a12225dee3e +0 -0
  172. data/tests/files/working.git/objects/98/fb6a686563963b8f7e552d747158adbc1c2bd6 +0 -0
  173. data/tests/files/working.git/objects/99/3dd9b1cdeab53e305886c91dbcbc8929eff22e +1 -0
  174. data/tests/files/working.git/objects/9a/e1fbd7636c99d34fdd395cf9bb21ad51417ce7 +1 -0
  175. data/tests/files/working.git/objects/9b/5149aa4ace4ef69461803b0ccbb21139e12626 +0 -0
  176. data/tests/files/working.git/objects/9d/3ad2f09cb7a1d4f4c91182c96f2be537fbc4ff +0 -0
  177. data/tests/files/working.git/objects/9d/6f937544dc3b936d6ee1466d6e216ba18d5686 +0 -0
  178. data/tests/files/working.git/objects/9f/a43bcd45af28e109e6f7b9a6ccd26e8e193a63 +0 -0
  179. data/tests/files/working.git/objects/a0/b3f35b3c39cfb12c4cc819bffe1cf54efb3642 +2 -0
  180. data/tests/files/working.git/objects/a1/15413501949f4f09811fd1aaecf136c012c7d7 +0 -0
  181. data/tests/files/working.git/objects/a1/a3069efcc64330fb6c66004e69b870da3d6186 +0 -0
  182. data/tests/files/working.git/objects/a3/62d30d5fe1021cabc4c90f073ba2511d5a43a1 +0 -0
  183. data/tests/files/working.git/objects/a3/c1f067074cdc9aa998cb5f3cad46a6f17aab2d +0 -0
  184. data/tests/files/working.git/objects/a3/db7143944dcfa006fefe7fb49c48793cb29ade +2 -0
  185. data/tests/files/working.git/objects/a4/4a5e945176ff31be83ffca3e7c68a8b6a45ea5 +1 -0
  186. data/tests/files/working.git/objects/a5/1546fabf88ddef5a9fd91b3989dd8ccae2edf3 +0 -0
  187. data/tests/files/working.git/objects/a6/b25c4b27ee99f93fd611154202af5f9e3c99de +2 -0
  188. data/tests/files/working.git/objects/a7/88a1cba299638a2c898fcfaae1f69a1549853d +0 -0
  189. data/tests/files/working.git/objects/a8/98e8a6b143188022863bc1cab0b5f7514624ba +0 -0
  190. data/tests/files/working.git/objects/a8/b607b221454c4cd7bc7831b2d19712bb4ff888 +0 -0
  191. data/tests/files/working.git/objects/a9/e2d9b71b616531f04a65ae5b972ba5d1f2cb93 +0 -0
  192. data/tests/files/working.git/objects/a9/e2f17562ae78a75dc855bb3dc9e87364195dcf +0 -0
  193. data/tests/files/working.git/objects/ab/16bc1812fd6226780a841300a2432dfd0c6719 +0 -0
  194. data/tests/files/working.git/objects/ac/8f48bbb7b31c945ba6a4fbe6950d009a5d8373 +0 -0
  195. data/tests/files/working.git/objects/ae/21cabd23aee99a719fc828977c0df9e8b19363 +0 -0
  196. data/tests/files/working.git/objects/b0/3003311ad3fa368b475df58390353868e13c91 +2 -0
  197. data/tests/files/working.git/objects/b0/ee249c5e5cc9464f3bc0034ab05632dcb87a23 +0 -0
  198. data/tests/files/working.git/objects/b1/288f8beeaa6cf048c3a9f578d4e266fab8820e +0 -0
  199. data/tests/files/working.git/objects/b1/5336206c9040f4c52660b3f3c76ee02ccece56 +0 -0
  200. data/tests/files/working.git/objects/b1/b18f5bea24648a1b08e5bba88728c15ec3cb50 +2 -0
  201. data/tests/files/working.git/objects/b4/5724ee906d2561901208ba924add09ab95ccb3 +0 -0
  202. data/tests/files/working.git/objects/b5/d8fc3cb740eb643c66eb5f4a97345fdb806259 +0 -0
  203. data/tests/files/working.git/objects/b6/153b8fe540288d66b974ae05113338ab1a61f0 +0 -0
  204. data/tests/files/working.git/objects/b6/987bc1201ad19774c43c0ea8078f6f51d76bcb +0 -0
  205. data/tests/files/working.git/objects/b6/9e6acd87e5f9114ce6580b095ef1057a8fe5bb +0 -0
  206. data/tests/files/working.git/objects/b9/8f4909807c8c84a1dc1b62b4a339ae1777f369 +3 -0
  207. data/tests/files/working.git/objects/ba/492c62b6227d7f3507b4dcc6e6d5f13790eabf +0 -0
  208. data/tests/files/working.git/objects/ba/c335cb9dc058a477d04cde34c07d1f70d16fb9 +0 -0
  209. data/tests/files/working.git/objects/bb/0850568bb43049031a38b01ddb60e4a487f823 +0 -0
  210. data/tests/files/working.git/objects/be/b14380ef26540efcad06bedcd0e302b6bce70e +0 -0
  211. data/tests/files/working.git/objects/c1/3142dd26a1f6f38403a17f6c411cb621b9a1cd +0 -0
  212. data/tests/files/working.git/objects/c1/8b4e9b0829411705d7fa9a1570a20d88780817 +0 -0
  213. data/tests/files/working.git/objects/c5/a3fdb33f052b8f17dac83c533b62244226f4ba +0 -0
  214. data/tests/files/working.git/objects/c6/567e2feccce3893ae0aaac2bf97807338aa8d4 +0 -0
  215. data/tests/files/working.git/objects/cb/45eef6fa1ad913137d91c6b81d2b42d69094a6 +0 -0
  216. data/tests/files/working.git/objects/cd/0d59357b36a447ff27a7c176b46e0a319b42df +0 -0
  217. data/tests/files/working.git/objects/cd/4291452a61ff8b57cf5510addc8ddc5630748e +0 -0
  218. data/tests/files/working.git/objects/cf/7135368cc3bf4920ceeaeebd083e098cfad355 +4 -0
  219. data/tests/files/working.git/objects/cf/b9952c3a28831144a0fac7ea5a2d8517f466c4 +0 -0
  220. data/tests/files/working.git/objects/d0/0491fd7e5bb6fa28c517a0bb32b8b506539d4d +0 -0
  221. data/tests/files/working.git/objects/d1/4cbc09cc34fb6450b2e96432102be51c8292b8 +0 -0
  222. data/tests/files/working.git/objects/d3/d171221e87a30e059d638f155f899595d96b71 +0 -0
  223. data/tests/files/working.git/objects/d5/b9587b65731e25216743b0caca72051a760211 +2 -0
  224. data/tests/files/working.git/objects/d6/a3aab3e38bc16688b4e636a91e462434210878 +0 -0
  225. data/tests/files/working.git/objects/d6/f31c35d7e010e50568c0d605227028aa7bac66 +0 -0
  226. data/tests/files/working.git/objects/d7/875788aeafdd8e317880c00e3372f683cad91e +0 -0
  227. data/tests/files/working.git/objects/d7/d8a71a719e2a4ca501991a66dab47df804f6ad +0 -0
  228. data/tests/files/working.git/objects/d7/e844eec32d74a3d37c4ce02d7138658e1035d6 +0 -0
  229. data/tests/files/working.git/objects/da/597fb7fba247a5b59d917e90342cf4b9695905 +0 -0
  230. data/tests/files/working.git/objects/da/7b788b1575936a4381050610a37737c70b55a0 +1 -0
  231. data/tests/files/working.git/objects/de/996da0ef3dcee1a28aef9243aa3e255eb825b5 +0 -0
  232. data/tests/files/working.git/objects/de/d54b45e4d49816f6d4256e74d45ba2bb351357 +0 -0
  233. data/tests/files/working.git/objects/e3/6f723934fd1d67c7d21538751f0b1e941141db +0 -0
  234. data/tests/files/working.git/objects/e3/ebef76525fe9e6e8dc739934a08512dff777c0 +0 -0
  235. data/tests/files/working.git/objects/e5/0fa6835cb99747346f19fea5f1ba939da4205f +2 -0
  236. data/tests/files/working.git/objects/e5/650a5c9c4b5a4415195bfb01d4d8dccbc8221b +0 -0
  237. data/tests/files/working.git/objects/e5/76bdfc9ed4627ac954f9390cf7a6151ad2a73e +0 -0
  238. data/tests/files/working.git/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391 +0 -0
  239. data/tests/files/working.git/objects/e7/ea5938f9c009d32235050bca991d0b9533e440 +0 -0
  240. data/tests/files/working.git/objects/e8/183f05f5db68b3934e93f4bf6bed2bb664e0b5 +0 -0
  241. data/tests/files/working.git/objects/e8/bd03b163f82fba4560c11839d49361a78dec85 +0 -0
  242. data/tests/files/working.git/objects/e9/0de8268373e4fd5ab13310b7745d47ec16813c +0 -0
  243. data/tests/files/working.git/objects/ec/16a327a6a98367d03369b4e998baf3db379313 +0 -0
  244. data/tests/files/working.git/objects/ec/1e3d44e160e18dbfbaa80b5b0780ccc03e678e +0 -0
  245. data/tests/files/working.git/objects/ed/551aa66cf0c6f1a078832f80899faff0ae88dc +0 -0
  246. data/tests/files/working.git/objects/f1/25480ee106989ec4d86554c0d5a1487ad4336a +1 -0
  247. data/tests/files/working.git/objects/f1/410f8735f6f73d3599eb9b5cdd2fb70373335c +3 -0
  248. data/tests/files/working.git/objects/f2/02cb755135d4263589602783b04fb32a079d88 +0 -0
  249. data/tests/files/working.git/objects/f2/ff401fb3fc81f8abb3ca15247aadc1e22b6288 +0 -0
  250. data/tests/files/working.git/objects/f5/501de98279c6454f510188873476f3ead0cee6 +4 -0
  251. data/tests/files/working.git/objects/f7/5f313ca30e534aa9c42463e85108e682d3a14a +0 -0
  252. data/tests/files/working.git/objects/f8/e9c6748331411c0d3511f90bd4e0a1a30acff0 +0 -0
  253. data/tests/files/working.git/objects/f9/bce8995109cfab475d043a7dd9156d5e574ed3 +0 -0
  254. data/tests/files/working.git/objects/fa/6312f71abb153ada6a0399ad710d21bb61e4d8 +0 -0
  255. data/tests/files/working.git/objects/fb/8e78840d79085abf50edebf5b9d6b73ee0fb4c +0 -0
  256. data/tests/files/working.git/objects/fc/b49fa99454f804799a12095292edbca48779ab +0 -0
  257. data/tests/files/working.git/objects/fe/b2ccf88397c2d93f381176067be2727eba330b +0 -0
  258. data/tests/files/working.git/refs/heads/git_grep +1 -0
  259. data/tests/files/working.git/refs/heads/master +1 -0
  260. data/tests/files/working.git/refs/heads/test +1 -0
  261. data/tests/files/working.git/refs/heads/test_branches +1 -0
  262. data/tests/files/working.git/refs/heads/test_object +1 -0
  263. data/tests/files/working.git/refs/tags/gitsearch1 +1 -0
  264. data/tests/files/working.git/refs/tags/v2.5 +1 -0
  265. data/tests/files/working.git/refs/tags/v2.6 +1 -0
  266. data/tests/files/working.git/refs/tags/v2.7 +1 -0
  267. data/tests/files/working.git/refs/tags/v2.8 +1 -0
  268. data/tests/files/working/dot_git/FETCH_HEAD +1 -0
  269. data/tests/files/working/dot_git/HEAD +1 -0
  270. data/tests/files/working/dot_git/config +13 -0
  271. data/tests/files/working/dot_git/description +1 -0
  272. data/tests/files/working/dot_git/hooks/applypatch-msg +15 -0
  273. data/tests/files/working/dot_git/hooks/commit-msg +21 -0
  274. data/tests/files/working/dot_git/hooks/post-commit +8 -0
  275. data/tests/files/working/dot_git/hooks/post-receive +16 -0
  276. data/tests/files/working/dot_git/hooks/post-update +8 -0
  277. data/tests/files/working/dot_git/hooks/pre-applypatch +14 -0
  278. data/tests/files/working/dot_git/hooks/pre-commit +70 -0
  279. data/tests/files/working/dot_git/hooks/pre-rebase +150 -0
  280. data/tests/files/working/dot_git/hooks/update +78 -0
  281. data/tests/files/working/dot_git/index +0 -0
  282. data/tests/files/working/dot_git/info/exclude +6 -0
  283. data/tests/files/working/dot_git/logs/HEAD +75 -0
  284. data/tests/files/working/dot_git/logs/refs/heads/git_grep +5 -0
  285. data/tests/files/working/dot_git/logs/refs/heads/master +64 -0
  286. data/tests/files/working/dot_git/logs/refs/heads/test +3 -0
  287. data/tests/files/working/dot_git/logs/refs/heads/test_branches +1 -0
  288. data/tests/files/working/dot_git/logs/refs/heads/test_object +2 -0
  289. data/tests/files/working/dot_git/logs/refs/remotes/working/master +1 -0
  290. data/tests/files/working/dot_git/objects/00/62cdf4c1e63069eececf54325535e91fd57c42 +0 -0
  291. data/tests/files/working/dot_git/objects/00/ea60e1331b184386392037a7267dfb4a7c7d86 +0 -0
  292. data/tests/files/working/dot_git/objects/01/0b7b79019cb510d8c5849704fd10541655916d +0 -0
  293. data/tests/files/working/dot_git/objects/01/dd46ebe07fc30c10c85c2e926c70f2d7058a6b +0 -0
  294. data/tests/files/working/dot_git/objects/02/b2a02844d00574c234d17bec6294e832f3c4c1 +0 -0
  295. data/tests/files/working/dot_git/objects/06/f4e8a840d23fc0ab94895a5d16827a19f75fb7 +0 -0
  296. data/tests/files/working/dot_git/objects/0b/2fe00801b62b7760c23d554796b05abc16af92 +0 -0
  297. data/tests/files/working/dot_git/objects/0b/5262f6ee3552a99b7081a317e8289d6a4d8e72 +0 -0
  298. data/tests/files/working/dot_git/objects/0b/c0d846cf80b079e763e35c3af273171bf01fca +0 -0
  299. data/tests/files/working/dot_git/objects/0d/2c47f07277b3ea30b0884f8e3acd68440507c8 +0 -0
  300. data/tests/files/working/dot_git/objects/0d/519ca9c2eddc44431efe135d0fc8df00e0b975 +0 -0
  301. data/tests/files/working/dot_git/objects/0f/845a0a981bc2f61354fcdd2b6eafe2b2c55c2d +3 -0
  302. data/tests/files/working/dot_git/objects/0f/f4a0357c3d7221a2ef1e4c6b7d5c46d97fe250 +0 -0
  303. data/tests/files/working/dot_git/objects/12/eb889f49f1464b32a51424d7724fb16f6c3a31 +0 -0
  304. data/tests/files/working/dot_git/objects/15/34a65657edf4e5caaa5ce35652dca5e4c7d316 +0 -0
  305. data/tests/files/working/dot_git/objects/15/378a1f3eafe4c5ab4f890883356df917ee5539 +2 -0
  306. data/tests/files/working/dot_git/objects/16/9e6db43d4c09cd610179a7b9826483b4d94123 +0 -0
  307. data/tests/files/working/dot_git/objects/16/d1f96acfd92d09c4f1f56d3441ac55dd30500e +0 -0
  308. data/tests/files/working/dot_git/objects/16/ee5335538f11b4ffcc17b051f8d5db7570a055 +0 -0
  309. data/tests/files/working/dot_git/objects/17/9ef0e0209e90af00f544ff414e0674dfb5f5c7 +0 -0
  310. data/tests/files/working/dot_git/objects/19/9d2f8e60fddd1bb2a1b0bddedde35e5aa8b03f +0 -0
  311. data/tests/files/working/dot_git/objects/1c/c8667014381e2788a94777532a788307f38d26 +1 -0
  312. data/tests/files/working/dot_git/objects/1c/fcfba04eb4e461e9f930d22f528023ab1ddefc +0 -0
  313. data/tests/files/working/dot_git/objects/1d/7be4117ded4534789d85c42ab579644cd3fa12 +0 -0
  314. data/tests/files/working/dot_git/objects/1d/9e4767a95047ca5e395714985afaedb186f4cd +1 -0
  315. data/tests/files/working/dot_git/objects/1f/09f2edb9c0d9275d15960771b363ca6940fbe3 +0 -0
  316. data/tests/files/working/dot_git/objects/1f/691b879df15cf6742502ffc59833b4a40e7aef +0 -0
  317. data/tests/files/working/dot_git/objects/23/751ef6c1fed1304ae1d07020aa73da6f2b93b0 +1 -0
  318. data/tests/files/working/dot_git/objects/24/5582a71306d7360e40c07cd7d849a1aa14a31e +0 -0
  319. data/tests/files/working/dot_git/objects/26/3e3c527004e7b742ed1f747c1bfb7e11825d7a +0 -0
  320. data/tests/files/working/dot_git/objects/27/c0c003dda3e59ba236f53f6661faaf74432b5c +0 -0
  321. data/tests/files/working/dot_git/objects/29/1b6be488d6abc586d3ee03ca61238766625a75 +0 -0
  322. data/tests/files/working/dot_git/objects/2a/f6f7d51b7afdd404a871581ebb3b6ac07fb8cc +0 -0
  323. data/tests/files/working/dot_git/objects/2c/ef51480d44dcc262d16be2812c692d940d5f29 +0 -0
  324. data/tests/files/working/dot_git/objects/2e/20132e8fd40cb3e82248919a10900d31f1816a +0 -0
  325. data/tests/files/working/dot_git/objects/2e/939fd37bbd2da971faa27c3e3de7d5aad40507 +0 -0
  326. data/tests/files/working/dot_git/objects/2f/53e667d1d88e75b3fa300f9ab6e2d8ffd32a15 +0 -0
  327. data/tests/files/working/dot_git/objects/32/4968b9dc40253f2c52a8e3856398c761dea856 +0 -0
  328. data/tests/files/working/dot_git/objects/33/8ecb0183d507498aedb669b796b4f9e8880f00 +0 -0
  329. data/tests/files/working/dot_git/objects/33/edabb4334cbe849a477a0d2893cdb768fa3091 +0 -0
  330. data/tests/files/working/dot_git/objects/34/a566d193dc4702f03149969a2aad1443231560 +1 -0
  331. data/tests/files/working/dot_git/objects/36/fe213c328fd280f33abe00069c4b92eb5a88d1 +0 -0
  332. data/tests/files/working/dot_git/objects/39/66e9fa0e0b9fe9d3ef2fdaa6933f3d0bb82bc3 +0 -0
  333. data/tests/files/working/dot_git/objects/3a/9f195756f5bd26b67c5e1fffd92d68d61be14e +2 -0
  334. data/tests/files/working/dot_git/objects/3a/ac4b445017a8fc07502670ec2dbf744213dd48 +0 -0
  335. data/tests/files/working/dot_git/objects/3b/6eeed9ce43ea893cf48d263da93448edae9f1c +0 -0
  336. data/tests/files/working/dot_git/objects/3c/644f22b9b8edb06e7e298ecac8e71b133061f1 +0 -0
  337. data/tests/files/working/dot_git/objects/3c/c71b13d906e445da52785ddeff40dad1163d49 +2 -0
  338. data/tests/files/working/dot_git/objects/3c/f35bd14cf5f2dd08bbeef8698d700f3a038e5c +0 -0
  339. data/tests/files/working/dot_git/objects/3d/331db92a8ead0565679efb76f328ae69ed1b77 +0 -0
  340. data/tests/files/working/dot_git/objects/44/88516c3c936db58ea485ec2213dab9d13e6628 +0 -0
  341. data/tests/files/working/dot_git/objects/44/987dd95c338fb573726541f270f1a7b55c9d51 +0 -0
  342. data/tests/files/working/dot_git/objects/45/20c29b885e9db9b0df3c7bab7870157e1d00c3 +0 -0
  343. data/tests/files/working/dot_git/objects/45/b983be36b73c0788dc9cbcb76cbb80fc7bb057 +0 -0
  344. data/tests/files/working/dot_git/objects/46/00557506be20eb1501a4f15a52e684d4b9ee61 +0 -0
  345. data/tests/files/working/dot_git/objects/46/a60232117527e7b57ac0dd5ea4af2cd3fdb696 +0 -0
  346. data/tests/files/working/dot_git/objects/47/0f6a87fa51dd25f6db0f4725ae37791d449356 +0 -0
  347. data/tests/files/working/dot_git/objects/47/2650d42fa9454e2e61e3da9f5c158b8af6d298 +0 -0
  348. data/tests/files/working/dot_git/objects/47/8e5ee111572790b248eaa99140c5a8f728abc7 +0 -0
  349. data/tests/files/working/dot_git/objects/48/bbf0db7e813affab7d8dd2842b8455ff9876be +0 -0
  350. data/tests/files/working/dot_git/objects/49/b352299735fda3a333c69c6273178b0c3dfa08 +0 -0
  351. data/tests/files/working/dot_git/objects/4a/1e3e4500962c3631a479726bf2e40469594cba +0 -0
  352. data/tests/files/working/dot_git/objects/4a/2bee50944e9285e8f82216c9b0b8a7d3cdd315 +0 -0
  353. data/tests/files/working/dot_git/objects/4a/4e676afe275afecf23130390fe96d0e6d00057 +0 -0
  354. data/tests/files/working/dot_git/objects/4a/de99433ac3e4bcc874cd7de488de29399e9096 +1 -0
  355. data/tests/files/working/dot_git/objects/4b/7c90536eaa830d8c1f6ff49a7885b581d6acef +1 -0
  356. data/tests/files/working/dot_git/objects/4c/411dc8e6ea6fcba0ed56e84aa7707f881d24c7 +0 -0
  357. data/tests/files/working/dot_git/objects/4c/ce9432b2f80461324a61611f6143f8544cd80f +1 -0
  358. data/tests/files/working/dot_git/objects/4c/e44a75510cbfe200b131fdbcc56a86f1b2dc08 +0 -0
  359. data/tests/files/working/dot_git/objects/4d/35ba97a858072c240d327e3ce30c28b333a1b0 +0 -0
  360. data/tests/files/working/dot_git/objects/4d/ff9ef38ef09cbf0e36031bbee22b7cf0c7a8fc +1 -0
  361. data/tests/files/working/dot_git/objects/4e/aafb1d843aec4f8f1612d03de46a08c2143ea9 +0 -0
  362. data/tests/files/working/dot_git/objects/4e/ebc1b62c53241b7fbf7fb33b5230362595bfdd +0 -0
  363. data/tests/files/working/dot_git/objects/4f/4065121cb78fe6116ae7e3075f5c5a446bd08b +0 -0
  364. data/tests/files/working/dot_git/objects/50/3d77289b054742f507d8a8ce7cc51d3841d5b9 +0 -0
  365. data/tests/files/working/dot_git/objects/52/4038b20b297f40d78e7d83e04e38049457312b +0 -0
  366. data/tests/files/working/dot_git/objects/53/a72df554e585e239e41cb1fc498d5aee9bb164 +0 -0
  367. data/tests/files/working/dot_git/objects/54/0200385c3b0b299c7a87ecf59ca94c32fbbe99 +0 -0
  368. data/tests/files/working/dot_git/objects/54/5c81a2e8d1112d5f7356f840a22e8f6abcef8f +2 -0
  369. data/tests/files/working/dot_git/objects/54/5ffc79786f268524c35e1e05b1770c7c74faf1 +3 -0
  370. data/tests/files/working/dot_git/objects/54/6bec6f8872efa41d5d97a369f669165ecda0de +0 -0
  371. data/tests/files/working/dot_git/objects/54/7a4bae347658f0d9eed0d35d31b4561aea7cf8 +2 -0
  372. data/tests/files/working/dot_git/objects/56/195ef83e9e20ca75dddef0630633fc8060ed11 +0 -0
  373. data/tests/files/working/dot_git/objects/57/7ddd894033c46a5fcf2c6f3c4e71cc72f86909 +0 -0
  374. data/tests/files/working/dot_git/objects/58/501cbd0fc5ce832f6b34d37243a520dc19a6cc +1 -0
  375. data/tests/files/working/dot_git/objects/58/73a650a91eb238005444d2c637b451f687951b +0 -0
  376. data/tests/files/working/dot_git/objects/5a/28efd2fcf55b7b58eb7cc66b5db836155bc2bb +0 -0
  377. data/tests/files/working/dot_git/objects/5b/0be7da7cc9ecdb6c2de5f818c30a42fbd2c9fa +1 -0
  378. data/tests/files/working/dot_git/objects/5c/16fb8b958b51f6008f9722b279b1fde0defb76 +3 -0
  379. data/tests/files/working/dot_git/objects/5d/4606820736043f9eed2a6336661d6892c820a5 +0 -0
  380. data/tests/files/working/dot_git/objects/5e/392652a881999392c2757cf9b783c5d47b67f7 +0 -0
  381. data/tests/files/working/dot_git/objects/5e/53019b3238362144c2766f02a2c00d91fcc023 +2 -0
  382. data/tests/files/working/dot_git/objects/62/70c7f48ca41e6fb41b745ddc1bffe521d83194 +2 -0
  383. data/tests/files/working/dot_git/objects/62/7e1097cda3b2e3ad6ba4d3772c0985e1ff349c +0 -0
  384. data/tests/files/working/dot_git/objects/62/bb94c53efae4d53fd0649d129baef4aca87af7 +3 -0
  385. data/tests/files/working/dot_git/objects/62/c9331ffe97bb6388fb7968662b4e97d121e2da +0 -0
  386. data/tests/files/working/dot_git/objects/63/1446ec50808846e31fff786c065e69da2c673b +0 -0
  387. data/tests/files/working/dot_git/objects/64/d0c52ac4c061cf1705e3005dfd86fb70374a14 +0 -0
  388. data/tests/files/working/dot_git/objects/66/80a909b0e02b297bedbe143ef789d297235358 +0 -0
  389. data/tests/files/working/dot_git/objects/6b/790ddc5eab30f18cabdd0513e8f8dac0d2d3ed +0 -0
  390. data/tests/files/working/dot_git/objects/6c/2d312ebd67eed4c7e97e3923b3667764e7360e +0 -0
  391. data/tests/files/working/dot_git/objects/6d/e8fb35c2e4a69addd030f2dbb4f73fd4742b5b +0 -0
  392. data/tests/files/working/dot_git/objects/6e/d281c757a969ffe22f3dcfa5830c532479c726 +0 -0
  393. data/tests/files/working/dot_git/objects/70/714b02913c1a249a5ab05021742f0bc7065df7 +0 -0
  394. data/tests/files/working/dot_git/objects/71/894b736711ea0a5def4f536009364d07ee4db3 +2 -0
  395. data/tests/files/working/dot_git/objects/71/c9a23879ff0ac8c49b92d107f3f89c6d1b2d92 +1 -0
  396. data/tests/files/working/dot_git/objects/73/b171450704ea4350f9f884426389fe04c6cd51 +0 -0
  397. data/tests/files/working/dot_git/objects/74/32b657191a10587335e74ae6f0966a7eed2976 +0 -0
  398. data/tests/files/working/dot_git/objects/79/e5b9e6ee5a1e6c52676a6332fe9163adaa92cb +0 -0
  399. data/tests/files/working/dot_git/objects/7c/076f209839d7f910e8c84e41cc94898287ef45 +0 -0
  400. data/tests/files/working/dot_git/objects/7c/60c6ab64c74d52f973d18cd1933318a8d9ae2e +0 -0
  401. data/tests/files/working/dot_git/objects/7c/ac4f8d519d524ed025732ee220f6451665a770 +0 -0
  402. data/tests/files/working/dot_git/objects/7f/5625f6b3c7213287a12c89017361248ed88936 +0 -0
  403. data/tests/files/working/dot_git/objects/7f/86d16e0254f64f784198c6a55ef9bf7adbe7ce +0 -0
  404. data/tests/files/working/dot_git/objects/7f/bfee9f8882ada1ec45c4925baf5649d96c4a16 +0 -0
  405. data/tests/files/working/dot_git/objects/81/25fbe8605d2884e732a185c9a24abcc0d12a1f +0 -0
  406. data/tests/files/working/dot_git/objects/81/d4d5e9b6db474d0f432aa31d44bf690d841e94 +0 -0
  407. data/tests/files/working/dot_git/objects/81/f545324202466d44115656ea463a5bb114345f +0 -0
  408. data/tests/files/working/dot_git/objects/82/d331cf4d3d4ee537c4f866cab2633b46a8d090 +0 -0
  409. data/tests/files/working/dot_git/objects/83/c6a1f0d7d8df18a9d9bfe917707aec37868418 +0 -0
  410. data/tests/files/working/dot_git/objects/85/8f46dd7496faf7af72102ca15cccff832b5377 +0 -0
  411. data/tests/files/working/dot_git/objects/87/c56502c73149f006631129f85dff697e000356 +0 -0
  412. data/tests/files/working/dot_git/objects/88/cf23d06f519bec7b824acd52b87a729555f2e7 +0 -0
  413. data/tests/files/working/dot_git/objects/8a/3fb747983bf2a7f4ef136af4bfcf7993a19307 +0 -0
  414. data/tests/files/working/dot_git/objects/8b/00d915a0ee5aeb32e0b166e1054c2901338c9d +0 -0
  415. data/tests/files/working/dot_git/objects/8c/e3ee48a7e7ec697a99ee33700ec624548ad9e8 +0 -0
  416. data/tests/files/working/dot_git/objects/8d/ae07ab9d98b5fe04d4d7ed804cc36441b68dab +0 -0
  417. data/tests/files/working/dot_git/objects/8d/c79ae7616abf1e2d4d5d97d566f2b2f6cee043 +0 -0
  418. data/tests/files/working/dot_git/objects/92/4dec9203af851c3b3e564697ab3004b35b3c2f +0 -0
  419. data/tests/files/working/dot_git/objects/93/06c056ba3ef9dca6f6365af38148c71196533a +0 -0
  420. data/tests/files/working/dot_git/objects/93/5badc874edd62a8629aaf103418092c73f0a56 +1 -0
  421. data/tests/files/working/dot_git/objects/94/c827875e2cadb8bc8d4cdd900f19aa9e8634c7 +0 -0
  422. data/tests/files/working/dot_git/objects/95/ef665df6ebd69842c5e74a24cb8a12225dee3e +0 -0
  423. data/tests/files/working/dot_git/objects/98/fb6a686563963b8f7e552d747158adbc1c2bd6 +0 -0
  424. data/tests/files/working/dot_git/objects/99/3dd9b1cdeab53e305886c91dbcbc8929eff22e +1 -0
  425. data/tests/files/working/dot_git/objects/9a/e1fbd7636c99d34fdd395cf9bb21ad51417ce7 +1 -0
  426. data/tests/files/working/dot_git/objects/9b/5149aa4ace4ef69461803b0ccbb21139e12626 +0 -0
  427. data/tests/files/working/dot_git/objects/9d/3ad2f09cb7a1d4f4c91182c96f2be537fbc4ff +0 -0
  428. data/tests/files/working/dot_git/objects/9d/6f937544dc3b936d6ee1466d6e216ba18d5686 +0 -0
  429. data/tests/files/working/dot_git/objects/9f/a43bcd45af28e109e6f7b9a6ccd26e8e193a63 +0 -0
  430. data/tests/files/working/dot_git/objects/a0/b3f35b3c39cfb12c4cc819bffe1cf54efb3642 +2 -0
  431. data/tests/files/working/dot_git/objects/a1/15413501949f4f09811fd1aaecf136c012c7d7 +0 -0
  432. data/tests/files/working/dot_git/objects/a1/a3069efcc64330fb6c66004e69b870da3d6186 +0 -0
  433. data/tests/files/working/dot_git/objects/a3/62d30d5fe1021cabc4c90f073ba2511d5a43a1 +0 -0
  434. data/tests/files/working/dot_git/objects/a3/c1f067074cdc9aa998cb5f3cad46a6f17aab2d +0 -0
  435. data/tests/files/working/dot_git/objects/a3/db7143944dcfa006fefe7fb49c48793cb29ade +2 -0
  436. data/tests/files/working/dot_git/objects/a4/4a5e945176ff31be83ffca3e7c68a8b6a45ea5 +1 -0
  437. data/tests/files/working/dot_git/objects/a5/1546fabf88ddef5a9fd91b3989dd8ccae2edf3 +0 -0
  438. data/tests/files/working/dot_git/objects/a6/b25c4b27ee99f93fd611154202af5f9e3c99de +2 -0
  439. data/tests/files/working/dot_git/objects/a7/88a1cba299638a2c898fcfaae1f69a1549853d +0 -0
  440. data/tests/files/working/dot_git/objects/a8/98e8a6b143188022863bc1cab0b5f7514624ba +0 -0
  441. data/tests/files/working/dot_git/objects/a8/b607b221454c4cd7bc7831b2d19712bb4ff888 +0 -0
  442. data/tests/files/working/dot_git/objects/a9/e2d9b71b616531f04a65ae5b972ba5d1f2cb93 +0 -0
  443. data/tests/files/working/dot_git/objects/a9/e2f17562ae78a75dc855bb3dc9e87364195dcf +0 -0
  444. data/tests/files/working/dot_git/objects/ab/16bc1812fd6226780a841300a2432dfd0c6719 +0 -0
  445. data/tests/files/working/dot_git/objects/ac/8f48bbb7b31c945ba6a4fbe6950d009a5d8373 +0 -0
  446. data/tests/files/working/dot_git/objects/ae/21cabd23aee99a719fc828977c0df9e8b19363 +0 -0
  447. data/tests/files/working/dot_git/objects/b0/3003311ad3fa368b475df58390353868e13c91 +2 -0
  448. data/tests/files/working/dot_git/objects/b0/ee249c5e5cc9464f3bc0034ab05632dcb87a23 +0 -0
  449. data/tests/files/working/dot_git/objects/b1/288f8beeaa6cf048c3a9f578d4e266fab8820e +0 -0
  450. data/tests/files/working/dot_git/objects/b1/5336206c9040f4c52660b3f3c76ee02ccece56 +0 -0
  451. data/tests/files/working/dot_git/objects/b1/b18f5bea24648a1b08e5bba88728c15ec3cb50 +2 -0
  452. data/tests/files/working/dot_git/objects/b4/5724ee906d2561901208ba924add09ab95ccb3 +0 -0
  453. data/tests/files/working/dot_git/objects/b5/d8fc3cb740eb643c66eb5f4a97345fdb806259 +0 -0
  454. data/tests/files/working/dot_git/objects/b6/153b8fe540288d66b974ae05113338ab1a61f0 +0 -0
  455. data/tests/files/working/dot_git/objects/b6/987bc1201ad19774c43c0ea8078f6f51d76bcb +0 -0
  456. data/tests/files/working/dot_git/objects/b6/9e6acd87e5f9114ce6580b095ef1057a8fe5bb +0 -0
  457. data/tests/files/working/dot_git/objects/b9/8f4909807c8c84a1dc1b62b4a339ae1777f369 +3 -0
  458. data/tests/files/working/dot_git/objects/ba/492c62b6227d7f3507b4dcc6e6d5f13790eabf +0 -0
  459. data/tests/files/working/dot_git/objects/ba/c335cb9dc058a477d04cde34c07d1f70d16fb9 +0 -0
  460. data/tests/files/working/dot_git/objects/bb/0850568bb43049031a38b01ddb60e4a487f823 +0 -0
  461. data/tests/files/working/dot_git/objects/be/b14380ef26540efcad06bedcd0e302b6bce70e +0 -0
  462. data/tests/files/working/dot_git/objects/c1/3142dd26a1f6f38403a17f6c411cb621b9a1cd +0 -0
  463. data/tests/files/working/dot_git/objects/c1/8b4e9b0829411705d7fa9a1570a20d88780817 +0 -0
  464. data/tests/files/working/dot_git/objects/c5/a3fdb33f052b8f17dac83c533b62244226f4ba +0 -0
  465. data/tests/files/working/dot_git/objects/c6/567e2feccce3893ae0aaac2bf97807338aa8d4 +0 -0
  466. data/tests/files/working/dot_git/objects/cb/45eef6fa1ad913137d91c6b81d2b42d69094a6 +0 -0
  467. data/tests/files/working/dot_git/objects/cd/0d59357b36a447ff27a7c176b46e0a319b42df +0 -0
  468. data/tests/files/working/dot_git/objects/cd/4291452a61ff8b57cf5510addc8ddc5630748e +0 -0
  469. data/tests/files/working/dot_git/objects/cf/7135368cc3bf4920ceeaeebd083e098cfad355 +4 -0
  470. data/tests/files/working/dot_git/objects/cf/b9952c3a28831144a0fac7ea5a2d8517f466c4 +0 -0
  471. data/tests/files/working/dot_git/objects/d0/0491fd7e5bb6fa28c517a0bb32b8b506539d4d +0 -0
  472. data/tests/files/working/dot_git/objects/d1/4cbc09cc34fb6450b2e96432102be51c8292b8 +0 -0
  473. data/tests/files/working/dot_git/objects/d3/d171221e87a30e059d638f155f899595d96b71 +0 -0
  474. data/tests/files/working/dot_git/objects/d5/b9587b65731e25216743b0caca72051a760211 +2 -0
  475. data/tests/files/working/dot_git/objects/d6/a3aab3e38bc16688b4e636a91e462434210878 +0 -0
  476. data/tests/files/working/dot_git/objects/d6/f31c35d7e010e50568c0d605227028aa7bac66 +0 -0
  477. data/tests/files/working/dot_git/objects/d7/875788aeafdd8e317880c00e3372f683cad91e +0 -0
  478. data/tests/files/working/dot_git/objects/d7/d8a71a719e2a4ca501991a66dab47df804f6ad +0 -0
  479. data/tests/files/working/dot_git/objects/d7/e844eec32d74a3d37c4ce02d7138658e1035d6 +0 -0
  480. data/tests/files/working/dot_git/objects/da/597fb7fba247a5b59d917e90342cf4b9695905 +0 -0
  481. data/tests/files/working/dot_git/objects/da/7b788b1575936a4381050610a37737c70b55a0 +1 -0
  482. data/tests/files/working/dot_git/objects/de/996da0ef3dcee1a28aef9243aa3e255eb825b5 +0 -0
  483. data/tests/files/working/dot_git/objects/de/d54b45e4d49816f6d4256e74d45ba2bb351357 +0 -0
  484. data/tests/files/working/dot_git/objects/e3/6f723934fd1d67c7d21538751f0b1e941141db +0 -0
  485. data/tests/files/working/dot_git/objects/e3/ebef76525fe9e6e8dc739934a08512dff777c0 +0 -0
  486. data/tests/files/working/dot_git/objects/e5/0fa6835cb99747346f19fea5f1ba939da4205f +2 -0
  487. data/tests/files/working/dot_git/objects/e5/650a5c9c4b5a4415195bfb01d4d8dccbc8221b +0 -0
  488. data/tests/files/working/dot_git/objects/e5/76bdfc9ed4627ac954f9390cf7a6151ad2a73e +0 -0
  489. data/tests/files/working/dot_git/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391 +0 -0
  490. data/tests/files/working/dot_git/objects/e7/ea5938f9c009d32235050bca991d0b9533e440 +0 -0
  491. data/tests/files/working/dot_git/objects/e8/183f05f5db68b3934e93f4bf6bed2bb664e0b5 +0 -0
  492. data/tests/files/working/dot_git/objects/e8/bd03b163f82fba4560c11839d49361a78dec85 +0 -0
  493. data/tests/files/working/dot_git/objects/e9/0de8268373e4fd5ab13310b7745d47ec16813c +0 -0
  494. data/tests/files/working/dot_git/objects/ec/16a327a6a98367d03369b4e998baf3db379313 +0 -0
  495. data/tests/files/working/dot_git/objects/ec/1e3d44e160e18dbfbaa80b5b0780ccc03e678e +0 -0
  496. data/tests/files/working/dot_git/objects/ed/551aa66cf0c6f1a078832f80899faff0ae88dc +0 -0
  497. data/tests/files/working/dot_git/objects/f1/25480ee106989ec4d86554c0d5a1487ad4336a +1 -0
  498. data/tests/files/working/dot_git/objects/f1/410f8735f6f73d3599eb9b5cdd2fb70373335c +3 -0
  499. data/tests/files/working/dot_git/objects/f2/02cb755135d4263589602783b04fb32a079d88 +0 -0
  500. data/tests/files/working/dot_git/objects/f2/ff401fb3fc81f8abb3ca15247aadc1e22b6288 +0 -0
  501. data/tests/files/working/dot_git/objects/f5/501de98279c6454f510188873476f3ead0cee6 +4 -0
  502. data/tests/files/working/dot_git/objects/f7/5f313ca30e534aa9c42463e85108e682d3a14a +0 -0
  503. data/tests/files/working/dot_git/objects/f8/e9c6748331411c0d3511f90bd4e0a1a30acff0 +0 -0
  504. data/tests/files/working/dot_git/objects/f9/bce8995109cfab475d043a7dd9156d5e574ed3 +0 -0
  505. data/tests/files/working/dot_git/objects/fa/6312f71abb153ada6a0399ad710d21bb61e4d8 +0 -0
  506. data/tests/files/working/dot_git/objects/fb/8e78840d79085abf50edebf5b9d6b73ee0fb4c +0 -0
  507. data/tests/files/working/dot_git/objects/fc/b49fa99454f804799a12095292edbca48779ab +0 -0
  508. data/tests/files/working/dot_git/objects/fe/b2ccf88397c2d93f381176067be2727eba330b +0 -0
  509. data/tests/files/working/dot_git/refs/heads/git_grep +1 -0
  510. data/tests/files/working/dot_git/refs/heads/master +1 -0
  511. data/tests/files/working/dot_git/refs/heads/test +1 -0
  512. data/tests/files/working/dot_git/refs/heads/test_branches +1 -0
  513. data/tests/files/working/dot_git/refs/heads/test_object +1 -0
  514. data/tests/files/working/dot_git/refs/remotes/working/master +1 -0
  515. data/tests/files/working/dot_git/refs/tags/gitsearch1 +1 -0
  516. data/tests/files/working/dot_git/refs/tags/v2.5 +1 -0
  517. data/tests/files/working/dot_git/refs/tags/v2.6 +1 -0
  518. data/tests/files/working/dot_git/refs/tags/v2.7 +1 -0
  519. data/tests/files/working/dot_git/refs/tags/v2.8 +1 -0
  520. data/tests/files/working/ex_dir/ex.txt +0 -0
  521. data/tests/files/working/example.txt +1 -0
  522. data/tests/files/working/scott/newfile +1 -0
  523. data/tests/files/working/scott/text.txt +8 -0
  524. data/tests/test_helper.rb +67 -0
  525. data/tests/units/test_archive.rb +55 -0
  526. data/tests/units/test_bare.rb +41 -0
  527. data/tests/units/test_branch.rb +92 -0
  528. data/tests/units/test_config.rb +31 -0
  529. data/tests/units/test_diff.rb +88 -0
  530. data/tests/units/test_each_conflict.rb +49 -0
  531. data/tests/units/test_git_path.rb +45 -0
  532. data/tests/units/test_index_ops.rb +94 -0
  533. data/tests/units/test_init.rb +75 -0
  534. data/tests/units/test_lib.rb +168 -0
  535. data/tests/units/test_log.rb +69 -0
  536. data/tests/units/test_logger.rb +38 -0
  537. data/tests/units/test_merge.rb +104 -0
  538. data/tests/units/test_object.rb +138 -0
  539. data/tests/units/test_remotes.rb +85 -0
  540. data/tests/units/test_repack.rb +30 -0
  541. data/tests/units/test_stashes.rb +36 -0
  542. data/tests/units/test_tags.rb +35 -0
  543. data/tests/units/test_tree_ops.rb +121 -0
  544. metadata +929 -0
data/History.txt ADDED
@@ -0,0 +1,21 @@
1
+ == 1.0.4
2
+
3
+ * added camping/gitweb.rb frontend
4
+ * added a number of speed-ups
5
+
6
+ == 1.0.3
7
+
8
+ * Sped up most of the operations
9
+ * Added some predicate functions (commit?, tree?, etc)
10
+ * Added a number of lower level operations (read-tree, write-tree, checkout-index, etc)
11
+ * Fixed a bug with using bare repositories
12
+ * Updated a good amount of the documentation
13
+
14
+ == 1.0.2
15
+
16
+ * Added methods to the git objects that might be helpful
17
+
18
+ == 1.0.1
19
+
20
+ * Initial version
21
+
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License
2
+
3
+ Copyright (c) 2008 Scott Chacon
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README ADDED
@@ -0,0 +1,244 @@
1
+ == Git Library for Ruby
2
+
3
+ Library for using Git in Ruby. Test.
4
+
5
+ = Homepage
6
+
7
+ The Ruby/Git homepage is currently at :
8
+
9
+ http://jointheconversation.org/rubygit
10
+
11
+ Git public hosting of the project source code is at:
12
+
13
+ http://github/schacon/ruby-git
14
+
15
+ = Install
16
+
17
+ You can install Ruby/Git like this:
18
+
19
+ $ sudo gem install schacon-git --source=http://gems.github.com
20
+
21
+ = Major Objects
22
+
23
+ Git::Base - this is the object returned from a Git.open or Git.clone.
24
+ Most major actions are called from this object.
25
+
26
+ Git::Object - this is the base object for your tree, blob and commit objects,
27
+ returned from @git.gtree or @git.object calls. the Git::AbstractObject will
28
+ have most of the calls in common for all those objects.
29
+
30
+ Git::Diff - returns from a @git.diff command. It is an Enumerable that returns
31
+ Git::Diff:DiffFile objects from which you can get per file patches and insertion/deletion
32
+ statistics. You can also get total statistics from the Git::Diff object directly.
33
+
34
+ Git::Status - returns from a @git.status command. It is an Enumerable that returns
35
+ Git:Status::StatusFile objects for each object in git, which includes files in the working
36
+ directory, in the index and in the repository. Similar to running 'git status' on the command
37
+ line to determine untracked and changed files.
38
+
39
+ Git::Branches - Enumerable object that holds Git::Branch objects. You can call .local or .remote
40
+ on it to filter to just your local or remote branches.
41
+
42
+ Git::Remote - A reference to a remote repository that is tracked by this repository.
43
+
44
+ Git::Log - An Enumerable object that references all the Git::Object::Commit objects that encompass
45
+ your log query, which can be constructed through methods on the Git::Log object, like:
46
+
47
+ @git.log(20).object("some_file").since("2 weeks ago").between('v2.6', 'v2.7').each { |commit| [block] }
48
+
49
+ = Examples
50
+
51
+ Here are a bunch of examples of how to use the Ruby/Git package.
52
+
53
+ First you have to remember to require rubygems if it's not. Then include the 'git' gem.
54
+
55
+ require 'rubygems'
56
+ require 'git'
57
+
58
+ Here are the operations that need read permission only.
59
+
60
+ g = Git.open (working_dir, :log => Logger.new(STDOUT))
61
+
62
+ g.index
63
+ g.index.readable?
64
+ g.index.writable?
65
+ g.repo
66
+ g.dir
67
+
68
+ g.log # returns array of Git::Commit objects
69
+ g.log.since('2 weeks ago')
70
+ g.log.between('v2.5', 'v2.6')
71
+ g.log.each {|l| puts l.sha }
72
+ g.gblob('v2.5:Makefile').log.since('2 weeks ago')
73
+
74
+ g.object('HEAD^').to_s # git show / git rev-parse
75
+ g.object('HEAD^').contents
76
+ g.object('v2.5:Makefile').size
77
+ g.object('v2.5:Makefile').sha
78
+
79
+ g.gtree(treeish)
80
+ g.gblob(treeish)
81
+ g.gcommit(treeish)
82
+
83
+
84
+ commit = g.gcommit('1cc8667014381')
85
+ commit.gtree
86
+ commit.parent.sha
87
+ commit.parents.size
88
+ commit.author.name
89
+ commit.author.email
90
+ commit.author.date.strftime("%m-%d-%y")
91
+ commit.committer.name
92
+ commit.date.strftime("%m-%d-%y")
93
+ commit.message
94
+
95
+ tree = g.gtree("HEAD^{tree}")
96
+ tree.blobs
97
+ tree.subtrees
98
+ tree.children # blobs and subtrees
99
+
100
+ g.revparse('v2.5:Makefile')
101
+
102
+ g.branches # returns Git::Branch objects
103
+ g.branches.local
104
+ g.branches.remote
105
+ g.branches[:master].gcommit
106
+ g.branches['origin/master'].gcommit
107
+
108
+ g.grep('hello') # implies HEAD
109
+ g.blob('v2.5:Makefile').grep('hello')
110
+ g.tag('v2.5').grep('hello', 'docs/')
111
+
112
+ g.diff(commit1, commit2).size
113
+ g.diff(commit1, commit2).stats
114
+ g.gtree('v2.5').diff('v2.6').insertions
115
+ g.diff('gitsearch1', 'v2.5').path('lib/')
116
+ g.diff('gitsearch1', @git.gtree('v2.5'))
117
+ g.diff('gitsearch1', 'v2.5').path('docs/').patch
118
+ g.gtree('v2.5').diff('v2.6').patch
119
+
120
+ g.gtree('v2.5').diff('v2.6').each do |file_diff|
121
+ puts file_diff.path
122
+ puts file_diff.patch
123
+ puts file_diff.blob(:src).contents
124
+ end
125
+
126
+ g.config('user.name') # returns 'Scott Chacon'
127
+ g.config # returns whole config hash
128
+
129
+ g.tag # returns array of Git::Tag objects
130
+
131
+
132
+
133
+ And here are the operations that will need to write to your git repository.
134
+
135
+
136
+ g = Git.init
137
+ Git.init('project')
138
+ Git.init('/home/schacon/proj',
139
+ { :git_dir => '/opt/git/proj.git',
140
+ :index_file => '/tmp/index'} )
141
+
142
+ g = Git.clone(URI, :name => 'name', :path => '/tmp/checkout')
143
+ g.config('user.name', 'Scott Chacon')
144
+ g.config('user.email', 'email@email.com')
145
+
146
+ g.add('.')
147
+ g.add([file1, file2])
148
+
149
+ g.remove('file.txt')
150
+ g.remove(['file.txt', 'file2.txt'])
151
+
152
+ g.commit('message')
153
+ g.commit_all('message')
154
+
155
+ g = Git.clone(repo, 'myrepo')
156
+ g.chdir do
157
+ new_file('test-file', 'blahblahblah')
158
+ g.status.changed.each do |file|
159
+ puts file.blob(:index).contents
160
+ end
161
+ end
162
+
163
+ g.reset # defaults to HEAD
164
+ g.reset_hard(Git::Commit)
165
+
166
+ g.branch('new_branch') # creates new or fetches existing
167
+ g.branch('new_branch').checkout
168
+ g.branch('new_branch').delete
169
+ g.branch('existing_branch').checkout
170
+
171
+ g.checkout('new_branch')
172
+ g.checkout(g.branch('new_branch'))
173
+
174
+ g.branch(name).merge(branch2)
175
+ g.branch(branch2).merge # merges HEAD with branch2
176
+
177
+ g.branch(name).in_branch(message) { # add files } # auto-commits
178
+ g.merge('new_branch')
179
+ g.merge('origin/remote_branch')
180
+ g.merge(b.branch('master'))
181
+ g.merge([branch1, branch2])
182
+
183
+ r = g.add_remote(name, uri) # Git::Remote
184
+ r = g.add_remote(name, Git::Base) # Git::Remote
185
+
186
+ g.remotes # array of Git::Remotes
187
+ g.remote(name).fetch
188
+ g.remote(name).remove
189
+ g.remote(name).merge
190
+ g.remote(name).merge(branch)
191
+
192
+ g.fetch
193
+ g.fetch(g.remotes.first)
194
+
195
+ g.pull
196
+ g.pull(Git::Repo, Git::Branch) # fetch and a merge
197
+
198
+ g.add_tag('tag_name') # returns Git::Tag
199
+
200
+ g.repack
201
+
202
+ g.push
203
+ g.push(g.remote('name'))
204
+
205
+
206
+ Some examples of more low-level index and tree operations
207
+
208
+ g.with_temp_index do
209
+
210
+ g.read_tree(tree3) # calls self.index.read_tree
211
+ g.read_tree(tree1, :prefix => 'hi/')
212
+
213
+ c = g.commit_tree('message')
214
+ # or #
215
+ t = g.write_tree
216
+ c = g.commit_tree(t, :message => 'message', :parents => [sha1, sha2])
217
+
218
+ g.branch('branch_name').update_ref(c)
219
+ g.update_ref(branch, c)
220
+
221
+ g.with_temp_working do # new blank working directory
222
+ g.checkout
223
+ g.checkout(another_index)
224
+ g.commit # commits to temp_index
225
+ end
226
+ end
227
+
228
+ g.set_index('/path/to/index')
229
+
230
+
231
+ g.with_index(path) do
232
+ # calls set_index, then switches back after
233
+ end
234
+
235
+ g.with_working(dir) do
236
+ # calls set_working, then switches back after
237
+ end
238
+
239
+ g.with_temp_working(dir) do
240
+ g.checkout_index(:prefix => dir, :path_limiter => path)
241
+ # do file work
242
+ g.commit # commits to index
243
+ end
244
+
data/Rakefile ADDED
@@ -0,0 +1,46 @@
1
+ require 'rake'
2
+ require 'rcov/rcovtask'
3
+ require 'spec/rake/spectask'
4
+ require 'rake/rdoctask'
5
+
6
+ begin
7
+ require 'jeweler'
8
+ Jeweler::Tasks.new do |s|
9
+ s.name = "git"
10
+ s.author = "Scott Chacon"
11
+ s.email = "schacon@gmail.com"
12
+ s.summary = "A package for using Git in Ruby code."
13
+ s.description = "A package for using Git in Ruby code."
14
+ s.files = FileList['lib/**/*.rb', 'bin/*', '[A-Z]*', 'tests/**/*'].to_a
15
+ s.require_path = "lib"
16
+ s.autorequire = "git"
17
+ s.test_files = FileList['tests/units/test_*.rb'].to_a
18
+ s.has_rdoc = true
19
+ s.extra_rdoc_files = ["README"]
20
+ end
21
+ rescue LoadError
22
+ puts 'Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com'
23
+ end
24
+
25
+ Rake::RDocTask.new do |rdoc|
26
+ rdoc.rdoc_dir = 'doc'
27
+ rdoc.title = 'ruby-git'
28
+ rdoc.options << '--line-numbers' << '--inline-source'
29
+ rdoc.rdoc_files.include('README*')
30
+ rdoc.rdoc_files.include('lib/**/*.rb')
31
+ end
32
+
33
+ desc "Upload docs"
34
+ task :upload_docs do |t|
35
+ Rake::Task['rdoc'].invoke
36
+ system('rsync -rv --delete doc/ git.rubyforge.org:/var/www/gforge-projects/git')
37
+ end
38
+
39
+ desc 'Run all tests with rcov'
40
+ Rcov::RcovTask.new do |t|
41
+ t.test_files = FileList['tests/units/test_*.rb']
42
+ t.rcov_opts = ['--exclude', 'tests']
43
+ t.verbose = true
44
+ end
45
+
46
+ task :default => :rcov
data/TODO ADDED
@@ -0,0 +1,27 @@
1
+ * more documentation
2
+
3
+ * git revert, rebase
4
+
5
+ * diff additions
6
+ - annotate, blame
7
+
8
+ * submodule support
9
+
10
+ * repository admin
11
+ - prune, fsck, pack-refs, count-objects, unpack-objects
12
+
13
+ * email/patch integration
14
+ - request-pull(email_address), git-am, git-apply
15
+
16
+
17
+ * compatible with git 1.4
18
+
19
+ * More Error Examples
20
+
21
+ * More Git::Status methods
22
+
23
+
24
+ * Speed up through pure ruby
25
+
26
+ * Speed up through C bindings to libgit-thin
27
+
data/VERSION.yml ADDED
@@ -0,0 +1,4 @@
1
+ ---
2
+ major: 1
3
+ minor: 1
4
+ patch: 0
data/lib/git.rb ADDED
@@ -0,0 +1,110 @@
1
+
2
+ # Add the directory containing this file to the start of the load path if it
3
+ # isn't there already.
4
+ $:.unshift(File.dirname(__FILE__)) unless
5
+ $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
6
+
7
+ require 'git/base'
8
+ require 'git/path'
9
+ require 'git/lib'
10
+
11
+ require 'git/repository'
12
+ require 'git/index'
13
+ require 'git/working_directory'
14
+
15
+ require 'git/log'
16
+ require 'git/object'
17
+
18
+ require 'git/branches'
19
+ require 'git/branch'
20
+ require 'git/remote'
21
+
22
+ require 'git/diff'
23
+ require 'git/status'
24
+ require 'git/author'
25
+
26
+ require 'git/stashes'
27
+ require 'git/stash'
28
+
29
+
30
+ # Git/Ruby Library
31
+ #
32
+ # This provides bindings for working with git in complex
33
+ # interactions, including branching and merging, object
34
+ # inspection and manipulation, history, patch generation
35
+ # and more. You should be able to do most fundamental git
36
+ # operations with this library.
37
+ #
38
+ # This module provides the basic functions to open a git
39
+ # reference to work with. You can open a working directory,
40
+ # open a bare repository, initialize a new repo or clone an
41
+ # existing remote repository.
42
+ #
43
+ # Author:: Scott Chacon (mailto:schacon@gmail.com)
44
+ # License:: MIT License
45
+ module Git
46
+
47
+ VERSION = '1.0.4'
48
+
49
+ # open a bare repository
50
+ #
51
+ # this takes the path to a bare git repo
52
+ # it expects not to be able to use a working directory
53
+ # so you can't checkout stuff, commit things, etc.
54
+ # but you can do most read operations
55
+ def self.bare(git_dir, options = {})
56
+ Base.bare(git_dir, options)
57
+ end
58
+
59
+ # open an existing git working directory
60
+ #
61
+ # this will most likely be the most common way to create
62
+ # a git reference, referring to a working directory.
63
+ # if not provided in the options, the library will assume
64
+ # your git_dir and index are in the default place (.git/, .git/index)
65
+ #
66
+ # options
67
+ # :repository => '/path/to/alt_git_dir'
68
+ # :index => '/path/to/alt_index_file'
69
+ def self.open(working_dir, options = {})
70
+ Base.open(working_dir, options)
71
+ end
72
+
73
+ # initialize a new git repository, defaults to the current working directory
74
+ #
75
+ # options
76
+ # :repository => '/path/to/alt_git_dir'
77
+ # :index => '/path/to/alt_index_file'
78
+ def self.init(working_dir = '.', options = {})
79
+ Base.init(working_dir, options)
80
+ end
81
+
82
+ # clones a remote repository
83
+ #
84
+ # options
85
+ # :bare => true (does a bare clone)
86
+ # :repository => '/path/to/alt_git_dir'
87
+ # :index => '/path/to/alt_index_file'
88
+ #
89
+ # example
90
+ # Git.clone('git://repo.or.cz/rubygit.git', 'clone.git', :bare => true)
91
+ #
92
+ def self.clone(repository, name, options = {})
93
+ Base.clone(repository, name, options)
94
+ end
95
+
96
+ # Export the current HEAD (or a branch, if <tt>options[:branch]</tt>
97
+ # is specified) into the +name+ directory, then remove all traces of git from the
98
+ # directory.
99
+ #
100
+ # See +clone+ for options. Does not obey the <tt>:remote</tt> option,
101
+ # since the .git info will be deleted anyway; always uses the default
102
+ # remote, 'origin.'
103
+ def self.export(repository, name, options = {})
104
+ options.delete(:remote)
105
+ repo = clone(repository, name, {:depth => 1}.merge(options))
106
+ repo.checkout("origin/#{options[:branch]}") if options[:branch]
107
+ Dir.chdir(repo.dir.to_s) { FileUtils.rm_r '.git' }
108
+ end
109
+
110
+ end