Implements the Capistrano SCM interface for the Bazaar-NG revision control system (bazaar-vcs.org/).
Returns the command that will check out the given revision to the given destination.
# File lib/capistrano/recipes/deploy/scm/bzr.rb, line 23 def checkout(revision, destination) scm :checkout, "--lightweight", revswitch(revision), repository, destination end
The bzr "diff" command doesn't accept a repository argument, so it must be run from within a working tree.
# 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
The bzr 'export' does an export similar to other SCM systems
# File lib/capistrano/recipes/deploy/scm/bzr.rb, line 37 def export(revision, destination) scm :export, revswitch(revision), destination, repository end
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.
# File lib/capistrano/recipes/deploy/scm/bzr.rb, line 17 def head :head end
Returns a log of changes between the two revisions (inclusive).
# File lib/capistrano/recipes/deploy/scm/bzr.rb, line 51 def log(from, to=nil) scm :log, "--short", "-r#{from}..#{to}", repository end
Increments the given revision number and returns it.
# File lib/capistrano/recipes/deploy/scm/bzr.rb, line 69 def next_revision(revision) revision.to_i + 1 end
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.
# 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
The bzr 'update' command does not support updating to a specific revision, so this just does update, followed by revert (unless updating to head).
# 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
Generated with the Darkfish Rdoc Generator 2.