Commit Graph
19784 Commits
Author SHA1 Message Date
Valery Sizov 62bf2eb862 Merge branch 'fix/improve_reset_service_password_v2' into 'master'
Improve invalidation of stored service password if the endpoint URL is changed (V2)

New version of !1583, using the same failproof logic but this time mirroring the name and behaviour of the change-tracking methods of ActiveModel::Dirty in order to make it clearer and more natural.

Added more tests to clarify the expected behaviour.

This is an alternative to !1594

/cc @vsizov @rspeicher

See merge request !1600
2015-10-15 13:47:37 +00:00
Yorick Peterse 5ce933599c Merge branch 'user-by-login-performance' into 'master'
Improve User.by_login performance

This greatly speeds up the performance of `User.by_login`. I adopted some changes from @haynes in this patch, the credits go to him for coming up with those originally.

Fixes #2341

See merge request !1545
2015-10-15 13:41:17 +00:00
Dmitriy Zaporozhets c0a6836be4 Merge branch 'view-issue-performance' 2015-10-15 14:37:04 +02:00
Douwe Maan 4b28f2d999 Merge branch 'git-archive-golang' into 'master'
Let gitlab-git-http-server handle archive downloads

This change relies on changes in gitlab_git and gitlab-git-http-server.

fixes #2429

See merge request !1548
2015-10-15 11:43:14 +00:00
Kamil Trzciński daccc54d25 Merge branch 'builds-view' into 'master'
Added builds view

