If a node is ignored there's no need for searching for a given pattern.
In turn, when searching for the pattern there's no need to construct a
MatchData object as we only care about presence (or lack thereof), not
the resulting matches.
In terms of performance this cuts down about 200 ms when loading
issue #2164 locally, though this varies a bit depending on system load.
Add ability to remove the fork relationship from project settings


Replaces !1579.
Fixes#2578.
See merge request !1636
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
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
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.
This was previously possible through the API but can now be done
through the project#edit settings screen if the current user is
the owner of the project.
Update changelog
LDAP email address downcasing
Fixes#2960
In the event we cannot match an LDAP user by DN we attempt to find an identity by email address and then update the DN. In this case the identity is matched by email address.
If the user's email address in LDAP has an upper case character we cannot find a match in the GitLab database. GitLab downcases emails before the user object is saved.
This merge request downcases the email from LDAP before we lookup by email. I also added a test to prevent a regression.
See merge request !1550
Normalize space-like characters in keys before output to gitlab-shell
gitlab-shell expects only one tab separator per key, and an SSH key with
a tab character in the comment, for example, would break things.
Closes#2970
See merge request !1552