avm-tools 0.128.0 → 0.130.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (413) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +0 -7
  3. data/lib/avm/tools/runner/app_src.rb +4 -14
  4. data/lib/avm/tools/runner/source_generate.rb +2 -35
  5. data/lib/avm/tools/version.rb +1 -1
  6. metadata +44 -411
  7. data/lib/avm/eac_wordpress_base0/apache_host.rb +0 -25
  8. data/lib/avm/eac_wordpress_base0/deploy.rb +0 -10
  9. data/lib/avm/eac_wordpress_base0/instance.rb +0 -24
  10. data/lib/avm/eac_wordpress_base0.rb +0 -9
  11. data/lib/avm/rails.rb +0 -9
  12. data/lib/avm/ruby/bundler.rb +0 -11
  13. data/lib/avm/ruby/gems/generator.rb +0 -165
  14. data/lib/avm/ruby/gems.rb +0 -11
  15. data/lib/avm/ruby.rb +0 -9
  16. data/lib/avm/tools/runner/eac_wordpress_base0.rb +0 -15
  17. data/lib/avm/tools/runner/ruby/gems/generate.rb +0 -39
  18. data/lib/avm/tools/runner/ruby/gems.rb +0 -19
  19. data/sub/avm-eac_postgresql_base0/Gemfile +0 -5
  20. data/sub/avm-eac_postgresql_base0/avm-eac_postgresql_base0.gemspec +0 -19
  21. data/sub/avm-eac_postgresql_base0/lib/avm/eac_postgresql_base0/instance/assert.rb +0 -77
  22. data/sub/avm-eac_postgresql_base0/lib/avm/eac_postgresql_base0/instance/data_unit.rb +0 -39
  23. data/sub/avm-eac_postgresql_base0/lib/avm/eac_postgresql_base0/instance.rb +0 -74
  24. data/sub/avm-eac_postgresql_base0/lib/avm/eac_postgresql_base0/instance_with.rb +0 -18
  25. data/sub/avm-eac_postgresql_base0/lib/avm/eac_postgresql_base0/version.rb +0 -7
  26. data/sub/avm-eac_postgresql_base0/lib/avm/eac_postgresql_base0.rb +0 -9
  27. data/sub/avm-eac_postgresql_base0/spec/rubocop_spec.rb +0 -3
  28. data/sub/avm-eac_postgresql_base0/spec/spec_helper.rb +0 -4
  29. data/sub/avm-eac_ubuntu_base0/Gemfile +0 -5
  30. data/sub/avm-eac_ubuntu_base0/avm-eac_ubuntu_base0.gemspec +0 -20
  31. data/sub/avm-eac_ubuntu_base0/lib/avm/eac_ubuntu_base0/apache/resource.rb +0 -59
  32. data/sub/avm-eac_ubuntu_base0/lib/avm/eac_ubuntu_base0/apache.rb +0 -26
  33. data/sub/avm-eac_ubuntu_base0/lib/avm/eac_ubuntu_base0/docker_image.rb +0 -29
  34. data/sub/avm-eac_ubuntu_base0/lib/avm/eac_ubuntu_base0/instances/base.rb +0 -22
  35. data/sub/avm-eac_ubuntu_base0/lib/avm/eac_ubuntu_base0/instances.rb +0 -11
  36. data/sub/avm-eac_ubuntu_base0/lib/avm/eac_ubuntu_base0/runners/base/docker.rb +0 -19
  37. data/sub/avm-eac_ubuntu_base0/lib/avm/eac_ubuntu_base0/runners/base.rb +0 -28
  38. data/sub/avm-eac_ubuntu_base0/lib/avm/eac_ubuntu_base0/version.rb +0 -7
  39. data/sub/avm-eac_ubuntu_base0/lib/avm/eac_ubuntu_base0.rb +0 -9
  40. data/sub/avm-eac_ubuntu_base0/spec/lib/avm/eac_ubuntu_base0/docker_image_spec.rb +0 -16
  41. data/sub/avm-eac_ubuntu_base0/spec/lib/avm/eac_ubuntu_base0/runners/base/docker_spec.rb +0 -14
  42. data/sub/avm-eac_ubuntu_base0/spec/lib/avm/eac_ubuntu_base0/runners/base_spec.rb +0 -7
  43. data/sub/avm-eac_ubuntu_base0/spec/rubocop_spec.rb +0 -3
  44. data/sub/avm-eac_ubuntu_base0/spec/spec_helper.rb +0 -4
  45. data/sub/avm-eac_ubuntu_base0/template/avm/eac_ubuntu_base0/docker_image/Dockerfile.template +0 -24
  46. data/sub/avm-files/Gemfile +0 -5
  47. data/sub/avm-files/avm-files.gemspec +0 -21
  48. data/sub/avm-files/lib/avm/files/appendable/file_content.rb +0 -24
  49. data/sub/avm-files/lib/avm/files/appendable/plain_directory.rb +0 -25
  50. data/sub/avm-files/lib/avm/files/appendable/resource_base.rb +0 -13
  51. data/sub/avm-files/lib/avm/files/appendable/tar_output_command.rb +0 -26
  52. data/sub/avm-files/lib/avm/files/appendable/templatized_directory.rb +0 -29
  53. data/sub/avm-files/lib/avm/files/appendable.rb +0 -55
  54. data/sub/avm-files/lib/avm/files/appender.rb +0 -11
  55. data/sub/avm-files/lib/avm/files/deploy.rb +0 -71
  56. data/sub/avm-files/lib/avm/files/formatter/formats/base.rb +0 -62
  57. data/sub/avm-files/lib/avm/files/formatter/formats/generic_plain.rb +0 -34
  58. data/sub/avm-files/lib/avm/files/formatter/formats/html.rb +0 -45
  59. data/sub/avm-files/lib/avm/files/formatter/formats/javascript.rb +0 -24
  60. data/sub/avm-files/lib/avm/files/formatter/formats/json.rb +0 -27
  61. data/sub/avm-files/lib/avm/files/formatter/formats/php.rb +0 -22
  62. data/sub/avm-files/lib/avm/files/formatter/formats/python.rb +0 -22
  63. data/sub/avm-files/lib/avm/files/formatter/formats/ruby.rb +0 -22
  64. data/sub/avm-files/lib/avm/files/formatter/formats/xml.rb +0 -28
  65. data/sub/avm-files/lib/avm/files/formatter/formats.rb +0 -13
  66. data/sub/avm-files/lib/avm/files/formatter/utf8_assert.rb +0 -74
  67. data/sub/avm-files/lib/avm/files/formatter.rb +0 -90
  68. data/sub/avm-files/lib/avm/files/version.rb +0 -7
  69. data/sub/avm-files/lib/avm/files.rb +0 -9
  70. data/sub/avm-files/spec/rubocop_spec.rb +0 -3
  71. data/sub/avm-files/spec/spec_helper.rb +0 -4
  72. data/sub/avm-git/Gemfile +0 -5
  73. data/sub/avm-git/avm-git.gemspec +0 -21
  74. data/sub/avm-git/lib/avm/git/auto_commit/commit_info.rb +0 -23
  75. data/sub/avm-git/lib/avm/git/auto_commit/rules/base.rb +0 -39
  76. data/sub/avm-git/lib/avm/git/auto_commit/rules/last.rb +0 -19
  77. data/sub/avm-git/lib/avm/git/auto_commit/rules/manual.rb +0 -45
  78. data/sub/avm-git/lib/avm/git/auto_commit/rules/new.rb +0 -24
  79. data/sub/avm-git/lib/avm/git/auto_commit/rules/nth.rb +0 -31
  80. data/sub/avm-git/lib/avm/git/auto_commit/rules/unique.rb +0 -21
  81. data/sub/avm-git/lib/avm/git/auto_commit/rules.rb +0 -31
  82. data/sub/avm-git/lib/avm/git/auto_commit_path/ruby.rb +0 -20
  83. data/sub/avm-git/lib/avm/git/auto_commit_path.rb +0 -28
  84. data/sub/avm-git/lib/avm/git/commit/class_methods.rb +0 -31
  85. data/sub/avm-git/lib/avm/git/commit/deploy.rb +0 -38
  86. data/sub/avm-git/lib/avm/git/commit/deploy_methods.rb +0 -19
  87. data/sub/avm-git/lib/avm/git/commit/diff_tree_line.rb +0 -32
  88. data/sub/avm-git/lib/avm/git/commit/file.rb +0 -46
  89. data/sub/avm-git/lib/avm/git/commit.rb +0 -59
  90. data/sub/avm-git/lib/avm/git/file_auto_fixup.rb +0 -83
  91. data/sub/avm-git/lib/avm/git/issue/complete/commits.rb +0 -42
  92. data/sub/avm-git/lib/avm/git/issue/complete/git_subrepos.rb +0 -23
  93. data/sub/avm-git/lib/avm/git/issue/complete/local_branch.rb +0 -61
  94. data/sub/avm-git/lib/avm/git/issue/complete/local_tag.rb +0 -39
  95. data/sub/avm-git/lib/avm/git/issue/complete/push.rb +0 -60
  96. data/sub/avm-git/lib/avm/git/issue/complete/remote.rb +0 -33
  97. data/sub/avm-git/lib/avm/git/issue/complete/test.rb +0 -40
  98. data/sub/avm-git/lib/avm/git/issue/complete/tracker.rb +0 -28
  99. data/sub/avm-git/lib/avm/git/issue/complete/validation.rb +0 -39
  100. data/sub/avm-git/lib/avm/git/issue/complete/validations.rb +0 -53
  101. data/sub/avm-git/lib/avm/git/issue/complete/working_tree.rb +0 -19
  102. data/sub/avm-git/lib/avm/git/issue/complete.rb +0 -66
  103. data/sub/avm-git/lib/avm/git/issue/deliver.rb +0 -56
  104. data/sub/avm-git/lib/avm/git/issue.rb +0 -11
  105. data/sub/avm-git/lib/avm/git/organize/reference_update.rb +0 -34
  106. data/sub/avm-git/lib/avm/git/organize/repository.rb +0 -76
  107. data/sub/avm-git/lib/avm/git/organize.rb +0 -11
  108. data/sub/avm-git/lib/avm/git/revision_test.rb +0 -105
  109. data/sub/avm-git/lib/avm/git/scms/git/change_tracker.rb +0 -35
  110. data/sub/avm-git/lib/avm/git/scms/git/commit.rb +0 -55
  111. data/sub/avm-git/lib/avm/git/scms/git.rb +0 -73
  112. data/sub/avm-git/lib/avm/git/scms/git_subrepo.rb +0 -39
  113. data/sub/avm-git/lib/avm/git/scms/provider.rb +0 -19
  114. data/sub/avm-git/lib/avm/git/scms.rb +0 -11
  115. data/sub/avm-git/lib/avm/git/subrepo_check/parent.rb +0 -51
  116. data/sub/avm-git/lib/avm/git/subrepo_check/remote.rb +0 -89
  117. data/sub/avm-git/lib/avm/git/subrepo_check/show_result.rb +0 -32
  118. data/sub/avm-git/lib/avm/git/subrepo_check.rb +0 -38
  119. data/sub/avm-git/lib/avm/git/subrepo_checks.rb +0 -59
  120. data/sub/avm-git/lib/avm/git/version.rb +0 -7
  121. data/sub/avm-git/lib/avm/git.rb +0 -11
  122. data/sub/avm-git/spec/lib/avm/git/auto_commit_path_spec.rb +0 -21
  123. data/sub/avm-git/spec/lib/avm/git/commit/deploy_spec.rb +0 -93
  124. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec.rb +0 -13
  125. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/add.source.out +0 -1
  126. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/add.target.yaml +0 -7
  127. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/modify.source.out +0 -1
  128. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/modify.target.yaml +0 -7
  129. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/remove.source.out +0 -1
  130. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/remove.target.yaml +0 -7
  131. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/rename.source.out +0 -2
  132. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/rename.target.yaml +0 -13
  133. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/rename_modify.source.out +0 -2
  134. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/rename_modify.target.yaml +0 -13
  135. data/sub/avm-git/spec/lib/avm/git/commit_spec.rb +0 -56
  136. data/sub/avm-git/spec/lib/avm/git/scms/git_spec.rb +0 -8
  137. data/sub/avm-git/spec/lib/avm/git/scms/git_subrepo_spec.rb +0 -8
  138. data/sub/avm-git/spec/rubocop_spec.rb +0 -3
  139. data/sub/avm-git/spec/spec_helper.rb +0 -4
  140. data/sub/eac_git/Gemfile +0 -5
  141. data/sub/eac_git/eac_git.gemspec +0 -20
  142. data/sub/eac_git/lib/eac_git/executables.rb +0 -48
  143. data/sub/eac_git/lib/eac_git/local/branch.rb +0 -27
  144. data/sub/eac_git/lib/eac_git/local/commit/archive.rb +0 -19
  145. data/sub/eac_git/lib/eac_git/local/commit/changed_file.rb +0 -46
  146. data/sub/eac_git/lib/eac_git/local/commit/diff_tree_line.rb +0 -32
  147. data/sub/eac_git/lib/eac_git/local/commit.rb +0 -73
  148. data/sub/eac_git/lib/eac_git/local/dirty_files.rb +0 -37
  149. data/sub/eac_git/lib/eac_git/local/log.rb +0 -17
  150. data/sub/eac_git/lib/eac_git/local/remote.rb +0 -27
  151. data/sub/eac_git/lib/eac_git/local/remotes.rb +0 -20
  152. data/sub/eac_git/lib/eac_git/local/subrepo/config.rb +0 -43
  153. data/sub/eac_git/lib/eac_git/local/subrepo.rb +0 -49
  154. data/sub/eac_git/lib/eac_git/local.rb +0 -126
  155. data/sub/eac_git/lib/eac_git/remote/ls_result.rb +0 -20
  156. data/sub/eac_git/lib/eac_git/remote.rb +0 -19
  157. data/sub/eac_git/lib/eac_git/rspec/setup.rb +0 -23
  158. data/sub/eac_git/lib/eac_git/rspec/stubbed_git_local_repo.rb +0 -71
  159. data/sub/eac_git/lib/eac_git/rspec.rb +0 -9
  160. data/sub/eac_git/lib/eac_git/version.rb +0 -5
  161. data/sub/eac_git/lib/eac_git.rb +0 -7
  162. data/sub/eac_git/spec/lib/eac_git/executables_spec.rb +0 -13
  163. data/sub/eac_git/spec/lib/eac_git/local/commit/diff_tree_line_spec.rb +0 -13
  164. data/sub/eac_git/spec/lib/eac_git/local/commit/diff_tree_line_spec_files/add.source.out +0 -1
  165. data/sub/eac_git/spec/lib/eac_git/local/commit/diff_tree_line_spec_files/add.target.yaml +0 -7
  166. data/sub/eac_git/spec/lib/eac_git/local/commit/diff_tree_line_spec_files/modify.source.out +0 -1
  167. data/sub/eac_git/spec/lib/eac_git/local/commit/diff_tree_line_spec_files/modify.target.yaml +0 -7
  168. data/sub/eac_git/spec/lib/eac_git/local/commit/diff_tree_line_spec_files/remove.source.out +0 -1
  169. data/sub/eac_git/spec/lib/eac_git/local/commit/diff_tree_line_spec_files/remove.target.yaml +0 -7
  170. data/sub/eac_git/spec/lib/eac_git/local/commit/diff_tree_line_spec_files/rename.source.out +0 -2
  171. data/sub/eac_git/spec/lib/eac_git/local/commit/diff_tree_line_spec_files/rename.target.yaml +0 -13
  172. data/sub/eac_git/spec/lib/eac_git/local/commit/diff_tree_line_spec_files/rename_modify.source.out +0 -2
  173. data/sub/eac_git/spec/lib/eac_git/local/commit/diff_tree_line_spec_files/rename_modify.target.yaml +0 -13
  174. data/sub/eac_git/spec/lib/eac_git/local/commit_spec.rb +0 -58
  175. data/sub/eac_git/spec/rubocop_spec.rb +0 -3
  176. data/sub/eac_git/spec/spec_helper.rb +0 -4
  177. data/sub/eac_git/vendor/git-subrepo/Changes +0 -110
  178. data/sub/eac_git/vendor/git-subrepo/Intro.pod +0 -509
  179. data/sub/eac_git/vendor/git-subrepo/License +0 -21
  180. data/sub/eac_git/vendor/git-subrepo/Makefile +0 -82
  181. data/sub/eac_git/vendor/git-subrepo/Meta +0 -28
  182. data/sub/eac_git/vendor/git-subrepo/ReadMe.pod +0 -698
  183. data/sub/eac_git/vendor/git-subrepo/doc/comparison.swim +0 -35
  184. data/sub/eac_git/vendor/git-subrepo/doc/git-subrepo.swim +0 -608
  185. data/sub/eac_git/vendor/git-subrepo/doc/intro-to-subrepo.swim +0 -387
  186. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/Changes +0 -15
  187. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/License +0 -21
  188. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/Makefile +0 -45
  189. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/Meta +0 -28
  190. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/ReadMe.pod +0 -77
  191. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/bin/bash+ +0 -43
  192. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/doc/bash+.swim +0 -61
  193. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/lib/bash+.bash +0 -92
  194. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/man/man1/bash+.1 +0 -134
  195. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/man/man3/bash+.3 +0 -134
  196. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/test/base.t +0 -12
  197. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/test/fcopy.t +0 -22
  198. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/test/lib/foo/bar.bash +0 -3
  199. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/test/lib/foo/foo.bash +0 -3
  200. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/test/source-bash+-std.t +0 -18
  201. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/test/source-bash+.t +0 -23
  202. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/test/test.bash +0 -70
  203. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/test/use.t +0 -19
  204. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/Changes +0 -15
  205. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/License +0 -21
  206. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/Makefile +0 -20
  207. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/Meta +0 -30
  208. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ReadMe.pod +0 -115
  209. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/doc/test-more.swim +0 -89
  210. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/Changes +0 -15
  211. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/License +0 -21
  212. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/Makefile +0 -45
  213. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/Meta +0 -28
  214. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/ReadMe.pod +0 -77
  215. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/bin/bash+ +0 -43
  216. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/doc/bash+.swim +0 -61
  217. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/lib/bash+.bash +0 -92
  218. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/man/man1/bash+.1 +0 -134
  219. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/man/man3/bash+.3 +0 -134
  220. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/base.t +0 -12
  221. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/fcopy.t +0 -22
  222. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/lib/foo/bar.bash +0 -3
  223. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/lib/foo/foo.bash +0 -3
  224. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/source-bash+-std.t +0 -18
  225. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/source-bash+.t +0 -23
  226. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/test.bash +0 -70
  227. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/use.t +0 -19
  228. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/Changes +0 -15
  229. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/License +0 -21
  230. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/Makefile +0 -37
  231. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/Meta +0 -28
  232. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/ReadMe.pod +0 -66
  233. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/doc/test-tap.swim +0 -48
  234. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/lib/test/tap.bash +0 -153
  235. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/man/man3/test-tap.3 +0 -119
  236. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/bail_out.t +0 -13
  237. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/done.t +0 -10
  238. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/fail.t +0 -20
  239. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/fail_fast.t +0 -15
  240. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/helper.bash +0 -9
  241. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/pass.t +0 -9
  242. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/plan.t +0 -10
  243. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/skip_all.t +0 -20
  244. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/tap.t +0 -13
  245. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/test/bail.t +0 -14
  246. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/test/fail.t +0 -7
  247. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/test/fail_fast.t +0 -12
  248. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/test/skip-all-init.t +0 -8
  249. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/test/skip-all-plan.t +0 -9
  250. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/lib/test/more.bash +0 -95
  251. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/man/man3/test-more.3 +0 -173
  252. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/test/fail.t +0 -20
  253. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/test/more.t +0 -20
  254. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/test/pass.t +0 -9
  255. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/test/setup +0 -8
  256. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/test/skip_all.t +0 -11
  257. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/test/test/fail1.t +0 -12
  258. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/test/test/skip_all.t +0 -10
  259. data/sub/eac_git/vendor/git-subrepo/lib/git-subrepo +0 -1903
  260. data/sub/eac_git/vendor/git-subrepo/lib/git-subrepo.d/bash+.bash +0 -1
  261. data/sub/eac_git/vendor/git-subrepo/lib/git-subrepo.d/help-functions.bash +0 -339
  262. data/sub/eac_git/vendor/git-subrepo/man/man1/git-subrepo.1 +0 -743
  263. data/sub/eac_git/vendor/git-subrepo/note/0.4.0 +0 -12
  264. data/sub/eac_git/vendor/git-subrepo/note/AllGitCmds +0 -148
  265. data/sub/eac_git/vendor/git-subrepo/note/Cases +0 -32
  266. data/sub/eac_git/vendor/git-subrepo/note/Commands +0 -33
  267. data/sub/eac_git/vendor/git-subrepo/note/Dags +0 -199
  268. data/sub/eac_git/vendor/git-subrepo/note/Gists +0 -7
  269. data/sub/eac_git/vendor/git-subrepo/note/Links +0 -25
  270. data/sub/eac_git/vendor/git-subrepo/note/Plugins +0 -10
  271. data/sub/eac_git/vendor/git-subrepo/note/Spec +0 -39
  272. data/sub/eac_git/vendor/git-subrepo/note/Story1 +0 -57
  273. data/sub/eac_git/vendor/git-subrepo/note/ToDo +0 -55
  274. data/sub/eac_git/vendor/git-subrepo/note/design.swim +0 -137
  275. data/sub/eac_git/vendor/git-subrepo/note/design2.swim +0 -85
  276. data/sub/eac_git/vendor/git-subrepo/note/init-test +0 -38
  277. data/sub/eac_git/vendor/git-subrepo/note/pull-dance.txt +0 -18
  278. data/sub/eac_git/vendor/git-subrepo/note/recreate-rebase-conflict.sh +0 -56
  279. data/sub/eac_git/vendor/git-subrepo/note/subtree-rebase-fail-example/test.bash +0 -29
  280. data/sub/eac_git/vendor/git-subrepo/note/test-subrepo-push.sh +0 -69
  281. data/sub/eac_git/vendor/git-subrepo/note/test.sh +0 -58
  282. data/sub/eac_git/vendor/git-subrepo/pkg/bin/generate-completion.pl +0 -210
  283. data/sub/eac_git/vendor/git-subrepo/pkg/bin/generate-help-functions.pl +0 -89
  284. data/sub/eac_git/vendor/git-subrepo/share/completion.bash +0 -42
  285. data/sub/eac_git/vendor/git-subrepo/share/enable-completion.sh +0 -50
  286. data/sub/eac_git/vendor/git-subrepo/share/git-completion.bash +0 -2738
  287. data/sub/eac_git/vendor/git-subrepo/share/zsh-completion/_git-subrepo +0 -81
  288. data/sub/eac_git/vendor/git-subrepo/test/branch-all.t +0 -41
  289. data/sub/eac_git/vendor/git-subrepo/test/branch-rev-list-one-path.t +0 -43
  290. data/sub/eac_git/vendor/git-subrepo/test/branch-rev-list.t +0 -47
  291. data/sub/eac_git/vendor/git-subrepo/test/branch.t +0 -52
  292. data/sub/eac_git/vendor/git-subrepo/test/clean.t +0 -43
  293. data/sub/eac_git/vendor/git-subrepo/test/clone-annotated-tag.t +0 -45
  294. data/sub/eac_git/vendor/git-subrepo/test/clone.t +0 -107
  295. data/sub/eac_git/vendor/git-subrepo/test/compile.t +0 -19
  296. data/sub/eac_git/vendor/git-subrepo/test/config.t +0 -58
  297. data/sub/eac_git/vendor/git-subrepo/test/encode.t +0 -91
  298. data/sub/eac_git/vendor/git-subrepo/test/error.t +0 -171
  299. data/sub/eac_git/vendor/git-subrepo/test/fetch.t +0 -43
  300. data/sub/eac_git/vendor/git-subrepo/test/gitignore.t +0 -61
  301. data/sub/eac_git/vendor/git-subrepo/test/init.t +0 -64
  302. data/sub/eac_git/vendor/git-subrepo/test/issue29.t +0 -98
  303. data/sub/eac_git/vendor/git-subrepo/test/issue95.t +0 -98
  304. data/sub/eac_git/vendor/git-subrepo/test/issue96.t +0 -96
  305. data/sub/eac_git/vendor/git-subrepo/test/pull-all.t +0 -38
  306. data/sub/eac_git/vendor/git-subrepo/test/pull-merge.t +0 -113
  307. data/sub/eac_git/vendor/git-subrepo/test/pull-message.t +0 -88
  308. data/sub/eac_git/vendor/git-subrepo/test/pull-new-branch.t +0 -58
  309. data/sub/eac_git/vendor/git-subrepo/test/pull-ours.t +0 -90
  310. data/sub/eac_git/vendor/git-subrepo/test/pull-theirs.t +0 -82
  311. data/sub/eac_git/vendor/git-subrepo/test/pull-twice.t +0 -44
  312. data/sub/eac_git/vendor/git-subrepo/test/pull-worktree.t +0 -40
  313. data/sub/eac_git/vendor/git-subrepo/test/pull.t +0 -99
  314. data/sub/eac_git/vendor/git-subrepo/test/push-after-init.t +0 -51
  315. data/sub/eac_git/vendor/git-subrepo/test/push-force.t +0 -56
  316. data/sub/eac_git/vendor/git-subrepo/test/push-new-branch.t +0 -61
  317. data/sub/eac_git/vendor/git-subrepo/test/push-no-changes.t +0 -29
  318. data/sub/eac_git/vendor/git-subrepo/test/push-squash.t +0 -56
  319. data/sub/eac_git/vendor/git-subrepo/test/push.t +0 -176
  320. data/sub/eac_git/vendor/git-subrepo/test/reclone.t +0 -45
  321. data/sub/eac_git/vendor/git-subrepo/test/repo/bar/HEAD +0 -1
  322. data/sub/eac_git/vendor/git-subrepo/test/repo/bar/config +0 -4
  323. data/sub/eac_git/vendor/git-subrepo/test/repo/bar/objects/1f/0c4b264caed0126814a0ede851a1e0b4e16ae6 +0 -0
  324. data/sub/eac_git/vendor/git-subrepo/test/repo/bar/objects/87/46903fdb1b9c2101377880125917c2e05b4d69 +0 -0
  325. data/sub/eac_git/vendor/git-subrepo/test/repo/bar/objects/94/c86ffc745232d89f78c6f895e11e71272518db +0 -0
  326. data/sub/eac_git/vendor/git-subrepo/test/repo/bar/objects/c6/76c57b6576743fa56278527aa60ebd2e202a7c +0 -0
  327. data/sub/eac_git/vendor/git-subrepo/test/repo/bar/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391 +0 -0
  328. data/sub/eac_git/vendor/git-subrepo/test/repo/bar/objects/f6/2a8ff3feadf39b0a98f1a86ec6d1eb33858ee9 +0 -0
  329. data/sub/eac_git/vendor/git-subrepo/test/repo/bar/refs/heads/master +0 -1
  330. data/sub/eac_git/vendor/git-subrepo/test/repo/bar/refs/tags/A +0 -1
  331. data/sub/eac_git/vendor/git-subrepo/test/repo/foo/HEAD +0 -1
  332. data/sub/eac_git/vendor/git-subrepo/test/repo/foo/config +0 -4
  333. data/sub/eac_git/vendor/git-subrepo/test/repo/foo/objects/a0/f4cdaaf533a936296cdebbed8206c3b9ededa8 +0 -0
  334. data/sub/eac_git/vendor/git-subrepo/test/repo/foo/objects/e2/1291a1ad392a9d4c51dd9586804f1467b28afd +0 -0
  335. data/sub/eac_git/vendor/git-subrepo/test/repo/foo/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391 +0 -0
  336. data/sub/eac_git/vendor/git-subrepo/test/repo/foo/refs/heads/master +0 -1
  337. data/sub/eac_git/vendor/git-subrepo/test/repo/init/HEAD +0 -1
  338. data/sub/eac_git/vendor/git-subrepo/test/repo/init/config +0 -5
  339. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/11/523f5dcf03b4c89b592dc8a3d0308f68da2386 +0 -0
  340. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/14/2addf8ec5f37334e837440122c62f2c68a29ad +0 -0
  341. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/32/5180321750a21cd7a4e7ecda319e557a4f6a09 +0 -2
  342. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/3d/918c6901c02f43af5d31779dd5e1f9166aeb36 +0 -0
  343. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/3e/4cb596066dce63ba4d047abddb677389b65e19 +0 -0
  344. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/4b/6e53022e7a04f07887697e4f3d7c377fd9822b +0 -0
  345. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/58/931fc1bd559b59c41ea738fc7ad04f9ad01bd3 +0 -0
  346. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/5e/c0c28e1b806f25efdca18fcf7a74b49c3755bd +0 -0
  347. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/75/fa6584e748f57eff06eebdc55e9ac21d4fcbf2 +0 -1
  348. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/80/2d5edbd5e1cb7fca82b5bd38e7c8a0a496fb20 +0 -0
  349. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/94/7b3d714c38791e95ad6f928b48c98bb8708acd +0 -0
  350. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/95/e1f2df3f4d5f3d7a60588c25a7ca8a913d3c2a +0 -1
  351. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/b1/5f4a7666baf40d949548ead946a3370e273479 +0 -0
  352. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/c3/ee8978c4c5d84c3b7d00ba8e5906933d027882 +0 -0
  353. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/c8/b0bffbc405ef3fad7354ff833fbec36d67ddfa +0 -3
  354. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/dd/8bdb934ec848137f011fe423b185505c343626 +0 -2
  355. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/e2/9be58c767cfeb27235c995d293a7d71aac0135 +0 -2
  356. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/ee/1224401fc6aac595145fa727dcf6706ac8aec1 +0 -1
  357. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/f1/cc1a657b2e805c400f5dcaaa76bd29c6178b1b +0 -0
  358. data/sub/eac_git/vendor/git-subrepo/test/repo/init/refs/heads/master +0 -1
  359. data/sub/eac_git/vendor/git-subrepo/test/setup +0 -205
  360. data/sub/eac_git/vendor/git-subrepo/test/status.t +0 -68
  361. data/sub/eac_git/vendor/git-subrepo/test/submodule.t +0 -45
  362. data/sub/eac_rest/Gemfile +0 -5
  363. data/sub/eac_rest/eac_rest.gemspec +0 -18
  364. data/sub/eac_rest/lib/eac_rest/api.rb +0 -50
  365. data/sub/eac_rest/lib/eac_rest/entity.rb +0 -16
  366. data/sub/eac_rest/lib/eac_rest/request.rb +0 -95
  367. data/sub/eac_rest/lib/eac_rest/response.rb +0 -112
  368. data/sub/eac_rest/lib/eac_rest/version.rb +0 -5
  369. data/sub/eac_rest/lib/eac_rest.rb +0 -7
  370. data/sub/eac_rest/spec/rubocop_spec.rb +0 -3
  371. data/sub/eac_rest/spec/spec_helper.rb +0 -4
  372. data/sub/eac_templates/Gemfile +0 -5
  373. data/sub/eac_templates/eac_templates.gemspec +0 -19
  374. data/sub/eac_templates/lib/eac_templates/core_ext.rb +0 -4
  375. data/sub/eac_templates/lib/eac_templates/directory.rb +0 -108
  376. data/sub/eac_templates/lib/eac_templates/file.rb +0 -48
  377. data/sub/eac_templates/lib/eac_templates/from_all_gems.rb +0 -4
  378. data/sub/eac_templates/lib/eac_templates/from_gem.rb +0 -35
  379. data/sub/eac_templates/lib/eac_templates/patches/module/erb_template.rb +0 -9
  380. data/sub/eac_templates/lib/eac_templates/patches/module/template.rb +0 -10
  381. data/sub/eac_templates/lib/eac_templates/patches/module.rb +0 -4
  382. data/sub/eac_templates/lib/eac_templates/patches/object/erb_template.rb +0 -9
  383. data/sub/eac_templates/lib/eac_templates/patches/object/template.rb +0 -9
  384. data/sub/eac_templates/lib/eac_templates/patches/object.rb +0 -4
  385. data/sub/eac_templates/lib/eac_templates/patches.rb +0 -4
  386. data/sub/eac_templates/lib/eac_templates/searcher.rb +0 -53
  387. data/sub/eac_templates/lib/eac_templates/variable_not_found_error.rb +0 -5
  388. data/sub/eac_templates/lib/eac_templates/variable_providers/base.rb +0 -21
  389. data/sub/eac_templates/lib/eac_templates/variable_providers/config_reader.rb +0 -27
  390. data/sub/eac_templates/lib/eac_templates/variable_providers/entries_reader.rb +0 -23
  391. data/sub/eac_templates/lib/eac_templates/variable_providers/generic.rb +0 -23
  392. data/sub/eac_templates/lib/eac_templates/variable_providers/hash.rb +0 -27
  393. data/sub/eac_templates/lib/eac_templates/variable_providers.rb +0 -23
  394. data/sub/eac_templates/lib/eac_templates/version.rb +0 -5
  395. data/sub/eac_templates/lib/eac_templates.rb +0 -7
  396. data/sub/eac_templates/spec/lib/eac_templates/file_spec.rb +0 -35
  397. data/sub/eac_templates/spec/lib/eac_templates/file_spec_files/expected_content +0 -2
  398. data/sub/eac_templates/spec/lib/eac_templates/file_spec_files/source.template +0 -2
  399. data/sub/eac_templates/spec/lib/eac_templates/searcher_spec.rb +0 -30
  400. data/sub/eac_templates/spec/lib/eac_templates/searcher_spec_files/path1/subdir1/file1.template +0 -1
  401. data/sub/eac_templates/spec/lib/eac_templates/searcher_spec_files/path1/subdir1/file2 +0 -1
  402. data/sub/eac_templates/spec/lib/eac_templates/searcher_spec_files/path2/subdir1/file3.template +0 -1
  403. data/sub/eac_templates/spec/lib/object/template_spec.rb +0 -23
  404. data/sub/eac_templates/spec/lib/object/template_spec_files/path/my_stub_with_template +0 -1
  405. data/sub/eac_templates/spec/rubocop_spec.rb +0 -3
  406. data/sub/eac_templates/spec/spec_helper.rb +0 -4
  407. data/template/avm/eac_wordpress_base0/deploy/wp-config.php.template +0 -90
  408. data/template/avm/ruby/gems/generator/gemspec.template +0 -18
  409. data/template/avm/ruby/gems/generator/root_lib.template +0 -7
  410. data/template/avm/ruby/gems/generator/static/Gemfile +0 -5
  411. data/template/avm/ruby/gems/generator/static/spec/rubocop_spec.rb +0 -3
  412. data/template/avm/ruby/gems/generator/static/spec/spec_helper.rb +0 -4
  413. data/template/avm/ruby/gems/generator/version.template +0 -5
