summaryrefslogtreecommitdiff
path: root/app
Commit message (Collapse)AuthorAgeFilesLines
* Small UI improvements to merge request pagesmall-ui-improvementsDmitriy Zaporozhets2015-11-066-5/+12
| | | | Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
* Merge branch 'facebook-auth' into 'master' Robert Speicher2015-11-042-1/+1
|\ | | | | | | | | Add Facebook authentication See merge request !1740
| * Add Facebook authenticationDouwe Maan2015-11-032-1/+1
| |
* | Merge branch 'rs-git-bin-path' into 'master' Douwe Maan2015-11-041-6/+6
|\ \ | | | | | | | | | | | | | | | | | | Replace all usages of `git` command with configurable binary path Closes #3311 See merge request !1742
| * | Replace all usages of `git` command with configurable binary pathrs-git-bin-pathRobert Speicher2015-11-031-6/+6
| |/ | | | | | | Closes #3311
* | Merge branch 'fix-infinite-redirect' into 'master' Stan Hu2015-11-041-7/+15
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Only redirect to homepage url when its not the root url It was possible to create an infi redirect when the user set up the `home_page_url` to redirect to the main URL of the gitlab instance. This fix makes sure this redirect is not possible. Fixes #1020 /cc @dblessing See merge request !1703
| * | Only redirect to homepage url when its not the root urlJeroen van Baarsen2015-11-021-7/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It was possible to create an infi redirect when the user set up the `home_page_url` to redirect to the main URL of the gitlab instance. This fix makes sure this redirect is not possible. Fixes !1020 Signed-off-by: Jeroen van Baarsen <jeroenvanbaarsen@gmail.com>
* | | Improvements to profile page UIimprove-profile-pageDmitriy Zaporozhets2015-11-045-9/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | * add separator between tabs * show project avatars * fix tooltip offset on user calendar * remove gray hover for tabs Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
* | | Merge branch 'create-project-performance' into 'master' Yorick Peterse2015-11-041-2/+0
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Improve performance of creating projects See merge request !1650
| * | | Removed extra activity update for new projectscreate-project-performanceYorick Peterse2015-10-291-2/+0
| | | | | | | | | | | | | | | | | | | | When a project is created the last activity timestamp is already set so there's no need for another update.
* | | | Merge branch 'remove-duplicate-orders' into 'master' Yorick Peterse2015-11-041-5/+5
|\ \ \ \ | |_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | Remove duplicate orders This changes the default order from `created_at DESC, id DESC` to just `id DESC` as this achieves the same results without the overhead of having to sort data twice (we've seen queries go from 200ms to just a few ms by removing the double sort). cc @jacobvosmaer @dzaporozhets @rspeicher @DouweM See merge request !1735
| * | | Only sort by IDs by defaultYorick Peterse2015-11-031-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Sorting by both "created_at" and "id" in descending order is not needed as simply sorting by "id" in descending order will already sort rows from new to old. Depending on the query and data involved sorting twice can also introduce significant overhead.
* | | | Merge branch 'improve-profile-page'Dmitriy Zaporozhets2015-11-036-45/+97
|\ \ \ \
| * | | | Add extra padding between user description and links on profile pageDmitriy Zaporozhets2015-11-031-1/+1
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
| * | | | Apply new design for user profile pageDmitriy Zaporozhets2015-11-035-33/+58
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
| * | | | Improve profile page UIDmitriy Zaporozhets2015-11-032-11/+38
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
* | | | | Merge branch 'fix-clipboard-btn' into 'master' Dmitriy Zaporozhets2015-11-031-0/+4
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix clipboard button overflow Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> See merge request !1739
| * | | | | Fix clipboard button overflowDmitriy Zaporozhets2015-11-031-0/+4
| |/ / / / | | | | | | | | | | | | | | | Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
* | | | | Merge branch 'go-to-nav'Dmitriy Zaporozhets2015-11-035-12/+12
|\ \ \ \ \
| * | | | | Better name for up-level linksgo-to-navDmitriy Zaporozhets2015-11-035-12/+12
| | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
* | | | | | Merge branch 'drop-old-builds' into 'master' Kamil Trzciński2015-11-031-0/+18
|\ \ \ \ \ \ | |_|/ / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Cleanup stuck CI builds Fixes #3143 /cc @dzaporozhets @jacobvosmaer See merge request !1655
| * | | | | Cleanup stuck CI builds dailydrop-old-buildsKamil Trzcinski2015-11-031-0/+18
| | | | | |
* | | | | | Merge branch 'only-syntax' into 'master' Kamil Trzciński2015-11-031-1/+1
|\ \ \ \ \ \ | |_|/ / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Extend yml syntax for only and except to support specifying repository path This allows to limit execution of jobs to specific repository. For example: ```yaml job: only: - branches@gitlab-org/gitlab-ce except: - master@gitlab-org/gitlab-ce ``` The above will run `job` for all branches on `gitlab-org/gitlab-ce`, except master. @dzaporozhets @JobV @vsizov Please review. See merge request !1720
| * | | | | Extend yml syntax for only and except to support specifying repository pathKamil Trzcinski2015-11-021-1/+1
| | | | | |
* | | | | | Fix code that depends on incorrect inflector behaviorDmitriy Zaporozhets2015-11-031-1/+1
| |/ / / / |/| | | | | | | | | | | | | | Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
* | | | | Merge branch 'olhado/gitlab-ce-commit-search'Dmitriy Zaporozhets2015-11-036-2/+24
|\ \ \ \ \
| * | | | | Refactor search by commits messageolhado/gitlab-ce-commit-searchDmitriy Zaporozhets2015-11-024-35/+7
| | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
| * | | | | Actually converted code to following suggestions.Michael Chmielewski2015-10-281-6/+3
| | | | | |
| * | | | | Fixed method to use git log via Popen as recommended, and made output match ↵Michael Chmielewski2015-10-281-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | test (and thus system) expectations.
| * | | | | Trying to incorporate suggestions from comments on Merge Request 1661Michael Chmielewski2015-10-281-4/+5
| | | | | |
| * | | | | Add support for searching commit log messagesJonathan Schoeffling2015-10-285-2/+49
| | |_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Include the log messages of recent commits in project-level search results, providing functionality similar to 'git log --grep'. Update repository model rspec tests to validate the output of Repository#commits_with_log_matching.
* | | | | Add 'New file' link to dropdown on project pageDmitriy Zaporozhets2015-11-031-0/+4
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
* | | | | Merge pull request #9791 from konpyu/fix-deprecatedStan Hu2015-11-021-1/+1
|\ \ \ \ \ | |_|/ / / |/| | | | Fix deprecated `prepend_before_filter` -> `prepend_before_action`
| * | | | fix deprecatedKON YUICHI2015-10-311-1/+1
| | |/ / | |/| |
* | | | Persist blob editor's value on submit, not on clickrs-editor-submitRobert Speicher2015-10-312-8/+8
|/ / / | | | | | | | | | | | | | | | | | | | | | Prior, the value of the Ace editor was only being persisted if the user physically clicked the submit button, which the "quick submit" behavior doesn't do. Now the value will be properly transferred before any form is submitted.
* | | Merge branch 'optimize-user-find-by-any-email' into 'master' Yorick Peterse2015-10-301-15/+10
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Improve performance of User.find_by_any_email See merge request !1698
| * | | Use a subquery with IDs only for find_by_any_emailYorick Peterse2015-10-301-9/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This further improves performance of User.find_by_any_email and is roughly twice as fast as the previous UNION setup. Thanks again to @dlemstra for suggesting this.
| * | | Fixed UNION syntax for MySQLYorick Peterse2015-10-301-2/+2
| | | | | | | | | | | | | | | | MySQL doesn't support the previous syntax.
| * | | Use a UNION for User.find_by_any_emailYorick Peterse2015-10-301-3/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is significantly faster than using a sub-query, at least when run on the GitLab.com production database. The benchmarks are a lot slower now with these changes, most likely due to PostgreSQL choosing a different (and less efficient) plan based on the amount of data present in the test database. Thanks to @dlemstra for suggesting the use of a UNION.
| * | | Improve performance of User.find_by_any_emailYorick Peterse2015-10-301-15/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This query used to rely on a JOIN, effectively producing the following SQL: SELECT users.* FROM users LEFT OUTER JOIN emails ON emails.user_id = users.id WHERE (users.email = X OR emails.email = X) LIMIT 1; The use of a JOIN means having to scan over all Emails and users, join them together and then filter out the rows that don't match the criteria (though this step may be taken into account already when joining). In the new setup this query instead uses a sub-query, producing the following SQL: SELECT * FROM users WHERE id IN (select user_id FROM emails WHERE email = X) OR email = X LIMIT 1; This query has the benefit that it: 1. Doesn't have to JOIN any rows 2. Only has to operate on a relatively small set of rows from the "emails" table. Since most users will only have a handful of Emails associated (certainly not hundreds or even thousands) the size of the set returned by the sub-query is small enough that it should not become problematic. Performance of the old versus new version can be measured using the following benchmark: # Save this in ./bench.rb require 'benchmark/ips' email = 'yorick@gitlab.com' def User.find_by_any_email_old(email) user_table = arel_table email_table = Email.arel_table query = user_table. project(user_table[Arel.star]). join(email_table, Arel::Nodes::OuterJoin). on(user_table[:id].eq(email_table[:user_id])). where(user_table[:email].eq(email).or(email_table[:email].eq(email))) find_by_sql(query.to_sql).first end Benchmark.ips do |bench| bench.report 'original' do User.find_by_any_email_old(email) end bench.report 'optimized' do User.find_by_any_email(email) end bench.compare! end Running this locally using "bundle exec rails r bench.rb" produces the following output: Calculating ------------------------------------- original 1.000 i/100ms optimized 93.000 i/100ms ------------------------------------------------- original 11.103 (± 0.0%) i/s - 56.000 optimized 948.713 (± 5.3%) i/s - 4.743k Comparison: optimized: 948.7 i/s original: 11.1 i/s - 85.45x slower In other words, the new setup is 85x faster compared to the old setup, at least when running this benchmark locally. For GitLab.com these improvements result in User.find_by_any_email taking only ~170 ms to run, instead of around 800 ms. While this is "only" an improvement of about 4.5 times (instead of 85x) it's still significantly better than before. Fixes #3242
* | | | Merge branch 'minor-ui-fixes' into 'master' Dmitriy Zaporozhets2015-10-303-8/+8
|\ \ \ \ | |/ / / |/| | | | | | | | | | | | | | | | | | | Minor ui fixes See merge request !1704
| * | | Fix label destroy jsminor-ui-fixesDmitriy Zaporozhets2015-10-291-1/+1
| | | | | | | | | | | | | | | | Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
| * | | Fix bg for labels page when no labels presentDmitriy Zaporozhets2015-10-291-3/+3
| | | | | | | | | | | | | | | | Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
| * | | Put delete snippet btn after edit btnDmitriy Zaporozhets2015-10-291-4/+4
| | | | | | | | | | | | | | | | Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
* | | | Merge branch 'binford2k/gitlab-ce-feature/create_new_directories'Douwe Maan2015-10-294-5/+21
|\ \ \ \
| * | | | Add ability to create directories in the editorBen Ford2015-10-294-5/+21
| | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Simply type a name with a `/` directory separator and new directories will be created. This does not do the fancy UI work that github.com does, but it will get the job done. I could not find tests for file creation, so I didn't add a test for this slight behaviour modification. I did test directory traversals though, using both absolute paths like `/tmp/foo.txt` and relative paths like `../../foo.txt`. Neither case escaped the repository, though attempting to traverse with a relative path resulted in a 500 error that did not affect application stability upon reload.
* | | | Force update refs/merge-requests/X/head upon a push to the source branch of ↵Stan Hu2015-10-291-1/+1
|/ / / | | | | | | | | | | | | | | | a merge request Closes #3138
* | | Merge branch 'edit-new-cross-references'Dmitriy Zaporozhets2015-10-283-3/+3
|\ \ \ | |_|/ |/| |
| * | Use issue editor as cross reference comment author when issue is edited with ↵edit-new-cross-referencesDouwe Maan2015-10-283-3/+3
| |/ | | | | | | a new mention.
* | Remove deprecated CI events from project settings pageDmitriy Zaporozhets2015-10-285-59/+0
|/ | | | Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>