omnirepo 0.5.0.0.pre → 0.9.pre

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (8) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +2 -1
  3. data/Gemfile +1 -0
  4. data/LICENSE.txt +1 -1
  5. data/README.md +17 -14
  6. data/bin/omnirepo +129 -105
  7. data/omnirepo.gemspec +1 -1
  8. metadata +10 -11
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0de193035ffbc63293ac558163fa9bc6519e0597
4
- data.tar.gz: 5597b8bfa5d0ac31564a58fc2444884ed1c24ff3
3
+ metadata.gz: fc5da9a8b9dbe6fba15de1c4f8ab54319d7b2479
4
+ data.tar.gz: ec5480bd3fc4e18c705a7c4d0f6c2318634c34e0
5
5
  SHA512:
6
- metadata.gz: 98f40124f15c5be9e75017e11446788d1cc1882f396b228218065b1412e3ee57defdac1efb33f5ddd476707729ed923852d6a9fc11a90e4d5ab6d9188b050912
7
- data.tar.gz: ebb92830746b0dbd4dceae34bcd51ef6a57abfcc637be28b349e2371a20f2eb7c66ecfdef4f1a84d3c9de731ad9dd3dafc61d016fa678be5d1ca8e2e634e28fc
6
+ metadata.gz: 0bbc96254859106e2912a2c116e03239ede7f250e08ce2ae140d3bf78f5a815a8438be7000e73d929c1a49af7c06a03d1b91a5cdb738b2051704190b1c336cd2
7
+ data.tar.gz: 0a949382b5b5249a375cbc035eaf00dc047b9111b33beecff35c85744959b01b26aab33aa7f8fc68ea446ca7fe2cf88e641ba2a33113989f1172fa61108be267
data/CHANGES.md CHANGED
@@ -4,4 +4,5 @@ HEAD
4
4
  * Added `.omnirepo` configuration file support. YAML file with these options:
5
5
  * [required, if using .omnirepo] `repositories` array, of individual repositories.
6
6
  * [optional] `submodules` if `remove` will remove submodules from repositories.
7
- * [optional] `merging` can be `skip` and it will just prepare but not merge.
7
+ * [optional] `merging` can be `skip` and it will just prepare but not merge.
8
+ * Primarily supports `GitHub` ... but now also other git servers.
data/Gemfile CHANGED
@@ -2,3 +2,4 @@ source "https://rubygems.org"
2
2
 
3
3
  gemspec
4
4
 
5
+ gem 'colorize'
@@ -1,4 +1,4 @@
1
- Copyright (c) 2011-2014 Donovan Keme
1
+ Copyright (c) 2015 Donovan Keme
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/README.md CHANGED
@@ -1,13 +1,6 @@
1
1
  # omnirepo
2
2
 
3
- Create a new omnibus repository out of a collection of existing GitHub repositories.
4
-
5
-
6
- ## Installation:
7
-
8
- ```
9
- gem install omnirepo
10
- ```
3
+ Create a new omnibus repository out of a collection of existing git repositories.
11
4
 
12
5
  ## What exactly does it do with repositories?!
13
6
 
@@ -17,19 +10,27 @@ gem install omnirepo
17
10
  0. It immediately removes any remote `origin` detected.
18
11
  0. Preserves the git history for each repository.
19
12
  0. (optional) If desired, it removes any submodules present first.
20
- 0. It also renames all branches and tags to be `<repository>/<name>`.
13
+ 0. It also renames all branches and tags to be `standalone/<repository>/<name>`.
21
14
  0. Does garbage collection on the repository being migrated.
22
15
  0. Imports each source repository as a sub-directory of the omnibus repository.
23
16
  0. Does garbage collection on the new omnibus repository.
24
17
  0. **Does not push the new omnibus repository live.**
25
18
 
26
- ### System Requirements:
19
+ ---
20
+
21
+ #### Installation:
22
+
23
+ ```
24
+ gem install omnirepo
25
+ ```
26
+
27
+ #### System Requirements:
27
28
 
28
29
  * Unix-based operating system, with `ruby` and `git` preinstalled.
29
30
  * Prefers `tmpfs` partition located at `/dev/shm` for temporary storage.
30
31
  * Read access to all remote repositories involed.
31
32
 
32
- ### Usage:
33
+ # Use without a configuration file:
33
34
 
34
35
  ```sh
35
36
  omnirepo <username/organization> <destination-omnibus> <source-repository> [...]
@@ -52,6 +53,7 @@ This would be your command:
52
53
  ```sh
