diff options
author | Johan Sørensen <johan@johansorensen.com> | 2009-07-22 09:08:20 +0200 |
---|---|---|
committer | Johan Sørensen <johan@johansorensen.com> | 2009-07-22 09:08:20 +0200 |
commit | a8016ad8f52411c42b94d4dd93030ae7d9acdf5d (patch) | |
tree | f594bb1bfcecf9065ac40344e815e58e0d20ab18 /app/models/merge_request.rb | |
parent | 3bf9e564e34d512601a10faebcb295e5eb34a6ea (diff) | |
download | gitorious-mainline-outdated-a8016ad8f52411c42b94d4dd93030ae7d9acdf5d.zip gitorious-mainline-outdated-a8016ad8f52411c42b94d4dd93030ae7d9acdf5d.tar.gz gitorious-mainline-outdated-a8016ad8f52411c42b94d4dd93030ae7d9acdf5d.tar.bz2 |
Refactor the merge-request tracking branches deletion to be in an after_destroy hook
Pass along all the data needed for the processor in the message body when the
after_destroy hook is called. That way users don't get confused and delete it
multiple times (since there's a small delay in the msg processing
Diffstat (limited to 'app/models/merge_request.rb')
-rw-r--r-- | app/models/merge_request.rb | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb index b7b53e8..42d4acf 100644 --- a/app/models/merge_request.rb +++ b/app/models/merge_request.rb @@ -31,7 +31,7 @@ class MergeRequest < ActiveRecord::Base has_many :versions, :class_name => 'MergeRequestVersion', :order => 'version' before_destroy :nullify_messages - + after_destroy :delete_tracking_branches is_indexed :fields => ["proposal", {:field => "status_tag", :as => "status"}], :include => [{ @@ -497,18 +497,25 @@ class MergeRequest < ActiveRecord::Base user, "new version #{current_version_number}") end - def delete_target_repository_ref - source_repository.git.git.push({},target_repository.full_repository_path, ":#{merge_branch_name}") - end - - # Since we'll be deleting the ref in the backend, this will be handled in the message queue - def soft_delete - msg = {:merge_request_id => to_param, :action => "delete"} + # Since we'll be deleting the ref in the backend, this will be + # handled in the message queue + def delete_tracking_branches + msg = { + :merge_request_id => to_param, + :action => "delete", + :target_path => target_repository.full_repository_path, + :target_name => target_repository.url_path, + :merge_branch_name => merge_branch_name, + :source_repository_id => source_repository.id, + :target_repository_id => target_repository.id, + } publish :merge_request_backend_updates, msg.to_json end def tracking_repository - target_repository.create_tracking_repository unless target_repository.has_tracking_repository? + unless target_repository.has_tracking_repository? + target_repository.create_tracking_repository + end target_repository.tracking_repository end |