Class: Repository::Darcs
Constant Summary
collapse
- ATTRIBUTE_KEY_NAMES =
{
"url" => "Root directory",
"log_encoding" => "Commit messages encoding",
}
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from Repository
available_scm, #branches, #committer_ids=, #committers, #default_branch, #diff_format_revisions, factory, fetch_changesets, #find_changeset_by_name, #find_committer_user, #latest_changeset, #latest_changesets, #password, #password=, #properties, #relative_path, #repo_log_encoding, #root_url=, scan_changesets_for_issue_ids, #scan_changesets_for_issue_ids, #scm, #scm_adapter, scm_available, scm_command, #scm_name, scm_version_string, #supports_all_revisions?, #supports_annotate?, #supports_cat?, #supports_directory_revisions?, #tags, #url=
cipher_key, decrypt_text, encrypt_text, included
Class Method Details
.human_attribute_name(attribute_key_name) ⇒ Object
27
28
29
|
# File 'app/models/repository/darcs.rb', line 27
def self.human_attribute_name(attribute_key_name)
ATTRIBUTE_KEY_NAMES[attribute_key_name] || super
end
|
.scm_adapter_class ⇒ Object
.scm_name ⇒ Object
35
36
37
|
# File 'app/models/repository/darcs.rb', line 35
def self.scm_name
'Darcs'
end
|
Instance Method Details
#cat(path, identifier = nil) ⇒ Object
62
63
64
65
|
# File 'app/models/repository/darcs.rb', line 62
def cat(path, identifier=nil)
patch = identifier.nil? ? nil : changesets.find_by_revision(identifier.to_s)
scm.cat(path, patch.nil? ? nil : patch.scmid)
end
|
#diff(path, rev, rev_to) ⇒ Object
67
68
69
70
71
72
73
74
75
|
# File 'app/models/repository/darcs.rb', line 67
def diff(path, rev, rev_to)
patch_from = changesets.find_by_revision(rev)
return nil if patch_from.nil?
patch_to = changesets.find_by_revision(rev_to) if rev_to
if path.blank?
path = patch_from.changes.collect{|change| change.path}.join(' ')
end
patch_from ? scm.diff(path, patch_from.scmid, patch_to ? patch_to.scmid : nil) : nil
end
|
#entries(path = nil, identifier = nil) ⇒ Object
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
# File 'app/models/repository/darcs.rb', line 44
def entries(path=nil, identifier=nil)
patch = identifier.nil? ? nil : changesets.find_by_revision(identifier)
entries = scm.entries(path, patch.nil? ? nil : patch.scmid)
if entries
entries.each do |entry|
changeset = changesets.find_by_scmid(entry.lastrev.scmid) if entry.lastrev && !entry.lastrev.scmid.blank?
if changeset
entry.lastrev.identifier = changeset.revision
entry.lastrev.name = changeset.revision
entry.lastrev.time = changeset.committed_on
entry.lastrev.author = changeset.committer
end
end
end
entries
end
|
#entry(path = nil, identifier = nil) ⇒ Object
39
40
41
42
|
# File 'app/models/repository/darcs.rb', line 39
def entry(path=nil, identifier=nil)
patch = identifier.nil? ? nil : changesets.find_by_revision(identifier)
scm.entry(path, patch.nil? ? nil : patch.scmid)
end
|
#fetch_changesets ⇒ Object
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
# File 'app/models/repository/darcs.rb', line 77
def fetch_changesets
scm_info = scm.info
if scm_info
db_last_id = latest_changeset ? latest_changeset.scmid : nil
next_rev = latest_changeset ? latest_changeset.revision.to_i + 1 : 1
scm_revision = scm_info.lastrev.scmid
unless changesets.find_by_scmid(scm_revision)
revisions = scm.revisions('', db_last_id, nil, :with_path => true)
transaction do
revisions.reverse_each do |revision|
changeset = Changeset.create(:repository => self,
:revision => next_rev,
:scmid => revision.scmid,
:committer => revision.author,
:committed_on => revision.time,
:comments => revision.message)
revision.paths.each do |change|
changeset.create_change(change)
end
next_rev += 1
end if revisions
end
end
end
end
|