* fix problem with editing non-master branch
* before commit make sure branch exists
* dont allow user change file in one branch and commit to another existing branch
* remove a lot of code duplication
* remove outdated statellite errors
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Unescape branch names in compare commit
The upgrade in GitLab v7.9 to Rails v4.1.9 caused all branch names in the compare commit mode to be escaped (e.g. `/` to `%2F`). The compare mode would not always work when comparing against branch names with a forward slash.
Opted to unescape the branch name rather than use a wildcard segment to prevent escaping slashes because it seems like a more sensible URL. The slashes in this case aren't really represented by a tree structure (e.g. /compare/one/two/branch..another/branch/here).
* Closes#1399
* Closes https://github.com/gitlabhq/gitlabhq/issues/9105
See merge request !582
Fix bug where Slack service channel was not saved in admin template settings
Consolidate allowed parameters in one place to avoid these kinds of bugs in the future.
Closes https://github.com/gitlabhq/gitlabhq/issues/9181Closes#1501
See merge request !574
Fix bug where Wiki pages that include a '/' were no longer accessible
### What does this MR do?
This MR fixes a regression that caused Wiki pages that included a '/' to no longer be accessible.
### Are there points in the code the reviewer needs to double check?
Are there cases that `wiki_helper.rb` doesn't handle?
### Why was this MR needed?
The upgrade from Rails v4.1.2 to v4.1.9 (76aad9b76e) caused slashes in a model ID to be escaped automatically. We can no longer use the built-in the URL helpers to generate the links for Wiki pages if we want to maintain support for slashes. There is no option to tell the formatter otherwise:
http://stackoverflow.com/questions/25031791/rails-4-1-2-to-param-escapes-slashes-and-breaks-app
The Rails code in question is here:
https://github.com/rails/rails/blob/4-1-stable/actionpack/lib/action_dispatch/journey/visitors.rb#L159
### What are the relevant issue numbers / [Feature requests](http://feedback.gitlab.com/)?
#1363
See merge request !502
Add support for external wikis
## What does this MR do?
This MR adds the possibility to replace the link to the internal wiki of gitlab with a custom link.
Currently this is realised as a service.
## What Use Case does this MR solve?
In my Company we already have a wiki System (Confluence).
We have a policy to use the existing wiki, so we can't switch to the internal wiki Gitlab provides.
This currently only leaves us two choices:
1. Disable the gitlab wiki. That means we completly loose the connection between wiki and code from the gitlab ui.
2. Create a simple wiki page with a link to our external wiki and hope that no one uses the internal one.
Both solutions are not really good.
So what can be done to improve the situation while making it as easy as possible for new developers to access both, wiki and gitlab?
Replacing the wiki link kinda like the JIRA integration replaces the issues link looks like a good first step to me. :)
This can probably be extended later to completly prevent access to the internal wiki (currently that's still possible if you know the link) or maybe to check if the link really points to a wiki.
## Screenshot:

See merge request !291