silo 0.1.1.1 → 0.1.2

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.
data/.gitignore ADDED
@@ -0,0 +1,3 @@
1
+ .yardoc
2
+ doc/*
3
+ pkg/*
data/.travis.yml ADDED
@@ -0,0 +1,7 @@
1
+ rvm:
2
+ - 1.8.6
3
+ - 1.8.7
4
+ - 1.9.1
5
+ - 1.9.2
6
+ - jruby
7
+ - ree
data/Changelog.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # Changelog
2
2
 
3
+ ## Version 0.1.2
4
+
5
+ * Improved compatibility with Rubies other than 1.8.7
6
+ * Use Bundler
7
+ * Added a monkey patch for Grit returning commits in wrong order
8
+ * Improved tests
9
+
10
+ See the [Git history](https://github.com/koraktor/silo/compare/0.1.1...0.1.2)
11
+ for version 0.1.2
12
+
13
+ ## Version 0.1.1
14
+
15
+ * Fixed bugs related to file operations
16
+ * Added a monkey patch for Grit not being able to delete directories
17
+ * Lots of other fixes and improvements
18
+
19
+ See the [Git history](https://github.com/koraktor/silo/compare/0.1.0...0.1.1)
20
+ for version 0.1.1
21
+
3
22
  ## Version 0.1.0
4
23
 
5
24
  **January 30<sup>th</sup>, 2011**
data/Gemfile ADDED
@@ -0,0 +1,11 @@
1
+ source :rubygems
2
+
3
+ gem 'grit', '~> 2.4.1'
4
+
5
+ group :development do
6
+ gem 'yard', '~> 0.6.7'
7
+ end
8
+
9
+ group :test do
10
+ gem 'shoulda', '~> 2.11.3'
11
+ end
data/Gemfile.lock ADDED
@@ -0,0 +1,18 @@
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ specs:
4
+ diff-lcs (1.1.2)
5
+ grit (2.4.1)
6
+ diff-lcs (~> 1.1)
7
+ mime-types (~> 1.15)
8
+ mime-types (1.16)
9
+ shoulda (2.11.3)
10
+ yard (0.6.7)
11
+
12
+ PLATFORMS
13
+ ruby
14
+
15
+ DEPENDENCIES
16
+ grit (~> 2.4.1)
17
+ shoulda (~> 2.11.3)
18
+ yard (~> 0.6.7)
data/README.md CHANGED
@@ -26,11 +26,22 @@ and recommended for most users.
26
26
 
27
27
  $ gem install silo
28
28
 
29
- If you want to use the development code you should clone the Git repository:
29
+ If you want to use the development code you can add the following dependency
30
+ to your Gemfile:
31
+
32
+ gem 'silo', :git => git://github.com/koraktor/silo.git
33
+
34
+ If you want to work with the development code you should clone the Git
35
+ repository:
30
36
 
31
37
  $ git clone git://github.com/koraktor/silo.git
32
38
  $ cd silo
33
- $ rake install
39
+ $ bundle install
40
+
41
+ Or even better, create your own fork.
42
+
43
+ The current status of the development code:
44
+ [![Build Status](http://travis-ci.org/koraktor/silo.png)][6]
34
45
 
35
46
  ## Basic usage
36
47
 
@@ -151,3 +162,4 @@ Follow Silo on Twitter [@silorb](http://twitter.com/silorb).
151
162
  [3]: http://github.com/koraktor/silo
152
163
  [4]: http://github.com/koraktor/silo/issues
153
164
  [5]: http://rubydoc.info/github/koraktor/silo/master/frames
165
+ [6]: http://travis-ci.org/koraktor/silo
data/Rakefile CHANGED
@@ -1,12 +1,18 @@
1
1
  # This code is free software; you can redistribute it and/or modify it under
2
2
  # the terms of the new BSD License.
3
3
  #
4
- # Copyright (c) 2010, Sebastian Staudt
4
+ # Copyright (c) 2010-2011, Sebastian Staudt
5
5
 
6
+ require 'rake/gempackagetask'
6
7
  require 'rake/testtask'
7
8
 
8
9
  task :default => :test
9
10
 
11
+ # Rake tasks for building the gem
12
+ spec = Gem::Specification.load('silo.gemspec')
13
+ Rake::GemPackageTask.new(spec) do |pkg|
14
+ end
15
+
10
16
  # Test task
11
17
  Rake::TestTask.new do |t|
12
18
  t.libs << 'lib' << 'test'
@@ -14,13 +20,6 @@ Rake::TestTask.new do |t|
14
20
  t.verbose = true
15
21
  end
16
22
 
17
- begin
18
- require 'ore/tasks'
19
- Ore::Tasks.new
20
- rescue LoadError
21
- $stderr.puts 'You need ore-tasks to build the gem. Install it using `gem install ore-tasks`.'
22
- end
23
-
24
23
  begin
25
24
  require 'yard'
26
25
 
@@ -0,0 +1,34 @@
1
+ # This code is free software; you can redistribute it and/or modify it under
2
+ # the terms of the new BSD License.
3
+ #
4
+ # Copyright (c) 2011, Sebastian Staudt
5
+
6
+ # Monkey patches an issue in Grit::GitRuby::Repository which will cause commits
7
+ # to appear in the wrong order
8
+ class Grit::GitRuby::Repository
9
+
10
+ # Returns a list of revisions for the given reference ID and the given
11
+ # options
12
+ #
13
+ # @returns [String] A list of commits and additional information, just like
14
+ # git-rev-list.
15
+ def rev_list(sha, options)
16
+ (end_sha, sha) = sha if sha.is_a? Array
17
+
18
+ log = log(sha, options)
19
+ log = truncate_arr(log, end_sha) if end_sha
20
+
21
+ if options[:max_count]
22
+ if (opt_len = options[:max_count].to_i) < log.size
23
+ log = log[0, opt_len]
24
+ end
25
+ end
26
+
27
+ if options[:pretty] == 'raw'
28
+ log.map {|k, v| v }.join('')
29
+ else
30
+ log.map {|k, v| k }.join("\n")
31
+ end
32
+ end
33
+
34
+ end
data/lib/grit/index.rb CHANGED
@@ -12,7 +12,7 @@ class Grit::Index
12
12
  # @param [String] path The path to the file
13
13
  # @param [String] data The contents of the file
14
14
  def add(path, data)
15
- is_dir = path[-1] == 47
15
+ is_dir = path[-1].chr == '/'
16
16
  path = path.split('/')
17
17
  filename = path.pop
18
18
  filename += '/' if is_dir
@@ -6,8 +6,10 @@
6
6
  require 'tmpdir'
7
7
 
8
8
  require 'rubygems'
9
- require 'grit'
9
+ require 'bundler'
10
+ Bundler.require :default
10
11
 
12
+ require File.dirname(__FILE__) + '/../grit/git-ruby/repository'
11
13
  require File.dirname(__FILE__) + '/../grit/index'
12
14
 
13
15
  module Silo
@@ -53,7 +55,7 @@ module Silo
53
55
 
54
56
  @path = File.expand_path path
55
57
 
56
- if File.exist?(@path) && Dir.new(@path).count > 2
58
+ if File.exist?(@path) && Dir.entries(@path).size > 2
57
59
  unless File.exist?(File.join(@path, 'HEAD')) &&
58
60
  File.stat(File.join(@path, 'objects')).directory? &&
59
61
  File.stat(File.join(@path, 'refs')).directory?
@@ -100,7 +102,7 @@ module Silo
100
102
  pre = (p == '/') ? file : File.join(p, file)
101
103
  dir = File.stat(f).directory?
102
104
  if dir
103
- Dir.entries(f)[2..-1].each do |child|
105
+ (Dir.entries(f) - %w{. ..}).each do |child|
104
106
  add.call File.join(f, child), pre
105
107
  end
106
108
  else
@@ -111,7 +113,7 @@ module Silo
111
113
  dir = add.call path, prefix
112
114
  type = dir ? 'directory' : 'file'
113
115
  commit_msg = "Added #{type} #{path} into '#{prefix}'"
114
- index.commit commit_msg, @git.head.commit.sha
116
+ index.commit commit_msg, [@git.head.commit.sha]
115
117
  end
116
118
  end
117
119
 
@@ -153,6 +155,42 @@ module Silo
153
155
  @remotes.each_value { |remote| remote.push }
154
156
  end
155
157
 
158
+ # Returns the object (tree or blob) at the given path inside the repository
159
+ #
160
+ # @param [String] path The path of the object in the repository
161
+ # @raise [FileNotFoundError] if no object with the given path exists
162
+ # @return [Grit::Blob, Grit::Tree] The object at the given path
163
+ def find_object(path = '/')
164
+ (path == '/') ? @git.tree : @git.tree/path
165
+ end
166
+
167
+ # Loads remotes from the backing Git repository's configuration
168
+ #
169
+ # @see Remote::Git
170
+ def git_remotes
171
+ remotes = {}
172
+ @git.git.remote.split.each do |remote|
173
+ url = @git.git.config({}, '--get', "remote.#{remote}.url").strip
174
+ remotes[remote] = Remote::Git.new(self, remote, url)
175
+ end
176
+ remotes
177
+ end
178
+
179
+ # Generate a history of Git commits for either the complete repository or
180
+ # a specified file or directory
181
+ #
182
+ # @param [String] path The path of the file or directory to generate the
183
+ # history for. If +nil+, the history of the entire repository will
184
+ # be returned.
185
+ # @return [Array<Grit::Commit>] The commit history for the repository or
186
+ # given path
187
+ def history(path = nil)
188
+ params = ['--format=raw']
189
+ params += ['--', path] unless path.nil?
190
+ output = @git.git.log({}, *params)
191
+ Grit::Commit.list_from_string @git, output
192
+ end
193
+
156
194
  # Run a block of code with +$GIT_WORK_TREE+ set to a specified path
157
195
  #
158
196
  # This executes a block of code while the environment variable
@@ -164,9 +202,9 @@ module Silo
164
202
  # @yield [path] The code inside this block will be executed with
165
203
  # +$GIT_WORK_TREE+ set
166
204
  # @yieldparam [String] path The absolute path used for +$GIT_WORK_TREE+
167
- def in_work_tree(path = '.')
205
+ def in_work_tree(path)
168
206
  tmp_dir = path == :tmp
169
- path = tmp_dir ? Dir.mktmpdir : File.expand_path(path)
207
+ path = Dir.mktmpdir if tmp_dir
170
208
  old_work_tree = ENV['GIT_WORK_TREE']
171
209
  ENV['GIT_WORK_TREE'] = path
172
210
  Dir.chdir(path) { yield path }
@@ -205,16 +243,16 @@ module Silo
205
243
  info
206
244
  end
207
245
 
208
- # Loads remotes from the backing Git repository's configuration
246
+ # Returns the object (tree or blob) at the given path inside the repository
247
+ # or fail if it does not exist
209
248
  #
210
- # @see Remote::Git
211
- def git_remotes
212
- remotes = {}
213
- @git.git.remote.split.each do |remote|
214
- url = @git.git.config({}, '--get', "remote.#{remote}.url").strip
215
- remotes[remote] = Remote::Git.new(self, remote, url)
216
- end
217
- remotes
249
+ # @param (see #find_object)
250
+ # @raise [FileNotFoundError] if no object with the given path exists
251
+ # @return (see #find_object)
252
+ def object!(path)
253
+ object = find_object path
254
+ raise FileNotFoundError.new(path) if object.nil?
255
+ object
218
256
  end
219
257
 
220
258
  # Prepares the Git repository backing this Silo repository for use with
@@ -230,42 +268,6 @@ module Silo
230
268
  end
231
269
  end
232
270
 
233
- # Generate a history of Git commits for either the complete repository or
234
- # a specified file or directory
235
- #
236
- # @param [String] path The path of the file or directory to generate the
237
- # history for. If +nil+, the history of the entire repository will
238
- # be returned.
239
- # @return [Array<Grit::Commit>] The commit history for the repository or
240
- # given path
241
- def history(path = nil)
242
- params = ['--format=raw']
243
- params += ['--', path] unless path.nil?
244
- output = @git.git.log({}, *params)
245
- Grit::Commit.list_from_string @git, output
246
- end
247
-
248
- # Returns the object (tree or blob) at the given path inside the repository
249
- #
250
- # @param [String] path The path of the object in the repository
251
- # @raise [FileNotFoundError] if no object with the given path exists
252
- # @return [Grit::Blob, Grit::Tree] The object at the given path
253
- def find_object(path = '/')
254
- (path == '/') ? @git.tree : @git.tree/path
255
- end
256
-
257
- # Returns the object (tree or blob) at the given path inside the repository
258
- # or fail if it does not exist
259
- #
260
- # @param (see #find_object)
261
- # @raise [FileNotFoundError] if no object with the given path exists
262
- # @return (see #find_object)
263
- def object!(path)
264
- object = find_object path
265
- raise FileNotFoundError.new(path) if object.nil?
266
- object
267
- end
268
-
269
271
  # Return whether the Git repository backing this Silo repository has
270
272
  # already been prepared for use with Silo
271
273
  #
@@ -308,13 +310,13 @@ module Silo
308
310
  # repository
309
311
  def remove(path)
310
312
  object = object! path
311
- path += '/' if object.is_a?(Grit::Tree) && path[-1] != 47
313
+ path += '/' if object.is_a?(Grit::Tree) && path[-1].chr != '/'
312
314
  index = @git.index
313
315
  index.read_tree 'HEAD'
314
316
  index.delete path
315
317
  type = object.is_a?(Grit::Tree) ? 'directory' : 'file'
316
318
  commit_msg = "Removed #{type} #{path}"
317
- index.commit commit_msg, @git.head.commit.sha
319
+ index.commit commit_msg, [@git.head.commit.sha]
318
320
  end
319
321
  alias_method :rm, :remove
320
322
 
data/lib/silo/version.rb CHANGED
@@ -6,6 +6,6 @@
6
6
  module Silo
7
7
 
8
8
  # The current version of the Silo gem
9
- VERSION = '0.1.1'
9
+ VERSION = '0.1.2'
10
10
 
11
11
  end
data/silo.gemspec ADDED
@@ -0,0 +1,22 @@
1
+ require 'bundler'
2
+
3
+ require File.expand_path(File.dirname(__FILE__) + '/lib/silo/version')
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "silo"
7
+ s.version = Silo::VERSION
8
+ s.platform = Gem::Platform::RUBY
9
+ s.authors = [ 'Sebastian Staudt' ]
10
+ s.email = [ 'koraktor@gmail.com' ]
11
+ s.licenses = [ 'BSD' ]
12
+ s.homepage = 'http://koraktor.de/silo'
13
+ s.summary = 'A command-line utility and API for Git-based backups'
14
+ s.description = %Q{With Silo you can backup arbitrary files into one or more Git repositories and take advantage of Git's compression, speed and other features. No Git knowledge needed.}
15
+
16
+ s.add_bundler_dependencies
17
+ s.requirements = [ 'git >= 1.6' ]
18
+
19
+ s.files = `git ls-files`.split("\n")
20
+ s.test_files = `git ls-files -- test/test_*.rb`.split("\n")
21
+ s.require_paths = [ 'lib' ]
22
+ end
data/test/helper.rb CHANGED
@@ -8,6 +8,4 @@ $: << File.dirname(__FILE__)
8
8
  require 'silo'
9
9
  include Silo
10
10
 
11
- require 'rubygems'
12
- require 'shoulda'
13
-
11
+ Bundler.require :test
@@ -19,7 +19,7 @@ class TestRepository < Test::Unit::TestCase
19
19
 
20
20
  should 'contain a bare Git repository prepared for Silo by default' do
21
21
  repo = Repository.new @dir
22
- assert repo.git.is_a? Grit::Repo
22
+ assert_instance_of Grit::Repo, repo.git
23
23
  assert repo.prepared?
24
24
  assert_equal 1, repo.git.commits.size
25
25
  assert_equal 'Enabled Silo for this repository', repo.git.commits.first.message
@@ -27,7 +27,7 @@ class TestRepository < Test::Unit::TestCase
27
27
 
28
28
  should 'contain a plain Git repository when option :prepare is false' do
29
29
  repo = Repository.new @dir, :prepare => false
30
- assert repo.git.is_a? Grit::Repo
30
+ assert_instance_of Grit::Repo, repo.git
31
31
  assert !repo.prepared?
32
32
  assert_equal 0, repo.git.commits.size
33
33
  end
@@ -60,12 +60,13 @@ class TestRepository < Test::Unit::TestCase
60
60
  FileUtils.touch '.silo'
61
61
  `git add .silo`
62
62
  `git commit -m "Enabled Silo for this repository"`
63
+ ENV['GIT_DIR'] = nil
63
64
  ENV['GIT_WORK_TREE'] = nil
64
65
  @repo = Repository.new @repo_dir
65
66
  end
66
67
 
67
68
  should 'contain a Git repository' do
68
- assert @repo.git.is_a? Grit::Repo
69
+ assert_instance_of Grit::Repo, @repo.git
69
70
  end
70
71
 
71
72
  should 'be prepared' do
@@ -101,10 +102,10 @@ class TestRepository < Test::Unit::TestCase
101
102
  @repo.add @data_dir/'file2'
102
103
 
103
104
  assert_equal 3, @repo.git.commits.size
104
- assert (@repo.git.tree/('file1')).is_a? Grit::Blob
105
- assert (@repo.git.tree/('file2')).is_a? Grit::Blob
105
+ assert_instance_of Grit::Blob, @repo.git.tree/'file1'
106
+ assert_instance_of Grit::Blob, @repo.git.tree/'file2'
106
107
  assert_equal "Added file #{@data_dir + 'file1'} into '/'", @repo.git.commits[1].message
107
- assert_equal "Added file #{@data_dir + 'file2'} into '/'", @repo.git.commits[2].message
108
+ assert_equal "Added file #{@data_dir + 'file2'} into '/'", @repo.git.commits[0].message
108
109
  assert_equal %w{.silo file1 file2}, @repo.contents
109
110
 
110
111
  assert_raise FileNotFoundError do
@@ -116,13 +117,13 @@ class TestRepository < Test::Unit::TestCase
116
117
  @repo.add @data_dir
117
118
 
118
119
  assert_equal 2, @repo.git.commits.size
119
- assert_equal "Added directory #{@data_dir} into '/'", @repo.git.commits[1].message
120
- assert (@repo.git.tree/('data/file1')).is_a? Grit::Blob
121
- assert (@repo.git.tree/('data/file2')).is_a? Grit::Blob
122
- assert (@repo.git.tree/('data/subdir1')).is_a? Grit::Tree
123
- assert (@repo.git.tree/('data/subdir1/file1')).is_a? Grit::Blob
124
- assert (@repo.git.tree/('data/subdir2')).is_a? Grit::Tree
125
- assert (@repo.git.tree/('data/subdir2/file2')).is_a? Grit::Blob
120
+ assert_equal "Added directory #{@data_dir} into '/'", @repo.git.commits[0].message
121
+ assert_instance_of Grit::Blob, @repo.git.tree/'data/file1'
122
+ assert_instance_of Grit::Blob, @repo.git.tree/'data/file2'
123
+ assert_instance_of Grit::Tree, @repo.git.tree/'data/subdir1'
124
+ assert_instance_of Grit::Blob, @repo.git.tree/'data/subdir1/file1'
125
+ assert_instance_of Grit::Tree, @repo.git.tree/'data/subdir2'
126
+ assert_instance_of Grit::Blob, @repo.git.tree/'data/subdir2/file2'
126
127
  assert_equal %w{data data/file1 data/file2 data/subdir1 data/subdir1/file1 data/subdir2 data/subdir2/file2}, @repo.contents('data')
127
128
  assert_equal %w{data/subdir1 data/subdir1/file1}, @repo.contents('data/subdir1')
128
129
  assert_equal %w{data/subdir2 data/subdir2/file2}, @repo.contents('data/subdir2')
@@ -137,10 +138,10 @@ class TestRepository < Test::Unit::TestCase
137
138
  @repo.add @data_dir/'file2', 'prefix'
138
139
 
139
140
  assert_equal 3, @repo.git.commits.size
140
- assert (@repo.git.tree/('prefix/file1')).is_a? Grit::Blob
141
- assert (@repo.git.tree/('prefix/file2')).is_a? Grit::Blob
141
+ assert_instance_of Grit::Blob, @repo.git.tree/'prefix/file1'
142
+ assert_instance_of Grit::Blob, @repo.git.tree/'prefix/file2'
142
143
  assert_equal "Added file #{@data_dir + 'file1'} into 'prefix'", @repo.git.commits[1].message
143
- assert_equal "Added file #{@data_dir + 'file2'} into 'prefix'", @repo.git.commits[2].message
144
+ assert_equal "Added file #{@data_dir + 'file2'} into 'prefix'", @repo.git.commits[0].message
144
145
 
145
146
  assert_raise FileNotFoundError do
146
147
  @repo.restore 'file1'
@@ -151,13 +152,13 @@ class TestRepository < Test::Unit::TestCase
151
152
  @repo.add @data_dir, 'prefix'
152
153
 
153
154
  assert_equal 2, @repo.git.commits.size
154
- assert_equal "Added directory #{@data_dir} into 'prefix'", @repo.git.commits[1].message
155
- assert (@repo.git.tree/('prefix/data/file1')).is_a? Grit::Blob
156
- assert (@repo.git.tree/('prefix/data/file2')).is_a? Grit::Blob
157
- assert (@repo.git.tree/('prefix/data/subdir1')).is_a? Grit::Tree
158
- assert (@repo.git.tree/('prefix/data/subdir1/file1')).is_a? Grit::Blob
159
- assert (@repo.git.tree/('prefix/data/subdir2')).is_a? Grit::Tree
160
- assert (@repo.git.tree/('prefix/data/subdir2/file2')).is_a? Grit::Blob
155
+ assert_equal "Added directory #{@data_dir} into 'prefix'", @repo.git.commits[0].message
156
+ assert_instance_of Grit::Blob, @repo.git.tree/'prefix/data/file1'
157
+ assert_instance_of Grit::Blob, @repo.git.tree/'prefix/data/file2'
158
+ assert_instance_of Grit::Tree, @repo.git.tree/'prefix/data/subdir1'
159
+ assert_instance_of Grit::Blob, @repo.git.tree/'prefix/data/subdir1/file1'
160
+ assert_instance_of Grit::Tree, @repo.git.tree/'prefix/data/subdir2'
161
+ assert_instance_of Grit::Blob, @repo.git.tree/'prefix/data/subdir2/file2'
161
162
 
162
163
  assert_raise FileNotFoundError do
163
164
  @repo.restore 'prefix/file1'
@@ -194,15 +195,15 @@ class TestRepository < Test::Unit::TestCase
194
195
 
195
196
  @repo.remove 'data/file1'
196
197
  assert_equal 4, @repo.git.commits.size
197
- assert (@repo.git.tree/'data/file1').nil?
198
+ assert_nil @repo.git.tree/'data/file1'
198
199
 
199
200
  @repo.remove 'data'
200
201
  assert_equal 5, @repo.git.commits.size
201
- assert (@repo.git.tree/'data').nil?
202
+ assert_nil @repo.git.tree/'data'
202
203
 
203
204
  @repo.remove 'file1'
204
205
  assert_equal 6, @repo.git.commits.size
205
- assert (@repo.git.tree/'file1').nil?
206
+ assert_nil @repo.git.tree/'file1'
206
207
  end
207
208
 
208
209
  should 'purge files and directories correctly' do
@@ -211,15 +212,15 @@ class TestRepository < Test::Unit::TestCase
211
212
 
212
213
  @repo.purge 'data/file1'
213
214
  assert_equal 3, @repo.git.commits.size
214
- assert (@repo.git.tree/'data/file1').nil?
215
+ assert_nil @repo.git.tree/'data/file1'
215
216
 
216
217
  @repo.purge 'data'
217
218
  assert_equal 2, @repo.git.commits.size
218
- assert (@repo.git.tree/'data').nil?
219
+ assert_nil @repo.git.tree/'data'
219
220
 
220
221
  @repo.purge 'file1'
221
222
  assert_equal 1, @repo.git.commits.size
222
- assert (@repo.git.tree/'file1').nil?
223
+ assert_nil @repo.git.tree/'file1'
223
224
 
224
225
  @repo.add @data_dir
225
226
  @repo.add @data_dir/'file1'
@@ -227,8 +228,8 @@ class TestRepository < Test::Unit::TestCase
227
228
  @repo.purge 'data', false
228
229
  @repo.purge 'file1', false
229
230
  assert_equal 3, @repo.git.commits.size
230
- assert (@repo.git.tree/'data').nil?
231
- assert (@repo.git.tree/'file1').nil?
231
+ assert_nil @repo.git.tree/'data'
232
+ assert_nil @repo.git.tree/'file1'
232
233
  end
233
234
 
234
235
  teardown do
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: silo
3
3
  version: !ruby/object:Gem::Version
4
- hash: 65
4
+ hash: 31
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 1
10
- - 1
11
- version: 0.1.1.1
9
+ - 2
10
+ version: 0.1.2
12
11
  platform: ruby
13
12
  authors:
14
13
  - Sebastian Staudt
@@ -16,29 +15,10 @@ autorequire:
16
15
  bindir: bin
17
16
  cert_chain: []
18
17
 
19
- date: 2011-02-02 00:00:00 +01:00
20
- default_executable: silo
18
+ date: 2011-04-12 00:00:00 Z
21
19
  dependencies:
22
20
  - !ruby/object:Gem::Dependency
23
- name: rubikon
24
- prerelease: false
25
- requirement: &id001 !ruby/object:Gem::Requirement
26
- none: false
27
- requirements:
28
- - - ~>
29
- - !ruby/object:Gem::Version
30
- hash: 7
31
- segments:
32
- - 0
33
- - 6
34
- - 0
35
- version: 0.6.0
36
- type: :runtime
37
- version_requirements: *id001
38
- - !ruby/object:Gem::Dependency
39
- name: grit
40
- prerelease: false
41
- requirement: &id002 !ruby/object:Gem::Requirement
21
+ version_requirements: &id001 !ruby/object:Gem::Requirement
42
22
  none: false
43
23
  requirements:
44
24
  - - ~>
@@ -49,89 +29,63 @@ dependencies:
49
29
  - 4
50
30
  - 1
51
31
  version: 2.4.1
52
- type: :runtime
53
- version_requirements: *id002
54
- - !ruby/object:Gem::Dependency
55
- name: shoulda
32
+ name: grit
56
33
  prerelease: false
57
- requirement: &id003 !ruby/object:Gem::Requirement
58
- none: false
59
- requirements:
60
- - - ~>
61
- - !ruby/object:Gem::Version
62
- hash: 37
63
- segments:
64
- - 2
65
- - 11
66
- - 3
67
- version: 2.11.3
68
- type: :development
69
- version_requirements: *id003
34
+ type: :runtime
35
+ requirement: *id001
70
36
  - !ruby/object:Gem::Dependency
71
- name: ore-tasks
72
- prerelease: false
73
- requirement: &id004 !ruby/object:Gem::Requirement
37
+ version_requirements: &id002 !ruby/object:Gem::Requirement
74
38
  none: false
75
39
  requirements:
76
40
  - - ~>
77
41
  - !ruby/object:Gem::Version
78
- hash: 19
42
+ hash: 9
79
43
  segments:
80
44
  - 0
81
- - 3
82
- - 0
83
- version: 0.3.0
84
- type: :development
85
- version_requirements: *id004
86
- - !ruby/object:Gem::Dependency
45
+ - 6
46
+ - 7
47
+ version: 0.6.7
87
48
  name: yard
88
49
  prerelease: false
89
- requirement: &id005 !ruby/object:Gem::Requirement
90
- none: false
91
- requirements:
92
- - - ~>
93
- - !ruby/object:Gem::Version
94
- hash: 15
95
- segments:
96
- - 0
97
- - 6
98
- - 4
99
- version: 0.6.4
100
50
  type: :development
101
- version_requirements: *id005
51
+ requirement: *id002
102
52
  description: With Silo you can backup arbitrary files into one or more Git repositories and take advantage of Git's compression, speed and other features. No Git knowledge needed.
103
- email: koraktor@gmail.com
104
- executables:
105
- - silo
53
+ email:
54
+ - koraktor@gmail.com
55
+ executables: []
56
+
106
57
  extensions: []
107
58
 
108
- extra_rdoc_files:
59
+ extra_rdoc_files: []
60
+
61
+ files:
62
+ - .gitignore
63
+ - .travis.yml
64
+ - .yardopts
109
65
  - Changelog.md
66
+ - Gemfile
67
+ - Gemfile.lock
110
68
  - LICENSE
111
- files:
69
+ - README.md
70
+ - Rakefile
71
+ - bin/silo
72
+ - lib/core_ext/pathname.rb
73
+ - lib/grit/git-ruby/repository.rb
74
+ - lib/grit/index.rb
75
+ - lib/silo.rb
76
+ - lib/silo/cli.rb
77
+ - lib/silo/errors.rb
78
+ - lib/silo/remote/base.rb
112
79
  - lib/silo/remote/git.rb
113
- - gemspec.yml
114
80
  - lib/silo/repository.rb
115
- - lib/core_ext/pathname.rb
116
- - .yardopts
81
+ - lib/silo/version.rb
82
+ - silo.gemspec
117
83
  - test/data/file1
118
84
  - test/data/file2
119
- - bin/silo
120
- - LICENSE
121
- - test/data/subdir2/file2
122
85
  - test/data/subdir1/file1
123
- - lib/silo/version.rb
124
- - lib/grit/index.rb
125
- - Rakefile
126
- - README.md
127
- - test/test_repository.rb
128
- - Changelog.md
129
- - lib/silo/remote/base.rb
130
- - lib/silo/errors.rb
131
- - lib/silo.rb
86
+ - test/data/subdir2/file2
132
87
  - test/helper.rb
133
- - lib/silo/cli.rb
134
- has_rdoc: true
88
+ - test/test_repository.rb
135
89
  homepage: http://koraktor.de/silo
136
90
  licenses:
137
91
  - BSD
@@ -160,8 +114,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
160
114
  version: "0"
161
115
  requirements:
162
116
  - git >= 1.6
163
- rubyforge_project: silo
164
- rubygems_version: 1.5.0
117
+ rubyforge_project:
118
+ rubygems_version: 1.7.2
165
119
  signing_key:
166
120
  specification_version: 3
167
121
  summary: A command-line utility and API for Git-based backups
data/gemspec.yml DELETED
@@ -1,30 +0,0 @@
1
- name: silo
2
- summary: A command-line utility and API for Git-based backups
3
- description: With Silo you can backup arbitrary files into one or more Git
4
- repositories and take advantage of Git's compression, speed and
5
- other features. No Git knowledge needed.
6
- version: 0.1.1.1
7
-
8
- license: BSD
9
- authors: Sebastian Staudt
10
- email: koraktor@gmail.com
11
- homepage: http://koraktor.de/silo
12
- has_yard: true
13
-
14
- extra_doc_files:
15
- - Changelog.md
16
- - LICENSE
17
- require_paths: lib
18
- test_files: test/**/test_*.rb
19
-
20
- dependencies:
21
- grit: ~> 2.4.1
22
- rubikon: ~> 0.6.0
23
-
24
- development_dependencies:
25
- ore-tasks: ~> 0.3.0
26
- shoulda: ~> 2.11.3
27
- yard: ~> 0.6.4
28
-
29
- requirements:
30
- - git >= 1.6