- 01 Aug, 2017 1 commit
-
-
Gabriel Mazetto authored
-
- 28 Jul, 2017 1 commit
-
-
Yorick Peterse authored
Having two states that essentially mean the same thing is very much like having a boolean "true" and boolean "mostly-true": it's rather silly. This commit merges the "reopened" state into the "opened" state while taking care of system notes still showing messages along the lines of "Alice reopened this issue". A big benefit from having only two states (opened and closed) is that indexing and querying becomes simpler and more performant. For example, to get all the opened queries we no longer have to query both states: SELECT * FROM issues WHERE project_id = 2 AND state IN ('opened', 'reopened'); Instead we can query a single state directly, which can be much faster: SELECT * FROM issues WHERE project_id = 2 AND state = 'opened'; Further, only having two states makes indexing easier as we will only ever filter (and thus scan an index) using a single value. Partial indexes could help but aren't supported on MySQL, complicating the development process and not being helpful for MySQL.
-
- 25 Jul, 2017 1 commit
-
-
Bob Van Landuyt authored
-
- 24 Jul, 2017 1 commit
-
-
Tim Zallmann authored
-
- 19 Jul, 2017 2 commits
-
-
Lin Jen-Shin authored
I realized where the N+1 queries were actually coming from project.protected_branches, but how come we cannot preload this, or cache this at all? Then I found that this is somehow a Rails limitation. What we're doing before, eventually come to: project.protected_branches.matching But why it's not cached? (project.protected_branches.loaded? is always false) It's because matching is a class method, which is called on the proxy. In this case, Rails cannot cache the result. I don't know if this is possible to implement or not, because clearly this would require some tricks to implement class methods on associations. So instead, we could just pass project.protected_branches to ProtectedRef.matching, then it would work regularly. With this change, there's no more N+1 queries.
-
Jarka Kadlecova authored
-
- 14 Jul, 2017 1 commit
-
-
Sean McGivern authored
This reverts merge request !12633
-
- 07 Jul, 2017 6 commits
-
-
James Lopez authored
-
Felipe Artur authored
-
Yorick Peterse authored
This module provides a class method called `each_batch` that can be used to iterate tables in batches in a more efficient way compared to Rails' `in_batches` method. This commit also includes a RuboCop cop to blacklist the use of `in_batches` in favour of this new method.
-
Grzegorz Bizon authored
In stage_id backgrond migration.
-
Yorick Peterse authored
This module provides a class method called `each_batch` that can be used to iterate tables in batches in a more efficient way compared to Rails' `in_batches` method. This commit also includes a RuboCop cop to blacklist the use of `in_batches` in favour of this new method.
-
Sean McGivern authored
When this is added to a new model, it would fail before the migrations were run - including when trying to run migrations in production mode!
-
- 06 Jul, 2017 1 commit
-
-
Yorick Peterse authored
This is allowed for existing instances so we don't end up 76 offenses right away, but for new code one should _only_ use this if they _have_ to remove non database data. Even then it's usually better to do this in a service class as this gives you more control over how to remove the data (e.g. in bulk).
-
- 05 Jul, 2017 1 commit
-
-
Nick Thomas authored
-
- 04 Jul, 2017 1 commit
-
-
Douwe Maan authored
This reverts merge request !12557
-
- 03 Jul, 2017 1 commit
-
-
Douglas Barbosa Alexandre authored
-
- 30 Jun, 2017 1 commit
-
-
Adam Niedzielski authored
-
- 29 Jun, 2017 3 commits
-
-
Douglas Barbosa Alexandre authored
-
Adam Niedzielski authored
This reverts commit 498a8d8560b4, reversing changes made to ecba21e0a524.
-
Yorick Peterse authored
These attributes are stored in binary in the database, but exposed as strings. This allows one to query/create data using plain SHA1 hashes as Strings, while storing them more efficiently as binary.
-
- 28 Jun, 2017 2 commits
-
-
Douwe Maan authored
-
Shinya Maeda authored
-
- 27 Jun, 2017 2 commits
-
-
Rémy Coutable authored
Signed-off-by:
Rémy Coutable <remy@rymai.me>
-
Rémy Coutable authored
This allows to enable/disable a feature flag for a given user, or a given Flipper group (must be declared statically in the `flipper.rb` initializer beforehand). Signed-off-by:
Rémy Coutable <remy@rymai.me>
-
- 21 Jun, 2017 2 commits
-
-
Bob Van Landuyt authored
Otherwise we won't validate updates to the path. Allowing users to change the path to something that's not allowed.
-
Grzegorz Bizon authored
-
- 20 Jun, 2017 5 commits
-
-
Toon Claes authored
To make it simpler to assign users to an Issuable, make MergeRequest support the attribute `assignee_ids`.
-
Grzegorz Bizon authored
-
Grzegorz Bizon authored
-
Grzegorz Bizon authored
-
Toon Claes authored
Avoid conflicts when merge CE to EE by backporting code from EE. Instead of checking in `SlashCommands::InterpretService` what the issuable the type of the issuable is, ask the issuable if it is capable to do those thing and implement it in the issuable itself. The issuable will check if it's possible and if the licensed feature is available. This should also make it easier to ever add multiple assignees to MergeRequests.
-
- 16 Jun, 2017 5 commits
-
-
Felipe Artur authored
-
Felipe Artur authored
-
Felipe Artur authored
-
Felipe Artur authored
-
Felipe Artur authored
-
- 31 May, 2017 2 commits
-
-
James Edwards-Jones authored
Improvements and refactorings were made while adding role based permissions for protected tags to EE. This doesn’t backport the feature, but should improve code quality and minimize divergence.
-
Luke "Jared" Bennett authored
-
- 29 May, 2017 1 commit
-
-
Douwe Maan authored
-