summaryrefslogtreecommitdiffstats
path: root/app/models/repository/darcs.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/repository/darcs.rb')
-rw-r--r--app/models/repository/darcs.rb9
1 files changed, 4 insertions, 5 deletions
diff --git a/app/models/repository/darcs.rb b/app/models/repository/darcs.rb
index 48cc246fb..cc608d370 100644
--- a/app/models/repository/darcs.rb
+++ b/app/models/repository/darcs.rb
@@ -47,18 +47,19 @@ class Repository::Darcs < Repository
def diff(path, rev, rev_to, type)
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
- scm.diff(path, patch_from.scmid, patch_to.scmid, type)
+ patch_from ? scm.diff(path, patch_from.scmid, patch_to ? patch_to.scmid : nil, type) : nil
end
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 + 1 : 1
+ next_rev = latest_changeset ? latest_changeset.revision.to_i + 1 : 1
# latest revision in the repository
scm_revision = scm_info.lastrev.scmid
unless changesets.find_by_scmid(scm_revision)
@@ -71,9 +72,7 @@ class Repository::Darcs < Repository
:committer => revision.author,
:committed_on => revision.time,
:comments => revision.message)
-
- next if changeset.new_record?
-
+
revision.paths.each do |change|
Change.create(:changeset => changeset,
:action => change[:action],