<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/gitlab/gitlab-ce.git/app/finders, branch diff-parse-first-commit</title>
<subtitle>gitlab.com: gitlab-org/gitlab-ce.git
</subtitle>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/gitlab/gitlab-ce.git/'/>
<entry>
<title>Drop projects order in IssuableFinder</title>
<updated>2016-01-07T13:53:02+00:00</updated>
<author>
<name>Yorick Peterse</name>
<email>yorickpeterse@gmail.com</email>
</author>
<published>2016-01-06T16:33:43+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=fc443ea7bcdd7255745cd1811c8bc95546ae3b12'/>
<id>fc443ea7bcdd7255745cd1811c8bc95546ae3b12</id>
<content type='text'>
When grabbing the projects to filter issues by we don't care about the
order they're returned in. By removing the ORDER BY the resulting query
can be quite a bit faster.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When grabbing the projects to filter issues by we don't care about the
order they're returned in. By removing the ORDER BY the resulting query
can be quite a bit faster.
</pre>
</div>
</content>
</entry>
<entry>
<title>remove public field from namespace and refactoring</title>
<updated>2016-01-04T14:00:29+00:00</updated>
<author>
<name>Valery Sizov</name>
<email>vsv2711@gmail.com</email>
</author>
<published>2015-12-28T11:32:18+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=8b1844912561a7e6dd0cc361ea1514f2a340e275'/>
<id>8b1844912561a7e6dd0cc361ea1514f2a340e275</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>sort milestones by due_date</title>
<updated>2015-12-03T14:53:34+00:00</updated>
<author>
<name>Greg Smethells</name>
<email>smethells@icloud.com</email>
</author>
<published>2015-11-30T20:47:44+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=dbbd2b863b402e460ac1dc90f852fcae617a2351'/>
<id>dbbd2b863b402e460ac1dc90f852fcae617a2351</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Port GitLab EE ProjectsFinder changes</title>
<updated>2015-11-20T14:53:04+00:00</updated>
<author>
<name>Yorick Peterse</name>
<email>yorickpeterse@gmail.com</email>
</author>
<published>2015-11-20T14:48:05+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=fed059a12ddde628a7d19d008c199da00990ce19'/>
<id>fed059a12ddde628a7d19d008c199da00990ce19</id>
<content type='text'>
These changes were added in GitLab EE commit
d39de0ea91b26b8840195e5674b92c353cc16661. The tests were a bit bugged
(they used a non existing group, thus not testing a crucial part) which
I only noticed when porting CE changes to EE.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
These changes were added in GitLab EE commit
d39de0ea91b26b8840195e5674b92c353cc16661. The tests were a bit bugged
(they used a non existing group, thus not testing a crucial part) which
I only noticed when porting CE changes to EE.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'emoji_votes' into 'master'</title>
<updated>2015-11-19T21:34:38+00:00</updated>
<author>
<name>Dmitriy Zaporozhets</name>
<email>dmitriy.zaporozhets@gmail.com</email>
</author>
<published>2015-11-19T21:34:38+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=68d4ab2381ebfe4ad53910a6f1ce6de311c28f8f'/>
<id>68d4ab2381ebfe4ad53910a6f1ce6de311c28f8f</id>
<content type='text'>

Award Emoji

This it first iteration of award emoji feature.
We have plan to extend emoji picker by the next release.

For now, you can add award by clicking to the emoji picker or posting a regular comment with emoji like ":+1:" and any other. You can post not only emoji that listed in the emoji picker.

See merge request !1825</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>

Award Emoji

This it first iteration of award emoji feature.
We have plan to extend emoji picker by the next release.

For now, you can add award by clicking to the emoji picker or posting a regular comment with emoji like ":+1:" and any other. You can post not only emoji that listed in the emoji picker.

See merge request !1825</pre>
</div>
</content>
</entry>
<entry>
<title>Use a JOIN in IssuableFinder#by_project</title>
<updated>2015-11-19T10:58:05+00:00</updated>
<author>
<name>Yorick Peterse</name>
<email>yorickpeterse@gmail.com</email>
</author>
<published>2015-11-11T11:50:36+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=8591cc02be6b12ed60f763a5e0147f2cbbca99e1'/>
<id>8591cc02be6b12ed60f763a5e0147f2cbbca99e1</id>
<content type='text'>
When using IssuableFinder/IssuesFinder to find issues for multiple
projects it's more efficient to use a JOIN + a "WHERE project_id IN"
condition opposed to running a sub-query.

