eac_tools 0.86.1 → 0.86.2

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 (369) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +40 -35
  3. data/lib/eac_tools/version.rb +1 -1
  4. data/sub/avm/avm.gemspec +2 -2
  5. data/sub/avm/lib/avm/rspec/setup/launcher.rb +1 -0
  6. data/sub/avm/lib/avm/scms/base/branches.rb +22 -0
  7. data/sub/avm/lib/avm/scms/base/remotes.rb +22 -0
  8. data/sub/avm/lib/avm/scms/branch.rb +26 -0
  9. data/sub/avm/lib/avm/scms/remote.rb +11 -0
  10. data/sub/avm/lib/avm/sources/issues/deliver.rb +52 -0
  11. data/sub/avm/lib/avm/sources/issues.rb +11 -0
  12. data/sub/avm/lib/avm/version.rb +1 -1
  13. data/sub/avm-git/avm-git.gemspec +23 -0
  14. data/sub/avm-git/lib/avm/git/application_scms/base/assert_main_at.rb +49 -0
  15. data/sub/avm-git/lib/avm/git/application_scms/base.rb +21 -0
  16. data/sub/{avm-eac_php_base0/lib/avm/eac_php_base0/sources.rb → avm-git/lib/avm/git/application_scms.rb} +2 -2
  17. data/sub/avm-git/lib/avm/git/commit/class_methods.rb +31 -0
  18. data/sub/avm-git/lib/avm/git/commit/diff_tree_line.rb +32 -0
  19. data/sub/avm-git/lib/avm/git/commit/file.rb +46 -0
  20. data/sub/avm-git/lib/avm/git/commit.rb +59 -0
  21. data/sub/avm-git/lib/avm/git/issue/complete/commits.rb +42 -0
  22. data/sub/avm-git/lib/avm/git/issue/complete/git_subrepos.rb +23 -0
  23. data/sub/avm-git/lib/avm/git/issue/complete/local_branch.rb +61 -0
  24. data/sub/avm-git/lib/avm/git/issue/complete/local_tag.rb +39 -0
  25. data/sub/avm-git/lib/avm/git/issue/complete/push.rb +60 -0
  26. data/sub/avm-git/lib/avm/git/issue/complete/remote.rb +33 -0
  27. data/sub/avm-git/lib/avm/git/issue/complete/test.rb +40 -0
  28. data/sub/avm-git/lib/avm/git/issue/complete/tracker.rb +28 -0
  29. data/sub/avm-git/lib/avm/git/issue/complete/validation.rb +39 -0
  30. data/sub/avm-git/lib/avm/git/issue/complete/validations.rb +53 -0
  31. data/sub/avm-git/lib/avm/git/issue/complete/working_tree.rb +19 -0
  32. data/sub/avm-git/lib/avm/git/issue/complete.rb +66 -0
  33. data/sub/avm-git/lib/avm/git/issue.rb +11 -0
  34. data/sub/avm-git/lib/avm/git/launcher/base/class_methods.rb +28 -0
  35. data/sub/avm-git/lib/avm/git/launcher/base/dirty_files.rb +23 -0
  36. data/sub/avm-git/lib/avm/git/launcher/base/remotes.rb +40 -0
  37. data/sub/avm-git/lib/avm/git/launcher/base/subrepo.rb +44 -0
  38. data/sub/avm-git/lib/avm/git/launcher/base/underlying.rb +59 -0
  39. data/sub/avm-git/lib/avm/git/launcher/base.rb +87 -0
  40. data/sub/avm-git/lib/avm/git/launcher/error.rb +15 -0
  41. data/sub/avm-git/lib/avm/git/launcher/mirror_update.rb +38 -0
  42. data/sub/avm-git/lib/avm/git/launcher/publish_base.rb +131 -0
  43. data/sub/avm-git/lib/avm/git/launcher/remote.rb +55 -0
  44. data/sub/avm-git/lib/avm/git/launcher/sub_warp_base.rb +33 -0
  45. data/sub/avm-git/lib/avm/git/launcher/warp_base.rb +68 -0
  46. data/sub/avm-git/lib/avm/git/launcher.rb +7 -0
  47. data/sub/avm-git/lib/avm/git/launcher_stereotypes/git/local_project_mixin.rb +19 -0
  48. data/sub/avm-git/lib/avm/git/launcher_stereotypes/git/publish.rb +15 -0
  49. data/sub/avm-git/lib/avm/git/launcher_stereotypes/git/warp.rb +27 -0
  50. data/sub/avm-git/lib/avm/git/launcher_stereotypes/git.rb +25 -0
  51. data/sub/avm-git/lib/avm/git/launcher_stereotypes/git_subrepo/publish.rb +31 -0
  52. data/sub/avm-git/lib/avm/git/launcher_stereotypes/git_subrepo/warp.rb +88 -0
  53. data/sub/avm-git/lib/avm/git/launcher_stereotypes/git_subrepo.rb +36 -0
  54. data/sub/avm-git/lib/avm/git/launcher_stereotypes/git_subtree/publish.rb +14 -0
  55. data/sub/avm-git/lib/avm/git/launcher_stereotypes/git_subtree/warp.rb +32 -0
  56. data/sub/avm-git/lib/avm/git/launcher_stereotypes/git_subtree.rb +51 -0
  57. data/sub/avm-git/lib/avm/git/launcher_stereotypes/provider.rb +22 -0
  58. data/sub/{avm-eac_php_base0/lib/avm/eac_php_base0/file_formats.rb → avm-git/lib/avm/git/launcher_stereotypes.rb} +2 -2
  59. data/sub/avm-git/lib/avm/git/organize/reference_update.rb +34 -0
  60. data/sub/avm-git/lib/avm/git/organize/repository.rb +77 -0
  61. data/sub/{avm-eac_php_base0/lib/avm/eac_php_base0/instances.rb → avm-git/lib/avm/git/organize.rb} +2 -2
  62. data/sub/avm-git/lib/avm/git/revision_test.rb +105 -0
  63. data/sub/avm-git/lib/avm/git/scms/git/branch.rb +31 -0
  64. data/sub/avm-git/lib/avm/git/scms/git/branches.rb +20 -0
  65. data/sub/avm-git/lib/avm/git/scms/git/change_tracker.rb +36 -0
  66. data/sub/avm-git/lib/avm/git/scms/git/changed_file.rb +16 -0
  67. data/sub/avm-git/lib/avm/git/scms/git/changed_files.rb +24 -0
  68. data/sub/avm-git/lib/avm/git/scms/git/commit/deploy.rb +43 -0
  69. data/sub/avm-git/lib/avm/git/scms/git/commit/deploy_methods.rb +30 -0
  70. data/sub/avm-git/lib/avm/git/scms/git/commit.rb +67 -0
  71. data/sub/avm-git/lib/avm/git/scms/git/commit_dirty.rb +36 -0
  72. data/sub/avm-git/lib/avm/git/scms/git/commits.rb +47 -0
  73. data/sub/avm-git/lib/avm/git/scms/git/interval.rb +31 -0
  74. data/sub/avm-git/lib/avm/git/scms/git/milestones.rb +21 -0
  75. data/sub/avm-git/lib/avm/git/scms/git/remote.rb +21 -0
  76. data/sub/avm-git/lib/avm/git/scms/git/remotes.rb +32 -0
  77. data/sub/avm-git/lib/avm/git/scms/git/run_commit.rb +57 -0
  78. data/sub/avm-git/lib/avm/git/scms/git.rb +44 -0
  79. data/sub/avm-git/lib/avm/git/scms/git_sub_base/changed_file.rb +21 -0
  80. data/sub/avm-git/lib/avm/git/scms/git_sub_base/commit.rb +27 -0
  81. data/sub/avm-git/lib/avm/git/scms/git_sub_base/interval.rb +28 -0
  82. data/sub/avm-git/lib/avm/git/scms/git_sub_base.rb +33 -0
  83. data/sub/avm-git/lib/avm/git/scms/git_subrepo.rb +37 -0
  84. data/sub/avm-git/lib/avm/git/scms/git_subtree.rb +26 -0
  85. data/sub/avm-git/lib/avm/git/scms/provider.rb +21 -0
  86. data/sub/{avm-eac_php_base0/lib/avm/eac_php_base0/source_generators.rb → avm-git/lib/avm/git/scms.rb} +2 -2
  87. data/sub/avm-git/lib/avm/git/subrepo_check/parent.rb +51 -0
  88. data/sub/avm-git/lib/avm/git/subrepo_check/remote.rb +89 -0
  89. data/sub/avm-git/lib/avm/git/subrepo_check/show_result.rb +32 -0
  90. data/sub/avm-git/lib/avm/git/subrepo_check.rb +38 -0
  91. data/sub/avm-git/lib/avm/git/subrepo_checks.rb +60 -0
  92. data/sub/avm-git/lib/avm/git/vendor/github.rb +20 -0
  93. data/sub/avm-git/lib/avm/git/vendor.rb +11 -0
  94. data/sub/{avm-eac_php_base0/lib/avm/eac_php_base0 → avm-git/lib/avm/git}/version.rb +2 -2
  95. data/sub/{avm-eac_php_base0/lib/avm/eac_php_base0.rb → avm-git/lib/avm/git.rb} +1 -1
  96. data/sub/avm-git/locale/en.yml +6 -0
  97. data/sub/avm-git/locale/pt-BR.yml +6 -0
  98. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec.rb +13 -0
  99. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/add.source.out +1 -0
  100. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/add.target.yaml +7 -0
  101. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/modify.source.out +1 -0
  102. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/modify.target.yaml +7 -0
  103. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/remove.source.out +1 -0
  104. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/remove.target.yaml +7 -0
  105. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/rename.source.out +2 -0
  106. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/rename.target.yaml +13 -0
  107. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/rename_modify.source.out +2 -0
  108. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/rename_modify.target.yaml +13 -0
  109. data/sub/avm-git/spec/lib/avm/git/commit_spec.rb +56 -0
  110. data/sub/avm-git/spec/lib/avm/git/launcher/base_spec.rb +45 -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/avm-tools/avm-tools.gemspec +3 -3
  116. data/sub/avm-tools/lib/avm/tools/runner/source/issue/deliver.rb +3 -3
  117. data/sub/avm-tools/lib/avm/tools/version.rb +1 -1
  118. data/sub/eac_git/Gemfile +8 -0
  119. data/sub/eac_git/eac_git.gemspec +20 -0
  120. data/sub/eac_git/lib/eac_git/executables.rb +48 -0
  121. data/sub/eac_git/lib/eac_git/local/branch.rb +47 -0
  122. data/sub/eac_git/lib/eac_git/local/commit/archive.rb +19 -0
  123. data/sub/eac_git/lib/eac_git/local/commit/changed_file.rb +46 -0
  124. data/sub/eac_git/lib/eac_git/local/commit/diff_tree_line.rb +32 -0
  125. data/sub/eac_git/lib/eac_git/local/commit.rb +73 -0
  126. data/sub/eac_git/lib/eac_git/local/dirty_files.rb +48 -0
  127. data/sub/eac_git/lib/eac_git/local/log.rb +17 -0
  128. data/sub/eac_git/lib/eac_git/local/remote/push.rb +35 -0
  129. data/sub/eac_git/lib/eac_git/local/remote.rb +50 -0
  130. data/sub/eac_git/lib/eac_git/local/remotes.rb +20 -0
  131. data/sub/eac_git/lib/eac_git/local/subrepo/config.rb +43 -0
  132. data/sub/eac_git/lib/eac_git/local/subrepo.rb +49 -0
  133. data/sub/eac_git/lib/eac_git/local.rb +127 -0
  134. data/sub/eac_git/lib/eac_git/remote.rb +24 -0
  135. data/sub/eac_git/lib/eac_git/remote_like/ls_result.rb +20 -0
  136. data/sub/eac_git/lib/eac_git/remote_like.rb +32 -0
  137. data/sub/eac_git/lib/eac_git/rspec/setup.rb +23 -0
  138. data/sub/eac_git/lib/eac_git/rspec/stubbed_git_local_repo/directory.rb +36 -0
  139. data/sub/eac_git/lib/eac_git/rspec/stubbed_git_local_repo/file.rb +22 -0
  140. data/sub/eac_git/lib/eac_git/rspec/stubbed_git_local_repo/fs_object.rb +27 -0
  141. data/sub/eac_git/lib/eac_git/rspec/stubbed_git_local_repo/repository.rb +34 -0
  142. data/sub/eac_git/lib/eac_git/rspec/stubbed_git_local_repo.rb +29 -0
  143. data/sub/eac_git/lib/eac_git/rspec.rb +9 -0
  144. data/sub/eac_git/lib/eac_git/version.rb +5 -0
  145. data/sub/eac_git/lib/eac_git.rb +7 -0
  146. data/sub/eac_git/spec/lib/eac_git/executables_spec.rb +13 -0
  147. data/sub/eac_git/spec/lib/eac_git/local/commit/diff_tree_line_spec.rb +13 -0
  148. data/sub/eac_git/spec/lib/eac_git/local/commit/diff_tree_line_spec_files/add.source.out +1 -0
  149. data/sub/eac_git/spec/lib/eac_git/local/commit/diff_tree_line_spec_files/add.target.yaml +7 -0
  150. data/sub/eac_git/spec/lib/eac_git/local/commit/diff_tree_line_spec_files/modify.source.out +1 -0
  151. data/sub/eac_git/spec/lib/eac_git/local/commit/diff_tree_line_spec_files/modify.target.yaml +7 -0
  152. data/sub/eac_git/spec/lib/eac_git/local/commit/diff_tree_line_spec_files/remove.source.out +1 -0
  153. data/sub/eac_git/spec/lib/eac_git/local/commit/diff_tree_line_spec_files/remove.target.yaml +7 -0
  154. data/sub/eac_git/spec/lib/eac_git/local/commit/diff_tree_line_spec_files/rename.source.out +2 -0
  155. data/sub/eac_git/spec/lib/eac_git/local/commit/diff_tree_line_spec_files/rename.target.yaml +13 -0
  156. data/sub/eac_git/spec/lib/eac_git/local/commit/diff_tree_line_spec_files/rename_modify.source.out +2 -0
  157. data/sub/eac_git/spec/lib/eac_git/local/commit/diff_tree_line_spec_files/rename_modify.target.yaml +13 -0
  158. data/sub/eac_git/spec/lib/eac_git/local/commit_spec.rb +58 -0
  159. data/sub/eac_git/spec/lib/eac_git/local/dirty_files_spec.rb +20 -0
  160. data/sub/eac_git/spec/rubocop_spec.rb +3 -0
  161. data/sub/eac_git/spec/spec_helper.rb +4 -0
  162. data/sub/eac_git/vendor/git-subrepo/Changes +110 -0
  163. data/sub/eac_git/vendor/git-subrepo/Intro.pod +509 -0
  164. data/sub/eac_git/vendor/git-subrepo/License +21 -0
  165. data/sub/eac_git/vendor/git-subrepo/Makefile +82 -0
  166. data/sub/eac_git/vendor/git-subrepo/Meta +28 -0
  167. data/sub/eac_git/vendor/git-subrepo/ReadMe.pod +698 -0
  168. data/sub/eac_git/vendor/git-subrepo/doc/comparison.swim +35 -0
  169. data/sub/eac_git/vendor/git-subrepo/doc/git-subrepo.swim +608 -0
  170. data/sub/eac_git/vendor/git-subrepo/doc/intro-to-subrepo.swim +387 -0
  171. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/Changes +15 -0
  172. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/License +21 -0
  173. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/Makefile +45 -0
  174. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/Meta +28 -0
  175. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/ReadMe.pod +77 -0
  176. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/bin/bash+ +43 -0
  177. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/doc/bash+.swim +61 -0
  178. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/lib/bash+.bash +92 -0
  179. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/man/man1/bash+.1 +134 -0
  180. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/man/man3/bash+.3 +134 -0
  181. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/test/base.t +12 -0
  182. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/test/fcopy.t +22 -0
  183. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/test/lib/foo/bar.bash +3 -0
  184. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/test/lib/foo/foo.bash +3 -0
  185. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/test/source-bash+-std.t +18 -0
  186. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/test/source-bash+.t +23 -0
  187. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/test/test.bash +70 -0
  188. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/test/use.t +19 -0
  189. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/Changes +15 -0
  190. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/License +21 -0
  191. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/Makefile +20 -0
  192. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/Meta +30 -0
  193. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ReadMe.pod +115 -0
  194. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/doc/test-more.swim +89 -0
  195. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/Changes +15 -0
  196. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/License +21 -0
  197. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/Makefile +45 -0
  198. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/Meta +28 -0
  199. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/ReadMe.pod +77 -0
  200. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/bin/bash+ +43 -0
  201. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/doc/bash+.swim +61 -0
  202. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/lib/bash+.bash +92 -0
  203. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/man/man1/bash+.1 +134 -0
  204. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/man/man3/bash+.3 +134 -0
  205. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/base.t +12 -0
  206. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/fcopy.t +22 -0
  207. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/lib/foo/bar.bash +3 -0
  208. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/lib/foo/foo.bash +3 -0
  209. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/source-bash+-std.t +18 -0
  210. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/source-bash+.t +23 -0
  211. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/test.bash +70 -0
  212. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/use.t +19 -0
  213. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/Changes +15 -0
  214. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/License +21 -0
  215. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/Makefile +37 -0
  216. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/Meta +28 -0
  217. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/ReadMe.pod +66 -0
  218. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/doc/test-tap.swim +48 -0
  219. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/lib/test/tap.bash +153 -0
  220. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/man/man3/test-tap.3 +119 -0
  221. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/bail_out.t +13 -0
  222. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/done.t +10 -0
  223. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/fail.t +20 -0
  224. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/fail_fast.t +15 -0
  225. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/helper.bash +9 -0
  226. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/pass.t +9 -0
  227. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/plan.t +10 -0
  228. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/skip_all.t +20 -0
  229. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/tap.t +13 -0
  230. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/test/bail.t +14 -0
  231. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/test/fail.t +7 -0
  232. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/test/fail_fast.t +12 -0
  233. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/test/skip-all-init.t +8 -0
  234. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/test/skip-all-plan.t +9 -0
  235. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/lib/test/more.bash +95 -0
  236. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/man/man3/test-more.3 +173 -0
  237. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/test/fail.t +20 -0
  238. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/test/more.t +20 -0
  239. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/test/pass.t +9 -0
  240. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/test/setup +8 -0
  241. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/test/skip_all.t +11 -0
  242. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/test/test/fail1.t +12 -0
  243. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/test/test/skip_all.t +10 -0
  244. data/sub/eac_git/vendor/git-subrepo/lib/git-subrepo +1903 -0
  245. data/sub/eac_git/vendor/git-subrepo/lib/git-subrepo.d/bash+.bash +1 -0
  246. data/sub/eac_git/vendor/git-subrepo/lib/git-subrepo.d/help-functions.bash +339 -0
  247. data/sub/eac_git/vendor/git-subrepo/man/man1/git-subrepo.1 +743 -0
  248. data/sub/eac_git/vendor/git-subrepo/note/0.4.0 +12 -0
  249. data/sub/eac_git/vendor/git-subrepo/note/AllGitCmds +148 -0
  250. data/sub/eac_git/vendor/git-subrepo/note/Cases +32 -0
  251. data/sub/eac_git/vendor/git-subrepo/note/Commands +33 -0
  252. data/sub/eac_git/vendor/git-subrepo/note/Dags +199 -0
  253. data/sub/eac_git/vendor/git-subrepo/note/Gists +7 -0
  254. data/sub/eac_git/vendor/git-subrepo/note/Links +25 -0
  255. data/sub/eac_git/vendor/git-subrepo/note/Plugins +10 -0
  256. data/sub/eac_git/vendor/git-subrepo/note/Spec +39 -0
  257. data/sub/eac_git/vendor/git-subrepo/note/Story1 +57 -0
  258. data/sub/eac_git/vendor/git-subrepo/note/ToDo +55 -0
  259. data/sub/eac_git/vendor/git-subrepo/note/design.swim +137 -0
  260. data/sub/eac_git/vendor/git-subrepo/note/design2.swim +85 -0
  261. data/sub/eac_git/vendor/git-subrepo/note/init-test +38 -0
  262. data/sub/eac_git/vendor/git-subrepo/note/pull-dance.txt +18 -0
  263. data/sub/eac_git/vendor/git-subrepo/note/recreate-rebase-conflict.sh +56 -0
  264. data/sub/eac_git/vendor/git-subrepo/note/subtree-rebase-fail-example/test.bash +29 -0
  265. data/sub/eac_git/vendor/git-subrepo/note/test-subrepo-push.sh +69 -0
  266. data/sub/eac_git/vendor/git-subrepo/note/test.sh +58 -0
  267. data/sub/eac_git/vendor/git-subrepo/pkg/bin/generate-completion.pl +210 -0
  268. data/sub/eac_git/vendor/git-subrepo/pkg/bin/generate-help-functions.pl +89 -0
  269. data/sub/eac_git/vendor/git-subrepo/share/completion.bash +42 -0
  270. data/sub/eac_git/vendor/git-subrepo/share/enable-completion.sh +50 -0
  271. data/sub/eac_git/vendor/git-subrepo/share/git-completion.bash +2738 -0
  272. data/sub/eac_git/vendor/git-subrepo/share/zsh-completion/_git-subrepo +81 -0
  273. data/sub/eac_git/vendor/git-subrepo/test/branch-all.t +41 -0
  274. data/sub/eac_git/vendor/git-subrepo/test/branch-rev-list-one-path.t +43 -0
  275. data/sub/eac_git/vendor/git-subrepo/test/branch-rev-list.t +47 -0
  276. data/sub/eac_git/vendor/git-subrepo/test/branch.t +52 -0
  277. data/sub/eac_git/vendor/git-subrepo/test/clean.t +43 -0
  278. data/sub/eac_git/vendor/git-subrepo/test/clone-annotated-tag.t +45 -0
  279. data/sub/eac_git/vendor/git-subrepo/test/clone.t +107 -0
  280. data/sub/eac_git/vendor/git-subrepo/test/compile.t +19 -0
  281. data/sub/eac_git/vendor/git-subrepo/test/config.t +58 -0
  282. data/sub/eac_git/vendor/git-subrepo/test/encode.t +91 -0
  283. data/sub/eac_git/vendor/git-subrepo/test/error.t +171 -0
  284. data/sub/eac_git/vendor/git-subrepo/test/fetch.t +43 -0
  285. data/sub/eac_git/vendor/git-subrepo/test/gitignore.t +61 -0
  286. data/sub/eac_git/vendor/git-subrepo/test/init.t +64 -0
  287. data/sub/eac_git/vendor/git-subrepo/test/issue29.t +98 -0
  288. data/sub/eac_git/vendor/git-subrepo/test/issue95.t +98 -0
  289. data/sub/eac_git/vendor/git-subrepo/test/issue96.t +96 -0
  290. data/sub/eac_git/vendor/git-subrepo/test/pull-all.t +38 -0
  291. data/sub/eac_git/vendor/git-subrepo/test/pull-merge.t +113 -0
  292. data/sub/eac_git/vendor/git-subrepo/test/pull-message.t +88 -0
  293. data/sub/eac_git/vendor/git-subrepo/test/pull-new-branch.t +58 -0
  294. data/sub/eac_git/vendor/git-subrepo/test/pull-ours.t +90 -0
  295. data/sub/eac_git/vendor/git-subrepo/test/pull-theirs.t +82 -0
  296. data/sub/eac_git/vendor/git-subrepo/test/pull-twice.t +44 -0
  297. data/sub/eac_git/vendor/git-subrepo/test/pull-worktree.t +40 -0
  298. data/sub/eac_git/vendor/git-subrepo/test/pull.t +99 -0
  299. data/sub/eac_git/vendor/git-subrepo/test/push-after-init.t +51 -0
  300. data/sub/eac_git/vendor/git-subrepo/test/push-force.t +56 -0
  301. data/sub/eac_git/vendor/git-subrepo/test/push-new-branch.t +61 -0
  302. data/sub/eac_git/vendor/git-subrepo/test/push-no-changes.t +29 -0
  303. data/sub/eac_git/vendor/git-subrepo/test/push-squash.t +56 -0
  304. data/sub/eac_git/vendor/git-subrepo/test/push.t +176 -0
  305. data/sub/eac_git/vendor/git-subrepo/test/reclone.t +45 -0
  306. data/sub/eac_git/vendor/git-subrepo/test/repo/bar/HEAD +1 -0
  307. data/sub/eac_git/vendor/git-subrepo/test/repo/bar/config +4 -0
  308. data/sub/eac_git/vendor/git-subrepo/test/repo/bar/objects/1f/0c4b264caed0126814a0ede851a1e0b4e16ae6 +0 -0
  309. data/sub/eac_git/vendor/git-subrepo/test/repo/bar/objects/87/46903fdb1b9c2101377880125917c2e05b4d69 +0 -0
  310. data/sub/eac_git/vendor/git-subrepo/test/repo/bar/objects/94/c86ffc745232d89f78c6f895e11e71272518db +0 -0
  311. data/sub/eac_git/vendor/git-subrepo/test/repo/bar/objects/c6/76c57b6576743fa56278527aa60ebd2e202a7c +0 -0
  312. data/sub/eac_git/vendor/git-subrepo/test/repo/bar/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391 +0 -0
  313. data/sub/eac_git/vendor/git-subrepo/test/repo/bar/objects/f6/2a8ff3feadf39b0a98f1a86ec6d1eb33858ee9 +0 -0
  314. data/sub/eac_git/vendor/git-subrepo/test/repo/bar/refs/heads/master +1 -0
  315. data/sub/eac_git/vendor/git-subrepo/test/repo/bar/refs/tags/A +1 -0
  316. data/sub/eac_git/vendor/git-subrepo/test/repo/foo/HEAD +1 -0
  317. data/sub/eac_git/vendor/git-subrepo/test/repo/foo/config +4 -0
  318. data/sub/eac_git/vendor/git-subrepo/test/repo/foo/objects/a0/f4cdaaf533a936296cdebbed8206c3b9ededa8 +0 -0
  319. data/sub/eac_git/vendor/git-subrepo/test/repo/foo/objects/e2/1291a1ad392a9d4c51dd9586804f1467b28afd +0 -0
  320. data/sub/eac_git/vendor/git-subrepo/test/repo/foo/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391 +0 -0
  321. data/sub/eac_git/vendor/git-subrepo/test/repo/foo/refs/heads/master +1 -0
  322. data/sub/eac_git/vendor/git-subrepo/test/repo/init/HEAD +1 -0
  323. data/sub/eac_git/vendor/git-subrepo/test/repo/init/config +5 -0
  324. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/11/523f5dcf03b4c89b592dc8a3d0308f68da2386 +0 -0
  325. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/14/2addf8ec5f37334e837440122c62f2c68a29ad +0 -0
  326. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/32/5180321750a21cd7a4e7ecda319e557a4f6a09 +2 -0
  327. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/3d/918c6901c02f43af5d31779dd5e1f9166aeb36 +0 -0
  328. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/3e/4cb596066dce63ba4d047abddb677389b65e19 +0 -0
  329. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/4b/6e53022e7a04f07887697e4f3d7c377fd9822b +0 -0
  330. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/58/931fc1bd559b59c41ea738fc7ad04f9ad01bd3 +0 -0
  331. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/5e/c0c28e1b806f25efdca18fcf7a74b49c3755bd +0 -0
  332. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/75/fa6584e748f57eff06eebdc55e9ac21d4fcbf2 +1 -0
  333. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/80/2d5edbd5e1cb7fca82b5bd38e7c8a0a496fb20 +0 -0
  334. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/94/7b3d714c38791e95ad6f928b48c98bb8708acd +0 -0
  335. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/95/e1f2df3f4d5f3d7a60588c25a7ca8a913d3c2a +1 -0
  336. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/b1/5f4a7666baf40d949548ead946a3370e273479 +0 -0
  337. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/c3/ee8978c4c5d84c3b7d00ba8e5906933d027882 +0 -0
  338. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/c8/b0bffbc405ef3fad7354ff833fbec36d67ddfa +3 -0
  339. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/dd/8bdb934ec848137f011fe423b185505c343626 +2 -0
  340. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/e2/9be58c767cfeb27235c995d293a7d71aac0135 +2 -0
  341. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/ee/1224401fc6aac595145fa727dcf6706ac8aec1 +1 -0
  342. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/f1/cc1a657b2e805c400f5dcaaa76bd29c6178b1b +0 -0
  343. data/sub/eac_git/vendor/git-subrepo/test/repo/init/refs/heads/master +1 -0
  344. data/sub/eac_git/vendor/git-subrepo/test/setup +205 -0
  345. data/sub/eac_git/vendor/git-subrepo/test/status.t +68 -0
  346. data/sub/eac_git/vendor/git-subrepo/test/submodule.t +45 -0
  347. metadata +352 -40
  348. data/sub/avm-eac_php_base0/avm-eac_php_base0.gemspec +0 -21
  349. data/sub/avm-eac_php_base0/lib/avm/eac_php_base0/executables.rb +0 -22
  350. data/sub/avm-eac_php_base0/lib/avm/eac_php_base0/file_formats/base.rb +0 -20
  351. data/sub/avm-eac_php_base0/lib/avm/eac_php_base0/instances/base.rb +0 -13
  352. data/sub/avm-eac_php_base0/lib/avm/eac_php_base0/source_generators/base.rb +0 -28
  353. data/sub/avm-eac_php_base0/lib/avm/eac_php_base0/sources/base.rb +0 -17
  354. data/sub/avm-eac_php_base0/spec/lib/avm/eac_php_base0/file_formats/base_spec.rb +0 -7
  355. data/sub/avm-eac_php_base0/spec/lib/avm/eac_php_base0/file_formats/base_spec_files/php_code.php.source +0 -10
  356. data/sub/avm-eac_php_base0/spec/lib/avm/eac_php_base0/file_formats/base_spec_files/php_code.php.target +0 -10
  357. data/sub/avm-eac_php_base0/spec/lib/avm/eac_php_base0/file_formats/base_spec_files/php_code2.php.source +0 -4
  358. data/sub/avm-eac_php_base0/spec/lib/avm/eac_php_base0/file_formats/base_spec_files/php_code2.php.target +0 -3
  359. data/sub/avm-eac_php_base0/spec/lib/avm/eac_php_base0/file_formats/base_spec_files/php_html_code.php.source +0 -64
  360. data/sub/avm-eac_php_base0/spec/lib/avm/eac_php_base0/file_formats/base_spec_files/php_html_code.php.target +0 -64
  361. data/sub/avm-eac_php_base0/spec/lib/avm/eac_php_base0/file_formats/base_spec_files/php_iso88591_code.php.source +0 -4
  362. data/sub/avm-eac_php_base0/spec/lib/avm/eac_php_base0/file_formats/base_spec_files/php_iso88591_code.php.target +0 -3
  363. data/sub/avm-eac_php_base0/spec/lib/avm/eac_php_base0/source_generators/base_spec.rb +0 -8
  364. data/sub/avm-eac_php_base0/spec/lib/avm/eac_php_base0/source_generators/base_spec_files/no_options/index.php +0 -0
  365. data/sub/avm-eac_php_base0/spec/lib/avm/eac_php_base0/sources/base_spec.rb +0 -7
  366. data/sub/avm-eac_php_base0/template/avm/eac_php_base0/source_generators/base/index.php +0 -0
  367. /data/sub/{avm-eac_php_base0 → avm-git}/Gemfile +0 -0
  368. /data/sub/{avm-eac_php_base0 → avm-git}/spec/rubocop_spec.rb +0 -0
  369. /data/sub/{avm-eac_php_base0 → avm-git}/spec/spec_helper.rb +0 -0
@@ -0,0 +1,87 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_git/local'
4
+ require 'eac_ruby_utils/core_ext'
5
+ require 'eac_ruby_utils/envs'
6
+ require 'avm/launcher/paths/real'
7
+ require 'avm/git/launcher/error'
8
+
9
+ module Avm
10
+ module Git
11
+ module Launcher
12
+ class Base < ::Avm::Launcher::Paths::Real
13
+ require_sub __FILE__
14
+ enable_simple_cache
15
+ extend ::Avm::Git::Launcher::Base::ClassMethods
16
+ include ::Avm::Git::Launcher::Base::DirtyFiles
17
+ include ::Avm::Git::Launcher::Base::Remotes
18
+ include ::Avm::Git::Launcher::Base::Subrepo
19
+ include ::Avm::Git::Launcher::Base::Underlying
20
+
21
+ attr_reader :eac_git
22
+
23
+ delegate :descendant?, :merge_base, :rev_parse, to: :eac_git
24
+
25
+ def initialize(path)
26
+ super(path)
27
+
28
+ @eac_git = ::EacGit::Local.new(path)
29
+ end
30
+
31
+ def init_bare
32
+ FileUtils.mkdir_p(self)
33
+ ::EacRubyUtils::Envs.local.command('git', 'init', '--bare', self).execute! unless
34
+ File.exist?(subpath('.git'))
35
+ end
36
+
37
+ # @return [Pathname]
38
+ def root_path
39
+ @root_path ||= self.class.find_root(to_s)
40
+ end
41
+
42
+ def descendant?(descendant, ancestor)
43
+ base = merge_base(descendant, ancestor)
44
+ return false if base.blank?
45
+
46
+ revparse = execute!('rev-parse', '--verify', ancestor).strip
47
+ base == revparse
48
+ end
49
+
50
+ def subtree_split(prefix)
51
+ execute!('subtree', '-q', 'split', '-P', prefix).strip
52
+ end
53
+
54
+ def push(remote_name, refspecs, options = {})
55
+ refspecs = [refspecs] unless refspecs.is_a?(Array)
56
+ args = ['push']
57
+ args << '--dry-run' if options[:dryrun]
58
+ args << '--force' if options[:force]
59
+ system!(args + [remote_name] + refspecs)
60
+ end
61
+
62
+ def push_all(remote_name)
63
+ system!('push', '--all', remote_name)
64
+ system!('push', '--tags', remote_name)
65
+ end
66
+
67
+ def fetch(remote_name, options = {})
68
+ args = ['fetch', '-p', remote_name]
69
+ args += %w[--tags --prune-tags --force] if options[:tags]
70
+ execute!(*args)
71
+ end
72
+
73
+ def current_branch
74
+ execute!(%w[symbolic-ref -q HEAD]).gsub(%r{\Arefs/heads/}, '').strip
75
+ end
76
+
77
+ def reset_hard(ref)
78
+ execute!('reset', '--hard', ref)
79
+ end
80
+
81
+ def raise(message)
82
+ ::Kernel.raise Avm::Git::Launcher::Error.new(self, message)
83
+ end
84
+ end
85
+ end
86
+ end
87
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/launcher/errors/base'
4
+
5
+ module Avm
6
+ module Git
7
+ module Launcher
8
+ class Error < ::Avm::Launcher::Errors::Base
9
+ def initialize(git_instance, message)
10
+ super("#{message} (Repository: #{git_instance})")
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/git/launcher/base'
4
+
5
+ module Avm
6
+ module Git
7
+ module Launcher
8
+ class MirrorUpdate < ::Avm::Launcher::Paths::Real
9
+ include ::EacRubyUtils::SimpleCache
10
+
11
+ def initialize(target_path, source_path, source_rev)
12
+ super(target_path)
13
+ @target_git = ::Avm::Git::Launcher::Base.new(self)
14
+ @source_git = ::Avm::Git::Launcher::Base.new(source_path)
15
+ @source_rev = source_rev
16
+ run
17
+ end
18
+
19
+ private
20
+
21
+ def run
22
+ fetch_remote_source
23
+ reset_source_rev
24
+ end
25
+
26
+ def fetch_remote_source
27
+ @target_git.git
28
+ @target_git.assert_remote_url('origin', @source_git)
29
+ @target_git.fetch('origin', tags: true)
30
+ end
31
+
32
+ def reset_source_rev
33
+ @target_git.reset_hard(@source_git.rev_parse(@source_rev, true))
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,131 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/simple_cache'
4
+ require 'avm/launcher/publish/base'
5
+ require 'avm/launcher/publish/check_result'
6
+
7
+ module Avm
8
+ module Git
9
+ module Launcher
10
+ class PublishBase < ::Avm::Launcher::Publish::Base
11
+ include ::EacRubyUtils::SimpleCache
12
+ enable_speaker
13
+
14
+ CHECKERS = %w[remote_url remote_fetch publish_remote_no_exist remote_equal remote_following
15
+ local_following].freeze
16
+
17
+ DEFAULT_REMOTE_REF = 'master'
18
+
19
+ REMOTE_UNAVAILABLE_MESSAGES = ['could not resolve host', 'connection timed out',
20
+ 'no route to host'].map(&:downcase).freeze
21
+
22
+ protected
23
+
24
+ def internal_check
25
+ CHECKERS.each do |checker|
26
+ result = send("#{checker}_check_result")
27
+ return result if result
28
+ end
29
+ divergent_result_check_result
30
+ rescue ::Avm::Launcher::Instances::Error => e
31
+ ::Avm::Launcher::Publish::CheckResult.blocked(e.message)
32
+ rescue ::StandardError => e
33
+ raise e unless remote_unavailable_error?(e)
34
+
35
+ ::Avm::Launcher::Publish::CheckResult.blocked(e.message)
36
+ end
37
+
38
+ private
39
+
40
+ def remote_url_check_result
41
+ remote = sgit.remote(remote_name)
42
+ return if remote.exist? && remote.url.present?
43
+
44
+ ::Avm::Launcher::Publish::CheckResult.blocked("Remote \"#{remote_name}\" has blank path")
45
+ end
46
+
47
+ def remote_fetch_check_result
48
+ remote_fetch
49
+ nil
50
+ end
51
+
52
+ def remote_unavailable_error?(error)
53
+ error_message = error.message.downcase
54
+ REMOTE_UNAVAILABLE_MESSAGES.any? do |message|
55
+ error_message.include?(message)
56
+ end
57
+ end
58
+
59
+ def publish_remote_no_exist_check_result
60
+ return nil if sgit.remote_exist?(remote_name)
61
+
62
+ ::Avm::Launcher::Publish::CheckResult.blocked('Remote does not exist')
63
+ end
64
+
65
+ def remote_equal_check_result
66
+ return nil unless remote_sha.present? && remote_sha == local_sha
67
+
68
+ ::Avm::Launcher::Publish::CheckResult.updated('Remote equal')
69
+ end
70
+
71
+ def remote_following_check_result
72
+ return nil unless remote_sha.present? && sgit.descendant?(remote_sha, local_sha)
73
+
74
+ ::Avm::Launcher::Publish::CheckResult.outdated('Remote following')
75
+ end
76
+
77
+ def divergent_result_check_result
78
+ ::Avm::Launcher::Publish::CheckResult.blocked(
79
+ "Divergent (L: #{local_sha}, R: #{remote_sha})"
80
+ )
81
+ end
82
+
83
+ def local_following?
84
+ return true if remote_sha.blank?
85
+
86
+ sgit.descendant?(local_sha, remote_sha)
87
+ end
88
+
89
+ def local_following_check_result
90
+ return nil unless local_following?
91
+
92
+ ::Avm::Launcher::Publish::CheckResult.pending('Local following')
93
+ end
94
+
95
+ def sgit_uncached
96
+ ::Avm::Git::Launcher::Base.new(instance.warped)
97
+ end
98
+
99
+ def publish
100
+ info 'Pushing...'
101
+ sgit.push(remote_name, 'HEAD:master',
102
+ dryrun: !::Avm::Launcher::Context.current.publish_options[:confirm])
103
+ info 'Pushed!'
104
+ end
105
+
106
+ def local_sha
107
+ sgit.git.object('HEAD').sha
108
+ end
109
+
110
+ def remote_sha_uncached
111
+ remote_fetch
112
+ b = sgit.git.branches["#{remote_name}/#{remote_ref}"]
113
+ b&.gcommit&.sha
114
+ end
115
+
116
+ def remote_fetch_uncached
117
+ sgit.fetch(remote_name)
118
+ end
119
+
120
+ def remote_name
121
+ ::Avm::Git::Launcher::WarpBase::TARGET_REMOTE
122
+ end
123
+
124
+ # @return [String]
125
+ def remote_ref
126
+ DEFAULT_REMOTE_REF
127
+ end
128
+ end
129
+ end
130
+ end
131
+ end
@@ -0,0 +1,55 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+
5
+ module Avm
6
+ module Git
7
+ module Launcher
8
+ class Remote
9
+ common_constructor :git, :name
10
+
11
+ def exist?
12
+ git.execute!('remote').each_line.any? { |line| line.strip == name }
13
+ end
14
+
15
+ def ls
16
+ git.execute!(['ls-remote', name]).each_line.to_h do |line|
17
+ x = line.strip.split(/\s+/)
18
+ [x[1], x[0]]
19
+ end
20
+ end
21
+
22
+ # +git remote add ...+
23
+ def add(url)
24
+ git.execute!('remote', 'add', name, url)
25
+ end
26
+
27
+ # +git remote rm ...+
28
+ def remove
29
+ git.execute!('remote', 'rm', name)
30
+ end
31
+
32
+ # +git remote get-url ...+
33
+ def url
34
+ git.execute!('remote', 'get-url', name).strip.if_present(nil)
35
+ end
36
+
37
+ # git remote set-url ...
38
+ def url_set(url)
39
+ git.execute!('remote', 'set-url', name, url)
40
+ end
41
+
42
+ # Add or set URL if +url+ is present, remove remote if is blank.
43
+ def url=(url)
44
+ if exist? && url.blank?
45
+ remove
46
+ elsif exist? && self.url != url
47
+ url_set(url)
48
+ elsif !exist?
49
+ add(url)
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/launcher/errors/base'
4
+ require 'avm/launcher/stereotype'
5
+
6
+ module Avm
7
+ module Git
8
+ module Launcher
9
+ module SubWarpBase
10
+ private
11
+
12
+ def parent_instance_uncached
13
+ r = find_parent_instance(instance.parent)
14
+ return r if r
15
+
16
+ ::Avm::Launcher::Errors::Base.new('Git parent not found')
17
+ end
18
+
19
+ def find_parent_instance(current)
20
+ if ::Avm::Launcher::Stereotype.git_stereotypes.any? { |s| current.stereotype?(s) }
21
+ return current
22
+ end
23
+
24
+ current.parent ? find_parent_instance(current.parent) : nil
25
+ end
26
+
27
+ def to_parent_git_path
28
+ instance.logical.gsub(%r{\A#{Regexp.quote(parent_instance.logical)}/}, '')
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,68 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/git/launcher/mirror_update'
4
+ require 'avm/launcher/instances/error'
5
+ require 'avm/git/vendor/github'
6
+ require 'avm/git/launcher_stereotypes/git/publish'
7
+
8
+ module Avm
9
+ module Git
10
+ module Launcher
11
+ # Métodos abstratos:
12
+ # * source_instance
13
+ # * source_remote_name
14
+ # * current_ref
15
+ class WarpBase < ::Avm::Launcher::Paths::Real
16
+ include ::EacRubyUtils::SimpleCache
17
+
18
+ TARGET_REMOTE = ::Avm::Git::LauncherStereotypes::Git::Publish::PUBLISH_GIT_REMOTE_NAME
19
+
20
+ def initialize(instance)
21
+ @instance = instance
22
+ cache_git.git.reset_hard(current_ref)
23
+ cache_git.remote(TARGET_REMOTE).url = target_remote_url
24
+ super(path)
25
+ end
26
+
27
+ protected
28
+
29
+ attr_reader :instance
30
+
31
+ def validate_source_current_revision
32
+ if source_git.rev_parse(source_instance.options.git_current_revision, false).present?
33
+ return
34
+ end
35
+
36
+ raise ::Avm::Launcher::Instances::Error,
37
+ "Refspec \"#{source_instance.options.git_current_revision}\" " \
38
+ "not found in \"#{source_git}\""
39
+ end
40
+
41
+ def update
42
+ validate_source_current_revision
43
+ ::Avm::Git::Launcher::MirrorUpdate.new(
44
+ path,
45
+ source_instance.real,
46
+ source_instance.options.git_current_revision
47
+ )
48
+ end
49
+
50
+ def path
51
+ instance.cache_path('git_repository')
52
+ end
53
+
54
+ def source_git_uncached
55
+ ::Avm::Git::Launcher::Base.new(source_instance.real)
56
+ end
57
+
58
+ def cache_git_uncached
59
+ ::Avm::Git::Launcher::Base.new(update)
60
+ end
61
+
62
+ def target_remote_url
63
+ ::Avm::Git::Vendor::Github.to_ssh_url(source_git.git.remote(source_remote_name).url)
64
+ end
65
+ end
66
+ end
67
+ end
68
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/git/launcher/base'
4
+ require 'avm/git/launcher/error'
5
+ require 'avm/git/launcher/mirror_update'
6
+ require 'avm/git/launcher/publish_base'
7
+ require 'avm/git/launcher/warp_base'
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_git/local'
4
+ require 'eac_ruby_utils/core_ext'
5
+
6
+ module Avm
7
+ module Git
8
+ module LauncherStereotypes
9
+ class Git
10
+ module LocalProjectMixin
11
+ # @return [EacGit::Local]
12
+ def git_repo
13
+ @git_repo ||= ::EacGit::Local.new(path)
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/git/launcher/publish_base'
4
+
5
+ module Avm
6
+ module Git
7
+ module LauncherStereotypes
8
+ class Git
9
+ class Publish < ::Avm::Git::Launcher::PublishBase
10
+ PUBLISH_GIT_REMOTE_NAME = 'publish'
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/git/launcher/warp_base'
4
+
5
+ module Avm
6
+ module Git
7
+ module LauncherStereotypes
8
+ class Git
9
+ class Warp < ::Avm::Git::Launcher::WarpBase
10
+ private
11
+
12
+ def current_ref
13
+ 'HEAD'
14
+ end
15
+
16
+ def source_instance
17
+ instance
18
+ end
19
+
20
+ def source_remote_name
21
+ ::Avm::Git::LauncherStereotypes::Git::Publish::PUBLISH_GIT_REMOTE_NAME
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/launcher/stereotype'
4
+ require 'eac_ruby_utils/core_ext'
5
+
6
+ module Avm
7
+ module Git
8
+ module LauncherStereotypes
9
+ class Git
10
+ require_sub __FILE__
11
+ include Avm::Launcher::Stereotype
12
+
13
+ class << self
14
+ def match?(path)
15
+ File.directory?(path.real.subpath('.git'))
16
+ end
17
+
18
+ def color
19
+ :white
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/git/launcher/publish_base'
4
+
5
+ module Avm
6
+ module Git
7
+ module LauncherStereotypes
8
+ class GitSubrepo
9
+ class Publish < ::Avm::Git::Launcher::PublishBase
10
+ # @return [Pathname]
11
+ def config_path
12
+ instance.parent.warped.to_pathname.join(
13
+ "./#{instance.to_parent_path}",
14
+ ::Avm::Git::LauncherStereotypes::GitSubrepo::CONFIG_SUBPATH
15
+ )
16
+ end
17
+
18
+ # @return [EacGit::Local::Subrepo::Config]
19
+ def config
20
+ ::EacGit::Local::Subrepo::Config.from_file(config_path)
21
+ end
22
+
23
+ # @return [String]
24
+ def remote_ref
25
+ config.remote_branch || super
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,88 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/simple_cache'
4
+ require 'avm/git/launcher/sub_warp_base'
5
+ require 'avm/launcher/errors/base'
6
+ require 'avm/launcher/paths/real'
7
+ require 'avm/git/vendor/github'
8
+
9
+ module Avm
10
+ module Git
11
+ module LauncherStereotypes
12
+ class GitSubrepo
13
+ class Warp < ::Avm::Launcher::Paths::Real
14
+ include ::Avm::Git::Launcher::SubWarpBase
15
+ include ::EacRubyUtils::SimpleCache
16
+
17
+ attr_reader :instance
18
+
19
+ def initialize(instance)
20
+ @instance = instance
21
+ check_parent
22
+ init_aux
23
+ push_to_aux
24
+ reset
25
+ assert_target_remote
26
+ super(warped_git)
27
+ end
28
+
29
+ private
30
+
31
+ def check_parent
32
+ return if parent_git_warped.rev_parse(subrepo_parent_hash) &&
33
+ parent_git_warped.descendant?('HEAD', subrepo_parent_hash)
34
+
35
+ raise Avm::Launcher::Errors::Base,
36
+ "Subrepo parent hash \"#{subrepo_parent_hash}\" " \
37
+ "not found in \"#{parent_git_warped}\""
38
+ end
39
+
40
+ def subrepo_parent_hash
41
+ data = parent_git_warped.subrepo_status(to_parent_git_path)
42
+ h = data['Pull Parent']
43
+ return h if h.present?
44
+
45
+ raise Avm::Launcher::Errors::Base, "Subrepo parent hash is blank: #{data}"
46
+ end
47
+
48
+ def init_aux
49
+ ::Avm::Git::Launcher::Base.new(aux_path).init_bare
50
+ end
51
+
52
+ def parent_git_warped_uncached
53
+ ::Avm::Git::Launcher::Base.new(parent_instance.warped)
54
+ end
55
+
56
+ def aux_path
57
+ instance.cache_path('subrepo_aux_git_repository')
58
+ end
59
+
60
+ def warped_git_uncached
61
+ ::Avm::Git::Launcher::Base.new(instance.cache_path('git_repository'))
62
+ end
63
+
64
+ def push_to_aux
65
+ parent_git_warped.execute!('subrepo', 'branch', to_parent_git_path, '-fF')
66
+ h = parent_git_warped.rev_parse("subrepo/#{to_parent_git_path}", true)
67
+ parent_git_warped.execute!('push', aux_path, "#{h}:refs/heads/master", '--force')
68
+ end
69
+
70
+ def reset
71
+ ::Avm::Git::Launcher::MirrorUpdate.new(warped_git, aux_path, 'master')
72
+ end
73
+
74
+ def assert_target_remote
75
+ warped_git.assert_remote_url(::Avm::Git::Launcher::WarpBase::TARGET_REMOTE,
76
+ target_remote_url)
77
+ end
78
+
79
+ def target_remote_url
80
+ ::Avm::Git::Vendor::Github.to_ssh_url(
81
+ parent_git_warped.subrepo_remote_url(to_parent_git_path)
82
+ )
83
+ end
84
+ end
85
+ end
86
+ end
87
+ end
88
+ end
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/git/launcher/error'
4
+ require 'eac_ruby_utils/core_ext'
5
+ require 'avm/launcher/stereotype'
6
+
7
+ module Avm
8
+ module Git
9
+ module LauncherStereotypes
10
+ class GitSubrepo
11
+ require_sub __FILE__
12
+ include Avm::Launcher::Stereotype
13
+
14
+ CONFIG_SUBPATH = '.gitrepo'
15
+
16
+ class << self
17
+ def match?(path)
18
+ File.exist?(path.real.subpath(CONFIG_SUBPATH)) && subrepo_url(path.real) != 'none'
19
+ end
20
+
21
+ def color
22
+ :light_cyan
23
+ end
24
+
25
+ def subrepo_url(path)
26
+ File.read(path.subpath(CONFIG_SUBPATH)).each_line do |l|
27
+ m = /remote\s*=\s(.+)/.match(l)
28
+ return m[1] if m
29
+ end
30
+ raise ::Avm::Git::Launcher::Error.new(path, '"remote = ... " not found')
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end