| 52 |
52 |
if db_revision < scm_revision
|
| 53 |
53 |
logger.debug "Fetching changesets for repository #{url}" if logger && logger.debug?
|
| 54 |
54 |
identifier_from = db_revision + 1
|
| 55 |
|
while (identifier_from <= scm_revision)
|
| 56 |
|
# loads changesets by batches of 200
|
| 57 |
|
identifier_to = [identifier_from + 199, scm_revision].min
|
| 58 |
|
revisions = scm.revisions('', identifier_to, identifier_from, :with_paths => true)
|
| 59 |
|
transaction do
|
| 60 |
|
revisions.reverse_each do
|
| 61 |
|
|revision|
|
| 62 |
|
changeset = Changeset.create(:repository => self,
|
| 63 |
|
:revision => revision.identifier,
|
| 64 |
|
:committer => revision.author,
|
| 65 |
|
:committed_on => revision.time,
|
| 66 |
|
:comments => revision.message)
|
| 67 |
|
|
| 68 |
|
revision.paths.each do
|
| 69 |
|
|change|
|
|
55 |
identifier_to = scm_revision
|
|
56 |
revisions = scm.revisions('', identifier_to, identifier_from, :with_paths => true)
|
|
57 |
transaction do
|
|
58 |
revisions.reverse_each do
|
|
59 |
|revision|
|
|
60 |
changeset = Changeset.create(:repository => self,
|
|
61 |
:revision => revision.identifier,
|
|
62 |
:committer => revision.author,
|
|
63 |
:committed_on => revision.time,
|
|
64 |
:comments => revision.message)
|
|
65 |
|
|
66 |
revision.paths.each do
|
|
67 |
|change|
|
| 70 |
68 |
|
| 71 |
|
revpath = '/' + scm.relative_path( change.depot_file )
|
| 72 |
|
action = ( change.action )
|
| 73 |
|
revaction = case action
|
| 74 |
|
when "add" then "A"
|
| 75 |
|
when "delete" then "D"
|
| 76 |
|
when "edit" then "M"
|
| 77 |
|
when "branch" then "B"
|
| 78 |
|
#when "integrate" then "I"
|
| 79 |
|
#when "import" then "E"
|
| 80 |
|
end
|
| 81 |
|
|
| 82 |
|
Change.create(:changeset => changeset,
|
| 83 |
|
:action => revaction,
|
| 84 |
|
:path => revpath,
|
| 85 |
|
:revision => '#' + ( change.revno.to_s + '/' + change.head.to_s ))
|
|
69 |
revpath = '/' + scm.relative_path( change.depot_file )
|
|
70 |
action = ( change.action )
|
|
71 |
revaction = case action
|
|
72 |
when "add" then "A"
|
|
73 |
when "delete" then "D"
|
|
74 |
when "edit" then "M"
|
|
75 |
when "branch" then "B"
|
|
76 |
#when "integrate" then "I"
|
|
77 |
#when "import" then "E"
|
| 86 |
78 |
end
|
|
79 |
|
|
80 |
Change.create(:changeset => changeset,
|
|
81 |
:action => revaction,
|
|
82 |
:path => revpath,
|
|
83 |
:revision => '#' + ( change.revno.to_s + '/' + change.head.to_s ))
|
| 87 |
84 |
end
|
| 88 |
|
end unless revisions.nil?
|
| 89 |
|
identifier_from = identifier_to + 1
|
| 90 |
|
end
|
|
85 |
end
|
|
86 |
end unless revisions.nil?
|
| 91 |
87 |
end
|
| 92 |
88 |
end
|
| 93 |
89 |
end
|