Class RSCM::Darcs
In: lib/rscm/scm/darcs.rb
Parent: Base

Methods

Attributes

dir  [RW] 

Public Class methods

[Source]

    # File lib/rscm/scm/darcs.rb, line 9
 9:     def initialize(dir=".")
10:       @dir = File.expand_path(dir)
11:     end

Public Instance methods

[Source]

    # File lib/rscm/scm/darcs.rb, line 49
49:     def add(relative_filename)
50:       with_working_dir(@checkout_dir) do
51:         darcs("add #{relative_filename}")
52:       end
53:     end

[Source]

    # File lib/rscm/scm/darcs.rb, line 13
13:     def can_create_central?
14:       true
15:     end

[Source]

    # File lib/rscm/scm/darcs.rb, line 55
55:     def checked_out?
56:       File.exists?("#{@checkout_dir}/_darcs")
57:     end

[Source]

    # File lib/rscm/scm/darcs.rb, line 38
38:     def commit(message)
39:       logfile = Tempfile.new("darcs_logfile")
40:       logfile.print("something nice\n")
41:       logfile.print(message + "\n")
42:       logfile.close
43: 
44:       with_working_dir(@checkout_dir) do
45:         darcs("record --all --logfile #{PathConverter.filepath_to_nativepath(logfile.path, false)}")
46:       end
47:     end

[Source]

    # File lib/rscm/scm/darcs.rb, line 17
17:     def create_central
18:       with_working_dir(@dir) do
19:         darcs("initialize")
20:       end
21:     end

[Source]

    # File lib/rscm/scm/darcs.rb, line 23
23:     def import_central(dir, message)
24:       ENV["EMAIL"] = "dcontrol@codehaus.org"
25:       FileUtils.cp_r(Dir.glob("#{dir}/*"), @dir)
26:       with_working_dir(@dir) do
27:         darcs("add --recursive .")
28:         
29:         logfile = Tempfile.new("darcs_logfile")
30:         logfile.print("something nice\n")
31:         logfile.print(message + "\n")
32:         logfile.close
33:         
34:         darcs("record --all --logfile #{PathConverter.filepath_to_nativepath(logfile.path, false)}")
35:       end
36:     end

[Source]

    # File lib/rscm/scm/darcs.rb, line 77
77:     def revisions(from_identifier, to_identifier=Time.infinity)
78:       from_identifier = Time.epoch if from_identifier.nil?
79:       to_identifier = Time.infinity if to_identifier.nil?
80:       with_working_dir(@checkout_dir) do
81:         darcs("changes --summary --xml-output") do |stdout|
82:           DarcsLogParser.new.parse_revisions(stdout, from_identifier, to_identifier)
83:         end
84:       end
85:     end

[Source]

    # File lib/rscm/scm/darcs.rb, line 87
87:     def supports_trigger?
88:       true
89:     end

[Source]

    # File lib/rscm/scm/darcs.rb, line 59
59:     def uptodate?(from_identifier)
60:       if (!checked_out?(@checkout_dir))
61:         false
62:       else
63:         with_working_dir(@checkout_dir) do
64:           darcs("pull --dry-run #{@dir}") do |io|
65:             io.each_line do |line|
66:               if (line =~ /No remote changes to pull in!/)
67:                 true
68:               else
69:                 false
70:               end
71:             end
72:           end
73:         end
74:       end
75:     end

Protected Instance methods

[Source]

    # File lib/rscm/scm/darcs.rb, line 93
93:     def checkout_silent(to_identifier) # :yield: file

94:       with_working_dir(File.dirname(checkout_dir)) do
95:         darcs("get --repo-name #{File.basename(checkout_dir)} #{@dir}")
96:       end
97:     end

[Source]

     # File lib/rscm/scm/darcs.rb, line 99
 99:     def ignore_paths
100:       return [/_darcs/]
101:     end

[Validate]