Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/db
diff options
context:
space:
mode:
authorIzaak Alpert <ihalpert@blackberry.com>2013-04-25 18:15:33 +0400
committerIzaak Alpert <ialpert@blackberry.com>2013-07-18 06:41:30 +0400
commit3d7194f0112da12e8732df9ffe8b34fe7d0a9f6b (patch)
tree9b3c68c04b5ead5e35456595a07453b036b2dbc8 /db
parentfd033671933fcc0f472480d98c907aefde357416 (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.rb3
-rw-r--r--db/fixtures/test/001_repo.rb10
-rw-r--r--db/migrate/20130419190306_allow_merges_for_forks.rb14
-rw-r--r--db/schema.rb9
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"