repo_manager 0.7.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (116) hide show
  1. data/.gemfiles +115 -0
  2. data/.gitattributes +1 -0
  3. data/.gitignore +7 -0
  4. data/.rspec +3 -0
  5. data/.yardopts +11 -0
  6. data/Gemfile +11 -0
  7. data/Gemfile.lock +99 -0
  8. data/Guardfile +63 -0
  9. data/HISTORY.markdown +12 -0
  10. data/LICENSE +20 -0
  11. data/README.markdown +192 -0
  12. data/Rakefile +94 -0
  13. data/TODO.markdown +15 -0
  14. data/VERSION +1 -0
  15. data/bin/repo +151 -0
  16. data/cucumber.yml +28 -0
  17. data/examples/pc_saved_game_backup/.gitignore +2 -0
  18. data/examples/pc_saved_game_backup/INSTALL.markdown +420 -0
  19. data/examples/pc_saved_game_backup/README.markdown +108 -0
  20. data/examples/pc_saved_game_backup/remote/.gitignore +2 -0
  21. data/examples/pc_saved_game_backup/repo_manager/Gemfile +12 -0
  22. data/examples/pc_saved_game_backup/repo_manager/Gemfile.lock +66 -0
  23. data/examples/pc_saved_game_backup/repo_manager/assets/.gitignore +2 -0
  24. data/examples/pc_saved_game_backup/repo_manager/features/support/aruba.rb +15 -0
  25. data/examples/pc_saved_game_backup/repo_manager/features/support/env.rb +11 -0
  26. data/examples/pc_saved_game_backup/repo_manager/features/support/steps.rb +3 -0
  27. data/examples/pc_saved_game_backup/repo_manager/features/tasks/update.feature +144 -0
  28. data/examples/pc_saved_game_backup/repo_manager/global/default/asset.conf +2 -0
  29. data/examples/pc_saved_game_backup/repo_manager/repo.conf +64 -0
  30. data/examples/pc_saved_game_backup/repo_manager/tasks/.gitignore +0 -0
  31. data/examples/pc_saved_game_backup/repo_manager/tasks/remote.rb +57 -0
  32. data/examples/pc_saved_game_backup/repo_manager/tasks/update.rb +65 -0
  33. data/examples/pc_saved_game_backup/saved_games/hearts/save1 +1 -0
  34. data/examples/pc_saved_game_backup/saved_games/hearts/save2 +1 -0
  35. data/examples/pc_saved_game_backup/saved_games/mines/my_profile.ini +1 -0
  36. data/examples/pc_saved_game_backup/saved_games/mines/saves/save1 +1 -0
  37. data/examples/pc_saved_game_backup/saved_games/mines/saves/save2 +1 -0
  38. data/features/actions/git.feature +296 -0
  39. data/features/actions/help.feature +53 -0
  40. data/features/actions/list.feature +624 -0
  41. data/features/actions/path.feature +195 -0
  42. data/features/actions/status.feature +261 -0
  43. data/features/actions/task.feature +127 -0
  44. data/features/assets/configuration.feature +204 -0
  45. data/features/assets/rendering.feature +42 -0
  46. data/features/assets/user_attributes.feature +98 -0
  47. data/features/bin.feature +42 -0
  48. data/features/logger.feature +218 -0
  49. data/features/settings.feature +240 -0
  50. data/features/support/aruba.rb +15 -0
  51. data/features/support/env.rb +11 -0
  52. data/features/support/steps.rb +3 -0
  53. data/features/tasks/add/asset.feature +178 -0
  54. data/features/tasks/generate/init.feature +56 -0
  55. data/lib/repo_manager.rb +36 -0
  56. data/lib/repo_manager/actions.rb +8 -0
  57. data/lib/repo_manager/actions/action_helper.rb +39 -0
  58. data/lib/repo_manager/actions/app_action.rb +30 -0
  59. data/lib/repo_manager/actions/base_action.rb +296 -0
  60. data/lib/repo_manager/actions/git_action.rb +113 -0
  61. data/lib/repo_manager/actions/help_action.rb +52 -0
  62. data/lib/repo_manager/actions/list_action.rb +123 -0
  63. data/lib/repo_manager/actions/path_action.rb +22 -0
  64. data/lib/repo_manager/actions/status_action.rb +192 -0
  65. data/lib/repo_manager/actions/task_action.rb +71 -0
  66. data/lib/repo_manager/app.rb +116 -0
  67. data/lib/repo_manager/assets.rb +3 -0
  68. data/lib/repo_manager/assets/app_asset.rb +15 -0
  69. data/lib/repo_manager/assets/asset_accessors.rb +67 -0
  70. data/lib/repo_manager/assets/asset_configuration.rb +137 -0
  71. data/lib/repo_manager/assets/asset_manager.rb +72 -0
  72. data/lib/repo_manager/assets/base_asset.rb +199 -0
  73. data/lib/repo_manager/assets/repo_asset.rb +30 -0
  74. data/lib/repo_manager/core.rb +2 -0
  75. data/lib/repo_manager/core/array.rb +21 -0
  76. data/lib/repo_manager/core/hash.rb +83 -0
  77. data/lib/repo_manager/errors.rb +10 -0
  78. data/lib/repo_manager/extensions/hash.rb +86 -0
  79. data/lib/repo_manager/git.rb +2 -0
  80. data/lib/repo_manager/git/lib.rb +69 -0
  81. data/lib/repo_manager/git/status.rb +196 -0
  82. data/lib/repo_manager/logger.rb +39 -0
  83. data/lib/repo_manager/settings.rb +98 -0
  84. data/lib/repo_manager/tasks.rb +3 -0
  85. data/lib/repo_manager/tasks/add/asset.rb +213 -0
  86. data/lib/repo_manager/tasks/generate/init.rb +42 -0
  87. data/lib/repo_manager/tasks/generate/templates/config/repo.conf.tt +61 -0
  88. data/lib/repo_manager/tasks/generate/templates/init/assets/.gitignore +0 -0
  89. data/lib/repo_manager/tasks/generate/templates/init/global/default/asset.conf +2 -0
  90. data/lib/repo_manager/tasks/generate/templates/init/tasks/.gitignore +0 -0
  91. data/lib/repo_manager/tasks/task_manager.rb +166 -0
  92. data/lib/repo_manager/tasks/thor_helper.rb +29 -0
  93. data/lib/repo_manager/test/asset_steps.rb +19 -0
  94. data/lib/repo_manager/test/base_steps.rb +152 -0
  95. data/lib/repo_manager/test/repo_api.rb +41 -0
  96. data/lib/repo_manager/test/repo_steps.rb +83 -0
  97. data/lib/repo_manager/test/test_api.rb +88 -0
  98. data/lib/repo_manager/views.rb +2 -0
  99. data/lib/repo_manager/views/app_view.rb +15 -0
  100. data/lib/repo_manager/views/base_view.rb +137 -0
  101. data/lib/repo_manager/views/templates/css/basic.css +26 -0
  102. data/lib/repo_manager/views/templates/default.erb +40 -0
  103. data/lib/repo_manager/views/templates/default.slim +37 -0
  104. data/lib/repo_manager/views/view_helper.rb +55 -0
  105. data/repo_manager.gemspec +75 -0
  106. data/spec/basic_app/actions/action_helper_spec.rb +54 -0
  107. data/spec/basic_app/assets/base_asset_spec.rb +210 -0
  108. data/spec/basic_app/core_spec.rb +78 -0
  109. data/spec/basic_app/settings_spec.rb +64 -0
  110. data/spec/basic_app/views/view_helper_spec.rb +28 -0
  111. data/spec/basic_gem/aruba_helper_spec.rb +33 -0
  112. data/spec/basic_gem/basic_gem_spec.rb +84 -0
  113. data/spec/basic_gem/gemspec_spec.rb +68 -0
  114. data/spec/repo_manager/git_spec.rb +31 -0
  115. data/spec/spec_helper.rb +25 -0
  116. metadata +472 -0
