eac_tools 0.101.3 → 0.102.1

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 (342) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +40 -24
  3. data/lib/eac_tools/version.rb +1 -1
  4. data/sub/avm-git/avm-git.gemspec +25 -0
  5. data/sub/avm-git/lib/avm/git/application_scms/base/assert_main_at.rb +44 -0
  6. data/sub/avm-git/lib/avm/git/application_scms/base.rb +18 -0
  7. data/sub/avm-git/lib/avm/git/application_scms.rb +9 -0
  8. data/sub/avm-git/lib/avm/git/commit/class_methods.rb +29 -0
  9. data/sub/{eac_git/lib/eac_git/local → avm-git/lib/avm/git}/commit/diff_tree_line.rb +2 -2
  10. data/sub/avm-git/lib/avm/git/commit/file.rb +42 -0
  11. data/sub/avm-git/lib/avm/git/commit.rb +57 -0
  12. data/sub/avm-git/lib/avm/git/issue/complete/commits.rb +40 -0
  13. data/sub/avm-git/lib/avm/git/issue/complete/git_subrepos.rb +20 -0
  14. data/sub/avm-git/lib/avm/git/issue/complete/local_branch.rb +59 -0
  15. data/sub/avm-git/lib/avm/git/issue/complete/local_tag.rb +37 -0
  16. data/sub/avm-git/lib/avm/git/issue/complete/push.rb +60 -0
  17. data/sub/avm-git/lib/avm/git/issue/complete/remote.rb +33 -0
  18. data/sub/avm-git/lib/avm/git/issue/complete/test.rb +34 -0
  19. data/sub/avm-git/lib/avm/git/issue/complete/tracker.rb +21 -0
  20. data/sub/avm-git/lib/avm/git/issue/complete/validation.rb +36 -0
  21. data/sub/avm-git/lib/avm/git/issue/complete/validations.rb +54 -0
  22. data/sub/avm-git/lib/avm/git/issue/complete/working_tree.rb +19 -0
  23. data/sub/avm-git/lib/avm/git/issue/complete.rb +66 -0
  24. data/sub/avm-git/lib/avm/git/issue.rb +10 -0
  25. data/sub/avm-git/lib/avm/git/launcher/base/class_methods.rb +28 -0
  26. data/sub/avm-git/lib/avm/git/launcher/base/dirty_files.rb +21 -0
  27. data/sub/avm-git/lib/avm/git/launcher/base/remotes.rb +37 -0
  28. data/sub/avm-git/lib/avm/git/launcher/base/subrepo.rb +42 -0
  29. data/sub/avm-git/lib/avm/git/launcher/base/underlying.rb +54 -0
  30. data/sub/avm-git/lib/avm/git/launcher/base.rb +81 -0
  31. data/sub/avm-git/lib/avm/git/launcher/error.rb +13 -0
  32. data/sub/avm-git/lib/avm/git/launcher/mirror_update.rb +36 -0
  33. data/sub/avm-git/lib/avm/git/launcher/publish_base.rb +127 -0
  34. data/sub/avm-git/lib/avm/git/launcher/remote.rb +53 -0
  35. data/sub/avm-git/lib/avm/git/launcher/sub_warp_base.rb +36 -0
  36. data/sub/avm-git/lib/avm/git/launcher/warp_base.rb +63 -0
  37. data/sub/avm-git/lib/avm/git/launcher_stereotypes/git/local_project_mixin.rb +16 -0
  38. data/sub/avm-git/lib/avm/git/launcher_stereotypes/git/publish.rb +13 -0
  39. data/sub/avm-git/lib/avm/git/launcher_stereotypes/git/warp.rb +25 -0
  40. data/sub/avm-git/lib/avm/git/launcher_stereotypes/git.rb +22 -0
  41. data/sub/avm-git/lib/avm/git/launcher_stereotypes/git_subrepo/publish.rb +29 -0
  42. data/sub/avm-git/lib/avm/git/launcher_stereotypes/git_subrepo/warp.rb +82 -0
  43. data/sub/avm-git/lib/avm/git/launcher_stereotypes/git_subrepo.rb +32 -0
  44. data/sub/avm-git/lib/avm/git/launcher_stereotypes/git_subtree/publish.rb +12 -0
  45. data/sub/avm-git/lib/avm/git/launcher_stereotypes/git_subtree/warp.rb +29 -0
  46. data/sub/avm-git/lib/avm/git/launcher_stereotypes/git_subtree.rb +47 -0
  47. data/sub/avm-git/lib/avm/git/launcher_stereotypes/provider.rb +17 -0
  48. data/sub/avm-git/lib/avm/git/launcher_stereotypes.rb +9 -0
  49. data/sub/avm-git/lib/avm/git/organize/reference_update.rb +32 -0
  50. data/sub/avm-git/lib/avm/git/organize/repository.rb +74 -0
  51. data/sub/avm-git/lib/avm/git/organize.rb +9 -0
  52. data/sub/avm-git/lib/avm/git/revision_test.rb +102 -0
  53. data/sub/avm-git/lib/avm/git/runners/base/commit.rb +96 -0
  54. data/sub/avm-git/lib/avm/git/runners/base/deploy.rb +108 -0
  55. data/sub/avm-git/lib/avm/git/runners/base/dirty_files.rb +42 -0
  56. data/sub/avm-git/lib/avm/git/runners/base/organize.rb +72 -0
  57. data/sub/avm-git/lib/avm/git/runners/base/revisions_test.rb +63 -0
  58. data/sub/avm-git/lib/avm/git/runners/base/subrepo/check.rb +45 -0
  59. data/sub/avm-git/lib/avm/git/runners/base/subrepo/clone.rb +80 -0
  60. data/sub/avm-git/lib/avm/git/runners/base/subrepo/fix.rb +69 -0
  61. data/sub/avm-git/lib/avm/git/runners/base/subrepo.rb +17 -0
  62. data/sub/avm-git/lib/avm/git/runners/base.rb +40 -0
  63. data/sub/avm-git/lib/avm/git/runners.rb +9 -0
  64. data/sub/avm-git/lib/avm/git/scms/git/branch.rb +28 -0
  65. data/sub/avm-git/lib/avm/git/scms/git/branches.rb +17 -0
  66. data/sub/avm-git/lib/avm/git/scms/git/change_tracker.rb +34 -0
  67. data/sub/avm-git/lib/avm/git/scms/git/changed_file.rb +25 -0
  68. data/sub/avm-git/lib/avm/git/scms/git/changed_files.rb +21 -0
  69. data/sub/avm-git/lib/avm/git/scms/git/commit/deploy.rb +37 -0
  70. data/sub/avm-git/lib/avm/git/scms/git/commit/deploy_methods.rb +24 -0
  71. data/sub/avm-git/lib/avm/git/scms/git/commit.rb +64 -0
  72. data/sub/avm-git/lib/avm/git/scms/git/commit_dirty.rb +32 -0
  73. data/sub/avm-git/lib/avm/git/scms/git/commits.rb +44 -0
  74. data/sub/avm-git/lib/avm/git/scms/git/interval.rb +28 -0
  75. data/sub/avm-git/lib/avm/git/scms/git/milestones.rb +18 -0
  76. data/sub/avm-git/lib/avm/git/scms/git/remote.rb +18 -0
  77. data/sub/avm-git/lib/avm/git/scms/git/remotes.rb +29 -0
  78. data/sub/avm-git/lib/avm/git/scms/git/run_commit.rb +54 -0
  79. data/sub/avm-git/lib/avm/git/scms/git.rb +46 -0
  80. data/sub/avm-git/lib/avm/git/scms/git_sub_base/changed_file.rb +19 -0
  81. data/sub/avm-git/lib/avm/git/scms/git_sub_base/commit.rb +23 -0
  82. data/sub/avm-git/lib/avm/git/scms/git_sub_base/interval.rb +23 -0
  83. data/sub/avm-git/lib/avm/git/scms/git_sub_base.rb +30 -0
  84. data/sub/avm-git/lib/avm/git/scms/git_subrepo.rb +33 -0
  85. data/sub/avm-git/lib/avm/git/scms/git_subtree.rb +29 -0
  86. data/sub/avm-git/lib/avm/git/scms/provider.rb +16 -0
  87. data/sub/avm-git/lib/avm/git/scms.rb +9 -0
  88. data/sub/avm-git/lib/avm/git/subrepo_check/parent.rb +48 -0
  89. data/sub/avm-git/lib/avm/git/subrepo_check/remote.rb +86 -0
  90. data/sub/avm-git/lib/avm/git/subrepo_check/show_result.rb +30 -0
  91. data/sub/avm-git/lib/avm/git/subrepo_check.rb +36 -0
  92. data/sub/avm-git/lib/avm/git/subrepo_checks.rb +57 -0
  93. data/sub/avm-git/lib/avm/git/vendor/github.rb +20 -0
  94. data/sub/avm-git/lib/avm/git/vendor.rb +9 -0
  95. data/sub/avm-git/lib/avm/git/version.rb +7 -0
  96. data/sub/avm-git/lib/avm/git.rb +16 -0
  97. data/sub/avm-git/locale/en.yml +6 -0
  98. data/sub/avm-git/locale/pt-BR.yml +6 -0
  99. data/sub/{eac_git/spec/lib/eac_git/local → avm-git/spec/lib/avm/git}/commit/diff_tree_line_spec.rb +3 -1
  100. data/sub/{eac_git/spec/lib/eac_git/local → avm-git/spec/lib/avm/git}/commit_spec.rb +10 -10
  101. data/sub/avm-git/spec/lib/avm/git/launcher/base_spec.rb +45 -0
  102. data/sub/avm-git/spec/lib/avm/git/launcher_stereotypes/git_subrepo/publish_spec.rb +83 -0
  103. data/sub/avm-git/spec/lib/avm/git/launcher_stereotypes/git_subrepo/publish_spec_files/config.yml +5 -0
  104. data/sub/avm-git/spec/lib/avm/git/launcher_stereotypes/git_subrepo/publish_spec_settings.yml +6 -0
  105. data/sub/avm-git/spec/lib/avm/git/launcher_stereotypes/git_subrepo/warp_spec.rb +53 -0
  106. data/sub/avm-git/spec/lib/avm/git/launcher_stereotypes/git_subrepo/warp_spec_files/config.yml +3 -0
  107. data/sub/avm-git/spec/lib/avm/git/launcher_stereotypes/git_subrepo/warp_spec_settings.yml +6 -0
  108. data/sub/avm-git/spec/lib/avm/git/runners/base/deploy_spec.rb +126 -0
  109. data/sub/avm-git/spec/lib/avm/git/runners/base/deploy_spec_files/append1/stub3.txt.template +1 -0
  110. data/sub/avm-git/spec/lib/avm/git/runners/base/deploy_spec_files/append2/stub4.txt +1 -0
  111. data/sub/avm-git/spec/lib/avm/git/scms/git/commit/deploy_spec.rb +92 -0
  112. data/sub/avm-git/spec/lib/avm/git/scms/git_spec.rb +8 -0
  113. data/sub/avm-git/spec/lib/avm/git/scms/git_subrepo_spec.rb +8 -0
  114. data/sub/avm-git/spec/lib/avm/git/vendor/github_spec.rb +23 -0
  115. data/sub/{eac_git → avm-git}/spec/spec_helper.rb +2 -2
  116. metadata +132 -250
  117. data/sub/eac_git/eac_git.gemspec +0 -20
  118. data/sub/eac_git/lib/eac_git/executables.rb +0 -45
  119. data/sub/eac_git/lib/eac_git/local/branch.rb +0 -45
  120. data/sub/eac_git/lib/eac_git/local/changed_file.rb +0 -53
  121. data/sub/eac_git/lib/eac_git/local/commit/archive.rb +0 -17
  122. data/sub/eac_git/lib/eac_git/local/commit/changed_file.rb +0 -43
  123. data/sub/eac_git/lib/eac_git/local/commit.rb +0 -71
  124. data/sub/eac_git/lib/eac_git/local/dirty_files.rb +0 -26
  125. data/sub/eac_git/lib/eac_git/local/log.rb +0 -14
  126. data/sub/eac_git/lib/eac_git/local/remote/push.rb +0 -33
  127. data/sub/eac_git/lib/eac_git/local/remote.rb +0 -47
  128. data/sub/eac_git/lib/eac_git/local/remotes.rb +0 -17
  129. data/sub/eac_git/lib/eac_git/local/subrepo/config.rb +0 -40
  130. data/sub/eac_git/lib/eac_git/local/subrepo.rb +0 -46
  131. data/sub/eac_git/lib/eac_git/local.rb +0 -124
  132. data/sub/eac_git/lib/eac_git/remote.rb +0 -20
  133. data/sub/eac_git/lib/eac_git/remote_like/ls_result.rb +0 -18
  134. data/sub/eac_git/lib/eac_git/remote_like.rb +0 -30
  135. data/sub/eac_git/lib/eac_git/rspec/setup.rb +0 -20
  136. data/sub/eac_git/lib/eac_git/rspec/stubbed_git_local_repo/directory.rb +0 -35
  137. data/sub/eac_git/lib/eac_git/rspec/stubbed_git_local_repo/file.rb +0 -21
  138. data/sub/eac_git/lib/eac_git/rspec/stubbed_git_local_repo/fs_object.rb +0 -25
  139. data/sub/eac_git/lib/eac_git/rspec/stubbed_git_local_repo/repository.rb +0 -30
  140. data/sub/eac_git/lib/eac_git/rspec/stubbed_git_local_repo.rb +0 -28
  141. data/sub/eac_git/lib/eac_git/rspec.rb +0 -7
  142. data/sub/eac_git/lib/eac_git/version.rb +0 -5
  143. data/sub/eac_git/lib/eac_git.rb +0 -9
  144. data/sub/eac_git/spec/lib/eac_git/executables_spec.rb +0 -11
  145. data/sub/eac_git/spec/lib/eac_git/local/dirty_files_spec.rb +0 -18
  146. data/sub/eac_git/vendor/git-subrepo/Changes +0 -110
  147. data/sub/eac_git/vendor/git-subrepo/Intro.pod +0 -509
  148. data/sub/eac_git/vendor/git-subrepo/License +0 -21
  149. data/sub/eac_git/vendor/git-subrepo/Makefile +0 -82
  150. data/sub/eac_git/vendor/git-subrepo/Meta +0 -28
  151. data/sub/eac_git/vendor/git-subrepo/ReadMe.pod +0 -698
  152. data/sub/eac_git/vendor/git-subrepo/doc/comparison.swim +0 -35
  153. data/sub/eac_git/vendor/git-subrepo/doc/git-subrepo.swim +0 -608
  154. data/sub/eac_git/vendor/git-subrepo/doc/intro-to-subrepo.swim +0 -387
  155. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/Changes +0 -15
  156. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/License +0 -21
  157. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/Makefile +0 -45
  158. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/Meta +0 -28
  159. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/ReadMe.pod +0 -77
  160. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/bin/bash+ +0 -43
  161. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/doc/bash+.swim +0 -61
  162. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/lib/bash+.bash +0 -92
  163. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/man/man1/bash+.1 +0 -134
  164. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/man/man3/bash+.3 +0 -134
  165. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/test/base.t +0 -12
  166. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/test/fcopy.t +0 -22
  167. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/test/lib/foo/bar.bash +0 -3
  168. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/test/lib/foo/foo.bash +0 -3
  169. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/test/source-bash+-std.t +0 -18
  170. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/test/source-bash+.t +0 -23
  171. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/test/test.bash +0 -70
  172. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/test/use.t +0 -19
  173. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/Changes +0 -15
  174. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/License +0 -21
  175. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/Makefile +0 -20
  176. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/Meta +0 -30
  177. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ReadMe.pod +0 -115
  178. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/doc/test-more.swim +0 -89
  179. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/Changes +0 -15
  180. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/License +0 -21
  181. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/Makefile +0 -45
  182. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/Meta +0 -28
  183. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/ReadMe.pod +0 -77
  184. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/bin/bash+ +0 -43
  185. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/doc/bash+.swim +0 -61
  186. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/lib/bash+.bash +0 -92
  187. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/man/man1/bash+.1 +0 -134
  188. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/man/man3/bash+.3 +0 -134
  189. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/base.t +0 -12
  190. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/fcopy.t +0 -22
  191. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/lib/foo/bar.bash +0 -3
  192. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/lib/foo/foo.bash +0 -3
  193. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/source-bash+-std.t +0 -18
  194. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/source-bash+.t +0 -23
  195. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/test.bash +0 -70
  196. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/use.t +0 -19
  197. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/Changes +0 -15
  198. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/License +0 -21
  199. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/Makefile +0 -37
  200. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/Meta +0 -28
  201. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/ReadMe.pod +0 -66
  202. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/doc/test-tap.swim +0 -48
  203. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/lib/test/tap.bash +0 -153
  204. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/man/man3/test-tap.3 +0 -119
  205. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/bail_out.t +0 -13
  206. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/done.t +0 -10
  207. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/fail.t +0 -20
  208. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/fail_fast.t +0 -15
  209. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/helper.bash +0 -9
  210. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/pass.t +0 -9
  211. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/plan.t +0 -10
  212. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/skip_all.t +0 -20
  213. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/tap.t +0 -13
  214. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/test/bail.t +0 -14
  215. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/test/fail.t +0 -7
  216. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/test/fail_fast.t +0 -12
  217. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/test/skip-all-init.t +0 -8
  218. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/test/skip-all-plan.t +0 -9
  219. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/lib/test/more.bash +0 -95
  220. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/man/man3/test-more.3 +0 -173
  221. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/test/fail.t +0 -20
  222. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/test/more.t +0 -20
  223. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/test/pass.t +0 -9
  224. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/test/setup +0 -8
  225. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/test/skip_all.t +0 -11
  226. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/test/test/fail1.t +0 -12
  227. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/test/test/skip_all.t +0 -10
  228. data/sub/eac_git/vendor/git-subrepo/lib/git-subrepo +0 -1903
  229. data/sub/eac_git/vendor/git-subrepo/lib/git-subrepo.d/bash+.bash +0 -1
  230. data/sub/eac_git/vendor/git-subrepo/lib/git-subrepo.d/help-functions.bash +0 -339
  231. data/sub/eac_git/vendor/git-subrepo/man/man1/git-subrepo.1 +0 -743
  232. data/sub/eac_git/vendor/git-subrepo/note/0.4.0 +0 -12
  233. data/sub/eac_git/vendor/git-subrepo/note/AllGitCmds +0 -148
  234. data/sub/eac_git/vendor/git-subrepo/note/Cases +0 -32
  235. data/sub/eac_git/vendor/git-subrepo/note/Commands +0 -33
  236. data/sub/eac_git/vendor/git-subrepo/note/Dags +0 -199
  237. data/sub/eac_git/vendor/git-subrepo/note/Gists +0 -7
  238. data/sub/eac_git/vendor/git-subrepo/note/Links +0 -25
  239. data/sub/eac_git/vendor/git-subrepo/note/Plugins +0 -10
  240. data/sub/eac_git/vendor/git-subrepo/note/Spec +0 -39
  241. data/sub/eac_git/vendor/git-subrepo/note/Story1 +0 -57
  242. data/sub/eac_git/vendor/git-subrepo/note/ToDo +0 -55
  243. data/sub/eac_git/vendor/git-subrepo/note/design.swim +0 -137
  244. data/sub/eac_git/vendor/git-subrepo/note/design2.swim +0 -85
  245. data/sub/eac_git/vendor/git-subrepo/note/init-test +0 -38
  246. data/sub/eac_git/vendor/git-subrepo/note/pull-dance.txt +0 -18
  247. data/sub/eac_git/vendor/git-subrepo/note/recreate-rebase-conflict.sh +0 -56
  248. data/sub/eac_git/vendor/git-subrepo/note/subtree-rebase-fail-example/test.bash +0 -29
  249. data/sub/eac_git/vendor/git-subrepo/note/test-subrepo-push.sh +0 -69
  250. data/sub/eac_git/vendor/git-subrepo/note/test.sh +0 -58
  251. data/sub/eac_git/vendor/git-subrepo/pkg/bin/generate-completion.pl +0 -210
  252. data/sub/eac_git/vendor/git-subrepo/pkg/bin/generate-help-functions.pl +0 -89
  253. data/sub/eac_git/vendor/git-subrepo/share/completion.bash +0 -42
  254. data/sub/eac_git/vendor/git-subrepo/share/enable-completion.sh +0 -50
  255. data/sub/eac_git/vendor/git-subrepo/share/git-completion.bash +0 -2738
  256. data/sub/eac_git/vendor/git-subrepo/share/zsh-completion/_git-subrepo +0 -81
  257. data/sub/eac_git/vendor/git-subrepo/test/branch-all.t +0 -41
  258. data/sub/eac_git/vendor/git-subrepo/test/branch-rev-list-one-path.t +0 -43
  259. data/sub/eac_git/vendor/git-subrepo/test/branch-rev-list.t +0 -47
  260. data/sub/eac_git/vendor/git-subrepo/test/branch.t +0 -52
  261. data/sub/eac_git/vendor/git-subrepo/test/clean.t +0 -43
  262. data/sub/eac_git/vendor/git-subrepo/test/clone-annotated-tag.t +0 -45
  263. data/sub/eac_git/vendor/git-subrepo/test/clone.t +0 -107
  264. data/sub/eac_git/vendor/git-subrepo/test/compile.t +0 -19
  265. data/sub/eac_git/vendor/git-subrepo/test/config.t +0 -58
  266. data/sub/eac_git/vendor/git-subrepo/test/encode.t +0 -91
  267. data/sub/eac_git/vendor/git-subrepo/test/error.t +0 -171
  268. data/sub/eac_git/vendor/git-subrepo/test/fetch.t +0 -43
  269. data/sub/eac_git/vendor/git-subrepo/test/gitignore.t +0 -61
  270. data/sub/eac_git/vendor/git-subrepo/test/init.t +0 -64
  271. data/sub/eac_git/vendor/git-subrepo/test/issue29.t +0 -98
  272. data/sub/eac_git/vendor/git-subrepo/test/issue95.t +0 -98
  273. data/sub/eac_git/vendor/git-subrepo/test/issue96.t +0 -96
  274. data/sub/eac_git/vendor/git-subrepo/test/pull-all.t +0 -38
  275. data/sub/eac_git/vendor/git-subrepo/test/pull-merge.t +0 -113
  276. data/sub/eac_git/vendor/git-subrepo/test/pull-message.t +0 -88
  277. data/sub/eac_git/vendor/git-subrepo/test/pull-new-branch.t +0 -58
  278. data/sub/eac_git/vendor/git-subrepo/test/pull-ours.t +0 -90
  279. data/sub/eac_git/vendor/git-subrepo/test/pull-theirs.t +0 -82
  280. data/sub/eac_git/vendor/git-subrepo/test/pull-twice.t +0 -44
  281. data/sub/eac_git/vendor/git-subrepo/test/pull-worktree.t +0 -40
  282. data/sub/eac_git/vendor/git-subrepo/test/pull.t +0 -99
  283. data/sub/eac_git/vendor/git-subrepo/test/push-after-init.t +0 -51
  284. data/sub/eac_git/vendor/git-subrepo/test/push-force.t +0 -56
  285. data/sub/eac_git/vendor/git-subrepo/test/push-new-branch.t +0 -61
  286. data/sub/eac_git/vendor/git-subrepo/test/push-no-changes.t +0 -29
  287. data/sub/eac_git/vendor/git-subrepo/test/push-squash.t +0 -56
  288. data/sub/eac_git/vendor/git-subrepo/test/push.t +0 -176
  289. data/sub/eac_git/vendor/git-subrepo/test/reclone.t +0 -45
  290. data/sub/eac_git/vendor/git-subrepo/test/repo/bar/HEAD +0 -1
  291. data/sub/eac_git/vendor/git-subrepo/test/repo/bar/config +0 -4
  292. data/sub/eac_git/vendor/git-subrepo/test/repo/bar/objects/1f/0c4b264caed0126814a0ede851a1e0b4e16ae6 +0 -0
  293. data/sub/eac_git/vendor/git-subrepo/test/repo/bar/objects/87/46903fdb1b9c2101377880125917c2e05b4d69 +0 -0
  294. data/sub/eac_git/vendor/git-subrepo/test/repo/bar/objects/94/c86ffc745232d89f78c6f895e11e71272518db +0 -0
  295. data/sub/eac_git/vendor/git-subrepo/test/repo/bar/objects/c6/76c57b6576743fa56278527aa60ebd2e202a7c +0 -0
  296. data/sub/eac_git/vendor/git-subrepo/test/repo/bar/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391 +0 -0
  297. data/sub/eac_git/vendor/git-subrepo/test/repo/bar/objects/f6/2a8ff3feadf39b0a98f1a86ec6d1eb33858ee9 +0 -0
  298. data/sub/eac_git/vendor/git-subrepo/test/repo/bar/refs/heads/master +0 -1
  299. data/sub/eac_git/vendor/git-subrepo/test/repo/bar/refs/tags/A +0 -1
  300. data/sub/eac_git/vendor/git-subrepo/test/repo/foo/HEAD +0 -1
  301. data/sub/eac_git/vendor/git-subrepo/test/repo/foo/config +0 -4
  302. data/sub/eac_git/vendor/git-subrepo/test/repo/foo/objects/a0/f4cdaaf533a936296cdebbed8206c3b9ededa8 +0 -0
  303. data/sub/eac_git/vendor/git-subrepo/test/repo/foo/objects/e2/1291a1ad392a9d4c51dd9586804f1467b28afd +0 -0
  304. data/sub/eac_git/vendor/git-subrepo/test/repo/foo/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391 +0 -0
  305. data/sub/eac_git/vendor/git-subrepo/test/repo/foo/refs/heads/master +0 -1
  306. data/sub/eac_git/vendor/git-subrepo/test/repo/init/HEAD +0 -1
  307. data/sub/eac_git/vendor/git-subrepo/test/repo/init/config +0 -5
  308. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/11/523f5dcf03b4c89b592dc8a3d0308f68da2386 +0 -0
  309. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/14/2addf8ec5f37334e837440122c62f2c68a29ad +0 -0
  310. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/32/5180321750a21cd7a4e7ecda319e557a4f6a09 +0 -2
  311. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/3d/918c6901c02f43af5d31779dd5e1f9166aeb36 +0 -0
  312. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/3e/4cb596066dce63ba4d047abddb677389b65e19 +0 -0
  313. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/4b/6e53022e7a04f07887697e4f3d7c377fd9822b +0 -0
  314. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/58/931fc1bd559b59c41ea738fc7ad04f9ad01bd3 +0 -0
  315. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/5e/c0c28e1b806f25efdca18fcf7a74b49c3755bd +0 -0
  316. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/75/fa6584e748f57eff06eebdc55e9ac21d4fcbf2 +0 -1
  317. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/80/2d5edbd5e1cb7fca82b5bd38e7c8a0a496fb20 +0 -0
  318. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/94/7b3d714c38791e95ad6f928b48c98bb8708acd +0 -0
  319. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/95/e1f2df3f4d5f3d7a60588c25a7ca8a913d3c2a +0 -1
  320. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/b1/5f4a7666baf40d949548ead946a3370e273479 +0 -0
  321. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/c3/ee8978c4c5d84c3b7d00ba8e5906933d027882 +0 -0
  322. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/c8/b0bffbc405ef3fad7354ff833fbec36d67ddfa +0 -3
  323. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/dd/8bdb934ec848137f011fe423b185505c343626 +0 -2
  324. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/e2/9be58c767cfeb27235c995d293a7d71aac0135 +0 -2
  325. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/ee/1224401fc6aac595145fa727dcf6706ac8aec1 +0 -1
  326. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/f1/cc1a657b2e805c400f5dcaaa76bd29c6178b1b +0 -0
  327. data/sub/eac_git/vendor/git-subrepo/test/repo/init/refs/heads/master +0 -1
  328. data/sub/eac_git/vendor/git-subrepo/test/setup +0 -205
  329. data/sub/eac_git/vendor/git-subrepo/test/status.t +0 -68
  330. data/sub/eac_git/vendor/git-subrepo/test/submodule.t +0 -45
  331. /data/sub/{eac_git → avm-git}/Gemfile +0 -0
  332. /data/sub/{eac_git/spec/lib/eac_git/local → avm-git/spec/lib/avm/git}/commit/diff_tree_line_spec_files/add.source.out +0 -0
  333. /data/sub/{eac_git/spec/lib/eac_git/local → avm-git/spec/lib/avm/git}/commit/diff_tree_line_spec_files/add.target.yaml +0 -0
  334. /data/sub/{eac_git/spec/lib/eac_git/local → avm-git/spec/lib/avm/git}/commit/diff_tree_line_spec_files/modify.source.out +0 -0
  335. /data/sub/{eac_git/spec/lib/eac_git/local → avm-git/spec/lib/avm/git}/commit/diff_tree_line_spec_files/modify.target.yaml +0 -0
  336. /data/sub/{eac_git/spec/lib/eac_git/local → avm-git/spec/lib/avm/git}/commit/diff_tree_line_spec_files/remove.source.out +0 -0
  337. /data/sub/{eac_git/spec/lib/eac_git/local → avm-git/spec/lib/avm/git}/commit/diff_tree_line_spec_files/remove.target.yaml +0 -0
  338. /data/sub/{eac_git/spec/lib/eac_git/local → avm-git/spec/lib/avm/git}/commit/diff_tree_line_spec_files/rename.source.out +0 -0
  339. /data/sub/{eac_git/spec/lib/eac_git/local → avm-git/spec/lib/avm/git}/commit/diff_tree_line_spec_files/rename.target.yaml +0 -0
  340. /data/sub/{eac_git/spec/lib/eac_git/local → avm-git/spec/lib/avm/git}/commit/diff_tree_line_spec_files/rename_modify.source.out +0 -0
  341. /data/sub/{eac_git/spec/lib/eac_git/local → avm-git/spec/lib/avm/git}/commit/diff_tree_line_spec_files/rename_modify.target.yaml +0 -0
  342. /data/sub/{eac_git → avm-git}/spec/rubocop_spec.rb +0 -0