@@ -1,509 +0,0 @@
1
- =pod
2
-
3
- =for comment
4
- DO NOT EDIT. This Pod was generated by Swim v0.1.48.
5
- See http://github.com/ingydotnet/swim-pm#readme
6
-
7
- =encoding utf8
8
-
9
- =head1 Introducing Git Subrepos
10
-
11
- There is a new git command called C<subrepo> that is meant to be a solid
12
- alternative to the C<submodule> and C<subtree> commands. All 3 of these
13
- commands allow you to include external repositories (pinned to specific
14
- commits) in your main repository. This is an often needed feature for project
15
- development under a source control system like Git. Unfortunately, the
16
- C<submodule> command is severely lacking, and the C<subtree> command (an
17
- attempt to make things better) is also very flawed. Fortunately, the
18
- C<subrepo> command is here to save the day.
19
-
20
- This article will discuss how the previous commands work, and where they go
21
- wrong, while explaining how the new C<subrepo> command fixes the issues.
22
-
23
- It should be noted that there are 3 distinct roles (ways people use repos)
24
- involved in discussing this topic:
25
-
26
- =over
27
-
28
- =item * B<owner> — The primary author and repo owner
29
-
30
- =item * B<collaborators> — Other developers who contribute to the repo
31
-
32
- =item * B<users> — People who simply use the repo software
33
-
34
- =back
35
-
36
- =head2 Introducing C<subrepo>
37
-
38
- While the main point is to show how subrepo addresses the shortcomings
39
- of submodule and subtree, I'll start by giving a quick intro to the
40
- subrepo command.
41
-
42
- Let's say that you have a project repo called 'freebird' and you want to have
43
- it include 2 other external repos, 'lynyrd' and 'skynyrd'. You would do the
44
- following:
45
-
46
- git clone git@github.com/you/freebird
47
- cd freebird
48
- git subrepo clone git@github.com/you/lynyrd ext/lynyrd
49
- git subrepo clone git@github.com/you/skynyrd ext/skynyrd --branch=1975
50
-
51
- What these commands do (at a high level) should be obvious. They "clone" (add)
52
- the repos content into the subdirectories you told them to. The details of
53
- what is happening to your repo will be discussed later, but adding new
54
- subrepos is easy. If you need to update the subrepos later:
55
-
56
- git subrepo pull ext/lynyrd
57
- git subrepo pull ext/skynyrd --branch=1976
58
-
59
- The lynyrd repo is tracking the upstream master branch, and you've changed the
60
- skynyrd subrepo to the 1976 branch. Since these subrepos are owned by 'you',
61
- you might want to change them in the context of your freebird repo. When
62
- things are working, you can push the subrepo changes back:
63
-
64
- git subrepo push ext/lynyrd
65
- git subrepo push ext/skynyrd
66
-
67
- Looks simple right? It's supposed to be. The intent of C<subrepo> is to do the
68
- right things, and to not cause problems.
69
-
70
- Of course there's more to it under the hood, and that's what the rest of this
71
- article is about.
72
-
73
- =head2 Git Submodules
74
-
75
- Submodules tend to receive a lot of bad press. Here's some of it:
76
-
77
- =over
78
-
79
- =item * L<http://ayende.com/blog/4746/the-problem-with-git-submodules>
80
-
81
- =item * L<http://somethingsinistral.net/blog/git-submodules-are-probably-not-the-answer/>
82
-
83
- =item * L<http://codingkilledthecat.wordpress.com/2012/04/28/why-your-company-shouldnt-use-git-submodules/>
84
-
85
- =back
86
-
87
- A quick recap of some of the good and bad things about submodules:
88
-
89
- Good:
90
-
91
- =over
92
-
93
- =item * Use an external repo in a dedicated subdir of your project.
94
-
95
- =item * Pin the external repo to a specific commit.
96
-
97
- =item * The C<git-submodule> command is a core part of the Git project.
98
-
99
- =back
100
-
101
- Bad:
102
-
103
- =over
104
-
105
- =item * Users have to know a repo has submodules.
106
-
107
- =item * Users have to get the subrepos manually.
108
-
109
- =item * Pulling a repo with submodules won't pull in the new submodule changes.
110
-
111
- =item * A submodule will break if the referenced repo goes away.
112
-
113
- =item * A submodule will break if a forced push removes the referenced commit.
114
-
115
- =item * Can't use different submodules/commits per main project branch.
116
-
117
- =item * Can't "try out" a submodule on alternate branch.
118
-
119
- =item * Main repo can be pushed upstream pointing to unpushed submod commits.
120
-
121
- =item * Command capability differs across Git versions.
122
-
123
- =item * Often need to change remote url, to push submodule changes upstream.
124
-
125
- =item * Removing or renaming a submodule requires many steps.
126
-
127
- =back
128
-
129
- Internally, submodules are a real mess. They give the strong impression of
130
- being bolted on, well after Git was designed. Some commands are aware of the
131
- existence of submodules (although usually half-heartedly), and many commands
132
- are oblivious. For instance the git-clone command has a C<--recursive> option
133
- to clone all subrepos, but it's not a default, so you still need to be aware
134
- of the need. The git-checkout command does nothing with the submodules, even
135
- if they are intended to differ across branches.
136
-
137
- Let's talk a bit about how submodules are implemented in Git. Information
138
- about them is stored in 3 different places (in the top level repo directory):
139
-
140
- =over
141
-
142
- =item * C<.gitmodules>
143
-
144
- =item * C<.git/config>
145
-
146
- =item * C<.git/modules> — The submodule repo's meta data (refs/objects)
147
-
148
- =back
149
-
150
- So some of the information lives in the repo history (.gitmodules), but other
151
- info (.git/) is only known to the local repo.
152
-
153
- In addition, the submodule introduces a new low level concept, to the
154
- commitI<tree>blob graph. Normally a git tree object points to blob (file)
155
- objects and more tree (directory) objects. Submodules have tree objects point
156
- to B<commit> objects. While this seems clever and somewhat reasonable, it also
157
- means that every other git command (which was built on the super clean Git
158
- data model) has to be aware of this new possibility (and deal with it
159
- appropriately).
160
-
161
- The point is that, while submodules are a real need, and a lot of work has
162
- gone into making them work decently, they are essentially a kludge to the Git
163
- model, and it is quite understandable why they haven't worked out as well as
164
- people would expect.
165
-
166
- NOTE: Submodules I<are> getting better with each release of Git, but it's
167
- still an endless catch up game.
168
-
169
- =head2 Git Subtrees
170
-
171
- One day, someone decided to think different. Instead of pointing to external
172
- repos, why not just include them into the main repo (but also allow them to be
173
- pulled and pushed separately as needed)?
174
-
175
- At first this may feel like a wasteful approach. Why keep other repos
176
- physically inside your main one? But if you think about it abstractly, what's
177
- the difference? You want your users and collaborators to have all this code
178
- because your project needs it. So why worry about how it happens? In the end,
179
- the choice is yours, but I've grown very comfortable with this concept and
180
- I'll try to justify it well. I should note that the first paragraph of the
181
- C<submodule> doc suggests considering this alternative.
182
-
183
- The big win here is that you can do this using the existing git model. Nothing
184
- new is added. You are just adding commits to a history. You can do it
185
- different on every branch. You can merge branches sensibly.
186
-
187
- The git-subtree command seems to have been inspired by Git's subtree merge
188
- strategy, which it uses internally, and possibly got its name from. A subtree
189
- merge allows you to take a completely separate Git history and make it be a
190
- subdirectory of your repo.
191
-
192
- Adding a subtree was the easy part. All that needed to be done after that was
193
- to figure out a way to pull upstream changes and push local ones back
194
- upstream. And that's what the C<git-subtree> command does.
195
-
196
- So what's the problem with git-subtree then?
197
-
198
- Well unfortunately, it drops a few balls. The main problems come down to an
199
- overly complicated commandline UX, poor collaborator awareness, and a fragile
200
- and messy implementation.
201
-
202
- Good:
203
-
204
- =over
205
-
206
- =item * Use an external repo in a dedicated subdir of your project.
207
-
208
- =item * Pin the external repo to a specific commit.
209
-
210
- =item * Users get everything with a normal clone command.
211
-
212
- =item * Users don't need to know that subtrees are involved.
213
-
214
- =item * Can use different submodules/commits per main project branch.
215
-
216
- =item * Users don't need the subtree command. Only owners and collaborators.
217
-
218
- =back
219
-
220
- Bad:
221
-
222
- =over
223
-
224
- =item * The remote url and branch info is not saved (except in the history).
225
-
226
- =item * Owners and collaborators have to enter the remote for every command.
227
-
228
- =item * Collaborators aren't made aware that subtrees are involved.
229
-
230
- =item * Pulled history is not squashed by default.
231
-
232
- =item * Creates a messy historical view. (See below)
233
-
234
- =item * Bash code is complicated.
235
-
236
- =item * Only one test file. Currently is failing.
237
-
238
- =back
239
-
240
- As you can see, subtree makes quite a few things better, but after trying it
241
- for a while, the experience was more annoying than submodules. For example,
242
- consider this usage:
243
-
244
- $ git subtree add --squash --prefix=foo git@github.com:my/thing mybranch
245
- # weeks go by…
246
- $ git subtree pull --squash --prefix=foo git@github.com:my/thing mybranch
247
- # time to push local subtree changes back upstream
248
- $ git subtree push --prefix=foo git@github.com:my/thing mybranch
249
-
250
- The first thing you notice is the overly verbose syntax. It's justified in the
251
- first command, but in the other 2 commands I really don't want to have to
252
- remember what the remote and branch are that I'm using.
253
-
254
- Moreover, my collaborators have no idea that subtrees are involved, let alone
255
- where they came from.
256
-
257
- Consider the equivalent subrepo commands:
258
-
259
- $ git subrepo clone git@github.com:my/thing foo -b mybranch
260
- $ git subrepo pull foo
261
- $ git subrepo push foo
262
-
263
- Collaborators see a file called 'foo/.gitrepo', and know that the subdir is a
264
- subrepo. The file contains all the information needed by future commands
265
- applied to that subrepo.
266
-
267
- =head2 Git Subrepos
268
-
269
- Now is a good time to dive into the techinical aspects of the C<subrepo>
270
- command, but first let me explain how it came about.
271
-
272
- As you may have surmised by now, I am the author of git-subrepo. I'd used
273
- submodules on and off for years, and when I became aware of subtree I gave it
274
- a try, but I quickly realized its problems. I decided maybe it could be
275
- improved. I decided to write down my expected commandline usage and my ideals
276
- of what it would and would not do. Then I set off to implement it. It's been a
277
- long road, but what I ended up with was even better than what I wanted from
278
- the start.
279
-
280
- Let's review the Goods and Bads:
281
-
282
- Good:
283
-
284
- =over
285
-
286
- =item * Use an external repo in a dedicated subdir of your project.
287
-
288
- =item * Pin the external repo to a specific commit.
289
-
290
- =item * Users get everything with a normal clone command.
291
-
292
- =item * Users don't need to know that subrepos are involved.
293
-
294
- =item * Can use different submodules/commits per main project branch.
295
-
296
- =item * Meta info is kept in an obvious place.
297
-
298
- =item * Everyone knows when a subdir is a subrepo.
299
-
300
- =item * Commandline UX is minimal and intuitive.
301
-
302
- =item * Pulled history is always squashed out locally.
303
-
304
- =item * Pushed history is kept intact.
305
-
306
- =item * Creates a clean historical view. (See below)
307
-
308
- =item * Bash code is very simple and easy to follow.
309
-
310
- =item * Comprehensive test suite. Currently passing on travis:
311
-
312
- =back
313
-
314
- =for html
315
- <a href="https://travis-ci.org/ingydotnet/git-subrepo"><img src="https://travis-ci.org/ingydotnet/git-subrepo.png" alt="git-subrepo"></a>
316
-
317
- Bad:
318
-
319
- =over
320
-
321
- =item * --Subrepo is very new.-- (no longer true)
322
-
323
- =item * --Not well tested in the wild.-- (no longer true)
324
-
325
- =back
326
-
327
- This review may seem somewhat slanted, but I honestly am not aware of any
328
- "bad" points that I'm not disclosing. That said, I am sure time will reveal
329
- bugs and shortcomings. Those can usually be fixed. Hopefully the B<model> is
330
- correct, because that's harder to fix down the road.
331
-
332
- OK. So how does it all work?
333
-
334
- There are 3 main commands: cloneI<pull>push. Let's start with the clone
335
- command. This is the easiest part. You give it a remote url, possibly a new
336
- subdir to put it, and possibly a remote branch to use. I say possibly, because
337
- the command can guess the subdir name (just like the git-clone command does),
338
- and the branch can be the upstream default branch.
339
-
340
- Given this we do the following steps internally:
341
-
342
- =over
343
-
344
- =item * Fetch the remote content (for a specific refspec)
345
-
346
- =item * Read the remote head tree into the index
347
-
348
- =item * Checkout the index into the new subdir
349
-
350
- =item * Create a new subrepo commit object for the subdir content
351
-
352
- =item * Add a state file called .gitrepo to the new subrepo/subdir
353
-
354
- =item * Amend the merge commit with this new file
355
-
356
- =back
357
-
358
- This process adds something like this to the top of your history:
359
-
360
- * 9b6ddc9 git subrepo clone git@github.com:you/foo.git foo/
361
- * 37c61a5 Previous head commit of your repo
362
-
363
- The entire history has been squashed down into one commit, and placed on
364
- top of your history. This is important as it keeps your history as clean
365
- as possible. You don't need to have the subrepo history in your main
366
- project, since it is immutably available elsewhere, and you have a pointer
367
- to that place.
368
-
369
- The new foo/.gitrepo file looks like this:
370
-
371
- [subrepo]
372
- remote = git@github.com:you/foo.git
373
- branch = master
374
- commit = 14c96c6931b41257b2d42b2edc67ddc659325823
375
- parent = 37c61a5a234f5dd6f5c2aec037509f50d3a79b8f
376
- cmdver = 0.1.0
377
-
378
- It contains all the info needed now and later. Note that the repo url is the
379
- generally pushable form, rather than the publically readable (L<https://…)>
380
- form. This is the best practice. Users of your repo don't need access to this
381
- url, because the content is already in your repo. Only you and your
382
- collaborators need this url to pull/push in the future.
383
-
384
- The next command is the pull command. Normally you just give it the subrepo's
385
- subdir path (although you can change the branch with -b), and it will get the
386
- other info from the subdir/.gitrepo file.
387
-
388
- The pull command does these steps:
389
-
390
- =over
391
-
392
- =item * Fetch the upstream content
393
-
394
- =item * Check if anything needs pulling
395
-
396
- =item * Create a branch of local subrepo commits since last pull
397
-
398
- =item * Rebase this branch onto the upstream commits
399
-
400
- =item * Commit the HEAD of the rebased content
401
-
402
- =item * Update/amend the .gitrepo file
403
-
404
- =back
405
-
406
- =head3 Clean History
407
-
408
- I've talked a bit about clean history but let me show you a comparison between
409
- subrepo and subtree. Let's run this command sequence using both methods. Note
410
- the differences between I<both> the command syntax required, and the branch
411
- history produced.
412
-
413
- Subrepo first:
414
-
415
- $ git subrepo clone git@github.com:user/abc
416
- $ git subrepo clone git@github.com:user/def xyz
417
- $ git subrepo pull abc
418
- $ git subrepo pull xyz
419
-
420
- The resulting history is:
421
-
422
- * b1f60cc subrepo pull xyz
423
- * 4fb0276 subrepo pull abc
424
- * bcef2a0 subrepo clone git@github.com:user/def xyz
425
- * bebf0db subrepo clone git@github.com:user/abc
426
- * 64eeaa6 (origin/master, origin/HEAD) O HAI FREND
427
-
428
- Compare that to B<subtree>. This:
429
-
430
- $ git subtree add abc git@github.com:user/abc master
431
- $ git subtree add xyz git@github.com:user/def master
432
- $ git subtree pull abc git@github.com:user/abc master
433
- $ git subtree pull xyz git@github.com:user/def master
434
-
435
- Produces this:
436
-
437
- * 739e45a (HEAD, master) Merge commit '5f563469d886d53e19cb908b3a64e4229f88a2d1'
438
- |\
439
- | * 5f56346 Squashed 'xyz/' changes from 08c7421..365409f
440
- * | 641f5e5 Merge commit '8d88e90ce5f653ed2e7608a71b8693a2174ea62a'
441
- |\ \
442
- | * | 8d88e90 Squashed 'abc/' changes from 08c7421..365409f
443
- * | | 1703ed2 Merge commit '0e091b672c4bbbbf6bc4f6694c475d127ffa21eb' as 'xyz'
444
- |\ \ \
445
- | | |/
446
- | |/|
447
- | * | 0e091b6 Squashed 'xyz/' content from commit 08c7421
448
- | /
449
- * | 07b77e7 Merge commit 'cd2b30a0229d931979ed4436b995875ec563faea' as 'abc'
450
- |\ \
451
- | |/
452
- | * cd2b30a Squashed 'abc/' content from commit 08c7421
453
- * 64eeaa6 (origin/master, origin/HEAD) O HAI FREND
454
-
455
- This was from a minimal case. Subtree history (when viewed this way at least)
456
- gets unreasonably ugly fast. Subrepo history, by contrast, always looks as
457
- clean as shown.
458
-
459
- The final command, push, bascially just does the pull/rebase dance above
460
- described, and pushes the resulting history back. It does not squash the
461
- commits made locally, because it assumed that when you changed the local
462
- subrepo, you made messages that were intended to eventually be published
463
- back upstream.
464
-
465
- =head2 Conflict Resolution
466
-
467
- The commands described above can also be done "by hand". If something fails
468
- during a pull or push (generally in the rebasing) then the command will tell
469
- you what to do to finish up.
470
-
471
- You might choose to do everything by hand, and do your own merging strategies.
472
- This is perfectly reasonable. The C<subrepo> command offers a few other helper
473
- commands to help you get the job done:
474
-
475
- =over
476
-
477
- =item * C<fetch> - Fetch the upstream and create a C<< subrepo/remote/<subdir> >> ref.
478
-
479
- =item * C<branch> - Create a branch of local subdir commits since the last pull, called C<< subrepo/<subdir> >>.
480
-
481
- =item * C<commit> - Commit a merged branch's HEAD back into your repo.
482
-
483
- =item * C<status> - Show lots of useful info about the current state of the subrepos.
484
-
485
- =item * C<clean> - Remove branches, ref and remotes created by subrepo commands.
486
-
487
- =item * C<help> - Read the complete documentation!
488
-
489
- =back
490
-
491
- =head2 Conclusion
492
-
493
- Hopefully by now, you see that submodules are a painful choice with a dubious
494
- future, and that subtree, while a solid idea has many usage issues.
495
-
496
- Give C<subrepo> a try. It's painless, easily revertable and just might be what
497
- the doctor ordered.
498
-
499
- =head2 Reference Links
500
-
501
- =over
502
-
503
- =item * L<http://longair.net/blog/2010/06/02/git-submodules-explained/>
504
-
505
- =item * L<http://blogs.atlassian.com/2013/05/alternatives-to-git-submodule-git-subtree/>
506
-
507
- =back
508
-
509
- =cut
@@ -1,21 +0,0 @@
1
- The MIT License (MIT)
2
-
3
- Copyright (c) 2013-2020 Ingy döt Net
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in
13
- all copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
- THE SOFTWARE.
@@ -1,82 +0,0 @@
1
- # Make sure we have 'git' and it works OK:
2
- ifeq ($(shell which git),)
3
- $(error 'git' is not installed on this system)
4
- endif
5
-
6
- # Set variables:
7
- NAME := git-subrepo
8
- LIB := lib/$(NAME)
9
- DOC := doc/$(NAME).swim
10
- MAN1 := man/man1
11
- EXT := $(LIB).d
12
- EXTS := $(shell find $(EXT) -type f) \
13
- $(shell find $(EXT) -type l)
14
- SHARE = share
15
-
16
- # Install variables:
17
- PREFIX ?= /usr/local
18
- INSTALL_LIB ?= $(DESTDIR)$(shell git --exec-path)
19
- INSTALL_EXT ?= $(INSTALL_LIB)/$(NAME).d
20
- INSTALL_MAN1 ?= $(DESTDIR)$(PREFIX)/share/man/man1
21
-
22
- # Basic targets:
23
- default: help
24
-
25
- help:
26
- @echo 'Makefile rules:'
27
- @echo ''
28
- @echo 'test Run all tests'
29
- @echo 'install Install $(NAME)'
30
- @echo 'uninstall Uninstall $(NAME)'
31
- @echo 'env Show environment variables to set'
32
-
33
- .PHONY: test
34
- test:
35
- prove $(PROVEOPT:%=% )test/
36
-
37
- # Install support:
38
- install:
39
- install -d -m 0755 $(INSTALL_LIB)/
40
- install -C -m 0755 $(LIB) $(INSTALL_LIB)/
41
- install -d -m 0755 $(INSTALL_EXT)/
42
- install -C -m 0755 $(EXTS) $(INSTALL_EXT)/
43
- install -d -m 0755 $(INSTALL_MAN1)/
44
- install -C -m 0644 $(MAN1)/$(NAME).1 $(INSTALL_MAN1)/
45
-
46
- # Uninstall support:
47
- uninstall:
48
- rm -f $(INSTALL_LIB)/$(NAME)
49
- rm -fr $(INSTALL_EXT)
50
- rm -f $(INSTALL_MAN1)/$(NAME).1
51
-
52
- env:
53
- @echo "export PATH=\"$$PWD/lib:\$$PATH\""
54
- @echo "export MANPATH=\"$$PWD/man:\$$MANPATH\""
55
-
56
- # Doc rules:
57
- .PHONY: doc
58
- update: doc compgen
59
-
60
- force:
61
-
62
- doc: ReadMe.pod Intro.pod $(MAN1)/$(NAME).1
63
- perl pkg/bin/generate-help-functions.pl $(DOC) > \
64
- $(EXT)/help-functions.bash
65
-
66
- ReadMe.pod: $(DOC) force
67
- swim --to=pod --wrap --complete $< > $@
68
-
69
- Intro.pod: doc/intro-to-subrepo.swim force
70
- swim --to=pod --wrap --complete $< > $@
71
-
72
- $(MAN1)/%.1: doc/%.swim Makefile force
73
- swim --to=man --wrap $< > $@
74
-
75
- compgen: force
76
- perl pkg/bin/generate-completion.pl bash $(DOC) $(LIB) > \
77
- $(SHARE)/completion.bash
78
- perl pkg/bin/generate-completion.pl zsh $(DOC) $(LIB) > \
79
- $(SHARE)/zsh-completion/_git-subrepo
80
-
81
- clean purge:
82
- rm -fr tmp
@@ -1,28 +0,0 @@
1
- =meta: 0.0.2
2
-
3
- name: git-subrepo
4
- version: 0.4.1
5
- abstract: Git Submodule Alternative
6
- homepage: https://github.com/ingydotnet/git-subrepo#readme
7
- license: MIT
8
- copyright: 2013-2020
9
-
10
- author:
11
- name: Ingy döt Net
12
- email: ingy@ingy.net
13
- github: ingydotnet
14
- twitter: ingydotnet
15
- freenode: ingy
16
- homepage: http://ingy.net
17
-
18
- requires:
19
- bash: 4.0.0
20
- git: 2.7.0
21
- test:
22
- cmd: make test
23
- install: make install
24
-
25
- devel:
26
- git: git@github.org:ingydotnet/git-subrepo.git
27
- irc: irc.freenode.net/gitcommands
28
- bug: https://github.com/ingydotnet/git-subrepo/issues/