capistrano 2.5.2 → 2.5.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,16 @@
1
+ == 2.5.3 / December 6, 2008
2
+
3
+ * Make previous_release return nil if there is no previous release [Mathias Meyer]
4
+
5
+ * Play nice with rubies that don't inspect terminals well (ie. JRuby) by defaulting screen columns to 80 [Bob McWhirter]
6
+
7
+ * Rollback of deploy:symlink would explode if there was no previous revision to rollback to [Jamis Buck]
8
+
9
+ * Fix bug in transfer.rb that caused get/put/upload/download to ignore blocks passed to them [arika]
10
+
11
+ * Fix issue with git SCM that caused "Unable to resolve revision" errors when there was trailing whitespace in git's output [Mark Zuneska, Daniel Berlinger and Evan Closson]
12
+
13
+
1
14
  == 2.5.2 / November 13, 2008
2
15
 
3
16
  * Fix issue with git SCM that caused "Unable to resolve revision for 'HEAD'" errors on deploy [Jamis Buck]
@@ -1,10 +1,10 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = %q{capistrano}
3
- s.version = "2.5.2"
3
+ s.version = "2.5.3"
4
4
 
5
5
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
6
6
  s.authors = ["Jamis Buck"]
7
- s.date = %q{2008-11-13}
7
+ s.date = %q{2008-12-06}
8
8
  s.description = %q{Capistrano is a utility and framework for executing commands in parallel on multiple remote machines, via SSH.}
9
9
  s.email = %q{jamis@jamisbuck.org}
10
10
  s.executables = ["cap", "capify"]
@@ -111,7 +111,14 @@ module Capistrano
111
111
  end
112
112
 
113
113
  def output_columns #:nodoc:
114
- @output_columns ||= self.class.ui.output_cols > 80 ? 80 : self.class.ui.output_cols
114
+ if ( @output_columns.nil? )
115
+ if ( self.class.ui.output_cols.nil? || self.class.ui.output_cols > 80 )
116
+ @output_columns = 80
117
+ else
118
+ @output_columns = self.class.ui.output_cols
119
+ end
120
+ end
121
+ @output_columns
115
122
  end
116
123
  end
117
124
  end
@@ -52,7 +52,7 @@ _cset(:release_path) { File.join(releases_path, release_name) }
52
52
 
53
53
  _cset(:releases) { capture("ls -xt #{releases_path}").split.reverse }
54
54
  _cset(:current_release) { File.join(releases_path, releases.last) }
55
- _cset(:previous_release) { File.join(releases_path, releases[-2]) }
55
+ _cset(:previous_release) { releases.length > 1 ? File.join(releases_path, releases[-2]) : nil }
56
56
 
57
57
  _cset(:current_revision) { capture("cat #{current_path}/REVISION").chomp }
58
58
  _cset(:latest_revision) { capture("cat #{current_release}/REVISION").chomp }
@@ -251,7 +251,14 @@ namespace :deploy do
251
251
  except `restart').
252
252
  DESC
253
253
  task :symlink, :except => { :no_release => true } do
254
- on_rollback { run "rm -f #{current_path}; ln -s #{previous_release} #{current_path}; true" }
254
+ on_rollback do
255
+ if previous_release
256
+ run "rm -f #{current_path}; ln -s #{previous_release} #{current_path}; true"
257
+ else
258
+ logger.important "no previous release to rollback to, rollback of symlink skipped"
259
+ end
260
+ end
261
+
255
262
  run "rm -f #{current_path} && ln -s #{latest_release} #{current_path}"
256
263
  end
257
264
 
@@ -302,10 +309,10 @@ namespace :deploy do
302
309
  ever) need to be called directly.
303
310
  DESC
304
311
  task :revision, :except => { :no_release => true } do
305
- if releases.length < 2
306
- abort "could not rollback the code because there is no prior release"
307
- else
312
+ if previous_release
308
313
  run "rm #{current_path}; ln -s #{previous_release} #{current_path}"
314
+ else
315
+ abort "could not rollback the code because there is no prior release"
309
316
  end
310
317
  end
311
318
 
@@ -213,14 +213,14 @@ module Capistrano
213
213
  command = scm('ls-remote', repository, revision)
214
214
  result = yield(command)
215
215
  revdata = result.split(/[\t\n]/)
216
- newrev = nil
217
- revdata.each_slice(2) do |refs|
218
- rev, ref = *refs
219
- if ref.sub(/refs\/.*?\//, '') == revision
220
- newrev = rev
221
- break
216
+ newrev = nil
217
+ revdata.each_slice(2) do |refs|
218
+ rev, ref = *refs
219
+ if ref.sub(/refs\/.*?\//, '').strip == revision
220
+ newrev = rev
221
+ break
222
222
  end
223
- end
223
+ end
224
224
  raise "Unable to resolve revision for '#{revision}' on repository '#{repository}'." unless newrev =~ /^[0-9a-f]{40}$/
225
225
  return newrev
226
226
  end
@@ -29,7 +29,7 @@ module Capistrano
29
29
  @to = to
30
30
  @sessions = sessions
31
31
  @options = options
32
- @callback = callback
32
+ @callback = block
33
33
 
34
34
  @transport = options.fetch(:via, :sftp)
35
35
  @logger = options.delete(:logger)
@@ -213,4 +213,4 @@ module Capistrano
213
213
  end
214
214
  end
215
215
  end
216
- end
216
+ end
@@ -6,7 +6,7 @@ module Capistrano
6
6
  class Version < Net::SSH::Version
7
7
  MAJOR = 2
8
8
  MINOR = 5
9
- TINY = 2
9
+ TINY = 3
10
10
 
11
11
  # The current version, as a Version instance
12
12
  CURRENT = new(MAJOR, MINOR, TINY)
@@ -64,6 +64,14 @@ class DeploySCMGitTest < Test::Unit::TestCase
64
64
  end
65
65
  assert_equal "d11006102c07c94e5d54dd0ee63dca825c93ed61", revision
66
66
  end
67
+
68
+ def test_query_revision_has_whitespace
69
+ revision = @source.query_revision('HEAD') do |o|
70
+ assert_equal "git ls-remote . HEAD", o
71
+ "d11006102c07c94e5d54dd0ee63dca825c93ed61\tHEAD\r"
72
+ end
73
+ assert_equal "d11006102c07c94e5d54dd0ee63dca825c93ed61", revision
74
+ end
67
75
 
68
76
  def test_query_revision_deprecation_error
69
77
  assert_raise(ArgumentError) do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capistrano
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.5.2
4
+ version: 2.5.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jamis Buck
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-11-13 00:00:00 -07:00
12
+ date: 2008-12-06 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency