Class Capistrano::Deploy::SCM::Perforce
In: lib/capistrano/recipes/deploy/scm/perforce.rb
lib/capistrano/recipes/deploy/scm/perforce.rb
Parent: Base

Implements the Capistrano SCM interface for the Perforce revision control system (www.perforce.com).

Methods

checkout   checkout   diff   diff   export   export   handle_data   handle_data   head   head   log   log   next_revision   next_revision   query_revision   query_revision   sync   sync  

Public Instance methods

Returns the command that will sync the given revision to the given destination directory. The perforce client has a fixed destination so the files must be copied from there to their intended resting place.

[Source]

    # File lib/capistrano/recipes/deploy/scm/perforce.rb, line 27
27:         def checkout(revision, destination)
28:           p4_sync(revision, destination, p4sync_flags)
29:         end

Returns the command that will sync the given revision to the given destination directory. The perforce client has a fixed destination so the files must be copied from there to their intended resting place.

[Source]

    # File lib/capistrano/recipes/deploy/scm/perforce.rb, line 27
27:         def checkout(revision, destination)
28:           p4_sync(revision, destination, p4sync_flags)
29:         end

Returns the command that will do an "p4 diff2" for the two revisions.

[Source]

    # File lib/capistrano/recipes/deploy/scm/perforce.rb, line 46
46:         def diff(from, to=head)
47:           scm authentication, :diff2, "-u -db", "//#{p4client}/...#{rev_no(from)}", "//#{p4client}/...#{rev_no(to)}"
48:         end

Returns the command that will do an "p4 diff2" for the two revisions.

[Source]

    # File lib/capistrano/recipes/deploy/scm/perforce.rb, line 46
46:         def diff(from, to=head)
47:           scm authentication, :diff2, "-u -db", "//#{p4client}/...#{rev_no(from)}", "//#{p4client}/...#{rev_no(to)}"
48:         end

Returns the command that will sync the given revision to the given destination directory. The perforce client has a fixed destination so the files must be copied from there to their intended resting place.

[Source]

    # File lib/capistrano/recipes/deploy/scm/perforce.rb, line 41
41:         def export(revision, destination)
42:           p4_sync(revision, destination, p4sync_flags)
43:         end

Returns the command that will sync the given revision to the given destination directory. The perforce client has a fixed destination so the files must be copied from there to their intended resting place.

[Source]

    # File lib/capistrano/recipes/deploy/scm/perforce.rb, line 41
41:         def export(revision, destination)
42:           p4_sync(revision, destination, p4sync_flags)
43:         end

Determines what the response should be for a particular bit of text from the SCM. Password prompts, connection requests, passphrases, etc. are handled here.

[Source]

    # File lib/capistrano/recipes/deploy/scm/perforce.rb, line 69
69:         def handle_data(state, stream, text)
70:           case text
71:           when /\(P4PASSWD\) invalid or unset\./i
72:                   raise Capistrano::Error, "scm_password (or p4passwd) is incorrect or unset"
73:           when /Can.t create a new user.*/i
74:                   raise Capistrano::Error, "scm_username (or p4user) is incorrect or unset"
75:           when /Perforce client error\:/i        
76:                   raise Capistrano::Error, "p4port is incorrect or unset"
77:           when /Client \'[\w\-\_\.]+\' unknown.*/i
78:                   raise Capistrano::Error, "p4client is incorrect or unset"
79:           end                
80:         end

Determines what the response should be for a particular bit of text from the SCM. Password prompts, connection requests, passphrases, etc. are handled here.

[Source]

    # File lib/capistrano/recipes/deploy/scm/perforce.rb, line 69
69:         def handle_data(state, stream, text)
70:           case text
71:           when /\(P4PASSWD\) invalid or unset\./i
72:                   raise Capistrano::Error, "scm_password (or p4passwd) is incorrect or unset"
73:           when /Can.t create a new user.*/i
74:                   raise Capistrano::Error, "scm_username (or p4user) is incorrect or unset"
75:           when /Perforce client error\:/i        
76:                   raise Capistrano::Error, "p4port is incorrect or unset"
77:           when /Client \'[\w\-\_\.]+\' unknown.*/i
78:                   raise Capistrano::Error, "p4client is incorrect or unset"
79:           end                
80:         end

Perforce understands ‘head’ to refer to the latest revision in the depot.

[Source]

    # File lib/capistrano/recipes/deploy/scm/perforce.rb, line 20
20:         def head
21:           'head'
22:         end

Perforce understands ‘head’ to refer to the latest revision in the depot.

[Source]

    # File lib/capistrano/recipes/deploy/scm/perforce.rb, line 20
20:         def head
21:           'head'
22:         end

Returns a "p4 changes" command for the two revisions.

[Source]

    # File lib/capistrano/recipes/deploy/scm/perforce.rb, line 51
51:         def log(from=1, to=head)
52:           scm authentication, :changes, "-s submitted", "//#{p4client}/...#{rev_no(from)},#{rev_no(to)}"
53:         end

Returns a "p4 changes" command for the two revisions.

[Source]

    # File lib/capistrano/recipes/deploy/scm/perforce.rb, line 51
51:         def log(from=1, to=head)
52:           scm authentication, :changes, "-s submitted", "//#{p4client}/...#{rev_no(from)},#{rev_no(to)}"
53:         end

Increments the given revision number and returns it.

[Source]

    # File lib/capistrano/recipes/deploy/scm/perforce.rb, line 62
62:         def next_revision(revision)
63:           revision.to_i + 1
64:         end

Increments the given revision number and returns it.

[Source]

    # File lib/capistrano/recipes/deploy/scm/perforce.rb, line 62
62:         def next_revision(revision)
63:           revision.to_i + 1
64:         end

[Source]

    # File lib/capistrano/recipes/deploy/scm/perforce.rb, line 55
55:         def query_revision(revision)
56:           return revision if revision.to_s =~ /^\d+$/
57:           command = scm(authentication, :changes, "-s submitted", "-m 1", "//#{p4client}/...#{rev_no(revision)}")
58:           yield(command)[/Change (\d+) on/, 1]
59:         end

[Source]

    # File lib/capistrano/recipes/deploy/scm/perforce.rb, line 55
55:         def query_revision(revision)
56:           return revision if revision.to_s =~ /^\d+$/
57:           command = scm(authentication, :changes, "-s submitted", "-m 1", "//#{p4client}/...#{rev_no(revision)}")
58:           yield(command)[/Change (\d+) on/, 1]
59:         end

Returns the command that will sync the given revision to the given destination directory. The perforce client has a fixed destination so the files must be copied from there to their intended resting place.

[Source]

    # File lib/capistrano/recipes/deploy/scm/perforce.rb, line 34
34:         def sync(revision, destination)
35:           p4_sync(revision, destination, p4sync_flags)
36:         end

Returns the command that will sync the given revision to the given destination directory. The perforce client has a fixed destination so the files must be copied from there to their intended resting place.

[Source]

    # File lib/capistrano/recipes/deploy/scm/perforce.rb, line 34
34:         def sync(revision, destination)
35:           p4_sync(revision, destination, p4sync_flags)
36:         end

[Validate]