summaryrefslogtreecommitdiffstats
path: root/app/models/merge_request.rb
diff options
context:
space:
mode:
authorJohan Sørensen <johan@johansorensen.com>2009-07-22 09:08:20 +0200
committerJohan Sørensen <johan@johansorensen.com>2009-07-22 09:08:20 +0200
commita8016ad8f52411c42b94d4dd93030ae7d9acdf5d (patch)
treef594bb1bfcecf9065ac40344e815e58e0d20ab18 /app/models/merge_request.rb
parent3bf9e564e34d512601a10faebcb295e5eb34a6ea (diff)
downloadgitorious-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.rb25
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