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,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Git
5
+ module Scms
6
+ class GitSubrepo < ::Avm::Git::Scms::GitSubBase
7
+ def update
8
+ git_subrepo.command('clean').execute!
9
+ git_subrepo.command('pull').execute!
10
+ end
11
+
12
+ # @return [EacGit::Local]
13
+ def git_repo
14
+ @git_repo ||= ::EacGit::Local.find(path)
15
+ end
16
+
17
+ # @return [EacGit::Local::Subrepo]
18
+ def git_subrepo
19
+ @git_subrepo ||= git_repo.subrepo(subpath)
20
+ end
21
+
22
+ # @return [Pathname]
23
+ def subpath
24
+ path.expand_path.relative_path_from(git_repo.root_path.expand_path)
25
+ end
26
+
27
+ def valid?
28
+ path.join('.gitrepo').file?
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Git
5
+ module Scms
6
+ class GitSubtree < ::Avm::Git::Scms::GitSubBase
7
+ # @return [Boolean]
8
+ def no_other_git_scm?
9
+ (::Avm::Git::Scms::Provider.new.all - [self.class])
10
+ .lazy.map { |scm_class| scm_class.new(path) }.none?(&:valid?)
11
+ end
12
+
13
+ # @return [Boolean]
14
+ def parent_git_scm?
15
+ ::Avm::Git::Scms::Provider.new.all.any? { |scm_class| parent_scm.is_a?(scm_class) }
16
+ end
17
+
18
+ def update
19
+ # Do nothing
20
+ end
21
+
22
+ # @return [Boolean]
23
+ def valid?
24
+ parent_git_scm? && no_other_git_scm?
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Git
5
+ module Scms
6
+ class Provider
7
+ SCMS = [::Avm::Git::Scms::Git, ::Avm::Git::Scms::GitSubrepo,
8
+ ::Avm::Git::Scms::GitSubtree].freeze
9
+
10
+ def all
11
+ SCMS
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Git
5
+ module Scms
6
+ require_sub __FILE__
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Git
5
+ class SubrepoCheck
6
+ module Parent
7
+ def fix_parent
8
+ return if parent_result.success?
9
+
10
+ info(' Fixing...')
11
+ self.parent_hash = expected_parent_hash
12
+ info_banner
13
+ end
14
+
15
+ private
16
+
17
+ def expected_parent_hash_uncached
18
+ subrepo.local.rev_parse("#{last_file_change_rev}^")
19
+ end
20
+
21
+ def last_file_change_rev
22
+ subrepo.local.command('log', '-n', '1', '--pretty=format:%H', '--',
23
+ subrepo.config_relative_path.to_path).execute!.strip
24
+ end
25
+
26
+ def parent_hash
27
+ subrepo.parent_commit_id
28
+ end
29
+
30
+ def parent_hash=(new_hash)
31
+ subrepo.config.parent_commit_id = new_hash
32
+ subrepo.write_config
33
+ end
34
+
35
+ def parent_hash_ok?
36
+ return false if expected_parent_hash.blank? || parent_hash.blank?
37
+
38
+ expected_parent_hash == parent_hash
39
+ end
40
+
41
+ def parent_result_uncached
42
+ ::Avm::Result.success_or_error(parent_hash_ok?,
43
+ parent_hash.presence || blank_text)
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,86 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Git
5
+ class SubrepoCheck
6
+ module Remote
7
+ private
8
+
9
+ def fetch_uncached
10
+ subrepo.command('clean').execute!
11
+ subrepo.command('fetch').execute!
12
+ end
13
+
14
+ def check_remote_disabled?
15
+ !check_remote?
16
+ end
17
+
18
+ def check_remote_disabled_result
19
+ ::Avm::Result.neutral('Check remote disabled')
20
+ end
21
+
22
+ def local_descend_remote?
23
+ local_id.present? && remote_id.present? && subrepo.local.descendant?(local_id, remote_id)
24
+ end
25
+
26
+ def local_descend_remote_result
27
+ ::Avm::Result.pending(remote_result_value)
28
+ end
29
+
30
+ def local_id_uncached
31
+ fetch
32
+ subrepo.command('branch', '--force').execute!
33
+ subrepo.local.rev_parse("subrepo/#{subrepo.subpath}")
34
+ end
35
+
36
+ def remote_descend_local?
37
+ local_id.present? && remote_id.present? && subrepo.local.descendant?(remote_id, local_id)
38
+ end
39
+
40
+ def remote_descend_local_result
41
+ ::Avm::Result.outdated(remote_result_value)
42
+ end
43
+
44
+ def remote_branches
45
+ ['', 'refs/heads/', 'refs/tags/'].map { |prefix| "#{prefix}#{subrepo.remote_branch}" }
46
+ end
47
+
48
+ def remote_id_uncached
49
+ ls_result = subrepo.remote.ls
50
+ remote_branches.each do |b|
51
+ return ls_result[b] if ls_result[b].present?
52
+ end
53
+ nil
54
+ end
55
+
56
+ def remote_result_uncached
57
+ %w[check_remote_disabled same_ids local_descend_remote remote_descend_local]
58
+ .each do |condition|
59
+ return send("#{condition}_result") if send("#{condition}?")
60
+ end
61
+
62
+ ::Avm::Result.error(remote_result_value)
63
+ end
64
+
65
+ def remote_result_value
66
+ local_s = local_id.presence || blank_text
67
+ remote_s = remote_id.presence || blank_text
68
+
69
+ if local_s == remote_s
70
+ "[L/R=#{local_s}]"
71
+ else
72
+ "[L=#{local_s}, R=#{remote_s}]"
73
+ end
74
+ end
75
+
76
+ def same_ids?
77
+ local_id.present? && remote_id.present? && local_id == remote_id
78
+ end
79
+
80
+ def same_ids_result
81
+ ::Avm::Result.success(remote_result_value)
82
+ end
83
+ end
84
+ end
85
+ end
86
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Git
5
+ class SubrepoCheck
6
+ module ShowResult
7
+ def show_result
8
+ out(subrepo.subpath.to_path.cyan)
9
+ out_attr('parent', parent_result.label)
10
+ run_fix_parent
11
+ out_attr('remote', remote_result.label)
12
+ out("\n")
13
+ end
14
+
15
+ def run_fix_parent
16
+ return unless fix_parent?
17
+ return unless parent_result.error?
18
+
19
+ out('|Fixing...'.white)
20
+ self.parent_hash = expected_parent_hash
21
+ out_attr('new parent', parent_result.label)
22
+ end
23
+
24
+ def out_attr(key, value)
25
+ out("|#{"#{key}=".white}#{value}")
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Git
5
+ class SubrepoCheck
6
+ require_sub __FILE__, include_modules: true
7
+ enable_speaker
8
+ enable_simple_cache
9
+
10
+ BLANK_TEXT = 'BLANK'
11
+
12
+ common_constructor :subrepo, :options
13
+
14
+ def blank_text
15
+ BLANK_TEXT
16
+ end
17
+
18
+ def check_remote?
19
+ options.fetch(:check_remote) ? true : false
20
+ end
21
+
22
+ def fix_parent?
23
+ options.fetch(:fix_parent) ? true : false
24
+ end
25
+
26
+ private
27
+
28
+ def result_uncached
29
+ return ::Avm::Result.error('Parent failed') if parent_result.error?
30
+ return ::Avm::Result.error('Remote failed') if remote_result.error?
31
+
32
+ ::Avm::Result.success('Parent and remote ok')
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,57 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Git
5
+ class SubrepoChecks
6
+ enable_speaker
7
+ enable_simple_cache
8
+ attr_accessor :check_remote, :fix_parent
9
+
10
+ common_constructor :repository
11
+
12
+ def add_all_subrepos
13
+ add_subrepos(
14
+ *repository.command('subrepo', '-q', 'status').execute!.split("\n").map(&:strip)
15
+ .select(&:present?)
16
+ )
17
+ end
18
+
19
+ def add_subrepos(*subpath_list)
20
+ subpath_list.each do |subpath|
21
+ subpaths.add(subpath)
22
+ end
23
+ reset_cache
24
+ self
25
+ end
26
+
27
+ def check_options
28
+ { fix_parent: fix_parent, check_remote: check_remote }
29
+ end
30
+
31
+ def show_result
32
+ checks.each(&:show_result)
33
+ infov 'Result', result.label
34
+ end
35
+
36
+ private
37
+
38
+ def checks_uncached
39
+ subpaths.map do |subpath|
40
+ ::Avm::Git::SubrepoCheck.new(repository.subrepo(subpath), check_options)
41
+ end
42
+ end
43
+
44
+ def result_uncached
45
+ error_count = checks.count { |check| check.result.error? }
46
+ ::Avm::Result.success_or_error(
47
+ error_count.zero?,
48
+ "#{error_count} of #{checks.count} subrepos failed"
49
+ )
50
+ end
51
+
52
+ def subpaths
53
+ @subpaths ||= ::Set.new
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Git
5
+ module Vendor
6
+ module Github
7
+ class << self
8
+ def to_ssh_url(url)
9
+ return nil if url.blank?
10
+
11
+ url_no_dot_git = url.gsub(/\.git\z/, '')
12
+
13
+ m = %r{\Ahttps://github.com/([^/]+)/([^/]+)\z}.match(url_no_dot_git.to_s)
14
+ m ? "git@github.com:#{m[1]}/#{m[2]}.git" : url
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Git
5
+ module Vendor
6
+ require_sub __FILE__
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Git
5
+ VERSION = '0.20.2'
6
+ end
7
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils'
4
+ EacRubyUtils::RootModuleSetup.perform __FILE__
5
+
6
+ require 'avm'
7
+ require 'eac_cli'
8
+ require 'eac_config'
9
+ require 'eac_git'
10
+ require 'filesize'
11
+ require 'git'
12
+
13
+ module Avm
14
+ module Git
15
+ end
16
+ end
@@ -0,0 +1,6 @@
1
+ en:
2
+ avm:
3
+ git:
4
+ scms:
5
+ git_subrepo:
6
+ update_version_scm_message: '**/.gitrepo: fix/update.'
@@ -0,0 +1,6 @@
1
+ pt-BR:
2
+ avm:
3
+ git:
4
+ scms:
5
+ git_subrepo:
6
+ update_version_scm_message: '**/.gitrepo: conserta/atualiza.'
@@ -1,6 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- RSpec.describe EacGit::Local::Commit::DiffTreeLine, :git do
3
+ require 'avm/git/commit/diff_tree_line'
4
+
5
+ RSpec.describe Avm::Git::Commit::DiffTreeLine, :git do
4
6
  include_examples 'source_target_fixtures', __FILE__ do
5
7
  def source_data(source_file)
6
8
  File.read(source_file).each_line.map do |line|
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'tmpdir'
3
+ require 'avm/git/commit'
4
4
 
5
- RSpec.describe EacGit::Local::Commit, :git do
5
+ RSpec.describe Avm::Git::Commit, :git do
6
6
  let(:git) { stubbed_git_local_repo }
7
7
 
8
8
  let(:first_commit_sha1) do
@@ -26,9 +26,9 @@ RSpec.describe EacGit::Local::Commit, :git do
26
26
  let(:first_commit) { described_class.new(git, first_commit_sha1) }
27
27
  let(:second_commit) { described_class.new(git, second_commit_sha1) }
28
28
 
29
- describe '#changed_files' do
30
- it { expect(first_commit.changed_files.count).to eq(2) }
31
- it { expect(second_commit.changed_files.count).to eq(3) }
29
+ describe '#files' do
30
+ it { expect(first_commit.files.count).to eq(2) }
31
+ it { expect(second_commit.files.count).to eq(3) }
32
32
 
33
33
  {
34
34
  'first_commit' => %w[a.txt b.txt],
@@ -37,16 +37,16 @@ RSpec.describe EacGit::Local::Commit, :git do
37
37
  filenames.each do |filename|
38
38
  it "find file \"#{filename}\" in commit \"#{commit_name}\"" do
39
39
  commit = send(commit_name)
40
- file = commit.changed_files.find { |f| f.path == filename }
41
- expect(file).to be_a(EacGit::Local::Commit::ChangedFile)
40
+ file = commit.files.find { |f| f.path == filename }
41
+ expect(file).to be_a(Avm::Git::Commit::File)
42
42
  end
43
43
  end
44
44
  end
45
45
  end
46
46
 
47
- describe '#changed_files_size' do
48
- it { expect(first_commit.changed_files_size).to eq(6) }
49
- it { expect(second_commit.changed_files_size).to eq(8) }
47
+ describe '#files_size' do
48
+ it { expect(first_commit.files_size).to eq(6) }
49
+ it { expect(second_commit.files_size).to eq(8) }
50
50
  end
51
51
 
52
52
  describe '#root_child?' do
@@ -0,0 +1,45 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/git/launcher/base'
4
+
5
+ RSpec.describe Avm::Git::Launcher::Base do
6
+ context 'new non-bare repository' do # rubocop:disable RSpec/ContextWording
7
+ let(:repo) do
8
+ r = described_class.new(Dir.mktmpdir)
9
+ r.git
10
+ r
11
+ end
12
+
13
+ describe '#remote_exist?' do
14
+ it { expect(repo.remote_exist?('origin')).to be(false) }
15
+
16
+ context 'after remote added' do # rubocop:disable RSpec/ContextWording
17
+ before { repo.execute!('remote', 'add', 'origin', 'file:///path/to/remote') }
18
+
19
+ it { expect(repo.remote_exist?('origin')).to be(true) }
20
+
21
+ context 'after remote removed' do # rubocop:disable RSpec/ContextWording
22
+ before { repo.execute!('remote', 'remove', 'origin') }
23
+
24
+ it { expect(repo.remote_exist?('origin')).to be(false) }
25
+ end
26
+ end
27
+ end
28
+
29
+ describe '#assert_remote_url' do
30
+ it { expect(repo.remote_exist?('origin')).to be(false) }
31
+
32
+ context 'after asserted remote URL "/remote1"' do # rubocop:disable RSpec/ContextWording
33
+ before { repo.assert_remote_url('origin', '/remote1') }
34
+
35
+ it { expect(repo.git.remote('origin').url).to eq('/remote1') }
36
+
37
+ context 'after asserted remote URL "/remote2"' do # rubocop:disable RSpec/ContextWording
38
+ before { repo.assert_remote_url('origin', '/remote2') }
39
+
40
+ it { expect(repo.git.remote('origin').url).to eq('/remote2') }
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,83 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/git/launcher_stereotypes/git_subrepo/publish'
4
+ require 'avm/launcher/publish/check_result'
5
+
6
+ RSpec.describe Avm::Git::LauncherStereotypes::GitSubrepo::Publish do
7
+ include_context 'with_launcher'
8
+ include_examples 'with_config', __FILE__
9
+
10
+ describe '#check' do
11
+ context 'with clean context' do
12
+ let(:settings_path) { File.join(__dir__, 'publish_spec_settings.yml') }
13
+
14
+ before do
15
+ temp_context(settings_path)
16
+ end
17
+
18
+ context 'with app with subrepo' do
19
+ let(:remote_repos) { init_remote('mylib') }
20
+
21
+ before do
22
+ wc = init_git('mylib')
23
+ touch_commit(wc, 'file1')
24
+ wc.execute!('remote', 'add', 'publish', remote_repos)
25
+ wc.execute!('push', 'publish', 'master')
26
+ end
27
+
28
+ let!(:app) do # rubocop:disable RSpec/ScatteredLet
29
+ r = init_git('app')
30
+ touch_commit(r, 'file2')
31
+ r.execute!('subrepo', 'clone', remote_repos, 'mylib')
32
+ launcher_controller.application_source_path('app', r.root_path)
33
+ r
34
+ end
35
+
36
+ it { check_publish_status(:updated) } # rubocop:disable RSpec/NoExpectationExample
37
+
38
+ context 'after subrepo updated and before publishing' do # rubocop:disable RSpec/ContextWording
39
+ before do
40
+ Avm::Launcher::Context.current.publish_options[:confirm] = true
41
+ touch_commit(app, 'mylib/file3')
42
+ end
43
+
44
+ it { expect(Avm::Launcher::Context.current.publish_options[:confirm]).to be(true) }
45
+ it { check_publish_status(:pending) } # rubocop:disable RSpec/NoExpectationExample
46
+
47
+ context 'after publishing' do # rubocop:disable RSpec/ContextWording
48
+ before { described_class.new(app_mylib_instance).run }
49
+
50
+ it { check_publish_status(:updated) } # rubocop:disable RSpec/NoExpectationExample
51
+
52
+ context 'after reset context' do # rubocop:disable RSpec/ContextWording
53
+ before do
54
+ sleep 2
55
+ launcher_controller.temp_context(settings_path)
56
+ end
57
+
58
+ it { check_publish_status(:updated) } # rubocop:disable RSpec/NoExpectationExample
59
+ end
60
+ end
61
+ end
62
+
63
+ def check_publish_status(status_key) # rubocop:disable Metrics/AbcSize
64
+ instance = app_mylib_instance
65
+ expect(instance).to be_a(Avm::Launcher::Instances::Base)
66
+ expect(instance.stereotypes).to include(Avm::Git::LauncherStereotypes::GitSubrepo)
67
+
68
+ status = Avm::Launcher::Publish::CheckResult.const_get("STATUS_#{status_key}".upcase)
69
+ publish = described_class.new(instance)
70
+ expect(publish.check.status).to(
71
+ eq(status),
72
+ "Expected: #{status}, Actual: " \
73
+ "#{publish.check.status}, Message: #{publish.check.message}"
74
+ )
75
+ end
76
+
77
+ def app_mylib_instance
78
+ Avm::Launcher::Context.current.instance('/app/mylib')
79
+ end
80
+ end
81
+ end
82
+ end
83
+ end
@@ -0,0 +1,5 @@
1
+ ---
2
+ app:
3
+ avm_type: Application
4
+ mylib:
5
+ avm_type: Application
@@ -0,0 +1,6 @@
1
+ ---
2
+ Instances:
3
+ /app:
4
+ git_current_revision: master
5
+ /mylib:
6
+ git_current_revision: master
@@ -0,0 +1,53 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/git/launcher_stereotypes/git_subrepo/warp'
4
+
5
+ RSpec.describe Avm::Git::LauncherStereotypes::GitSubrepo::Warp do
6
+ include_context 'with_config', __FILE__
7
+ include_context 'with_launcher'
8
+
9
+ let(:repos) { init_remote('mylib_repos') }
10
+ let(:app1) { init_git('app1') } # rubocop:disable RSpec/IndexedLet
11
+ let(:app2) { init_git('app2') } # rubocop:disable RSpec/IndexedLet
12
+
13
+ describe '#unknown' do
14
+ before do
15
+ temp_context(File.join(__dir__, 'warp_spec_settings.yml'))
16
+
17
+ wc = init_git('mylib_wc')
18
+ touch_commit(wc, 'file1')
19
+ wc.execute!('remote', 'add', 'origin', repos)
20
+ wc.execute!('push', 'origin', 'master')
21
+
22
+ touch_commit(app1, 'file2')
23
+ app1.execute!('subrepo', 'clone', repos, 'mylib')
24
+ launcher_controller.application_source_path('app1', app1.root_path)
25
+
26
+ touch_commit(app2, 'file3')
27
+ app2.execute!('subrepo', 'clone', repos, 'mylib')
28
+ touch_commit(app2, 'mylib/file4')
29
+ app2.execute!('subrepo', 'push', 'mylib')
30
+ end
31
+
32
+ it 'revisions should match' do # rubocop:disable RSpec/ExampleLength, RSpec/MultipleExpectations
33
+ master_ref = repos.rev_parse('master')
34
+ expect(master_ref.present?).to be true
35
+
36
+ master_ref_previous = repos.rev_parse('master^')
37
+ expect(master_ref_previous.present?).to be true
38
+
39
+ app2.execute!('subrepo', 'branch', 'mylib', '--fetch', '--force')
40
+ expect(app2.rev_parse('subrepo/mylib')).to eq master_ref
41
+
42
+ app1.execute!('subrepo', 'branch', 'mylib', '--fetch', '--force')
43
+ expect(app1.rev_parse('subrepo/mylib')).to eq master_ref_previous
44
+
45
+ instance = Avm::Launcher::Context.current.instance('/app1/mylib')
46
+ expect(instance).to be_a Avm::Launcher::Instances::Base
47
+ warp = instance.warped
48
+ expect(warp).to be_a described_class
49
+ wgit = Avm::Git::Launcher::Base.new(warp)
50
+ expect(wgit.rev_parse('HEAD')).to eq master_ref_previous
51
+ end
52
+ end
53
+ end