Project

General

Profile

Patch #7959 ยป revision-update-1.1.0.patch

Brian Lindahl, 2011-03-22 19:15

View differences:

redmine-1.1.0-revision-update/app/controllers/repositories_controller.rb 2011-03-22 12:01:56.115467800 -0600
150 150
    show_error_not_found
151 151
  end
152 152
  
153
  def update #revision
154
    @changeset = @repository.find_changeset_by_name(@rev)
155
    raise ChangesetNotFound unless @changeset
156

  
157
    # update revision properties from repository
158
    revision = @repository.scm.revision(@rev)
159
    @changeset.committer = revision.author
160
    @changeset.committed_on = revision.time
161
    @changeset.comments = revision.message
162
    
163
    # report success or errors
164
    if @changeset.save
165
      flash[:notice] = l(:notice_successful_update)
166
      # on success, rescan new comments for related issue ids
167
      @changeset.scan_comment_for_issue_ids
168
    else
169
      # can't seem to bring in the helper method 'error_messages_for'
170
      # and injecting it into show.rhtml doesn't seem to work, since 
171
      # the @changeset loses the errors on redirect (due to changeset reload)
172
      flash[:error] = "<ul>" + @changeset.errors.full_messages.map {|msg| "<li>" + ERB::Util.html_escape(msg) + "</li>"}.join + "</ul>"
173
    end
174
   
175
    respond_to do |format|
176
      format.html { redirect_to :action => 'revision', :id => @project, :rev => @rev }
177
      format.api  { render_validation_errors(@changeset) }
178
    end
179
    
180
  rescue ChangesetNotFound
181
    show_error_not_found
182
  end
183
  
153 184
  def diff
154 185
    if params[:format] == 'diff'
155 186
      @diff = @repository.diff(@path, @rev, @rev_to)
redmine-1.1.0-revision-update/app/models/changeset.rb 2011-03-22 12:03:22.319144500 -0600
125 125
        issue, hours = find_referenced_issue_by_id(m[0].to_i), m[2]
126 126
        if issue
127 127
          referenced_issues << issue
128
          fix_issue(issue) if fix_keywords.include?(action.to_s.downcase)
129
          log_time(issue, hours) if hours && Setting.commit_logtime_enabled?
128
          # don't update the issue if a relation already exists
129
          if !self.issues.include?(issue)
130
            fix_issue(issue) if fix_keywords.include?(action.to_s.downcase)
131
            log_time(issue, hours) if hours && Setting.commit_logtime_enabled?
132
          end
130 133
        end
131 134
      end
132 135
    end
redmine-1.1.0-revision-update/app/views/repositories/revision.rhtml 2011-03-22 12:01:56.146718000 -0600
19 19
  <% end %>
20 20
</div>
21 21

  
22
<h2><%= l(:label_revision) %> <%= format_revision(@changeset) %></h2>
22
<h2>
23
  <%= l(:label_revision) %> <%= format_revision(@changeset) %>
24
  <%= link_to(image_tag('reload.png'), {:controller => 'repositories', :action => 'update', :id => @project, :rev => @rev}, :method => :get, :title => l(:button_update)) %>
25
</h2>
23 26

  
24 27
<p><% if @changeset.scmid %>ID: <%= @changeset.scmid %><br /><% end %>
25 28
<span class="author"><%= authoring(@changeset.committed_on, @changeset.author) %></span></p>
......
45 48
<li class="change change-D"><%= l(:label_deleted) %></li>
46 49
</ul>
47 50

  
48
<p><%= link_to(l(:label_view_diff), :action => 'diff', :id => @project, :path => "", :rev => @changeset.identifier) if @changeset.changes.any? %></p>
51
<p><%= link_to(l(:label_view_diff), :action => 'diff', :id => @project, :path => "", :rev => @rev) if @changeset.changes.any? %></p>
49 52

  
50 53
<div class="changeset-changes">
51 54
<%= render_changeset_changes %>
redmine-1.1.0-revision-update/lib/redmine/scm/adapters/abstract_adapter.rb 2011-03-22 12:01:56.146718000 -0600
117 117
          return nil
118 118
        end
119 119
    
120
        def revision(identifier)
121
          revisions = revisions(nil, identifier, identifier, {})
122
          return nil unless revisions
123
          return revisions.first
124
        end
125
        
120 126
        def revisions(path=nil, identifier_from=nil, identifier_to=nil, options={})
121 127
          return nil
122 128
        end
redmine-1.1.0-revision-update/lib/redmine.rb 2011-03-22 12:01:56.162343100 -0600
120 120
  end
121 121
    
122 122
  map.project_module :repository do |map|
123
    map.permission :manage_repository, {:repositories => [:edit, :committers, :destroy]}, :require => :member
123
    map.permission :manage_repository, {:repositories => [:edit, :committers, :destroy, :update]}, :require => :member
124 124
    map.permission :browse_repository, :repositories => [:show, :browse, :entry, :annotate, :changes, :diff, :stats, :graph]
125 125
    map.permission :view_changesets, :repositories => [:show, :revisions, :revision]
126 126
    map.permission :commit_access, {}
    (1-1/1)