Class: Repository::Darcs
Constant Summary
Constants inherited
from Repository
IDENTIFIER_MAX_LENGTH
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from Repository
#<=>, available_scm, #branches, #committer_ids=, #committers, #default_branch, #diff_format_revisions, #entries, #extra_info, factory, fetch_changesets, find_by_identifier_param, #find_changeset_by_name, #find_committer_user, #identifier=, #identifier_frozen?, #identifier_param, #latest_changeset, #latest_changesets, #merge_extra_info, #name, #password, #password=, #properties, #relative_path, #repo_create_validation, #repo_log_encoding, #report_last_commit, repository_class, #root_url=, #same_commits_in_scope, #scan_changesets_for_issue_ids, scan_changesets_for_issue_ids, #scm, #scm_adapter, scm_available, scm_command, #scm_name, scm_version_string, #set_as_default?, #stats_by_author, #supports_all_revisions?, #supports_annotate?, #supports_cat?, #supports_revision_graph?, #tags, #url=
#delete_unsafe_attributes, included, #safe_attribute?, #safe_attribute_names, #safe_attributes=
cipher_key, decrypt_text, encrypt_text, included, logger
Class Method Details
.human_attribute_name(attribute_key_name, *args) ⇒ Object
23
24
25
26
27
28
29
|
# File 'app/models/repository/darcs.rb', line 23
def self.human_attribute_name(attribute_key_name, *args)
attr_name = attribute_key_name.to_s
if attr_name == "url"
attr_name = "path_to_repository"
end
super(attr_name, *args)
end
|
.scm_adapter_class ⇒ Object
31
32
33
|
# File 'app/models/repository/darcs.rb', line 31
def self.scm_adapter_class
Redmine::Scm::Adapters::DarcsAdapter
end
|
.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
73
74
75
76
|
# File 'app/models/repository/darcs.rb', line 73
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
78
79
80
81
82
83
84
85
86
|
# File 'app/models/repository/darcs.rb', line 78
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.filechanges.collect{|change| change.path}.join(' ')
end
patch_from ? scm.diff(path, patch_from.scmid, patch_to ? patch_to.scmid : nil) : nil
end
|
#entry(path = nil, identifier = nil) ⇒ Object
43
44
45
46
|
# File 'app/models/repository/darcs.rb', line 43
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
# File 'app/models/repository/darcs.rb', line 88
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
|
#supports_directory_revisions? ⇒ Boolean
39
40
41
|
# File 'app/models/repository/darcs.rb', line 39
def supports_directory_revisions?
true
end
|