avm-tools 0.129.0 → 0.131.0

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