@@ -1,53 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module EacGit
4
- class Local
5
- class ChangedFile
6
- QUOTED_PATH_PATTERN = /\A"(.+)"\z/.freeze
7
- STATUS_LINE_PATTERN = /\A(.)(.)\s(.+)\z/.freeze
8
- TO_HASH_ATTRIBUTES = %i[absolute_path index path worktree].freeze
9
-
10
- class << self
11
- def by_porcelain_v1_line(local_repo, line)
12
- STATUS_LINE_PATTERN.match(line.gsub(/\n\z/, '')).then do |m|
13
- new(local_repo, m[1], m[2], parse_status_line_path(m[3]).to_pathname)
14
- end
15
- end
16
-
17
- # @param path [String]
18
- # @return [String]
19
- def parse_status_line_path(path)
20
- m = QUOTED_PATH_PATTERN.match(path)
21
- m ? m[1] : path
22
- end
23
- end
24
-
25
- common_constructor :local_repo, :index, :worktree, :path
26
-
27
- # @return [Pathname]
28
- def absolute_path
29
- path.expand_path(local_repo.root_path)
30
- end
31
-
32
- # @return [Boolean]
33
- def add?
34
- (index == '?' && worktree == '?') || (index == 'A' && worktree == ' ')
35
- end
36
-
37
- # @return [Boolean]
38
- def delete?
39
- [index, worktree].include?('D')
40
- end
41
-
42
- # @return [Boolean]
43
- def modify?
44
- [index, worktree].include?('M')
45
- end
46
-
47
- # @return [Hash]
48
- def to_h
49
- compact_to_h(*TO_HASH_ATTRIBUTES)
50
- end
51
- end
52
- end
53
- end
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module EacGit
4
- class Local
5
- class Commit
6
- module Archive
7
- # @return [EacRubyUtils::Envs::Command]
8
- def archive_to_dir(path)
9
- path = path.to_pathname
10
- repo.command('archive', '--format=tar', id).pipe(
11
- ::EacGit::Executables.tar.command('-xC', path)
12
- )
13
- end
14
- end
15
- end
16
- end
17
- end
@@ -1,43 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module EacGit
4
- class Local
5
- class Commit
6
- class ChangedFile
7
- enable_simple_cache
8
-
9
- attr_reader :commit, :diff_tree
10
-
11
- # @param commit [EacGit::Local::Commit]
12
- # @param diff_tree_line [String] A line from command "repo diff-tree --no-commit-id -r
13
- # --full-index"'s output.
14
- def initialize(commit, diff_tree_line)
15
- @commit = commit
16
- @diff_tree = ::EacGit::Local::Commit::DiffTreeLine.new(diff_tree_line)
17
- end
18
-
19
- delegate(*::EacGit::Local::Commit::DiffTreeLine::FIELDS, to: :diff_tree)
20
-
21
- def to_s
22
- "#{path}|#{status}"
23
- end
24
-
25
- def src_size_uncached
26
- size(src_sha1)
27
- end
28
-
29
- def dst_size_uncached
30
- size(dst_sha1)
31
- end
32
-
33
- private
34
-
35
- def size(id)
36
- return 0 if /\A0+\z/.match(id)
37
-
38
- commit.repo.command('cat-file', '-s', id).execute!.strip.to_i
39
- end
40
- end
41
- end
42
- end
43
- end
@@ -1,71 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module EacGit
4
- class Local
5
- class Commit
6
- require_sub __FILE__, include_modules: true
7
- enable_simple_cache
8
- include ::Comparable
9
-
10
- FIELDS = {
11
- author_name: '%an', author_email: '%ae', author_date: '%ai',
12
- subject: '%s',
13
- author_all: '%an <%ae>, %ai',
14
- commit_hash: '%H', abbreviated_commit_hash: '%h',
15
- commiter_name: '%cn', commiter_email: '%ce', commiter_date: '%ci',
16
- commiter_all: '%cn <%ce>, %ci',
17
- raw_body: '%B'
18
- }.freeze
19
-
20
- common_constructor :repo, :id
21
-
22
- def <=>(other)
23
- [repo, id] <=> [other.repo, other.id]
24
- end
25
-
26
- def format(format)
27
- repo.command('--no-pager', 'log', '-1', "--pretty=format:#{format}", id).execute!.strip
28
- end
29
-
30
- FIELDS.each do |field, format|
31
- define_method(field) { format(format) }
32
- end
33
-
34
- def changed_files_uncached
35
- diff_tree_execute.each_line.map do |line|
36
- ::EacGit::Local::Commit::ChangedFile.new(self, line)
37
- end
38
- end
39
-
40
- def changed_files_size_uncached
41
- changed_files.inject(0) { |a, e| a + e.dst_size }
42
- end
43
-
44
- # @return [EacGit::Local::Commit, nil]
45
- def parent
46
- ps = parents
47
- raise "#{self} has more than one parent" if ps.count > 2
48
-
49
- ps.empty? ? nil : ps.first
50
- end
51
-
52
- # @return [Array<EacGit::Local::Commit>]
53
- def parents
54
- format('%P').each_line.map { |line| repo.commitize(line) } # rubocop:disable Style/RedundantFormat
55
- end
56
-
57
- def root_child?
58
- parents.empty?
59
- end
60
-
61
- private
62
-
63
- def diff_tree_execute
64
- args = []
65
- args << '--root' if root_child?
66
- args << id
67
- repo.command(*::EacGit::Local::Commit::DiffTreeLine::GIT_COMMAND_ARGS, *args).execute!
68
- end
69
- end
70
- end
71
- end
@@ -1,26 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'ostruct'
4
-
5
- module EacGit
6
- class Local
7
- module DirtyFiles
8
- def dirty?
9
- dirty_files.any?
10
- end
11
-
12
- def dirty_file?(path)
13
- absolute_path = path.to_pathname.expand_path(root_path)
14
- dirty_files.any? do |df|
15
- df.absolute_path == absolute_path
16
- end
17
- end
18
-
19
- def dirty_files
20
- command('status', '--porcelain=v1', '--untracked-files', '--no-renames')
21
- .execute!.each_line
22
- .map { |line| ::EacGit::Local::ChangedFile.by_porcelain_v1_line(self, line) }
23
- end
24
- end
25
- end
26
- end
@@ -1,14 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module EacGit
4
- class Local
5
- module Log
6
- def log(until_commit = nil, from_commit = nil)
7
- until_commit, from_commit = [until_commit, from_commit].map { |c| commitize(c) }
8
- from_commit ||= head
9
- command('log', '--format=%H', "#{until_commit.id}..#{from_commit.id}")
10
- .execute!.each_line.map { |line| commitize(line.strip) }
11
- end
12
- end
13
- end
14
- end
@@ -1,33 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module EacGit
4
- class Local
5
- class Remote
6
- class Push
7
- acts_as_immutable
8
- immutable_accessor :force, type: :boolean
9
- immutable_accessor :refspec, type: :array
10
-
11
- common_constructor :remote
12
- delegate :local, to: :remote
13
-
14
- # @return [Array<Object>]
15
- def immutable_constructor_args
16
- [remote]
17
- end
18
-
19
- # @return [void]
20
- def perform
21
- local.command(*git_command_args).system!
22
- end
23
-
24
- # @return [Enumerable<String>]
25
- def git_command_args
26
- r = ['push', remote.name]
27
- r << '--force' if force?
28
- r + refspecs
29
- end
30
- end
31
- end
32
- end
33
- end
@@ -1,47 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module EacGit
4
- class Local
5
- class Remote
6
- NO_SUCH_REMOTE_CODE = 512
7
-
8
- enable_simple_cache
9
- include ::EacGit::RemoteLike
10
-
11
- common_constructor :local, :name
12
-
13
- def exist?
14
- url
15
- end
16
-
17
- # @return [EacRubyUtils::Envs::Command
18
- def git_command(*args)
19
- local.command(*args)
20
- end
21
-
22
- # @return [EacGit::Local::Remote::Push]
23
- def push
24
- ::EacGit::Local::Remote::Push.new(self)
25
- end
26
-
27
- # @return [String]
28
- def remote_reference
29
- name
30
- end
31
-
32
- # @return [String, nil]
33
- def url
34
- local.command('remote', 'get-url', name)
35
- .execute!(exit_outputs: { NO_SUCH_REMOTE_CODE => nil })
36
- .if_present(nil, &:strip)
37
- end
38
-
39
- # @return [String]
40
- def url=(new_url)
41
- local.command('remote', 'set-url', name, new_url).execute!
42
- end
43
-
44
- require_sub __FILE__
45
- end
46
- end
47
- end
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module EacGit
4
- class Local
5
- module Remotes
6
- def remote(name)
7
- ::EacGit::Local::Remote.new(self, name)
8
- end
9
-
10
- def remotes
11
- command('remote').execute!.each_line.map(&:strip).compact_blank.map do |name|
12
- remote(name)
13
- end
14
- end
15
- end
16
- end
17
- end
@@ -1,40 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module EacGit
4
- class Local
5
- class Subrepo
6
- class Config
7
- MAPPING = {
8
- command_version: :cmdver, commit_id: :commit, join_method: :method,
9
- parent_commit_id: :parent, remote_branch: :branch, remote_uri: :remote
10
- }.freeze
11
-
12
- class << self
13
- def from_file(file_path)
14
- new(
15
- ::ParseConfig.new(file_path.to_pathname)['subrepo']
16
- )
17
- end
18
- end
19
-
20
- common_constructor :values do
21
- self.values = values.with_indifferent_access
22
- end
23
-
24
- MAPPING.each_key do |method_name|
25
- define_method(method_name) do
26
- values[MAPPING.fetch(method_name)]
27
- end
28
-
29
- define_method("#{method_name}=") do |value|
30
- values[MAPPING.fetch(method_name)] = value
31
- end
32
- end
33
-
34
- def to_content
35
- "[subrepo]\n" + MAPPING.map { |k, v| " #{v} = #{send(k)}\n" }.join # rubocop:disable Style/StringConcatenation
36
- end
37
- end
38
- end
39
- end
40
- end
@@ -1,46 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module EacGit
4
- class Local
5
- # A git-subrepo (https://github.com/ingydotnet/git-subrepo) in a [EacGit::Local].
6
- class Subrepo
7
- require_sub __FILE__
8
- enable_simple_cache
9
-
10
- common_constructor :local, :subpath do
11
- self.subpath = subpath.to_pathname
12
- local.raise_error "Config file \"#{config_absolute_path}\" not found" unless
13
- config_absolute_path.file?
14
- end
15
-
16
- def command(subrepo_subcommand, *subrepo_subcommand_args)
17
- local.command('subrepo', subrepo_subcommand, subpath.to_path,
18
- *subrepo_subcommand_args)
19
- end
20
-
21
- delegate(*::EacGit::Local::Subrepo::Config::MAPPING.keys, to: :config)
22
-
23
- def write_config
24
- config_absolute_path.write(config.to_content)
25
- end
26
-
27
- private
28
-
29
- def config_uncached
30
- ::EacGit::Local::Subrepo::Config.from_file(config_absolute_path)
31
- end
32
-
33
- def config_absolute_path_uncached
34
- config_relative_path.expand_path(local.root_path)
35
- end
36
-
37
- def config_relative_path_uncached
38
- subpath.join('.gitrepo')
39
- end
40
-
41
- def remote_uncached
42
- ::EacGit::Remote.new(remote_uri)
43
- end
44
- end
45
- end
46
- end
@@ -1,124 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module EacGit
4
- # A Git repository in local filesystem.
5
- class Local
6
- require_sub __FILE__, include_modules: true
7
- include ::Comparable
8
-
9
- HEAD_REFERENCE = 'HEAD'
10
-
11
- class << self
12
- def find(path)
13
- path = path.to_pathname.expand_path
14
- if path.join('.git').exist?
15
- new(path)
16
- elsif path.to_path != '/'
17
- find(path.parent)
18
- end
19
- end
20
- end
21
-
22
- common_constructor :root_path do
23
- self.root_path = root_path.to_pathname
24
- end
25
-
26
- def <=>(other)
27
- root_path <=> other.root_path
28
- end
29
-
30
- # Retrieves a local branch.
31
- #
32
- # @param name [String] Ex.: for "refs/heads/master", name should be "master".
33
- # @return [EacGit::Local::Branch]
34
- def branch(name)
35
- ::EacGit::Local::Branch.new(self, name)
36
- end
37
-
38
- def commit(ref, required = false) # rubocop:disable Style/OptionalBooleanParameter
39
- rev_parse(ref, required).if_present { |v| ::EacGit::Local::Commit.new(self, v) }
40
- end
41
-
42
- def commitize(source)
43
- if source.is_a?(::EacGit::Local::Commit)
44
- return source if source.repo == self
45
-
46
- source = source.id
47
- end
48
-
49
- source.to_s.strip.if_present(nil) { |v| ::EacGit::Local::Commit.new(self, v) }
50
- end
51
-
52
- # Retrieves the current local branch.
53
- #
54
- # @return [EacGit::Local::Branch, nil]
55
- def current_branch
56
- command('symbolic-ref', '--quiet', HEAD_REFERENCE)
57
- .execute!(exit_outputs: { 256 => '' })
58
- .gsub(%r{\Arefs/heads/}, '').strip
59
- .if_present { |v| branch(v) }
60
- end
61
-
62
- def descendant?(descendant, ancestor)
63
- base = merge_base(descendant, ancestor)
64
- return false if base.blank?
65
-
66
- revparse = command('rev-parse', '--verify', ancestor).execute!.strip
67
- base == revparse
68
- end
69
-
70
- # @return [EacGit::Local::Commit
71
- def head(required = true) # rubocop:disable Style/OptionalBooleanParameter
72
- commit(HEAD_REFERENCE, required)
73
- end
74
-
75
- def merge_base(*commits)
76
- refs = commits.dup
77
- while refs.count > 1 # rubocop:disable Style/CollectionQuerying
78
- refs[1] = merge_base_pair(refs[0], refs[1])
79
- return nil if refs[1].blank?
80
-
81
- refs.shift
82
- end
83
- refs.first
84
- end
85
-
86
- def command(*args)
87
- ::EacGit::Executables.git.command('-C', root_path.to_path, *args)
88
- end
89
-
90
- def raise_error(message)
91
- raise "#{root_path}: #{message}"
92
- end
93
-
94
- def rev_parse(ref, required = false) # rubocop:disable Style/OptionalBooleanParameter
95
- r = command('rev-parse', ref).execute!(exit_outputs: { 128 => nil, 32_768 => nil })
96
- r.strip! if r.is_a?(String)
97
- return r if r.present?
98
- return nil unless required
99
-
100
- raise_error "Reference \"#{ref}\" not found"
101
- end
102
-
103
- def subrepo(subpath)
104
- ::EacGit::Local::Subrepo.new(self, subpath)
105
- end
106
-
107
- # @return [Array<EacGit::Local::Subrepo>]
108
- def subrepos
109
- command('subrepo', '-q', 'status').execute!.split("\n").map(&:strip).select(&:present?)
110
- .map { |subpath| subrepo(subpath) }
111
- end
112
-
113
- def to_s
114
- "#{self.class}[#{root_path}]"
115
- end
116
-
117
- private
118
-
119
- def merge_base_pair(commit1, commit2)
120
- command('merge-base', commit1, commit2).execute!(exit_outputs: { 256 => nil })
121
- .if_present(nil, &:strip)
122
- end
123
- end
124
- end
@@ -1,20 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module EacGit
4
- # A Git remote repository referenced by URI.
5
- class Remote
6
- include ::EacGit::RemoteLike
7
-
8
- common_constructor :uri
9
-
10
- # @return [EacRubyUtils::Envs::Command
11
- def git_command(...)
12
- ::EacGit::Executables.git.command(...)
13
- end
14
-
15
- # @return [String]
16
- def remote_reference
17
- uri
18
- end
19
- end
20
- end
@@ -1,18 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module EacGit
4
- module RemoteLike
5
- class LsResult
6
- class << self
7
- def by_ls_remote_command_output(output)
8
- new(
9
- output.each_line.map { |line| line.strip.split(/\s+/) }.to_h { |x| [x[1], x[0]] } # rubocop:disable Style/MapToHash
10
- )
11
- end
12
- end
13
-
14
- common_constructor :hashes
15
- delegate :fetch, :[], :count, :any?, :empty?, to: :hashes
16
- end
17
- end
18
- end
@@ -1,30 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module EacGit
4
- module RemoteLike
5
- require_sub __FILE__
6
- enable_abstract_methods
7
-
8
- # @return [String] The output of command "git fetch".
9
- def fetch
10
- local.command('fetch', name).execute!
11
- end
12
-
13
- # @return [EacRubyUtils::Envs::Command
14
- def git_command(*_args)
15
- raise_abstract_method __method__
16
- end
17
-
18
- # @return [EacGit::RemoteLike::LsResult]
19
- def ls
20
- ::EacGit::RemoteLike::LsResult.by_ls_remote_command_output(
21
- git_command('ls-remote', remote_reference).execute!
22
- )
23
- end
24
-
25
- # @return [String]
26
- def remote_reference
27
- raise_abstract_method __method__
28
- end
29
- end
30
- end
@@ -1,20 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module EacGit
4
- module Rspec
5
- module Setup
6
- def self.extended(setup_obj)
7
- setup_obj.setup_conditional_git
8
- setup_obj.setup_stubbed_git_local_repo
9
- end
10
-
11
- def setup_conditional_git
12
- conditional(:git) { ::EacGit::Executables.git.validate }
13
- end
14
-
15
- def setup_stubbed_git_local_repo
16
- rspec_config.include ::EacGit::Rspec::StubbedGitLocalRepo
17
- end
18
- end
19
- end
20
- end
@@ -1,35 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'fileutils'
4
-
5
- module EacGit
6
- module Rspec
7
- module StubbedGitLocalRepo
8
- class Directory < ::EacGit::Rspec::StubbedGitLocalRepo::FsObject
9
- # @return [self]
10
- def create
11
- ::FileUtils.mkdir_p(path)
12
- self
13
- end
14
-
15
- # @return [self]
16
- def delete
17
- ::FileUtils.rm_rf(path)
18
- self
19
- end
20
-
21
- # @param subpath [Array<String>]
22
- # @return [EacGit::Rspec::StubbedGitLocalRepo::Directory]
23
- def directory(*subpath)
24
- git.directory(*self.subpath, *subpath)
25
- end
26
-
27
- # @param subpath [Array<String>]
28
- # @return [EacGit::Rspec::StubbedGitLocalRepo::File]
29
- def file(*subpath)
30
- git.file(*self.subpath, *subpath)
31
- end
32
- end
33
- end
34
- end
35
- end
@@ -1,21 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'fileutils'
4
-
5
- module EacGit
6
- module Rspec
7
- module StubbedGitLocalRepo
8
- class File < ::EacGit::Rspec::StubbedGitLocalRepo::FsObject
9
- def touch
10
- ::FileUtils.touch(path.to_path)
11
- end
12
-
13
- def delete
14
- path.unlink
15
- end
16
-
17
- delegate :write, to: :path
18
- end
19
- end
20
- end
21
- end