53
54
  omnirepo org9 repo0 repoA repoB repoC
54
55
  ```
56
+
55
57
  # Use with a configuration file:
56
58
 
57
59
  For the scenario above, you can create a configuration file as follows:
@@ -65,7 +67,7 @@ repositories:
65
67
 
66
68
  Save that file as `repo0/.omnirepo`
67
69
 
68
- Then you can run this command:
70
+ Then run this command:
69
71
 
70
72
  ```sh
71
73
  omnirepo org9 repo0
@@ -85,6 +87,7 @@ omnirepo org9 repo0
85
87
 
86
88
  ## License
87
89
 
88
- Copyright (c) 2015 Donovan Keme.
90
+ Distributed under the MIT License.
91
+ See [LICENSE.txt](https://github.com/digitalextremist/omnirepo/blob/master/LICENSE.txt) for further details.
89
92
 
90
- Distributed under the MIT License. See [LICENSE.txt](https://github.com/digitalextremist/omnirepo/LICENSE.txt) for further details.
93
+ Copyright (c) 2015 Donovan Keme.
@@ -1,7 +1,11 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
+ require 'colorize'
4
+
3
5
  start = Time.now #de Not monotonic, but bah.
4
- puts "Omnibus repository unification tool..."
6
+
7
+ puts LINE = "-----------------------------------------------------------------------------------".cyan.bold.freeze
8
+ puts "[ #{"omnirepo".green.bold} ] Omnibus repository unification tool..."
5
9
 
6
10
  def omnirepo?
7
11
  if File.exists?(File.join("#{Dir.pwd}/#{ARGV[1]}", ".omnirepo"))
@@ -11,8 +15,8 @@ def omnirepo?
11
15
  false
12
16
  end
13
17
 
14
- def urandom_id
15
- `cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1`
18
+ def urandom_id(length=24)
19
+ `cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w #{length} | head -n 1`.strip.chomp
16
20
  end
17
21
 
18
22
  def success?(results)
@@ -22,6 +26,12 @@ def success?(results)
22
26
  results.first == true
23
27
  end
24
28
 
29
+ bad_bullet = "*".red.bold
30
+ good_bullet = "*".green.bold
31
+ humble_bullet = "*".cyan
32
+
33
+ instance = urandom_id(5)
34
+
25
35
  begin
26
36
 
27
37
  #de TODO: Validate owner.
@@ -33,17 +43,17 @@ begin
33
43
  OMNIBUS = "#{Dir.pwd}/#{ARGV.shift}"
34
44
  CONFIG = Psych.load_file(File.join(OMNIBUS, ".omnirepo"))
35
45
  unless CONFIG.is_a?(Hash) && CONFIG["repositories"].is_a?(Array)
36
- puts "Onmirepo configuration file invalid."
46
+ puts "#{bad_bullet} Onmirepo configuration file invalid."
37
47
  exit!
38
48
  end
39
49
  REPOSITORIES = CONFIG['repositories'].uniq
40
50
  GIT = CONFIG["git"] if CONFIG["git"].is_a?(String)
41
51
  elsif ARGV.length <= 3
42
52
  puts "Usage: omnirepo <owner org/user> <destination-omnibus-dir> <source-repo1> <source-repo2> [...]"
43
- puts "No owner organization/username supplied." unless ARGV.any?
44
- puts "No destination omnibus directory supplied." unless ARGV.length >= 2
45
- puts "No source repositories supplied." unless ARGV.length == 3
46
- puts "Only one source repository supplied." if ARGV.length == 3
53
+ puts "#{bad_bullet} No owner organization/username supplied." unless ARGV.any?
54
+ puts "#{bad_bullet} No destination omnibus directory supplied." unless ARGV.length >= 2
55
+ puts "#{bad_bullet} No source repositories supplied." unless ARGV.length == 3
56
+ puts "#{bad_bullet} Only one source repository supplied." if ARGV.length == 3
47
57
  exit!
48
58
  else
49
59
  OWNER = ARGV.shift
@@ -54,58 +64,60 @@ begin
54
64
 
55
65
  GIT = "git@github.com".freeze unless defined? GIT
56
66
 
67
+ object_prefix = CONFIG["object_prefix"] || "standalone/"
57
68
  tmp='/dev/shm'
58
69
  tmp='/tmp' unless Dir.exists?(tmp)
59
70
  TMP="#{tmp}/omnirepo.#{urandom_id}".chomp.strip
60
71
 
61
72
  unless Dir.mkdir(TMP)
62
- STDERR.puts "ERROR: Unable to make the temporary working directory: #{TMP}"
73
+ STDERR.puts "#{"ERROR".red.bold}: Unable to make the temporary working directory: #{TMP}"
63
74
  exit!
64
75
  end
65
76
 
66
- puts LINE = "-----------------------------------------------------------------------------------".freeze
77
+ puts LINE
67
78
 
68
79
  unless Dir.exists?(OMNIBUS)
69
80
  puts "Destination omnibus directory does not exist: #{OMNIBUS}"
70
81
  exit!
71
82
  end
72
83
 
73
- puts "Owner organization/user: #{OWNER}"
74
- puts "Destination omnibus: #{OMNIBUS}"
75
- puts "Working directory: #{TMP}"
76
- puts LINE
84
+ puts "\t#{good_bullet} Instance: #{instance.green}"
85
+ puts "\t#{good_bullet} Owner organization/user: #{OWNER.green}"
86
+ puts "\t#{good_bullet} Destination omnibus: #{OMNIBUS.green}"
87
+ puts "\t#{good_bullet} Working directory: #{TMP}"
77
88
 
78
89
  Dir.chdir(OMNIBUS)
79
90
 
80
91
  if `git show 2> /dev/null | grep "commit" | wc -l`.to_i != 1
81
92
  puts LINE
82
- STDERR.puts "ERROR: Destination omnibus directory is not a git repository, or not ready."
93
+ STDERR.puts "#{"ERROR".red.bold}: Destination omnibus directory is not a git repository, or not ready."
83
94
  exit!
84
95
  end
85
96
 
97
+ puts LINE
98
+
86
99
  #de TODO: Further validate omnibus repository.
87
100
 
101
+ branches = {}
88
102
  failures = []
103
+ repos = []
89
104
 
90
105
  REPOSITORIES.each { |repo|
91
-
92
- puts "\n\n\n#{LINE}"
93
- puts "Adding the #{repo} repository..."
94
- puts "Source: #{GIT}:#{OWNER}/#{repo}.git"
95
- puts LINE
106
+
107
+ puts "\n\n#{LINE}\n#{humble_bullet} Adding the #{repo.bold} repository from #{"#{GIT}:#{OWNER}/#{repo}.git".bold}\n#{LINE}"
96
108
 
97
109
  unless Dir.chdir(TMP)
98
- STDERR.puts "ERROR: Failure to change to the temporary working directory."
110
+ STDERR.puts "#{"ERROR".red.bold}: Failure to change to the temporary working directory."
99
111
  exit!
100
112
  end
101
113
 
102
114
  unless system("git clone --mirror '#{GIT}:#{OWNER}/#{repo}.git' #{repo}")
103
- puts "FERROR: ailed to clone: #{repo}"
115
+ puts "F#{"ERROR".red.bold}: ailed to clone: #{repo}"
104
116
  exit!
105
117
  end
106
118
 
107
119
  unless Dir.chdir(repo_bare = File.join(TMP, repo))
108
- STDERR.puts "ERROR: Failed to mirror the #{repo} repository."
120
+ STDERR.puts "#{"ERROR".red.bold}: Failed to mirror the #{repo} repository."
109
121
  exit!
110
122
  end
111
123
 
@@ -113,138 +125,150 @@ begin
113
125
  `git remote rm origin > /dev/null 2> /dev/null`
114
126
  end
115
127
 
116
- branches = []
117
- `git branch | grep -v master | grep -v "refs/"`.split("\n").each { |branch|
118
- begin
119
- result = nil
120
- branches << (branch = branch.strip.chomp)
121
- result = system("git branch -m '#{branch}' '#{repo}/#{branch}")
122
- rescue => ex
123
- STDERR.puts "WARN: Could not migrate the #{branch} branch.\nReason: #{ex}"
124
- ensure
125
- failures << "#{repo} / branch: #{branch}" unless result == true
126
- end
127
- }
128
-
129
- repo_clone = "../#{repo}.clone"
130
- unless cloned = system("git clone . #{repo_clone} > /dev/null")
131
- STDERR.puts "ERROR: Failed to make local clone of #{repo}."
128
+ repo_clone = "#{repo_bare}.clone"
129
+ unless system("git clone -q . #{repo_clone}")
130
+ STDERR.puts "#{"ERROR".red.bold}: Failed to make local clone of #{repo}."
132
131
  failures << "#{repo} / locally clone"
133
132
  next
134
133
  end
135
-
134
+
136
135
  Dir.chdir(repo_clone)
137
136
 
138
137
  begin
139
138
  if CONFIG['submodules'] == 'remove'
140
- if File.exists?(module_config = File.join(repo_bare, repo_clone, ".gitmodules"))
139
+ if File.exists?(module_config = File.join(repo_clone, ".gitmodules"))
141
140
  submodules = File.read(module_config)
142
141
  .split("\n")
143
142
  .map { |line|
144
143
  if line.include?("path =")
145
144
  submodule = line.sub("path =", "").chomp.strip
146
145
  unless submodule.empty?
147
- `git rm -rf ./#{submodule}`
148
- submodule
146
+ submodule
149
147
  end
150
148
  else
151
149
  nil
152
150
  end
153
151
  }.compact
154
- result = []
155
- result << system("git rm -rf .gitmodules")
156
- result << system("git commit -am '[omnirepo] removing submodules: #{submodules.join(', ')}'")
157
- result << system("git push")
158
- failures << "#{repo} / submodules: remove .gitmodules, then commit/push" unless success?(result)
159
- puts "#{LINE}\nRemoved submodules first: #{submodules.join(', ')}"
152
+
153
+ puts "\n\n#{LINE}\n#{humble_bullet} Removing submodules: #{submodules.join(', ')}\n#{LINE}"
154
+ unless system("git filter-branch --tag-name-filter cat --tree-filter 'rm -rf #{submodules.join(' ')} .gitmodules' -- --all")
155
+ failures << "#{repo} / submodules: remove .gitmodules, then commit/push"
156
+ end
160
157
  end
161
158
  end
162
159
  rescue => ex
163
- STDERR.puts "WARN: Could not remove associated submodules.\nReason: #{ex}"
160
+ STDERR.puts "#{bad_bullet} #{"WARN:".red} Could not remove associated submodules.\nReason: #{ex}"
164
161
  failures << "#{repo} / remove submodules"
165
- ensure
166
- Dir.chdir(repo_bare)
167
162
  end
168
163
 
169
- puts "#{LINE}\nPreserving change history and files, but making the repository a sub-directory..."
164
+ puts "\n\n#{LINE}\n#{humble_bullet} Preserving change history and files, but making the repository a sub-directory...\n#{LINE}"
170
165
  print "... please wait: "
171
166
 
172
- unless system("git filter-branch --tree-filter " +
173
- "'mkdir #{repo}; " +
174
- "find -maxdepth 1 " +
175
- "-not -name . " +
176
- "-not -name .git " +
177
- "-not -name #{repo} " +
178
- "| xargs -I{} mv {} #{repo}' " +
179
- "-d #{TMP}/#{urandom_id} -- --all")
180
- failures << "#{repo} / repository tree-filter"
181
- end
167
+ filtering = "git filter-branch -f --tag-name-filter cat --index-filter 'SHA=$(git write-tree); " +
168
+ "rm $GIT_INDEX_FILE && git read-tree --prefix=#{repo}/ $SHA' -- --all"
182
169
 
183
- unless system("git commit -am '[omnirepo] merging the rearranged file structure'")
184
- failures << "#{repo} / merge rearranged file structure"
185
- STDERR.puts "ERROR: Could not merge-in rearranged file structure."
186
- next
187
- end
170
+ failures << "#{repo} / repository tree-filter" unless system(filtering)
188
171
 
189
172
  tags = []
190
173
  `git tag`.split("\n").each { |tag|
191
174
  begin
192
175
  result = []
193
176
  tags << (tag = tag.chomp.strip)
194
- result << system("git tag '#{repo}/#{tag}' '#{tag}' > /dev/null")
195
- result << system("git tag -d '#{tag}' > /dev/null")
177
+ result << system("git tag '#{object_prefix}#{repo}/#{tag}' '#{tag}' > /dev/null")
178
+ result << system("git tag -d '#{tag}'")
196
179
  rescue => ex
197
- STDERR.puts "WARN: Could not migrate the #{tag} tag.\nReason: #{ex}"
180
+ STDERR.puts "#{bad_bullet} #{"WARN:".red} Could not migrate the #{tag} tag.\nReason: #{ex}"
198
181
  result << false
199
182
  ensure
200
183
  failures << "#{repo} / tag: #{tag}" unless success?(result)
201
184
  end
202
185
  }
203
186
 
204
- puts "#{LINE}\nGarbage collection of source repository...\n#{LINE}"
205
- failures << "#{repo} / garbage collection" unless `git gc --aggressive`
206
-
207
- if CONFIG['merging'] == 'skip'
208
- puts "Skipping actual merge into omnibus..."
209
- next
210
- end
211
-
212
- puts "#{LINE}\nMerging the prepared repository into the omnibus...\n#{LINE}"
187
+ Dir.chdir(repo_bare)
188
+ system("git remote add clone #{repo_clone}")
189
+ system("git tag | xargs git tag -d")
190
+ puts "\n\n#{LINE}\n#{humble_bullet} Synchronizing all changes to working repository...\n#{LINE}"
191
+ failures << "synchronize working repos" unless system("git fetch -u --tags clone +refs/heads/*:refs/heads/*")
213
192
 
214
- result = []
215
- Dir.chdir(OMNIBUS)
216
- result << system("git remote add #{repo} #{repo_bare}")
217
- result << system("git fetch #{repo}")
218
- result << system("git merge --no-ff #{repo}/master --commit '[omnirepo] merging in the #{repo} repository.'")
219
- result << system("git remote rm #{repo}")
193
+ branches[repo] = []
194
+ `git branch | grep -v "refs/"`.split("\n").each { |branch|
195
+ begin
196
+ result = nil
197
+ branch = branch.gsub("* ", "").strip.chomp
198
+ b = "#{object_prefix}#{repo}/#{branch}"
199
+ result = system("git branch -m '#{branch}' '#{b}'")
200
+ branches[repo] << b
201
+ rescue => ex
202
+ STDERR.puts "#{bad_bullet} #{"WARN:".red} Could not migrate the #{branch} branch.\nReason: #{ex}"
203
+ ensure
204
+ unless result
205
+ failures << "#{repo} / branch: #{branch}"
206
+ end
207
+ end
208
+ }
220
209
 
221
- unless success?(result)
222
- failures << "#{repo} / merge into omnibus"
223
- next
210
+ unless CONFIG['merging'] == 'skip'
211
+ result = []
212
+ Dir.chdir(OMNIBUS)
213
+ result << system("git remote add #{repo}.#{instance} #{repo_bare}")
214
+ unless success?(result)
215
+ failures << "#{repo} / attach remote to omnibus"
216
+ next
217
+ end
224
218
  end
219
+ repos << repo
220
+ }
225
221
 
226
- if branches.any?
227
- puts "#{LINE}\nThese branches were migrated:\n#{LINE}"
228
- branches.each { |branch| puts "#{branch.rjust(35)} is now #{repo}/#{branch}\n" }
229
- end
230
-
231
- if tags.any?
232
- puts "#{LINE}\nThese tags were migrated:\n#{LINE}"
233
- tags.each { |tag| puts "#{tag.rjust(35)} is now #{repo}/#{tag}\n" }
222
+ unless CONFIG['merging'] == 'skip'
223
+ puts "\n\n#{LINE}\n#{humble_bullet} Merging the prepared standalone repositories into the omnibus...\n#{LINE}"
224
+ if repos.any?
225
+ if system("git fetch --all")
226
+ repos.each { |repo|
227
+
228
+ if branches[repo].any?
229
+ puts "#{good_bullet} Merge branch into master: #{"#{repo}.#{instance}/#{object_prefix}#{repo}/master".cyan}"
230
+ unless system("git merge --no-ff --commit -m '[omnirepo] merging #{object_prefix}#{repo}/master into origin/master' #{repo}.#{instance}/#{object_prefix}#{repo}/master")
231
+ failures << "#{repo} / merging in master branch"
232
+ end
233
+ branches[repo].each { |branch|
234
+ failures << "#{repo} / merging in branch: #{branch}" unless system("git fetch '#{repo}.#{instance}' '#{branch}:#{branch}'")
235
+ }
236
+ else
237
+ failures << "#{repo} / no branches"
238
+ end
239
+
240
+ failures << "#{repo} / removing temporary remote" unless system("git remote rm #{repo}.#{instance}")
241
+
242
+ }
243
+ else
244
+ failures << "fetching all repositories"
245
+ end
246
+ else
247
+ failures << "no repositories to merge in"
234
248
  end
249
+ end
235
250
 
236
- }
251
+ puts "\n\n#{LINE}\n#{humble_bullet} Garbage collection of the omnibus repository...\n#{LINE}"
252
+ failures << "omnibus garbage collection" unless system("git gc --aggressive")
237
253
 
238
254
  puts "\n\n\n"
239
255
  #de TODO: Delete working directory, or at least give config or command line option to do so.
240
- puts "#{LINE}\nThere were the following failures:\n#{LINE}\n#{failures.join("\n")}" if failures.any?
241
- puts "\n\n\n#{LINE}"
242
- puts "Omnibus unification of repositories finished in #{"%0.4f" % (Time.now.to_f - start.to_f)} seconds."
243
- puts "#{LINE}\nRemove your temporary working directory when you are ready:"
256
+
257
+ if failures.any?
258
+ puts "#{LINE}\nThere were the following failures:\n#{LINE}\n\t#{bad_bullet} #{failures.join("\n\t#{bad_bullet} ")}"
259
+ end
260
+
261
+ puts "\n\n\n#{LINE}\n#{humble_bullet} Remove your temporary working directory when you are ready:"
244
262
  puts " #{TMP}"
245
- puts "#{LINE}\nWARNING: Be sure to check over the new omnibus repository before pushing it!"
246
- puts " Each repository has been committed into it."
247
- puts LINE
263
+ puts "#{LINE}\n#{humble_bullet} #{"WARNING:".bold} Be sure to check over the new omnibus repository before pushing it!"
264
+ puts " Each repository has been committed into it.\n\n"
265
+
266
+ if repos.any?
267
+ puts LINE
268
+ puts "The following repositories were combined into one omnibus repository:\n#{LINE}\n\t#{good_bullet} #{repos.join("\n\t#{good_bullet} ")}"
269
+ end
270
+
271
+ puts "#{LINE}\n[ #{"omnirepo".green.bold} ] Omnibus unification of repositories finished in #{"%0.4f" % (Time.now.to_f - start.to_f)} seconds.\n#{LINE}\n\n"
248
272
 
249
273
  rescue => ex
250
274
  puts "Exiting prematurely. Re-run to make an intact omnibus repository."
@@ -11,7 +11,7 @@ Gem::Specification.new do |gem|
11
11
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
12
12
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
13
13
  gem.name = "omnirepo"
14
- gem.version = '0.5.0.0.pre'
14
+ gem.version = '0.9.pre'
15
15
  gem.licenses = ['MIT']
16
16
  gem.required_ruby_version = ">= 1.9.2"
17
17
  gem.required_rubygems_version = ">= 1.3.6"
metadata CHANGED
@@ -1,17 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omnirepo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0.0.pre
4
+ version: 0.9.pre
5
5
  platform: ruby
6
6
  authors:
7
7
  - Donovan Keme
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-08-08 00:00:00.000000000 Z
11
+ date: 2015-10-10 00:00:00.000000000 Z
12
12
  dependencies: []
13
- description: Create a new omnibus repository out of collections of existing GitHub
14
- repositories.
13
+ description: Create a new omnibus repository out of collections of existing GitHub repositories.
15
14
  email:
16
15
  - code@extremist.digital
17
16
  executables:
@@ -19,7 +18,7 @@ executables:
19
18
  extensions: []
20
19
  extra_rdoc_files: []
21
20
  files:
22
- - ".gitignore"
21
+ - .gitignore
23
22
  - CHANGES.md
24
23
  - Gemfile
25
24
  - LICENSE.txt
@@ -31,24 +30,24 @@ homepage: https://github.com/digitalextremist/omnirepo
31
30
  licenses:
32
31
  - MIT
33
32
  metadata: {}
34
- post_install_message:
33
+ post_install_message:
35
34
  rdoc_options: []
36
35
  require_paths:
37
36
  - lib
38
37
  required_ruby_version: !ruby/object:Gem::Requirement
39
38
  requirements:
40
- - - ">="
39
+ - - '>='
41
40
  - !ruby/object:Gem::Version
42
41
  version: 1.9.2
43
42
  required_rubygems_version: !ruby/object:Gem::Requirement
44
43
  requirements:
45
- - - ">="
44
+ - - '>='
46
45
  - !ruby/object:Gem::Version
47
46
  version: 1.3.6
48
47
  requirements: []
49
- rubyforge_project:
48
+ rubyforge_project:
50
49
  rubygems_version: 2.4.8
51
- signing_key:
50
+ signing_key:
52
51
  specification_version: 4
53
52
  summary: Unify GitHub repositories as one repository containing them all as sub-directories.
54
53
  test_files: []