1. 29 Dec, 2015 6 commits
    • Marin Jankovski's avatar
      Version 8.3.2 · fbb8b6e6
      Marin Jankovski authored
      fbb8b6e6
    • Marin Jankovski's avatar
      Merge branch 'recaptcha_to_stable' into '8-3-stable' · 450ea191
      Marin Jankovski authored
      Recaptcha to stable
      
      
      
      See merge request !2236
      450ea191
    • Stan Hu's avatar
    • Gabriel Mazetto's avatar
    • Dmitriy Zaporozhets's avatar
      Merge branch 'add-recaptcha-support' into 'master' · 2ef0feca
      Dmitriy Zaporozhets authored
      Add support for Google reCAPTCHA in user registration to prevent spammers
      
      See merge request !2216
      2ef0feca
    • Dmitriy Zaporozhets's avatar
      Merge branch 'disable-git-follow' into 'master' · 795a29ae
      Dmitriy Zaporozhets authored
      Disable --follow in `git log` to avoid loading duplicate commit data in infinite scroll
      
      `git` doesn't work properly when `--follow` and `--skip` are specified together. We could even be **omitting commits in the Web log** as a result.
      
      Here are the gory details. Let's say you ran:
      
      ```
      git log -n=5 --skip=2 README
      ```
      
      This is the working case since it omits `--follow`. This is what happens:
      
      1. `git` starts at `HEAD` and traverses down the tree until it finds the top-most commit relevant to README.
      2. Once this is found, this commit is returned via `get_revision_1()`.
      3. If the `skip_count` is positive, decrement and repeat step 2. Otherwise go onto step 4.
      4. `show_log()` gets called with that commit.
      5. Repeat step 1 until we have all five entries.
      
      That's exactly what we want. What happens when you use `--follow`? You have to understand how step 1 is performed:
      
      * When you specify a pathspec on the command-line (e.g. README), a flag `prune` [gets set here](https://github.com/git/git/blob/master/revision.c#L2351).
      * If the `prune` flag is active, `get_commit_action()` determines whether the commit should be [scanned for matching paths](https://github.com/git/git/blob/master/revision.c#L2989).
      * In the case of `--follow`, however, `prune` is [disabled here](https://github.com/git/git/blob/master/revision.c#L2350).
      * As a result, a commit is never scanned for matching paths and therefore never pruned. `HEAD` will always get returned as the first commit, even if it's not relevant to the README.
      * Making matters worse, the `--skip` in the example above would actually skip a every other entry after `HEAD` N times. If README were changed in these skipped commits, we would actually miss information!
      
      Since git uses a matching algorithm to determine whether a file was renamed, I
      believe `git` needs to generate a diff of each commit to do this and traverse
      each commit one-by-one to do this. I think that's the rationale for disabling
      the `prune` functionality since you can't just do a simple string comparison.
      
      Closes #4181, #4229, #3574, #2410
      
      See merge request !2210
      795a29ae
  2. 28 Dec, 2015 1 commit
  3. 24 Dec, 2015 5 commits
    • Robert Speicher's avatar
      Merge branch 'ref-filter-html' into 'master' · 476f6238
      Robert Speicher authored
      Escape all the things.
      
      See merge request !2209
      476f6238
    • Robert Speicher's avatar
      Update CHANGELOG · 8c208a90
      Robert Speicher authored
      [ci skip]
      8c208a90
    • Dmitriy Zaporozhets's avatar
      Merge branch 'fix-milestones-with-slashes' into 'master' · 840674d1
      Dmitriy Zaporozhets authored
      Fix Error 500 when global milestones have slashes
      
      * Closes #4226
      
      * Closes https://github.com/gitlabhq/gitlabhq/issues/9921
      
      See merge request !2182
      840674d1
    • Douwe Maan's avatar
      Merge branch 'ldap-special-chars-fix' into 'master' · e9a2ab11
      Douwe Maan authored
      Fix identity and user retrieval when special characters are used
      
      Fixes #4023
      
      I also added tests to make sure the user with special characters in his name is returned correctly.
      
      @rspeicher this probably should be added to 8.3 as a patch.
      
      See merge request !2176
      e9a2ab11
    • Dmitriy Zaporozhets's avatar
      Merge branch 'fix-error-500-global-search-issues' into 'master' · 2af68713
      Dmitriy Zaporozhets authored
      Fix Error 500 when doing a search in dashboard before visiting any project
      
      If a search turned up an issue, under certain conditions you would see this error:
      
      ```
      ActionView::Template::Error (undefined method `path_with_namespace' for nil:NilClass):
           6:   - if issue.description.present?
           7:     .description.term
           8:       = preserve do
           9:         = search_md_sanitize(markdown(issue.description))
          10:   %span.light
          11:     #{issue.project.name_with_namespace}
          12:   - if issue.closed?
        lib/gitlab/markdown/upload_link_filter.rb:36:in `build_url'
        lib/gitlab/markdown/upload_link_filter.rb:31:in `process_link_attr'
        lib/gitlab/markdown/upload_link_filter.rb:18:in `block in call'
        lib/gitlab/markdown/upload_link_filter.rb:17:in `call'
        lib/gitlab/markdown.rb:127:in `gfm'
        lib/gitlab/markdown.rb:24:in `render'
        app/helpers/gitlab_markdown_helper.rb:61:in `markdown'
        app/views/search/results/_issue.html.haml:9:in `block in _app_views_search_results__issue_html_haml__4127460390996300432_59973760'
        app/views/search/results/_issue.html.haml:8:in `_app_views_search_results__issue_html_haml__4127460390996300432_59973760'
        app/views/search/_results.html.haml:20:in `_app_views_search__results_html_haml__589475855773452465_61761440'
        app/views/search/show.html.haml:5:in `_app_views_search_show_html_haml___1852335078065998536_69780120'
      ```
      
      Confirmed this is issue still happens in GitLab 8.4, and it also happens on GitLab.com. Here's how to reproduce:
      
      1. Login in a new browser.
      2. Enter a search term on the top right that will land a hit in the "Issues" (e.g. GitLab).
      3. Click on "Issues" tab. You should get an Error 500.
      
      The issue is that @project isn't assigned to anything.
      
      See merge request !2110
      2af68713
  4. 23 Dec, 2015 1 commit
  5. 22 Dec, 2015 6 commits
  6. 21 Dec, 2015 6 commits
  7. 19 Dec, 2015 2 commits
  8. 18 Dec, 2015 13 commits