![Screen_Shot_2015-10-13_at_19.02.48](https://gitlab.com/gitlab-org/gitlab-ce/uploads/95bb3a7d9d603678fdd077558637045d/Screen_Shot_2015-10-13_at_19.02.48.png)

/cc @dzaporozhets @vsizov 


See merge request !1593
2015-10-15 11:35:57 +00:00
Dmitriy Zaporozhets 524b3db30c Merge branch 'fix-path-with-leading-dot-error' into 'master'
Fix error preventing displaying of commit data for a directory with a leading dot

Directories with leading dots erroneously get rejected by the route controller if git
ref regex is used in constraints. This prevents commit data from being loaded. The regex verification is now done in controller.

Closes https://github.com/gitlabhq/gitlabhq/issues/8763


See merge request !1574
2015-10-15 10:36:24 +00:00
Dmitriy Zaporozhets 465a20888a Merge branch 'rs-remove-guard' into 'master'
Remove guard-rspec and its supporting gems



See merge request !1551
2015-10-15 10:34:28 +00:00
Yorick Peterse 97e02f4bc9 Added documentation on the various profiling tools 2015-10-15 12:15:18 +02:00
Alex Lossent 98e666ab6a Improve invalidation of stored service password if the endpoint URL is changed
Password can now be specified at the same time as the new URL, and the service
template admin pages now work.
2015-10-15 12:07:59 +02:00
Yorick Peterse bed29940ef Fixed Rubocop styling issues 2015-10-15 12:05:01 +02:00
Yorick Peterse e5925d073e Renamed Note.inc_associations to with_associations 2015-10-15 12:05:01 +02:00
Yorick Peterse 9f5811116c Changelog entry for issue page speedups 2015-10-15 12:05:01 +02:00
Yorick Peterse f3980e230f Don't use link_to/image_tag where not needed
In these particular instances we can just use HAML tags directly. This
can shave off some time spent loading issue pages, though this depends
on the amount of comments being displayed.

When viewing https://gitlab.com/gitlab-org/gitlab-ce/issues/2164 locally
these changes reduce loading time by about 400 ms in total.
2015-10-15 12:05:01 +02:00
Yorick Peterse 3025b71141 Improve ProjectTeam#max_member_access performance
By comparing objects in Ruby we can greatly improve the performance of
this method. In the worst case (should no data be eager loaded) this
will run the same amount of queries as before, in the best case (when
data _is_ eager loadeD) it requires no queries at all.

The added benchmark used to produce around 273 iterations per second.
With this commit this has been increased to almost 40 000 iterations per
second: a speedup of roughly 145 times.

Combined with eager loading Note associations this results in about 30
queries less when viewing a single issue, this in turn cuts down the
loading time by 30-40%.
2015-10-15 12:05:01 +02:00
Yorick Peterse b5f8161dae Eager load project associations for notes
This ensures that when viewing an issue each note already has the
associated project, project members, group and group members available.
Since this information is requres for every note this results in quite
the reduction of SQL queries being executed.
2015-10-15 12:05:01 +02:00
Yorick Peterse 8237da0d4a Eager load note projects when viewing issues 2015-10-15 12:05:01 +02:00
Yorick Peterse d4832b0341 Added rack-lineprof for development
This can be used to measure the time (roughly) spent on a per line
basis. This can also be used to measure timings for views, for example
by adding the following to a URL:

   ?lineprof=app/views/projects/notes/_note

rack-lineprof is only enabled when:

1. The application runs in development mode
2. The used Ruby is MRI
3. The environment variable ENABLE_LINEPROF is set to a non-empty value
2015-10-15 12:05:01 +02:00
Yorick Peterse 7971ed5dac Added active_record_query_trace
This can be used to track down where queries originate from, regardless
of whether they're caused by N+1 problems or not. This can be enabled by
setting the environment variable ENABLE_QUERY_TRACE to a non-empty value
(e.g. "true").
2015-10-15 12:05:01 +02:00
Yorick Peterse fa3d7db390 Added Bullet to the Gemfile
This can be used to resolve N+1 query problems. Bullet is disabled by
default and can be enabled by starting Rails with the environment
variable ENABLE_BULLET set to a non empty value (e.g. "true").
2015-10-15 12:05:01 +02:00
Yorick Peterse 39fcd445fa Use note.author for issue comment avatars
This removes the need for running a query to find the User object again
based on the supplied Email address.
2015-10-15 12:05:01 +02:00
Yorick Peterse 1554786c6a Eager load various issue/note associations
This ensures we don't end up running N+1 queries for the objects in the
affected collections.
2015-10-15 12:05:01 +02:00
Yorick Peterse ff8f7fb0a1 Re-use User for avatars in link_to_member 2015-10-15 12:05:01 +02:00
Yorick Peterse 9496356367 Re-use User objects for avatar_icon where possible
This removes the need for running an extra SQL query in these cases.
2015-10-15 12:05:01 +02:00
Yorick Peterse 693e63f523 Allow avatar_icon to operate on a User
If the User object is already known before calling this method being
able to re-use said object can save us an extra SQL query.
2015-10-15 12:05:01 +02:00
Yorick Peterse 72f428c7d2 Improve performance of User.by_login
Performance is improved in two steps:

1. On PostgreSQL an expression index is used for checking lower(email)
   and lower(username).
2. The check to determine if we're searching for a username or Email is
   moved to Ruby. Thanks to @haynes for suggesting and writing the
   initial implementation of this.

Moving the check to Ruby makes this method an additional 1.5 times
faster compared to doing the check in the SQL query.

With performance being improved I've now also tweaked the amount of
iterations required by the User.by_login benchmark. This method now runs
between 900 and 1000 iterations per second.
2015-10-15 11:58:25 +02:00
Kamil Trzcinski 9fa209e1d8 Remove unneeded change 2015-10-15 11:51:45 +02:00
Douwe Maan c993481d99 Merge branch 'master' into git-archive-golang 2015-10-15 11:47:36 +02:00
Jacob Vosmaer 83f04853e9 Update gitlab_git to 7.2.19 2015-10-15 11:14:39 +02:00
Dmitriy Zaporozhets fb7785628a Merge branch 'rs-update-uglifier' into 'master'
Update uglifier to ~> 2.7.2

Fixes a security vulnerability:

- https://github.com/lautis/uglifier/pull/86
- https://github.com/mishoo/UglifyJS2/issues/751
- https://zyan.scripts.mit.edu/blog/backdooring-js/

See merge request !1590
2015-10-15 08:21:18 +00:00
Douwe Maan e2045f5e68 Merge branch 'rs-issues_sentence' into 'master'
Simplify the `issues_sentence` helper



See merge request !1598
2015-10-15 07:27:53 +00:00
Douwe Maan 7ad6852363 Merge branch 'rs-mr-tabs-scroll' into 'master'
Prevent a JS error in MergeRequestTabs

When `window.location.hash` is pointing to a note, e.g. `#note_1234`,
`scrollToElement` would throw an error because a selector such as
`.commits #note_1234` doesn't exist, so `offset()` returned `undefined`.

This error would prevent subsequent calls from running, which caused the
loading spinner to never be hidden.

Now we ensure the selector returns a valid element before trying to
scroll to it.

This is the proper fix for !1553.

See merge request !1597
2015-10-15 07:26:39 +00:00
Kamil Trzcinski 4271a2b8ac Fix tests 2015-10-14 22:42:36 +02:00
Robert Speicher 976400c1e6 Merge branch 'incoming-email-config' into 'master'
Make Reply by email easier to configure

Builds on !1566.

Omnibus companion MR: gitlab-org/omnibus-gitlab!510 (cc @marin)

See merge request !1580
2015-10-14 20:38:36 +00:00
Robert Speicher 459b882131 Shut up, Rubocop
[ci skip]
2015-10-14 16:31:54 -04:00
Robert Speicher 9750de4943 Simplify the issues_sentence helper 2015-10-14 16:30:19 -04:00
Robert Speicher 123669a551 Merge branch 'simplify-cross-references' into 'master'
Simplify code around (cross)-references

See merge request !1568
2015-10-14 20:10:34 +00:00
Robert Speicher fc0d92746d Prevent a JS error in MergeRequestTabs
When `window.location.hash` is pointing to a note, e.g. `#note_1234`,
`scrollToElement` would throw an error because a selector such as
`.commits #note_1234` doesn't exist, so `offset()` returned `undefined`.

This error would prevent subsequent calls from running, which caused the
loading spinner to never be hidden.

Now we ensure the selector returns a valid element before trying to
scroll to it.
2015-10-14 15:01:25 -04:00
Kamil Trzciński a3a80eac11 Merge branch 'show_pending_warning' into 'master'
Show warning when build is pending and there are not runners

This change is based on: !1530.

This resolves #2967.



See merge request !1573
2015-10-14 18:57:05 +00:00
Kamil Trzciński 45c0b74dc4 Merge branch 'predefined_build_variables' into 'master'
Add a few predefined variables to CI builds

This adds CI_BUILD_TAG, CI_BUILD_STAGE, CI_BUILD_NAME and CI_BUILD_TRIGGERED to build environment.

This change is based on: !1530 

See merge request !1572
2015-10-14 18:55:59 +00:00
Valery Sizov 0b9273a283 Merge branch 'uploads_path_fix' into 'master'
Fix: Images cannot show when projects' path was changed

Fixes #1443

See merge request !1521
2015-10-14 18:02:23 +00:00
Kamil Trzcinski 0ff8975939 Fix cancel_all specs 2015-10-14 19:59:56 +02:00
Valery Sizov ffb99edc26 Merge branch 'revert_service_passwd' into 'master'
Revert "Improve invalidation of stored service password if the endpoint URL is changed"

This reverts commit b463975480.

See merge request !1595
2015-10-14 17:48:41 +00:00
Valery Sizov b83a18a55c Revert "Improve invalidation of stored service password if the endpoint URL is changed"
This reverts commit b463975480.
2015-10-14 19:21:27 +03:00
Valery Sizov 2fb02f9252 Merge branch 'fix/improve_reset_service_password' into 'master'
Improve invalidation of stored service password if the endpoint URL is changed

A number of issues were found in !1490 and !1558 (triggered by support request 7395)

* It is not possible to set a new URL and a password at the same time (new password is ignored)
* An error occurs on the Service Templates admin pages (prop_updated? was referencing the service's project, which is not defined for templates)
* Passwords are reset on every save in Service Templates admin pages

This should fix these 3 issues by respectively:
* Differentiating a property that has been assigned a new value (regardless of the new value) and a property that has been assigned a new value that is different from the old one
* Providing an alternate implementation to detected updated properties, not relying on the service's project
* Filtering an empty password parameter passed to the Service Templates admin page like on the project service page

See merge request !1583
2015-10-14 16:01:35 +00:00
Valery Sizov 8f584d5f2c Fix: Images cannot show when projects' path was changed 2015-10-14 18:50:35 +03:00
Valery Sizov a2f0a3650b Merge remote-tracking branch 'origin/cernvcs_hide_passwrd' 2015-10-14 18:40:58 +03:00
Kamil Trzcinski d9ece71ef0 Fix specs 2015-10-14 17:38:26 +02:00
Kamil Trzcinski d9e2232f63 Fix warning sign 2015-10-14 17:29:18 +02:00
Kamil Trzcinski 16bfd9d31a Fix specs 2015-10-14 17:29:18 +02:00
Kamil Trzcinski 7af4f5215e Show warning if build doesn't have runners with specified tags or runners didn't connect recently
Slightly refactor runner status detection: moving it to Runner class

Signed-off-by: Kamil Trzcinski <ayufan@ayufan.eu>
2015-10-14 17:29:18 +02:00