diff options
author | Izaak Alpert <ihalpert@blackberry.com> | 2013-04-25 18:15:33 +0400 |
---|---|---|
committer | Izaak Alpert <ialpert@blackberry.com> | 2013-07-18 06:41:30 +0400 |
commit | 3d7194f0112da12e8732df9ffe8b34fe7d0a9f6b (patch) | |
tree | 9b3c68c04b5ead5e35456595a07453b036b2dbc8 /db | |
parent | fd033671933fcc0f472480d98c907aefde357416 (diff) |
Merge Request on forked projects
The good:
- You can do a merge request for a forked commit and it will merge properly (i.e. it does work).
- Push events take into account merge requests on forked projects
- Tests around merge_actions now present, spinach, and other rspec tests
- Satellites now clean themselves up rather then recreate
The questionable:
- Events only know about target projects
- Project's merge requests only hold on to MR's where they are the target
- All operations performed in the satellite
The bad:
- Duplication between project's repositories and satellites (e.g. commits_between)
(for reference: http://feedback.gitlab.com/forums/176466-general/suggestions/3456722-merge-requests-between-projects-repos)
Fixes:
Make test repos/satellites only create when needed
-Spinach/Rspec now only initialize test directory, and setup stubs (things that are relatively cheap)
-project_with_code, source_project_with_code, and target_project_with_code now create/destroy their repos individually
-fixed remote removal
-How to merge renders properly
-Update emails to show project/branches
-Edit MR doesn't set target branch
-Fix some failures on editing/creating merge requests, added a test
-Added back a test around merge request observer
-Clean up project_transfer_spec, Remove duplicate enable/disable observers
-Ensure satellite lock files are cleaned up, Attempted to add some testing around these as well
-Signifant speed ups for tests
-Update formatting ordering in notes_on_merge_requests
-Remove wiki schema update
Fixes for search/search results
-Search results was using by_project for a list of projects, updated this to use in_projects
-updated search results to reference the correct (target) project
-udpated search results to print both sides of the merge request
Change-Id: I19407990a0950945cc95d62089cbcc6262dab1a8
Diffstat (limited to 'db')
-rw-r--r-- | db/fixtures/development/10_merge_requests.rb | 3 | ||||
-rw-r--r-- | db/fixtures/test/001_repo.rb | 10 | ||||
-rw-r--r-- | db/migrate/20130419190306_allow_merges_for_forks.rb | 14 | ||||
-rw-r--r-- | db/schema.rb | 9 |
4 files changed, 31 insertions, 5 deletions
diff --git a/db/fixtures/development/10_merge_requests.rb b/db/fixtures/development/10_merge_requests.rb index 0a8d67d4461..bf247adb416 100644 --- a/db/fixtures/development/10_merge_requests.rb +++ b/db/fixtures/development/10_merge_requests.rb @@ -23,7 +23,8 @@ Gitlab::Seeder.quiet do id: i, source_branch: branches.first, target_branch: branches.last, - project_id: project.id, + source_project_id: project.id, + target_project_id: project.id, author_id: user_id, assignee_id: user_id, milestone: project.milestones.sample, diff --git a/db/fixtures/test/001_repo.rb b/db/fixtures/test/001_repo.rb index 18fc37cde0c..59fd2fde124 100644 --- a/db/fixtures/test/001_repo.rb +++ b/db/fixtures/test/001_repo.rb @@ -19,5 +19,15 @@ FileUtils.cd(REPO_PATH) do # Remove the copy FileUtils.rm(SEED_REPO) end +puts ' done.' +print "Creating seed satellite..." +SATELLITE_PATH = Rails.root.join('tmp', 'satellite') +# Make directory +FileUtils.mkdir_p(SATELLITE_PATH) +# Chdir, clone from the seed +FileUtils.cd(SATELLITE_PATH) do + # Clone the satellite + `git clone --quiet #{REPO_PATH}/gitlabhq #{SATELLITE_PATH}/gitlabhq` +end puts ' done.' diff --git a/db/migrate/20130419190306_allow_merges_for_forks.rb b/db/migrate/20130419190306_allow_merges_for_forks.rb new file mode 100644 index 00000000000..92736543971 --- /dev/null +++ b/db/migrate/20130419190306_allow_merges_for_forks.rb @@ -0,0 +1,14 @@ +class AllowMergesForForks < ActiveRecord::Migration + + def self.up + add_column :merge_requests, :target_project_id, :integer, :null => false + MergeRequest.connection.execute("update merge_requests set target_project_id=project_id") + rename_column :merge_requests, :project_id, :source_project_id + end + + def self.down + remove_column :merge_requests, :target_project_id + rename_column :merge_requests, :source_project_id,:project_id + end + +end diff --git a/db/schema.rb b/db/schema.rb index 4ada3d07263..10191c6923a 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -84,9 +84,9 @@ ActiveRecord::Schema.define(:version => 20130624162710) do add_index "keys", ["user_id"], :name => "index_keys_on_user_id" create_table "merge_requests", :force => true do |t| - t.string "target_branch", :null => false - t.string "source_branch", :null => false - t.integer "project_id", :null => false + t.string "target_branch", :null => false + t.string "source_branch", :null => false + t.integer "source_project_id", :null => false t.integer "author_id" t.integer "assignee_id" t.string "title" @@ -97,14 +97,15 @@ ActiveRecord::Schema.define(:version => 20130624162710) do t.integer "milestone_id" t.string "state" t.string "merge_status" + t.integer "target_project_id", :null => false end add_index "merge_requests", ["assignee_id"], :name => "index_merge_requests_on_assignee_id" add_index "merge_requests", ["author_id"], :name => "index_merge_requests_on_author_id" add_index "merge_requests", ["created_at"], :name => "index_merge_requests_on_created_at" add_index "merge_requests", ["milestone_id"], :name => "index_merge_requests_on_milestone_id" - add_index "merge_requests", ["project_id"], :name => "index_merge_requests_on_project_id" add_index "merge_requests", ["source_branch"], :name => "index_merge_requests_on_source_branch" + add_index "merge_requests", ["source_project_id"], :name => "index_merge_requests_on_project_id" add_index "merge_requests", ["target_branch"], :name => "index_merge_requests_on_target_branch" add_index "merge_requests", ["title"], :name => "index_merge_requests_on_title" |