bluemango (owner)

Revisions

gist: 195440 Download_button fork
public
Public Clone URL: git://gist.github.com/195440.git
Embed All Files: show embed
capistrano/recipes/deploy/scm/git.rb #
1
2
3
4
5
6
7
8
9
10
11
12
13
14
        # Getting the actual commit id, in case we were passed a tag
        # or partial sha or something - it will return the sha if you pass a sha, too
        def query_revision(revision)
          raise ArgumentError, "Deploying remote branches has been deprecated. Specify the remote branch as a local branch for the git repository you're deploying from (ie: '#{revision.gsub('origin/', '')}' rather than '#{revision}')." if revision =~ /^origin\//
          return revision if revision =~ /^[0-9a-f]{40}$/
          command = scm('ls-remote', repository, revision)
          result = yield(command)
          result = result.split("\n")[1]
          revdata = result.split("\t")
          newrev = revdata[0]
          raise "Unable to resolve revision for '#{revision}' on repository '#{repository}'." unless newrev =~ /^[0-9a-f]{40}$/
          return newrev
        end