Class: Capistrano::Deploy::SCM::Bzr
- Defined in:
- lib/capistrano/recipes/deploy/scm/bzr.rb
Overview
Implements the Capistrano SCM interface for the Bazaar-NG revision control system (bazaar-vcs.org/).
Instance Attribute Summary
Attributes inherited from Base
Instance Method Summary collapse
-
#checkout(revision, destination) ⇒ Object
Returns the command that will check out the given revision to the given destination.
-
#diff(from, to = nil) ⇒ Object
The bzr “diff” command doesn’t accept a repository argument, so it must be run from within a working tree.
-
#export(revision, destination) ⇒ Object
The bzr ‘export’ does an export similar to other SCM systems.
-
#head ⇒ Object
Bazaar-NG doesn’t support any pseudo-id’s, so we’ll use the convention in this adapter that the :head symbol means the most recently committed revision.
-
#log(from, to = nil) ⇒ Object
Returns a log of changes between the two revisions (inclusive).
-
#next_revision(revision) ⇒ Object
Increments the given revision number and returns it.
-
#query_revision(revision) ⇒ Object
Attempts to translate the given revision identifier to a “real” revision.
-
#sync(revision, destination) ⇒ Object
The bzr ‘update’ command does not support updating to a specific revision, so this just does update, followed by revert (unless updating to head).
Methods inherited from Base
#command, default_command, #handle_data, #initialize, #local, #local?, #scm
Constructor Details
This class inherits a constructor from Capistrano::Deploy::SCM::Base
Instance Method Details
#checkout(revision, destination) ⇒ Object
Returns the command that will check out the given revision to the given destination.
23 24 25 |
# File 'lib/capistrano/recipes/deploy/scm/bzr.rb', line 23 def checkout(revision, destination) scm :checkout, "--lightweight", revswitch(revision), repository, destination end |
#diff(from, to = nil) ⇒ Object
The bzr “diff” command doesn’t accept a repository argument, so it must be run from within a working tree.
43 44 45 46 47 48 |
# File 'lib/capistrano/recipes/deploy/scm/bzr.rb', line 43 def diff(from, to=nil) switch = "-r#{from}" switch << "..#{to}" if to scm :diff, switch end |
#export(revision, destination) ⇒ Object
The bzr ‘export’ does an export similar to other SCM systems
37 38 39 |
# File 'lib/capistrano/recipes/deploy/scm/bzr.rb', line 37 def export(revision, destination) scm :export, revswitch(revision), destination, repository end |
#head ⇒ Object
Bazaar-NG doesn’t support any pseudo-id’s, so we’ll use the convention in this adapter that the :head symbol means the most recently committed revision.
17 18 19 |
# File 'lib/capistrano/recipes/deploy/scm/bzr.rb', line 17 def head :head end |
#log(from, to = nil) ⇒ Object
Returns a log of changes between the two revisions (inclusive).
51 52 53 |
# File 'lib/capistrano/recipes/deploy/scm/bzr.rb', line 51 def log(from, to=nil) scm :log, "--short", "-r#{from}..#{to}", repository end |
#next_revision(revision) ⇒ Object
Increments the given revision number and returns it.
69 70 71 |
# File 'lib/capistrano/recipes/deploy/scm/bzr.rb', line 69 def next_revision(revision) revision.to_i + 1 end |
#query_revision(revision) ⇒ Object
Attempts to translate the given revision identifier to a “real” revision. If the identifier is :head, the “bzr revno” command will be yielded, and the block must execute the command and return the output. The revision will be extracted from the output and returned. If the ‘revision’ argument, on the other hand, is not :head, it is simply returned.
61 62 63 64 65 66 |
# File 'lib/capistrano/recipes/deploy/scm/bzr.rb', line 61 def query_revision(revision) return revision unless :head == revision command = scm('revno', repository) result = yield(command) end |
#sync(revision, destination) ⇒ Object
The bzr ‘update’ command does not support updating to a specific revision, so this just does update, followed by revert (unless updating to head).
30 31 32 33 34 |
# File 'lib/capistrano/recipes/deploy/scm/bzr.rb', line 30 def sync(revision, destination) commands = [scm(:update, destination)] commands << [scm(:revert, revswitch(revision), destination)] if revision != head commands.join(" && ") end |