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
@@ -0,0 +1,53 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Git
5
+ module Launcher
6
+ class Remote
7
+ common_constructor :git, :name
8
+
9
+ def exist?
10
+ git.execute!('remote').each_line.any? { |line| line.strip == name }
11
+ end
12
+
13
+ def ls
14
+ git.execute!(['ls-remote', name]).each_line.to_h do |line|
15
+ x = line.strip.split(/\s+/)
16
+ [x[1], x[0]]
17
+ end
18
+ end
19
+
20
+ # +git remote add ...+
21
+ def add(url)
22
+ git.execute!('remote', 'add', name, url)
23
+ end
24
+
25
+ # +git remote rm ...+
26
+ def remove
27
+ git.execute!('remote', 'rm', name)
28
+ end
29
+
30
+ # +git remote get-url ...+
31
+ def url
32
+ git.execute!('remote', 'get-url', name).strip.if_present(nil)
33
+ end
34
+
35
+ # git remote set-url ...
36
+ def url_set(url)
37
+ git.execute!('remote', 'set-url', name, url)
38
+ end
39
+
40
+ # Add or set URL if +url+ is present, remove remote if is blank.
41
+ def url=(url)
42
+ if exist? && url.blank?
43
+ remove
44
+ elsif exist? && self.url != url
45
+ url_set(url)
46
+ elsif !exist?
47
+ add(url)
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Git
5
+ module Launcher
6
+ module SubWarpBase
7
+ private
8
+
9
+ def parent_instance_uncached
10
+ if instance.parent.blank?
11
+ raise ::Avm::Launcher::Errors::Base,
12
+ 'Instance is a GitSubrepo, but do not have a parent Git repository (Logical ' \
13
+ "path: \"#{instance}\", Real path: \"#{instance.real}\")"
14
+ end
15
+
16
+ r = find_parent_instance(instance.parent)
17
+ return r if r
18
+
19
+ ::Avm::Launcher::Errors::Base.new('Git parent not found')
20
+ end
21
+
22
+ def find_parent_instance(current)
23
+ if ::Avm::Launcher::Stereotype.git_stereotypes.any? { |s| current.stereotype?(s) }
24
+ return current
25
+ end
26
+
27
+ current.parent ? find_parent_instance(current.parent) : nil
28
+ end
29
+
30
+ def to_parent_git_path
31
+ instance.logical.gsub(%r{\A#{Regexp.quote(parent_instance.logical)}/}, '')
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,63 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Git
5
+ module Launcher
6
+ # Métodos abstratos:
7
+ # * source_instance
8
+ # * source_remote_name
9
+ # * current_ref
10
+ class WarpBase < ::Avm::Launcher::Paths::Real
11
+ include ::EacRubyUtils::SimpleCache
12
+
13
+ TARGET_REMOTE = ::Avm::Git::LauncherStereotypes::Git::Publish::PUBLISH_GIT_REMOTE_NAME
14
+
15
+ def initialize(instance)
16
+ @instance = instance
17
+ cache_git.git.reset_hard(current_ref)
18
+ cache_git.remote(TARGET_REMOTE).url = target_remote_url
19
+ super(path)
20
+ end
21
+
22
+ protected
23
+
24
+ attr_reader :instance
25
+
26
+ def validate_source_current_revision
27
+ if source_git.rev_parse(source_instance.options.git_current_revision, false).present?
28
+ return
29
+ end
30
+
31
+ raise ::Avm::Launcher::Instances::Error,
32
+ "Refspec \"#{source_instance.options.git_current_revision}\" " \
33
+ "not found in \"#{source_git}\""
34
+ end
35
+
36
+ def update
37
+ validate_source_current_revision
38
+ ::Avm::Git::Launcher::MirrorUpdate.new(
39
+ path,
40
+ source_instance.real,
41
+ source_instance.options.git_current_revision
42
+ )
43
+ end
44
+
45
+ def path
46
+ instance.cache_path('git_repository')
47
+ end
48
+
49
+ def source_git_uncached
50
+ ::Avm::Git::Launcher::Base.new(source_instance.real)
51
+ end
52
+
53
+ def cache_git_uncached
54
+ ::Avm::Git::Launcher::Base.new(update)
55
+ end
56
+
57
+ def target_remote_url
58
+ ::Avm::Git::Vendor::Github.to_ssh_url(source_git.git.remote(source_remote_name).url)
59
+ end
60
+ end
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Git
5
+ module LauncherStereotypes
6
+ class Git
7
+ module LocalProjectMixin
8
+ # @return [EacGit::Local]
9
+ def git_repo
10
+ @git_repo ||= ::EacGit::Local.new(path)
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Git
5
+ module LauncherStereotypes
6
+ class Git
7
+ class Publish < ::Avm::Git::Launcher::PublishBase
8
+ PUBLISH_GIT_REMOTE_NAME = 'publish'
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Git
5
+ module LauncherStereotypes
6
+ class Git
7
+ class Warp < ::Avm::Git::Launcher::WarpBase
8
+ private
9
+
10
+ def current_ref
11
+ 'HEAD'
12
+ end
13
+
14
+ def source_instance
15
+ instance
16
+ end
17
+
18
+ def source_remote_name
19
+ ::Avm::Git::LauncherStereotypes::Git::Publish::PUBLISH_GIT_REMOTE_NAME
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Git
5
+ module LauncherStereotypes
6
+ class Git
7
+ require_sub __FILE__
8
+ include Avm::Launcher::Stereotype
9
+
10
+ class << self
11
+ def match?(path)
12
+ File.directory?(path.real.subpath('.git'))
13
+ end
14
+
15
+ def color
16
+ :white
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Git
5
+ module LauncherStereotypes
6
+ class GitSubrepo
7
+ class Publish < ::Avm::Git::Launcher::PublishBase
8
+ # @return [Pathname]
9
+ def config_path
10
+ instance.parent.warped.to_pathname.join(
11
+ "./#{instance.to_parent_path}",
12
+ ::Avm::Git::LauncherStereotypes::GitSubrepo::CONFIG_SUBPATH
13
+ )
14
+ end
15
+
16
+ # @return [EacGit::Local::Subrepo::Config]
17
+ def config
18
+ ::EacGit::Local::Subrepo::Config.from_file(config_path)
19
+ end
20
+
21
+ # @return [String]
22
+ def remote_ref
23
+ config.remote_branch || super
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,82 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Git
5
+ module LauncherStereotypes
6
+ class GitSubrepo
7
+ class Warp < ::Avm::Launcher::Paths::Real
8
+ include ::Avm::Git::Launcher::SubWarpBase
9
+ include ::EacRubyUtils::SimpleCache
10
+
11
+ attr_reader :instance
12
+
13
+ def initialize(instance)
14
+ @instance = instance
15
+ check_parent
16
+ init_aux
17
+ push_to_aux
18
+ reset
19
+ assert_target_remote
20
+ super(warped_git)
21
+ end
22
+
23
+ private
24
+
25
+ def check_parent
26
+ return if parent_git_warped.rev_parse(subrepo_parent_hash) &&
27
+ parent_git_warped.descendant?('HEAD', subrepo_parent_hash)
28
+
29
+ raise Avm::Launcher::Errors::Base,
30
+ "Subrepo parent hash \"#{subrepo_parent_hash}\" " \
31
+ "not found in \"#{parent_git_warped}\""
32
+ end
33
+
34
+ def subrepo_parent_hash
35
+ data = parent_git_warped.subrepo_status(to_parent_git_path)
36
+ h = data['Pull Parent']
37
+ return h if h.present?
38
+
39
+ raise Avm::Launcher::Errors::Base, "Subrepo parent hash is blank: #{data}"
40
+ end
41
+
42
+ def init_aux
43
+ ::Avm::Git::Launcher::Base.new(aux_path).init_bare
44
+ end
45
+
46
+ def parent_git_warped_uncached
47
+ ::Avm::Git::Launcher::Base.new(parent_instance.warped)
48
+ end
49
+
50
+ def aux_path
51
+ instance.cache_path('subrepo_aux_git_repository')
52
+ end
53
+
54
+ def warped_git_uncached
55
+ ::Avm::Git::Launcher::Base.new(instance.cache_path('git_repository'))
56
+ end
57
+
58
+ def push_to_aux
59
+ parent_git_warped.execute!('subrepo', 'branch', to_parent_git_path, '-fF')
60
+ h = parent_git_warped.rev_parse("subrepo/#{to_parent_git_path}", true)
61
+ parent_git_warped.execute!('push', aux_path, "#{h}:refs/heads/master", '--force')
62
+ end
63
+
64
+ def reset
65
+ ::Avm::Git::Launcher::MirrorUpdate.new(warped_git, aux_path, 'master')
66
+ end
67
+
68
+ def assert_target_remote
69
+ warped_git.assert_remote_url(::Avm::Git::Launcher::WarpBase::TARGET_REMOTE,
70
+ target_remote_url)
71
+ end
72
+
73
+ def target_remote_url
74
+ ::Avm::Git::Vendor::Github.to_ssh_url(
75
+ parent_git_warped.subrepo_remote_url(to_parent_git_path)
76
+ )
77
+ end
78
+ end
79
+ end
80
+ end
81
+ end
82
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Git
5
+ module LauncherStereotypes
6
+ class GitSubrepo
7
+ require_sub __FILE__
8
+ include Avm::Launcher::Stereotype
9
+
10
+ CONFIG_SUBPATH = '.gitrepo'
11
+
12
+ class << self
13
+ def match?(path)
14
+ File.exist?(path.real.subpath(CONFIG_SUBPATH)) && subrepo_url(path.real) != 'none'
15
+ end
16
+
17
+ def color
18
+ :light_cyan
19
+ end
20
+
21
+ def subrepo_url(path)
22
+ File.read(path.subpath(CONFIG_SUBPATH)).each_line do |l|
23
+ m = /remote\s*=\s(.+)/.match(l)
24
+ return m[1] if m
25
+ end
26
+ raise ::Avm::Git::Launcher::Error.new(path, '"remote = ... " not found')
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Git
5
+ module LauncherStereotypes
6
+ class GitSubtree
7
+ class Publish < ::Avm::Git::Launcher::PublishBase
8
+ end
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Git
5
+ module LauncherStereotypes
6
+ class GitSubtree
7
+ class Warp < ::Avm::Git::Launcher::WarpBase
8
+ include ::Avm::Git::Launcher::SubWarpBase
9
+
10
+ private
11
+
12
+ def current_ref
13
+ instance.cache_key("git_subtree.parent.#{cache_git.git.object('HEAD').sha}") do
14
+ cache_git.subtree_split(to_parent_git_path)
15
+ end
16
+ end
17
+
18
+ def source_instance
19
+ parent_instance
20
+ end
21
+
22
+ def source_remote_name
23
+ instance.project_name
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Git
5
+ module LauncherStereotypes
6
+ class GitSubtree
7
+ require_sub __FILE__
8
+ include Avm::Launcher::Stereotype
9
+
10
+ class << self
11
+ def match?(path)
12
+ return false if other_git_stereotype?(path)
13
+ return false unless other_nogit_stereotype?(path)
14
+
15
+ parent = parent_git(path.parent_path)
16
+ return false unless parent
17
+
18
+ ::Git.open(parent.real).remote(path.real.basename).url ? true : false
19
+ end
20
+
21
+ def color
22
+ :green
23
+ end
24
+
25
+ def parent_git(parent_path)
26
+ return nil unless parent_path
27
+
28
+ if ::Avm::Git::LauncherStereotypes::Git.match?(parent_path)
29
+ parent_path
30
+ else
31
+ parent_git(parent_path.parent_path)
32
+ end
33
+ end
34
+
35
+ def other_git_stereotype?(path)
36
+ ::Avm::Git::LauncherStereotypes::Git.match?(path) ||
37
+ ::Avm::Git::LauncherStereotypes::GitSubrepo.match?(path)
38
+ end
39
+
40
+ def other_nogit_stereotype?(path)
41
+ Avm::Launcher::Stereotype.nogit_stereotypes.any? { |s| s.match?(path) }
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Git
5
+ module LauncherStereotypes
6
+ class Provider
7
+ STEREOTYPES = [::Avm::Git::LauncherStereotypes::Git,
8
+ ::Avm::Git::LauncherStereotypes::GitSubrepo,
9
+ ::Avm::Git::LauncherStereotypes::GitSubtree].freeze
10
+
11
+ def all
12
+ STEREOTYPES
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Git
5
+ module LauncherStereotypes
6
+ require_sub __FILE__
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Git
5
+ module Organize
6
+ class ReferenceUpdate
7
+ enable_listable
8
+ lists.add_symbol :operation, :remove
9
+
10
+ common_constructor :repository, :reference, :operation
11
+
12
+ def run_operation
13
+ send("run_operation_#{operation}")
14
+ end
15
+
16
+ def to_s
17
+ "#{reference} [#{operation}]"
18
+ end
19
+
20
+ private
21
+
22
+ def reference_pathname
23
+ repository.refs_root.join(reference)
24
+ end
25
+
26
+ def run_operation_remove
27
+ reference_pathname.unlink
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,74 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Git
5
+ module Organize
6
+ class Repository
7
+ enable_simple_cache
8
+ common_constructor :eac_git_local
9
+
10
+ def collected_references
11
+ @collected_references || []
12
+ end
13
+
14
+ def collect_subrepos
15
+ collect_references_with_pattern(
16
+ %r{\Asubrepo/},
17
+ ::Avm::Git::Organize::ReferenceUpdate::OPERATION_REMOVE
18
+ )
19
+ collect_references_with_pattern(
20
+ %r{\Aheads/subrepo/},
21
+ ::Avm::Git::Organize::ReferenceUpdate::OPERATION_REMOVE
22
+ )
23
+ end
24
+
25
+ def collect_originals
26
+ collect_references_with_pattern(
27
+ %r{\Aoriginal/},
28
+ ::Avm::Git::Organize::ReferenceUpdate::OPERATION_REMOVE
29
+ )
30
+ end
31
+
32
+ def all_branches
33
+ eac_git_local.execute!
34
+ end
35
+
36
+ delegate :to_s, to: :eac_git_local
37
+
38
+ private
39
+
40
+ def all_references
41
+ ::Pathname.glob("#{refs_root}/**/*").select(&:file?)
42
+ .map { |p| p.relative_path_from(refs_root).to_path }
43
+ end
44
+
45
+ def reference_update_by_ref(reference)
46
+ collected_references.find { |ru| ru.reference == reference }
47
+ end
48
+
49
+ def collect_reference(reference, operation)
50
+ new_ru = ::Avm::Git::Organize::ReferenceUpdate.new(self, reference, operation)
51
+ reference_update_by_ref(new_ru.reference).if_present do |ru_found|
52
+ raise "Reference #{new_ru} already added (#{ru_found})"
53
+ end
54
+ @collected_references ||= []
55
+ @collected_references << new_ru
56
+ end
57
+
58
+ def collect_references_with_pattern(pattern, operation)
59
+ references_with_pattern(pattern).each do |reference|
60
+ collect_reference(reference, operation)
61
+ end
62
+ end
63
+
64
+ def references_with_pattern(pattern)
65
+ all_references.select { |reference| pattern.if_match(reference, false) }
66
+ end
67
+
68
+ def refs_root_uncached
69
+ eac_git_local.root_path / '.git' / 'refs'
70
+ end
71
+ end
72
+ end
73
+ end
74
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Git
5
+ module Organize
6
+ require_sub __FILE__
7
+ end
8
+ end
9
+ end