data/.gemfiles ADDED
@@ -0,0 +1,115 @@
1
+ .gemfiles
2
+ .gitattributes
3
+ .gitignore
4
+ .rspec
5
+ .yardopts
6
+ Gemfile
7
+ Gemfile.lock
8
+ Guardfile
9
+ HISTORY.markdown
10
+ LICENSE
11
+ README.markdown
12
+ Rakefile
13
+ TODO.markdown
14
+ VERSION
15
+ bin/repo
16
+ cucumber.yml
17
+ examples/pc_saved_game_backup/.gitignore
18
+ examples/pc_saved_game_backup/INSTALL.markdown
19
+ examples/pc_saved_game_backup/README.markdown
20
+ examples/pc_saved_game_backup/remote/.gitignore
21
+ examples/pc_saved_game_backup/repo_manager/Gemfile
22
+ examples/pc_saved_game_backup/repo_manager/Gemfile.lock
23
+ examples/pc_saved_game_backup/repo_manager/assets/.gitignore
24
+ examples/pc_saved_game_backup/repo_manager/features/support/aruba.rb
25
+ examples/pc_saved_game_backup/repo_manager/features/support/env.rb
26
+ examples/pc_saved_game_backup/repo_manager/features/support/steps.rb
27
+ examples/pc_saved_game_backup/repo_manager/features/tasks/update.feature
28
+ examples/pc_saved_game_backup/repo_manager/global/default/asset.conf
29
+ examples/pc_saved_game_backup/repo_manager/repo.conf
30
+ examples/pc_saved_game_backup/repo_manager/tasks/.gitignore
31
+ examples/pc_saved_game_backup/repo_manager/tasks/remote.rb
32
+ examples/pc_saved_game_backup/repo_manager/tasks/update.rb
33
+ examples/pc_saved_game_backup/saved_games/hearts/save1
34
+ examples/pc_saved_game_backup/saved_games/hearts/save2
35
+ examples/pc_saved_game_backup/saved_games/mines/my_profile.ini
36
+ examples/pc_saved_game_backup/saved_games/mines/saves/save1
37
+ examples/pc_saved_game_backup/saved_games/mines/saves/save2
38
+ features/actions/git.feature
39
+ features/actions/help.feature
40
+ features/actions/list.feature
41
+ features/actions/path.feature
42
+ features/actions/status.feature
43
+ features/actions/task.feature
44
+ features/assets/configuration.feature
45
+ features/assets/rendering.feature
46
+ features/assets/user_attributes.feature
47
+ features/bin.feature
48
+ features/logger.feature
49
+ features/settings.feature
50
+ features/support/aruba.rb
51
+ features/support/env.rb
52
+ features/support/steps.rb
53
+ features/tasks/add/asset.feature
54
+ features/tasks/generate/init.feature
55
+ lib/repo_manager.rb
56
+ lib/repo_manager/actions.rb
57
+ lib/repo_manager/actions/action_helper.rb
58
+ lib/repo_manager/actions/app_action.rb
59
+ lib/repo_manager/actions/base_action.rb
60
+ lib/repo_manager/actions/git_action.rb
61
+ lib/repo_manager/actions/help_action.rb
62
+ lib/repo_manager/actions/list_action.rb
63
+ lib/repo_manager/actions/path_action.rb
64
+ lib/repo_manager/actions/status_action.rb
65
+ lib/repo_manager/actions/task_action.rb
66
+ lib/repo_manager/app.rb
67
+ lib/repo_manager/assets.rb
68
+ lib/repo_manager/assets/app_asset.rb
69
+ lib/repo_manager/assets/asset_accessors.rb
70
+ lib/repo_manager/assets/asset_configuration.rb
71
+ lib/repo_manager/assets/asset_manager.rb
72
+ lib/repo_manager/assets/base_asset.rb
73
+ lib/repo_manager/assets/repo_asset.rb
74
+ lib/repo_manager/core.rb
75
+ lib/repo_manager/core/array.rb
76
+ lib/repo_manager/core/hash.rb
77
+ lib/repo_manager/errors.rb
78
+ lib/repo_manager/extensions/hash.rb
79
+ lib/repo_manager/git.rb
80
+ lib/repo_manager/git/lib.rb
81
+ lib/repo_manager/git/status.rb
82
+ lib/repo_manager/logger.rb
83
+ lib/repo_manager/settings.rb
84
+ lib/repo_manager/tasks.rb
85
+ lib/repo_manager/tasks/add/asset.rb
86
+ lib/repo_manager/tasks/generate/init.rb
87
+ lib/repo_manager/tasks/generate/templates/config/repo.conf.tt
88
+ lib/repo_manager/tasks/generate/templates/init/assets/.gitignore
89
+ lib/repo_manager/tasks/generate/templates/init/global/default/asset.conf
90
+ lib/repo_manager/tasks/generate/templates/init/tasks/.gitignore
91
+ lib/repo_manager/tasks/task_manager.rb
92
+ lib/repo_manager/tasks/thor_helper.rb
93
+ lib/repo_manager/test/asset_steps.rb
94
+ lib/repo_manager/test/base_steps.rb
95
+ lib/repo_manager/test/repo_api.rb
96
+ lib/repo_manager/test/repo_steps.rb
97
+ lib/repo_manager/test/test_api.rb
98
+ lib/repo_manager/views.rb
99
+ lib/repo_manager/views/app_view.rb
100
+ lib/repo_manager/views/base_view.rb
101
+ lib/repo_manager/views/templates/css/basic.css
102
+ lib/repo_manager/views/templates/default.erb
103
+ lib/repo_manager/views/templates/default.slim
104
+ lib/repo_manager/views/view_helper.rb
105
+ repo_manager.gemspec
106
+ spec/basic_app/actions/action_helper_spec.rb
107
+ spec/basic_app/assets/base_asset_spec.rb
108
+ spec/basic_app/core_spec.rb
109
+ spec/basic_app/settings_spec.rb
110
+ spec/basic_app/views/view_helper_spec.rb
111
+ spec/basic_gem/aruba_helper_spec.rb
112
+ spec/basic_gem/basic_gem_spec.rb
113
+ spec/basic_gem/gemspec_spec.rb
114
+ spec/repo_manager/git_spec.rb
115
+ spec/spec_helper.rb
data/.gitattributes ADDED
@@ -0,0 +1 @@
1
+ *.rb diff=ruby
data/.gitignore ADDED
@@ -0,0 +1,7 @@
1
+ /pkg/
2
+ /.bundle/
3
+ /rdoc/
4
+ /.yardoc/
5
+ rerun.txt
6
+ tags
7
+ /tmp/
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --colour
2
+ #--format progress
3
+ --format documentation
data/.yardopts ADDED
@@ -0,0 +1,11 @@
1
+ --verbose
2
+ --plugin yard-cucumber
3
+ lib/**/*.rb
4
+ features/**/*.feature
5
+ features/step_definitions/**/*.rb
6
+ features/support/env.rb
7
+ -
8
+ LICENSE
9
+ HISTORY.markdown
10
+ TODO.markdown
11
+ VERSION
data/Gemfile ADDED
@@ -0,0 +1,11 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in the .gemspec file
4
+ gemspec
5
+
6
+ group :development do
7
+ gem 'libnotify', :platforms => :ruby # MRI, Rubinius but not Windows
8
+ end
9
+
10
+ # Platform specific supplement to .gemspec
11
+ gem "win32console", :platforms => [:mingw, :mswin]
data/Gemfile.lock ADDED
@@ -0,0 +1,99 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ repo_manager (0.7.1)
5
+ chronic (>= 0.6.5)
6
+ git (= 1.2.5)
7
+ logging (>= 1.6.2)
8
+ mustache (>= 0.99.4)
9
+ slim (>= 1.0.4)
10
+ term-ansicolor (>= 1.0.4)
11
+ thor (~> 0.15.0)
12
+
13
+ GEM
14
+ remote: http://rubygems.org/
15
+ specs:
16
+ aruba (0.4.5)
17
+ bcat (>= 0.6.1)
18
+ childprocess (>= 0.1.9)
19
+ cucumber (>= 0.10.7)
20
+ rdiscount (>= 1.6.8)
21
+ rspec (>= 2.6.0)
22
+ bcat (0.6.2)
23
+ rack (~> 1.0)
24
+ builder (3.0.0)
25
+ childprocess (0.3.2)
26
+ ffi (~> 1.0.6)
27
+ chronic (0.6.7)
28
+ cucumber (1.2.1)
29
+ builder (>= 2.1.2)
30
+ diff-lcs (>= 1.1.3)
31
+ gherkin (~> 2.11.0)
32
+ json (>= 1.4.6)
33
+ diff-lcs (1.1.3)
34
+ ffi (1.0.11)
35
+ gherkin (2.11.1)
36
+ json (>= 1.4.6)
37
+ gherkin (2.11.1-x86-mingw32)
38
+ json (>= 1.4.6)
39
+ git (1.2.5)
40
+ guard (1.0.3)
41
+ ffi (>= 0.5.0)
42
+ thor (>= 0.14.6)
43
+ guard-cucumber (0.8.0)
44
+ cucumber (>= 1.2.0)
45
+ guard (>= 0.8.3)
46
+ guard-rspec (0.7.3)
47
+ guard (>= 0.10.0)
48
+ json (1.7.3)
49
+ libnotify (0.7.4)
50
+ ffi (~> 1.0.11)
51
+ little-plugger (1.1.3)
52
+ logging (1.7.2)
53
+ little-plugger (>= 1.1.3)
54
+ mustache (0.99.4)
55
+ rack (1.4.1)
56
+ rake (0.9.2.2)
57
+ rdiscount (1.6.8)
58
+ redcarpet (2.1.1)
59
+ rspec (2.10.0)
60
+ rspec-core (~> 2.10.0)
61
+ rspec-expectations (~> 2.10.0)
62
+ rspec-mocks (~> 2.10.0)
63
+ rspec-core (2.10.1)
64
+ rspec-expectations (2.10.0)
65
+ diff-lcs (~> 1.1.3)
66
+ rspec-mocks (2.10.1)
67
+ slim (1.2.2)
68
+ temple (~> 0.4.0)
69
+ tilt (~> 1.3.3)
70
+ temple (0.4.0)
71
+ term-ansicolor (1.0.7)
72
+ thor (0.15.3)
73
+ tilt (1.3.3)
74
+ win32console (1.3.2-x86-mingw32)
75
+ yard (0.8.2.1)
76
+ yard-cucumber (2.2.0)
77
+ cucumber (>= 0.7.5)
78
+ gherkin (>= 2.2.9)
79
+ yard (>= 0.8.1)
80
+
81
+ PLATFORMS
82
+ ruby
83
+ x86-mingw32
84
+
85
+ DEPENDENCIES
86
+ aruba (= 0.4.5)
87
+ bundler (>= 1.0.14)
88
+ cucumber (~> 1.0)
89
+ guard (= 1.0.3)
90
+ guard-cucumber (~> 0.8)
91
+ guard-rspec (~> 0.7)
92
+ libnotify
93
+ rake (>= 0.8.7)
94
+ redcarpet (>= 1.17.2)
95
+ repo_manager!
96
+ rspec (>= 2.6.0)
97
+ win32console
98
+ yard (>= 0.7.4)
99
+ yard-cucumber (>= 2.1.7)
data/Guardfile ADDED
@@ -0,0 +1,63 @@
1
+ require 'rbconfig'
2
+ WINDOWS = RbConfig::CONFIG['host_os'] =~ /msdos|mswin|win32|mingw/i unless defined?(WINDOWS)
3
+
4
+ notification :on
5
+
6
+ # @examples
7
+ #
8
+ # guard --group specs
9
+ # guard --group features
10
+ #
11
+ group :rspec do
12
+ guard 'rspec',
13
+ :all_after_pass => false,
14
+ :all_on_start => false,
15
+ #:cli => '--color --format nested --fail-fast',
16
+ :cli => '--color --format nested',
17
+ :version => 2 do
18
+
19
+ watch(%r{^spec/.+_spec\.rb$})
20
+ watch('spec/spec_helper.rb') { "spec" }
21
+
22
+ # ex: lib/app_name/views.rb -> spec/app_name/views_spec.rb
23
+ watch(%r{^lib/(.+)/(.+)\.rb$}) { |m| "spec/#{m[1]}/#{m[2]}_spec.rb" }
24
+
25
+ # ex: lib/app_name/views/view_helper.rb -> spec/app_name/views/view_helper_spec.rb
26
+ watch(%r{^lib/(.+)/(.+)/(.+)\.rb$}) { |m| "spec/#{m[1]}/#{m[2]}/#{m[3]}_spec.rb" }
27
+ end
28
+ end
29
+
30
+ group :cucumber do
31
+
32
+ opts = []
33
+ opts << ["--color"]
34
+ opts << ["--format pretty"]
35
+ opts << ["--strict"]
36
+ opts << ["-r features"]
37
+ opts << ["--no-profile"]
38
+ #opts << ["--tags @focus"]
39
+ opts << ["--tags ~@wip"]
40
+ opts << ["--tags ~@windows"] unless WINDOWS
41
+ opts << ["--tags ~@posix"] if WINDOWS
42
+
43
+ guard 'cucumber',
44
+ :cli => opts.join(" "),
45
+ :all_after_pass => false,
46
+ :all_on_start => false do
47
+
48
+ watch(%r{^features/.+\.feature$})
49
+
50
+ # actions
51
+ watch(%r{^lib/repoman/actions/(.+)_action.rb$}) { |m| "features/actions/#{m[1]}.feature" }
52
+
53
+ # assets
54
+ watch(%r{^lib/basic_app/assets/.+_asset.rb$}) { |m| "features/assets/configuration.feature features/assets/rendering.feature" }
55
+ watch(%r{^lib/basic_app/assets/asset_configuration.rb$}) { |m| "features/assets/configuration.feature" }
56
+ watch(%r{^lib/basic_app/assets/asset_accessors.rb$}) { |m| "features/assets/user_attributes.feature" }
57
+
58
+ # tasks
59
+ watch(%r{^lib/repoman/tasks/(.+)/(.+).rb$}) { |m| "features/tasks/#{m[1]}/#{m[2]}.feature" }
60
+ watch(%r{^lib/repoman/tasks/task_manager.rb$}) { "features/actions/ph.feature" }
61
+
62
+ end
63
+ end
data/HISTORY.markdown ADDED
@@ -0,0 +1,12 @@
1
+ History
2
+ =======
3
+
4
+ Most recent changes are at the top
5
+
6
+
7
+ Changes
8
+ -------
9
+
10
+ ### 0.7.1 - 07/31/2012 ###
11
+
12
+ * Initial release
data/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2012 GearheadForHire, LLC
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.markdown ADDED
@@ -0,0 +1,192 @@
1
+ RepoManager
2
+ ===========
3
+
4
+ Command line interface (CLI) for batch management of multiple Git repositories.
5
+
6
+ Overview
7
+ --------
8
+
9
+ RepoManager is a wrapper for Git, the distributed version control system.
10
+ RepoManager's wrapper functions allow a single git command to be executed
11
+ across multiple git repositories.
12
+
13
+ For example, you have two git repositories named 'repo1' and 'repo2' and
14
+ you want to check the status of both working folders.
15
+
16
+ ### without repo_manager
17
+
18
+ cd ~/workspace/delphi/repo1
19
+ git status
20
+
21
+ cd ~/workspace/delphi/repo2
22
+ git status
23
+
24
+ ### with repo_manager
25
+
26
+ repo status
27
+
28
+ ### suitable for
29
+
30
+ * Light weight mirroring of data across a network. That is a job for
31
+ rsync. Or is it? If you develop for multiple platforms across multiple
32
+ (virtual) machines rsync'ing may not be the best option. If you already
33
+ have everything tucked into git repositories, you can use a single
34
+ 'repo pull' command to mirror all of your repositories to one location
35
+ for backup or reference.
36
+
37
+ ### not suitable for
38
+
39
+ * Maintaining related source code repositories. There are suitable tools
40
+ for that including git's own 'git submodules',
41
+ [git-subtree](https://github.com/apenwarr/git-subtree), and
42
+ [GitSlave](http://gitslave.sourceforge.net/)
43
+
44
+
45
+ Getting started with RepoManager
46
+ --------------------------------
47
+
48
+ ### installation
49
+
50
+ gem install repo_manager
51
+
52
+ ### help
53
+
54
+ repo --help
55
+ repo --tasks
56
+ repo help generate:init
57
+
58
+ ### generate configuration folder structure
59
+
60
+ cd ~/workspace
61
+ repo generate:init .repo_manager
62
+
63
+ generate:init output
64
+
65
+ init creating initial config file at '/home/robert/workspace/.repo_manager/repo.conf'
66
+ create .repo_manager/repo.conf
67
+ init creating initial file structure in '/home/robert/workspace/.repo_manager'
68
+ exist .repo_manager
69
+ create .repo_manager/.gitignore
70
+ create .repo_manager/assets/.gitignore
71
+ create .repo_manager/global/default/asset.conf
72
+ create .repo_manager/tasks/.gitignore
73
+
74
+ ### generate individual repository configurations files
75
+
76
+ generate multiple config files by searching a folder, one level deep, for git repositories
77
+
78
+
79
+ repo generate:config . --filter=mutagem,basic_*,repo_manager
80
+
81
+ generate config output
82
+
83
+ collecting collecting top level folder names
84
+ configuring setting discovered asset configuration paths
85
+ comparing looking for existing asset names
86
+ comparing looking for existing asset paths
87
+ Discovered assets
88
+ found basic_gem path => './basic_gem'
89
+ found basic_website path => './basic_website'
90
+ found basic_assets path => './basic_assets'
91
+ found repo_manager path => './repo_manager'
92
+ found basic_app path => './basic_app'
93
+ found mutagem path => './mutagem'
94
+ found basic_rails path => './basic_rails'
95
+
96
+ Found 7 assets, write the configuration files (y/n)?
97
+
98
+ answer 'y'
99
+
100
+ creating repo_manager configuration file for basic_gem
101
+ creating repo_manager configuration file for basic_website
102
+ creating repo_manager configuration file for basic_assets
103
+ creating repo_manager configuration file for repo_manager
104
+ creating repo_manager configuration file for basic_app
105
+ creating repo_manager configuration file for mutagem
106
+ creating repo_manager configuration file for basic_rails
107
+
108
+
109
+ Example Usage - Managing game saves across multiple computers
110
+ -------------------------------------------------------------
111
+
112
+ See examples/pc_saved_game_backup/README.markdown
113
+
114
+
115
+ Bash completion
116
+ ----------------
117
+
118
+ Handy functions for use under Bash. These work fine on Win32 using
119
+ Git-Bash.
120
+
121
+ * rcd: repo cd (change directory). Wrapper for 'cd', allows for simple cd
122
+ <repo name> to the working folder on the filesystem referenced by the 'path'
123
+ configuration variable.
124
+ * rpushd: repo pushd (push directory). Wrapper for 'pushd'.
125
+
126
+
127
+ vim ~/.bashrc
128
+
129
+ function rcd(){ cd "$(repo --match=ONE --no-color path $@)"; }
130
+ function rpushd(){ pushd "$(repo path --match=ONE --no-color $@)"; }
131
+ alias rpopd="popd"
132
+
133
+ # provide completion for repo names
134
+ function _repo_names()
135
+ {
136
+ local cur opts prev
137
+ COMPREPLY=()
138
+ cur="${COMP_WORDS[COMP_CWORD]}"
139
+ opts=`repo list --list=name --no-color`
140
+
141
+ COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
142
+ return 0
143
+ }
144
+ complete -F _repo_names rcd rpushd repo
145
+
146
+
147
+ Rake tasks
148
+ ----------
149
+
150
+ bundle exec rake -T
151
+
152
+ rake build # Build repo_manager-0.7.1.gem into the pkg directory
153
+ rake cucumber # Run Cucumber features
154
+ rake doc:clean # Remove generated documenation
155
+ rake doc:generate # Generate YARD Documentation
156
+ rake doc:undocumented # List undocumented objects
157
+ rake gemfiles # Generate .gemfiles via 'git ls-files'
158
+ rake install # Build and install repo_manager-0.7.1.gem into system gems
159
+ rake release # Create tag v0.7.1 and build and push repo_manager-0.7.1.gem to Rubygems
160
+ rake spec # Run RSpec
161
+ rake test # Run specs, both RSpec and Cucumber
162
+
163
+
164
+ Development Environment
165
+ -----------------------
166
+
167
+ RepoManager was originally cloned from [BasicApp](http://github.com/robertwahler/BasicApp).
168
+
169
+ all systems
170
+
171
+ cd ~/workspace
172
+ git clone https://github.com/robertwahler/repo_manager
173
+ cd repo_manager
174
+
175
+ gem install bundler
176
+ bundle
177
+
178
+ colored output on windows
179
+
180
+ gem install win32console
181
+
182
+
183
+ Autotesting with Guard
184
+ ----------------------
185
+
186
+ bundle exec guard
187
+
188
+
189
+ Copyright
190
+ ---------
191
+
192
+ Copyright (c) 2012 GearheadForHire, LLC. See [LICENSE](LICENSE) for details.