This change means that when finding issues without labels we're now
using the following SQL:

    SELECT issues.*
    FROM issues
    JOIN projects ON projects.id = issues.project_id

    LEFT JOIN label_links ON label_links.target_type = 'Issue'
                          AND label_links.target_id  = issues.id

    WHERE (
        projects.id IN (...)
        OR projects.visibility_level IN (20, 10)
    )
    AND issues.state IN ('opened','reopened')
    AND label_links.id IS NULL
    ORDER BY issues.id DESC;

instead of:

    SELECT issues.*
    FROM issues
    LEFT JOIN label_links ON label_links.target_type = 'Issue'
                          AND label_links.target_id  = issues.id

    WHERE issues.project_id IN (
        SELECT id
        FROM projects
        WHERE id IN (...)
        OR visibility_level IN (20,10)
    )
    AND issues.state IN ('opened','reopened')
    AND label_links.id IS NULL
    ORDER BY issues.id DESC;

The big benefit here is that in the last case PostgreSQL can't properly
use all available indexes. In particular it ends up performing a
sequence scan on the "label_links" table (processing around 290 000
rows). The new query is roughly 2x as fast as the old query.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When using IssuableFinder/IssuesFinder to find issues for multiple
projects it's more efficient to use a JOIN + a "WHERE project_id IN"
condition opposed to running a sub-query.

This change means that when finding issues without labels we're now
using the following SQL:

    SELECT issues.*
    FROM issues
    JOIN projects ON projects.id = issues.project_id

    LEFT JOIN label_links ON label_links.target_type = 'Issue'
                          AND label_links.target_id  = issues.id

    WHERE (
        projects.id IN (...)
        OR projects.visibility_level IN (20, 10)
    )
    AND issues.state IN ('opened','reopened')
    AND label_links.id IS NULL
    ORDER BY issues.id DESC;

instead of:

    SELECT issues.*
    FROM issues
    LEFT JOIN label_links ON label_links.target_type = 'Issue'
                          AND label_links.target_id  = issues.id

    WHERE issues.project_id IN (
        SELECT id
        FROM projects
        WHERE id IN (...)
        OR visibility_level IN (20,10)
    )
    AND issues.state IN ('opened','reopened')
    AND label_links.id IS NULL
    ORDER BY issues.id DESC;

The big benefit here is that in the last case PostgreSQL can't properly
use all available indexes. In particular it ends up performing a
sequence scan on the "label_links" table (processing around 290 000
rows). The new query is roughly 2x as fast as the old query.
</pre>
</div>
</content>
</entry>
<entry>
<title>Memoize IssuableFinder#projects</title>
<updated>2015-11-19T10:48:50+00:00</updated>
<author>
<name>Yorick Peterse</name>
<email>yorickpeterse@gmail.com</email>
</author>
<published>2015-11-11T11:49:31+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=e9cd58f5d50a7b5cfc14e08cd9526505e24f1071'/>
<id>e9cd58f5d50a7b5cfc14e08cd9526505e24f1071</id>
<content type='text'>
Since this method's returned data doesn't change between calls on the
same IssuableFinder instance we can just memoize this similar to the
"project" method.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Since this method's returned data doesn't change between calls on the
same IssuableFinder instance we can just memoize this similar to the
"project" method.
</pre>
</div>
</content>
</entry>
<entry>
<title>Removed trailing whitespace from IssuableFinder</title>
<updated>2015-11-19T10:48:50+00:00</updated>
<author>
<name>Yorick Peterse</name>
<email>yorickpeterse@gmail.com</email>
</author>
<published>2015-11-11T11:49:16+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=c232a0f97f9b724a142c728ebeceba25ef15ab32'/>
<id>c232a0f97f9b724a142c728ebeceba25ef15ab32</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>css improvements</title>
<updated>2015-11-18T23:25:59+00:00</updated>
<author>
<name>Valery Sizov</name>
<email>vsv2711@gmail.com</email>
</author>
<published>2015-11-17T11:16:16+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=06a4fd1035c58d89251fb979dafa8610ba8c5157'/>
<id>06a4fd1035c58d89251fb979dafa8610ba8c5157</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Return internal projects in PersonalProjectsFinder</title>
<updated>2015-11-18T14:08:28+00:00</updated>
<author>
<name>Yorick Peterse</name>
<email>yorickpeterse@gmail.com</email>
</author>
<published>2015-11-18T14:08:28+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=f486b06c4de26e7eb6468cfc4f864b50e645d5c7'/>
<id>f486b06c4de26e7eb6468cfc4f864b50e645d5c7</id>
<content type='text'>
When getting the projects of a user we should get the public _and_
internal projects, not just the public ones.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When getting the projects of a user we should get the public _and_
internal projects, not just the public ones.
</pre>
</div>
</content>
</entry>
</feed>
