summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Add added, modified and removed properties to commit object in webhookweb_hook_repo_changesValery Sizov2015-11-034-3/+42
|
* Merge branch 'update-links-to-ci-status' into 'master' Kamil Trzciński2015-11-034-8/+8
|\ | | | | | | | | | | | | | | | | Update links in CI docs after GitLab 8.1 Fix that some links to CI status in docs were broken even after following redirects. As CI build overview is now missing (cf. #3008), this MR uses `?scope=all` parameter. See merge request !1733
| * Update links in CI docs after GitLab 8.1Takuya Noguchi2015-11-034-8/+8
| |
* | Merge branch 'rs-require-backup-files' into 'master' Dmitriy Zaporozhets2015-11-032-0/+4
|\ \ | | | | | | | | | | | | | | | | | | Explicitly require backup/files Fixes a test failure we were seeing on CI after merging !1520 See merge request !1731
| * | Explicitly require backup/filesrs-require-backup-filesRobert Speicher2015-11-022-0/+4
| |/
* | 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
| |
* | Merge branch 'api_file_touched_at' into 'master' Dmitriy Zaporozhets2015-11-024-2/+7
|\ \ | | | | | | | | | | | | | | | | | | Add ability to fetch the commit ID of the last commit that actually touched a file https://dev.gitlab.org/gitlab/gitlabhq/issues/2564 See merge request !1718
| * | Add ability to fetch the commit ID of the last commit that actually touched ↵api_file_touched_atValery Sizov2015-11-024-2/+7
| | | | | | | | | | | | a file
* | | Merge branch 'master' of gitlab.com:gitlab-org/gitlab-ceDmitriy Zaporozhets2015-11-0210-110/+200
|\ \ \
| * \ \ Merge branch 'backup-improvements' into 'master' Kamil Trzciński2015-11-026-92/+82
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reduce disk IO and space usage during backups This is based on improvements made to the GitLab CI 8.0 backup script. - Avoid creating many small intermediate files while backing up builds and uploads by using tar and light gzip compression - Use same backup/restore code for uploads and builds - Only store a compressed intermediate DB dump See merge request !1520
| | * | | Do no rely on basename of builds, uploadsbackup-improvementsJacob Vosmaer2015-10-163-6/+15
| | | | |
| | * | | One more backup spec fixJacob Vosmaer2015-10-061-0/+1
| | | | | | | | | | | | | | | | | | | | Stop the 'uploads' part from actually running.
| | * | | Spec fixes for new backup contentsJacob Vosmaer2015-10-061-7/+7
| | | | |
| | * | | Remove superfluous mkdir -pJacob Vosmaer2015-10-061-2/+0
| | | | |
| | * | | Remove unused variableJacob Vosmaer2015-10-061-3/+2
| | | | |
| | * | | Keep old path: db/database.sql.gzJacob Vosmaer2015-10-062-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | Documentation elsewhere refers to this internal path, let's keep it.
| | * | | Remove old "files" tarball explicitlyJacob Vosmaer2015-10-061-0/+1
| | | | |
| | * | | Reduce disk IO during SQL backupJacob Vosmaer2015-10-062-31/+26
| | | | | | | | | | | | | | | | | | | | | | | | | By using light gzip compression we can save a lot of disk IO during the backup.
| | * | | Use tar for intermediate backup storageJacob Vosmaer2015-10-064-59/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | During the backup we create an intermediate copy of two directories: builds and uploads. Instead of creating many small files with 'cp -r', we now use tar (and fast gzip) to create single intermediate files. This saves on disk IO and disk space while creating a backup.
| * | | | Merge branch 'rs-dev-issue-2613' into 'master' Douwe Maan2015-11-022-10/+110
| |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add custom protocol whitelisting to SanitizationFilter Addresses internal https://dev.gitlab.org/gitlab/gitlabhq/issues/2613 We allow any protocol for autolinks: irc://irc.freenode.net/git But manual Markdown links with the same protocol get sanitized: `[This will not be clickable](irc://irc.freenode.net/git)`: [This will not be clickable](irc://irc.freenode.net/git) To get around this we have to first allow *all* protocols, and then manually clean dangerous (i.e., `javascript:`) protocols. See merge request !1496
| | * | | | Add custom protocol whitelisting to SanitizationFilterrs-dev-issue-2613Robert Speicher2015-10-012-10/+110
| | | | | | | | | | | | | | | | | | | | | | | | Addresses internal https://dev.gitlab.org/gitlab/gitlabhq/issues/2613
| * | | | | Merge branch 'rs-editor-submit' into 'master' Douwe Maan2015-11-022-8/+8
| |\ \ \ \ \ | | |_|_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Persist blob editor's value on submit, not on click 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. See merge request !1712
| | * | | | 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 pull request #9794 from arnaud-zg/masterRobert Schilling2015-11-021-0/+4
|\ \ \ \ \ | |/ / / / |/| | | | Go to gitlab installation folder before initialize database
| * | | | Go to gitlab installation folder before initialize databasezheng_b2015-11-021-0/+4
| | | | |
* | | | | Merge branch 'doc-Gitlab-2-GitLab' into 'master' Achilleas Pipinellis2015-11-017-22/+21
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Gilab -> GitLab Replace `Gitlab` with `GitLab` See merge request !1715
| * | | | | Gilab -> GitLabRobert Schilling2015-10-317-22/+21
| | | | | |
* | | | | | Merge branch 'fix-doc-typo' into 'master' Achilleas Pipinellis2015-11-011-1/+1
|\ \ \ \ \ \ | |/ / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix typo in rake task doc See merge request !1713
| * | | | | Fix typo in rake task docRobert Schilling2015-10-311-1/+1
| | |/ / / | |/| | |
* | | | | Merge branch 'fix-deadlink-in-docs-ci-examples' into 'master' Achilleas Pipinellis2015-10-311-3/+3
|\ \ \ \ \ | |/ / / / |/| | | | | | | | | | | | | | | | | | | | | | | | Fix deadlink in docs for ci/examples Just fix a deadlink in docs for ci/examples. See merge request !1710
| * | | | Fix deadlink in docs for ci/examplesTakuya Noguchi2015-10-311-3/+3
| | | | |
* | | | | Merge branch 'gitlab-workhorse' into 'master' Dmitriy Zaporozhets2015-10-308-65/+250
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Switch to gitlab-workhorse This is a little annoying but it is better to change this name then to be stuck with a bad name for a long time. Reasons for the name change: https://gitlab.com/gitlab-org/gitlab-git-http-server/issues/13 See merge request !1707
| * | | | | Make sed command GNU-compatiblegitlab-workhorseJacob Vosmaer2015-10-291-1/+1
| | | | | |
| * | | | | Add missing "cd"Jacob Vosmaer2015-10-291-0/+1
| | | | | |
| * | | | | Switch to gitlab-workhorseJacob Vosmaer2015-10-298-65/+249
| | | | | |
* | | | | | Merge branch 'optimize-user-find-by-any-email' into 'master' Yorick Peterse2015-10-303-15/+37
|\ \ \ \ \ \ | |_|/ / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Improve performance of User.find_by_any_email See merge request !1698
| * | | | | Adjusted ips/sec for find_by_any_email benchmarksoptimize-user-find-by-any-emailYorick Peterse2015-10-301-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | While these benchmarks run at roughly 1500 i/sec setting the threshold to 1000 leaves some room for deviations (e.g. due to different DB setups).
| * | | | | 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.
| * | | | | Changelog entry for User.find_by_any_emailYorick Peterse2015-10-301-0/+1
| | | | | |
| * | | | | Improve performance of User.find_by_any_emailYorick Peterse2015-10-302-15/+29
| | |/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-298-5/+66
|\ \ \ \ \
| * | | | | Update changelog itemDouwe Maan2015-10-291-3/+3
| | | | | |
| * | | | | Add ability to create directories in the editorBen Ford2015-10-298-5/+66
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.