diff options
71 files changed, 200 insertions, 70 deletions
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index cb5c218920d..0a97faaf301 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -67,7 +67,13 @@ If you can, please submit a merge request with the fix or improvements including 1. Link relevant [issues](https://gitlab.com/gitlab-org/gitlab-ce/issues) and/or [feedback items](http://feedback.gitlab.com/) from the merge request description and leave a comment on them with a link back to the MR 1. Be prepared to answer questions and incorporate feedback even if requests for this arrive weeks or months after your MR submittion -Please keep the change in a single MR as small as possible. If you want to contribute a large feature think very hard what the minimum viable change is. Can you split functionality? Can you only submit the backend/API code? Can you start with a very simple UI? The smaller a MR is the more likely it is it will be merged, after that you can send more MR's to enhance it. +Please keep the change in a single MR **as small as possible**. If you want to contribute a large feature think very hard what the minimum viable change is. Can you split functionality? Can you only submit the backend/API code? Can you start with a very simple UI? The smaller a MR is the more likely it is it will be merged, after that you can send more MR's to enhance it. + +The **official merge window** is in the beginning of the month from the 1st to the 7th day of the month. +The best time to submit a MR and get feedback fast. +Before this time the GitLab.com team is still dealing with work that is created by the monthly release such as assisting subscribers with upgrade issues, the release of Enterprise Edition and the upgrade of GitLab Cloud. +After the 7th it is already getting closer to the release date of the next version. +This means there is less time to fix the issues created by merging large new features. We will accept a merge requests if it: @@ -78,7 +84,7 @@ We will accept a merge requests if it: * Fixes one specific issue or implements one specific feature (do not combine things, send separate merge requests if needed) * Keeps the GitLab code base clean and well structured * Contains functionality we think other users will benefit from too -* Doesn't add unnessecary configuration options since they complicate future changes +* Doesn't add avoidable configuration options since these complicate future changes * Contains a single commit (please use `git rebase -i` to squash commits) For examples of feedback on merge requests please look at already [closed merge requests](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests?assignee_id=&label_name=&milestone_id=&scope=&sort=&state=closed). diff --git a/app/assets/images/ajax_loader.gif b/app/assets/images/ajax_loader.gif Binary files differindex 8a97c91987a..d0f093033d6 100644 --- a/app/assets/images/ajax_loader.gif +++ b/app/assets/images/ajax_loader.gif diff --git a/app/assets/images/ajax_loader_gray.gif b/app/assets/images/ajax_loader_gray.gif Binary files differindex af3f618bd0b..fdf2c98a961 100644 --- a/app/assets/images/ajax_loader_gray.gif +++ b/app/assets/images/ajax_loader_gray.gif diff --git a/app/assets/images/ajax_loader_tree.gif b/app/assets/images/ajax_loader_tree.gif Binary files differindex 99d5a0f37f3..47ba01264ce 100644 --- a/app/assets/images/ajax_loader_tree.gif +++ b/app/assets/images/ajax_loader_tree.gif diff --git a/app/assets/images/bg-header.png b/app/assets/images/bg-header.png Binary files differindex 8759ca589fc..9ecdaf4e2d5 100644 --- a/app/assets/images/bg-header.png +++ b/app/assets/images/bg-header.png diff --git a/app/assets/images/dark-scheme-preview.png b/app/assets/images/dark-scheme-preview.png Binary files differindex 055a9069b63..6dac6cd8ca1 100644 --- a/app/assets/images/dark-scheme-preview.png +++ b/app/assets/images/dark-scheme-preview.png diff --git a/app/assets/images/file_txt.png b/app/assets/images/file_txt.png Binary files differindex f3638cb4e1e..b3230b5add0 100644 --- a/app/assets/images/file_txt.png +++ b/app/assets/images/file_txt.png diff --git a/app/assets/images/icon-search.png b/app/assets/images/icon-search.png Binary files differindex 7632915cacc..084b89e3a7c 100644 --- a/app/assets/images/icon-search.png +++ b/app/assets/images/icon-search.png diff --git a/app/assets/images/images.png b/app/assets/images/images.png Binary files differindex 973d3bdd39d..da91f6b1f4c 100644 --- a/app/assets/images/images.png +++ b/app/assets/images/images.png diff --git a/app/assets/images/logo-black.png b/app/assets/images/logo-black.png Binary files differindex 31c4a63cd08..4a96572d570 100644 --- a/app/assets/images/logo-black.png +++ b/app/assets/images/logo-black.png diff --git a/app/assets/images/logo-white.png b/app/assets/images/logo-white.png Binary files differindex 8a4ec851b1d..bc2ef601a53 100644 --- a/app/assets/images/logo-white.png +++ b/app/assets/images/logo-white.png diff --git a/app/assets/images/monokai-scheme-preview.png b/app/assets/images/monokai-scheme-preview.png Binary files differindex 9477941778e..3aeed886a02 100644 --- a/app/assets/images/monokai-scheme-preview.png +++ b/app/assets/images/monokai-scheme-preview.png diff --git a/app/assets/images/no_avatar.png b/app/assets/images/no_avatar.png Binary files differindex 752d26adba7..dac3ab1bb89 100644 --- a/app/assets/images/no_avatar.png +++ b/app/assets/images/no_avatar.png diff --git a/app/assets/images/onion_skin_sprites.gif b/app/assets/images/onion_skin_sprites.gif Binary files differindex 85d20260edc..337aa1bfb63 100644 --- a/app/assets/images/onion_skin_sprites.gif +++ b/app/assets/images/onion_skin_sprites.gif diff --git a/app/assets/images/solarized-dark-scheme-preview.png b/app/assets/images/solarized-dark-scheme-preview.png Binary files differindex 728964bc4c8..ae092ab5213 100644 --- a/app/assets/images/solarized-dark-scheme-preview.png +++ b/app/assets/images/solarized-dark-scheme-preview.png diff --git a/app/assets/images/swipemode_sprites.gif b/app/assets/images/swipemode_sprites.gif Binary files differindex 327b3c31ffd..b010b4e4482 100644 --- a/app/assets/images/swipemode_sprites.gif +++ b/app/assets/images/swipemode_sprites.gif diff --git a/app/assets/images/switch_icon.png b/app/assets/images/switch_icon.png Binary files differindex 7c11f206593..6b8bde41bc9 100644 --- a/app/assets/images/switch_icon.png +++ b/app/assets/images/switch_icon.png diff --git a/app/assets/images/trans_bg.gif b/app/assets/images/trans_bg.gif Binary files differindex c7e98e044f5..5f6ed04a43c 100644 --- a/app/assets/images/trans_bg.gif +++ b/app/assets/images/trans_bg.gif diff --git a/app/assets/images/white-scheme-preview.png b/app/assets/images/white-scheme-preview.png Binary files differindex 67eb8763044..d1866e00158 100644 --- a/app/assets/images/white-scheme-preview.png +++ b/app/assets/images/white-scheme-preview.png diff --git a/app/assets/stylesheets/generic/common.scss b/app/assets/stylesheets/generic/common.scss index 79a217186de..507e7197d5f 100644 --- a/app/assets/stylesheets/generic/common.scss +++ b/app/assets/stylesheets/generic/common.scss @@ -327,6 +327,12 @@ li.note { color: #fff; text-decoration: underline; } + + .links-xs { + text-align: center; + font-size: 16px; + padding: 5px; + } } .warning_message { @@ -485,3 +491,7 @@ table { margin-bottom: 15px; } } + +@media (max-width: $screen-xs-max) { + .container .content { margin-top: 20px; } +} diff --git a/app/assets/stylesheets/main/layout.scss b/app/assets/stylesheets/main/layout.scss index a4d889f26dd..9e009a5e0ad 100644 --- a/app/assets/stylesheets/main/layout.scss +++ b/app/assets/stylesheets/main/layout.scss @@ -1,5 +1,7 @@ html { overflow-y: scroll; + + &.touch .tooltip { display: none !important; } } body { diff --git a/app/assets/stylesheets/sections/header.scss b/app/assets/stylesheets/sections/header.scss index b0dd0d08356..780f281dd7e 100644 --- a/app/assets/stylesheets/sections/header.scss +++ b/app/assets/stylesheets/sections/header.scss @@ -29,6 +29,59 @@ header { float: right; margin-right: 0; } + + .navbar-toggle { + color: $style_color; + margin: 0 -15px 0 0; + padding: 10px; + border-radius: 0; + + button i { font-size: 22px; } + + &.collapsed { background-color: transparent !important;} + + &:hover { + background-color: #EEE; + } + } + } + + @media (max-width: $screen-xs-max) { + border-width: 0; + font-size: 18px; + + .app_logo { margin-left: -15px; } + .project_name { + display: inline-block; + overflow: hidden; + text-overflow: ellipsis; + vertical-align: top; + white-space: nowrap; + max-width: 70%; + } + + .navbar-collapse { + padding-right: 0; + padding-left: 0; + } + + .navbar-nav { + margin: 5px 0; + + .visible-xs, .visable-sm { + display: table-cell !important; + } + } + + li { + display: table-cell; + width: 1%; + + a { + text-align: center; + font-size: 18px !important; + } + } } } @@ -128,6 +181,8 @@ header { background: #708090; border-bottom: 1px solid #AAA; + .navbar-toggle { color: #fff; } + .nav > li > a { color: #AAA; text-shadow: 0 1px 0 #444; diff --git a/app/assets/stylesheets/sections/nav.scss b/app/assets/stylesheets/sections/nav.scss index f706854b4fe..7dd80dc52fa 100644 --- a/app/assets/stylesheets/sections/nav.scss +++ b/app/assets/stylesheets/sections/nav.scss @@ -83,4 +83,38 @@ padding-top: 2px; } } + + @media (max-width: $screen-xs-max) { + font-size: 18px; + margin: 0; + + max-height: none; + + &, .container { + padding: 0; + border-top: 0; + } + + ul { + height: auto; + + li { + display: list-item; + width: auto; + padding: 5px 0; + + &.active { + background-color: $primary_color; + + a { + color: #fff; + font-weight: normal; + text-shadow: none; + + &:after { display: none; } + } + } + } + } + } } diff --git a/app/assets/stylesheets/themes/ui_color.scss b/app/assets/stylesheets/themes/ui_color.scss index 7d9cab215c8..0fc72d4e0a8 100644 --- a/app/assets/stylesheets/themes/ui_color.scss +++ b/app/assets/stylesheets/themes/ui_color.scss @@ -18,7 +18,7 @@ .navbar-inner { background: #547; border-bottom: 1px solid #435; - .app_logo { + .app_logo, .navbar-toggle { &:hover { background-color: #435; } diff --git a/app/assets/stylesheets/themes/ui_gray.scss b/app/assets/stylesheets/themes/ui_gray.scss index 41c08c840e2..959febad6fe 100644 --- a/app/assets/stylesheets/themes/ui_gray.scss +++ b/app/assets/stylesheets/themes/ui_gray.scss @@ -18,7 +18,7 @@ .navbar-inner { background: #373737; border-bottom: 1px solid #272727; - .app_logo { + .app_logo, .navbar-toggle { &:hover { background-color: #272727; } diff --git a/app/assets/stylesheets/themes/ui_mars.scss b/app/assets/stylesheets/themes/ui_mars.scss index aba3e0ca827..9af5adbf10a 100644 --- a/app/assets/stylesheets/themes/ui_mars.scss +++ b/app/assets/stylesheets/themes/ui_mars.scss @@ -18,7 +18,7 @@ .navbar-inner { background: #474D57; border-bottom: 1px solid #373D47; - .app_logo { + .app_logo, .navbar-toggle { &:hover { background-color: #373D47; } diff --git a/app/assets/stylesheets/themes/ui_modern.scss b/app/assets/stylesheets/themes/ui_modern.scss index 015a4bbf0c3..b0827deb1ac 100644 --- a/app/assets/stylesheets/themes/ui_modern.scss +++ b/app/assets/stylesheets/themes/ui_modern.scss @@ -18,7 +18,7 @@ .navbar-inner { background: #345; border-bottom: 1px solid #234; - .app_logo { + .app_logo, .navbar-toggle { &:hover { background-color: #234; } diff --git a/app/controllers/errors_controller.rb b/app/controllers/errors_controller.rb deleted file mode 100644 index a0c8a000fc7..00000000000 --- a/app/controllers/errors_controller.rb +++ /dev/null @@ -1,2 +0,0 @@ -class ErrorsController < ApplicationController -end diff --git a/app/mailers/notify.rb b/app/mailers/notify.rb index aec4c57cba8..6c1a3328960 100644 --- a/app/mailers/notify.rb +++ b/app/mailers/notify.rb @@ -12,7 +12,7 @@ class Notify < ActionMailer::Base default_url_options[:host] = Gitlab.config.gitlab.host default_url_options[:protocol] = Gitlab.config.gitlab.protocol - default_url_options[:port] = Gitlab.config.gitlab.port if Gitlab.config.gitlab_on_non_standard_port? + default_url_options[:port] = Gitlab.config.gitlab.port unless Gitlab.config.gitlab_on_standard_port? default_url_options[:script_name] = Gitlab.config.gitlab.relative_url_root default from: Gitlab.config.gitlab.email_from diff --git a/app/models/project_services/hipchat_service.rb b/app/models/project_services/hipchat_service.rb index ea2169fb168..c0ba9f1e7f3 100644 --- a/app/models/project_services/hipchat_service.rb +++ b/app/models/project_services/hipchat_service.rb @@ -61,7 +61,7 @@ class HipchatService < Service elsif after =~ /000000/ message << "removed branch #{ref} from <a href=\"#{project.web_url}\">#{project.name_with_namespace.gsub!(/\s/,'')}</a> \n" else - message << "#pushed to branch <a href=\"#{project.web_url}/commits/#{ref}\">#{ref}</a> " + message << "pushed to branch <a href=\"#{project.web_url}/commits/#{ref}\">#{ref}</a> " message << "of <a href=\"#{project.web_url}\">#{project.name_with_namespace.gsub!(/\s/,'')}</a> " message << "(<a href=\"#{project.web_url}/compare/#{before}...#{after}\">Compare changes</a>)" for commit in push[:commits] do diff --git a/app/views/dashboard/show.html.haml b/app/views/dashboard/show.html.haml index c4018d4b6d8..e5b7fbf097e 100644 --- a/app/views/dashboard/show.html.haml +++ b/app/views/dashboard/show.html.haml @@ -2,7 +2,7 @@ .dashboard.row .activities.col-md-8 = render 'activities' - .side.col-md-4.hidden-sm + .side.col-md-4.hidden-sm.hidden-xs = render 'sidebar' - else diff --git a/app/views/layouts/_head_panel.html.haml b/app/views/layouts/_head_panel.html.haml index 58b216f2e98..32debb8c7ac 100644 --- a/app/views/layouts/_head_panel.html.haml +++ b/app/views/layouts/_head_panel.html.haml @@ -14,14 +14,14 @@ .navbar-collapse.collapse %ul.nav.navbar-nav - %li + %li.hidden-sm.hidden-xs %a %div.hide.turbolink-spinner %i.icon-refresh.icon-spin Loading... - %li.hidden-sm + %li.hidden-sm.hidden-xs = render "layouts/search" - %li.visible-sm + %li.visible-sm.visible-xs = link_to search_path, title: "Search", class: 'has_bottom_tooltip', 'data-original-title' => 'Search area' do %i.icon-search %li diff --git a/app/views/layouts/admin.html.haml b/app/views/layouts/admin.html.haml index 3a23cbdb376..439cb978a76 100644 --- a/app/views/layouts/admin.html.haml +++ b/app/views/layouts/admin.html.haml @@ -4,7 +4,7 @@ %body{class: "#{app_theme} admin", :'data-page' => body_data_page} = render "layouts/head_panel", title: "Admin area" = render "layouts/flash" - %nav.main-nav + %nav.main-nav.navbar-collapse.collapse .container= render 'layouts/nav/admin' .container diff --git a/app/views/layouts/application.html.haml b/app/views/layouts/application.html.haml index 92edc718235..511db389e0f 100644 --- a/app/views/layouts/application.html.haml +++ b/app/views/layouts/application.html.haml @@ -5,7 +5,7 @@ = render "layouts/broadcast" = render "layouts/head_panel", title: "Dashboard" = render "layouts/flash" - %nav.main-nav + %nav.main-nav.navbar-collapse.collapse .container= render 'layouts/nav/dashboard' .container diff --git a/app/views/layouts/group.html.haml b/app/views/layouts/group.html.haml index b546a9fa84f..fb4a3a3ba95 100644 --- a/app/views/layouts/group.html.haml +++ b/app/views/layouts/group.html.haml @@ -5,7 +5,7 @@ = render "layouts/broadcast" = render "layouts/head_panel", title: "group: #{@group.name}" = render "layouts/flash" - %nav.main-nav + %nav.main-nav.navbar-collapse.collapse .container= render 'layouts/nav/group' .container diff --git a/app/views/layouts/profile.html.haml b/app/views/layouts/profile.html.haml index 72849639571..2d869a6cdcb 100644 --- a/app/views/layouts/profile.html.haml +++ b/app/views/layouts/profile.html.haml @@ -5,7 +5,7 @@ = render "layouts/broadcast" = render "layouts/head_panel", title: "Profile" = render "layouts/flash" - %nav.main-nav + %nav.main-nav.navbar-collapse.collapse .container= render 'layouts/nav/profile' .container diff --git a/app/views/layouts/project_settings.html.haml b/app/views/layouts/project_settings.html.haml index a55f043f2cf..5659cfab31d 100644 --- a/app/views/layouts/project_settings.html.haml +++ b/app/views/layouts/project_settings.html.haml @@ -9,7 +9,7 @@ - if can?(current_user, :download_code, @project) = render 'shared/no_ssh' - %nav.main-nav + %nav.main-nav.navbar-collapse.collapse .container= render 'layouts/nav/project' .container diff --git a/app/views/layouts/projects.html.haml b/app/views/layouts/projects.html.haml index 55214c6a5c9..3ae4961b137 100644 --- a/app/views/layouts/projects.html.haml +++ b/app/views/layouts/projects.html.haml @@ -9,7 +9,7 @@ - if can?(current_user, :download_code, @project) = render 'shared/no_ssh' - %nav.main-nav + %nav.main-nav.navbar-collapse.collapse .container= render 'layouts/nav/project' .container diff --git a/app/views/layouts/public_projects.html.haml b/app/views/layouts/public_projects.html.haml index 1e8814134f5..a8e3236d865 100644 --- a/app/views/layouts/public_projects.html.haml +++ b/app/views/layouts/public_projects.html.haml @@ -3,7 +3,7 @@ = render "layouts/head", title: @project.name_with_namespace %body{class: "#{app_theme} application", :'data-page' => body_data_page} = render "layouts/public_head_panel" - %nav.main-nav + %nav.main-nav.navbar-collapse.collapse .container= render 'layouts/nav/project' .container .content= yield diff --git a/app/views/layouts/user_team.html.haml b/app/views/layouts/user_team.html.haml index e64e68d2446..191ad406c3c 100644 --- a/app/views/layouts/user_team.html.haml +++ b/app/views/layouts/user_team.html.haml @@ -4,7 +4,7 @@ %body{class: "#{app_theme} application", :'data-page' => body_data_page} = render "layouts/head_panel", title: "team: #{@team.name}" = render "layouts/flash" - %nav.main-nav + %nav.main-nav.navbar-collapse.collapse .container= render 'layouts/nav/team' .container diff --git a/app/views/projects/snippets/_snippet.html.haml b/app/views/projects/snippets/_snippet.html.haml index ddd9645ee51..b2c35edc44c 100644 --- a/app/views/projects/snippets/_snippet.html.haml +++ b/app/views/projects/snippets/_snippet.html.haml @@ -5,13 +5,6 @@ %span.cgray.monospace.tiny.pull-right = snippet.file_name - %small.pull-right.cgray - Expires: - - if snippet.expires_at - = snippet.expires_at.to_date.to_s(:short) - - else - Never - .snippet-info = "##{snippet.id}" %span diff --git a/app/views/shared/_no_ssh.html.haml b/app/views/shared/_no_ssh.html.haml index 077e6c6a808..e70eb4d01b9 100644 --- a/app/views/shared/_no_ssh.html.haml +++ b/app/views/shared/_no_ssh.html.haml @@ -2,7 +2,13 @@ .no-ssh-key-message .container You won't be able to pull or push project code via SSH until you #{link_to 'add an SSH key', new_profile_key_path} to your profile - %div.pull-right + .pull-right.hidden-xs = link_to "Don't show again", profile_path(user: {hide_no_ssh_key: true}), method: :put, class: 'hide-no-ssh-message', remote: true | = link_to 'Remind later', '#', class: 'hide-no-ssh-message' + .links-xs.visible-xs + = link_to "Add key", new_profile_key_path + | + = link_to "Don't show again", profile_path(user: {hide_no_ssh_key: true}), method: :put, class: 'hide-no-ssh-message', remote: true + | + = link_to 'Later', '#', class: 'hide-no-ssh-message' diff --git a/config/gitlab.yml.example b/config/gitlab.yml.example index c63e8cb7ded..da87deddec8 100644 --- a/config/gitlab.yml.example +++ b/config/gitlab.yml.example @@ -14,7 +14,7 @@ production: &base ## GitLab settings gitlab: - ## Web server settings + ## Web server settings (note: host is the FQDN, do not include http://) host: localhost port: 80 https: false @@ -202,7 +202,8 @@ production: &base # Use the default values unless you really know what you are doing git: bin_path: /usr/bin/git - # Max size of a git object (e.g. a commit), in bytes + # The next value is the maximum memory size grit can use + # Given in number of bytes per git object (e.g. a commit) # This value can be increased if you have very large commits max_size: 5242880 # 5.megabytes # Git timeout to read a commit, in seconds diff --git a/config/initializers/1_settings.rb b/config/initializers/1_settings.rb index ea391ca601c..cf6c79bb50e 100644 --- a/config/initializers/1_settings.rb +++ b/config/initializers/1_settings.rb @@ -3,8 +3,8 @@ class Settings < Settingslogic namespace Rails.env class << self - def gitlab_on_non_standard_port? - ![443, 80].include?(gitlab.port.to_i) + def gitlab_on_standard_port? + gitlab.port.to_i == (gitlab.https ? 443 : 80) end private @@ -18,11 +18,7 @@ class Settings < Settingslogic end def build_gitlab_url - if gitlab_on_non_standard_port? - custom_port = ":#{gitlab.port}" - else - custom_port = nil - end + custom_port = gitlab_on_standard_port? ? nil : ":#{gitlab.port}" [ gitlab.protocol, "://", gitlab.host, diff --git a/config/routes.rb b/config/routes.rb index 315c339016b..611e497c9e5 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -100,8 +100,6 @@ Gitlab::Application.routes.draw do root to: "dashboard#index" end - get "errors/githost" - # # Profile Area # diff --git a/db/migrate/20140122114406_migrate_mr_diffs.rb b/db/migrate/20140122114406_migrate_mr_diffs.rb index 2cc5faaa851..1595e2b6472 100644 --- a/db/migrate/20140122114406_migrate_mr_diffs.rb +++ b/db/migrate/20140122114406_migrate_mr_diffs.rb @@ -1,8 +1,6 @@ class MigrateMrDiffs < ActiveRecord::Migration def self.up - execute "INSERT INTO merge_request_diffs ( merge_request_id ) SELECT id FROM merge_requests" - execute "UPDATE merge_requests mr, merge_request_diffs md SET md.st_commits = mr.st_commits WHERE md.merge_request_id = mr.id" - execute "UPDATE merge_requests mr, merge_request_diffs md SET md.st_diffs = mr.st_diffs WHERE md.merge_request_id = mr.id" + execute "INSERT INTO merge_request_diffs ( merge_request_id, st_commits, st_diffs ) SELECT id, st_commits, st_diffs FROM merge_requests" end def self.down diff --git a/db/migrate/20140122122549_remove_m_rdiff_fields.rb b/db/migrate/20140122122549_remove_m_rdiff_fields.rb index c27e649e9a3..8f863d85a68 100644 --- a/db/migrate/20140122122549_remove_m_rdiff_fields.rb +++ b/db/migrate/20140122122549_remove_m_rdiff_fields.rb @@ -7,7 +7,15 @@ class RemoveMRdiffFields < ActiveRecord::Migration def down add_column :merge_requests, :st_commits, :text, null: true, limit: 2147483647 add_column :merge_requests, :st_diffs, :text, null: true, limit: 2147483647 - execute "UPDATE merge_requests mr, merge_request_diffs md SET mr.st_commits = md.st_commits WHERE md.merge_request_id = mr.id" - execute "UPDATE merge_requests mr, merge_request_diffs md SET mr.st_diffs = md.st_diffs WHERE md.merge_request_id = mr.id" + + if ActiveRecord::Base.connection.adapter_name == 'PostgreSQL' + execute "UPDATE merge_requests mr + SET (st_commits, st_diffs) = (md.st_commits, md.st_diffs) + FROM merge_request_diffs md + WHERE md.merge_request_id = mr.id" + else + execute "UPDATE merge_requests mr, merge_request_diffs md SET mr.st_commits = md.st_commits WHERE md.merge_request_id = mr.id" + execute "UPDATE merge_requests mr, merge_request_diffs md SET mr.st_diffs = md.st_diffs WHERE md.merge_request_id = mr.id" + end end end diff --git a/doc/install/installation.md b/doc/install/installation.md index 0d7f126167b..575f776de58 100644 --- a/doc/install/installation.md +++ b/doc/install/installation.md @@ -94,8 +94,8 @@ Is the system packaged Git too old? Remove it and compile from source. # Download and compile from source cd /tmp - curl --progress https://git-core.googlecode.com/files/git-1.8.4.1.tar.gz | tar xz - cd git-1.8.4.1/ + curl --progress https://git-core.googlecode.com/files/git-1.8.5.2.tar.gz | tar xz + cd git-1.8.5.2/ make prefix=/usr/local all # Install into /usr/local/bin @@ -270,7 +270,7 @@ Make sure to edit both `gitlab.yml` and `unicorn.rb` to match your setup. sudo -u git -H bundle exec rake gitlab:setup RAILS_ENV=production - # Type 'yes' to create the database. + # Type 'yes' to create the database tables. # When done you see 'Administrator account created:' diff --git a/doc/install/requirements.md b/doc/install/requirements.md index 0a1539fb0d6..a263e9361e1 100644 --- a/doc/install/requirements.md +++ b/doc/install/requirements.md @@ -37,9 +37,8 @@ Please consider using a virtual machine to run GitLab. # Ruby versions GitLab requires Ruby (MRI) 1.9.3 or 2.0+. -While it is generally possible to use other Rubies -(like [JRuby](http://jruby.org/) or [Rubinius](http://rubini.us/)) -it might require some work since GitLab uses several Gems that have native extensions. +You will have to use the standard MRI implementation of Ruby. +We love [JRuby](http://jruby.org/) and [Rubinius](http://rubini.us/)) but GitLab needs several Gems that have native extensions. # Hardware requirements diff --git a/doc/raketasks/backup_restore.md b/doc/raketasks/backup_restore.md index d2da64f3d3c..bdff6ad5da8 100644 --- a/doc/raketasks/backup_restore.md +++ b/doc/raketasks/backup_restore.md @@ -78,3 +78,18 @@ Restoring repositories: - Restoring repository abcd... [DONE] Deleting tmp directories...[DONE] ``` + +### Configure cron to make daily backups + +``` +cd /home/git/gitlab +sudo -u git -H editor config/gitlab.yml # Enable keep_time in the backup section to automatically delete old backups +sudo -u git crontab -e # Edit the crontab for the git user +``` + +Add the following lines at the bottom: + +``` +# Create a full backup of the GitLab repositories and SQL database every day at 2am +0 2 * * * cd /home/git/gitlab && PATH=/usr/local/bin:/usr/bin:/bin bundle exec rake gitlab:backup:create RAILS_ENV=production +``` diff --git a/doc/release/monthly.md b/doc/release/monthly.md index 17f69915d10..62bb0f7b40a 100644 --- a/doc/release/monthly.md +++ b/doc/release/monthly.md @@ -65,6 +65,9 @@ After making the release branch new commits are cherry-picked from master. When * 21st: optional release candidate 2 (x.x.0.rc2, only if rc1 had problems) * 22nd: release (VERSION x.x.0, create x-x-stable branch, tag, blog and tweet) * 23nd: optional patch releases (x.x.1, x.x.2, etc., only if there are serious problems) +* 24-end of month: release Enterprise Edition and upgrade GitLab Cloud +* 1-7th: official merge window (see contributing guide) +* 8-16th: bugfixes and sponsored features # Write a blog post diff --git a/doc/update/6.4-to-6.5.md b/doc/update/6.4-to-6.5.md index 5dcfd15fe1e..2b1fa2744fe 100644 --- a/doc/update/6.4-to-6.5.md +++ b/doc/update/6.4-to-6.5.md @@ -55,7 +55,7 @@ sudo cp lib/support/init.d/gitlab /etc/init.d/gitlab sudo service gitlab start sudo service nginx restart -### 8. Check application status +### 6. Check application status Check if GitLab and its environment are configured correctly: diff --git a/doc/update/upgrader.md b/doc/update/upgrader.md index 1f51005a8e9..1eec5a8f396 100644 --- a/doc/update/upgrader.md +++ b/doc/update/upgrader.md @@ -1,10 +1,11 @@ # GitLab Upgrader -GitLab Upgrader - ruby script that allows you easily upgrade GitLab to latest minor version. -Ex. it can update your application from 6.4 to latest GitLab 6 version (like 6.5.1). -You still need to create backup and manually restart GitLab but all other operations can be done by upgrade tool. +GitLab Upgrader - a ruby script that allows you easily upgrade GitLab to latest minor version. +For example it can update your application from 6.4 to latest GitLab 6 version (like 6.6.1). +You still need to create a a backup and manually restart GitLab after runnning the script but all other operations are done by this upgrade script. +If you have local changes to your GitLab repository the script will stash them and you need to use `git stash pop` after running the script. -__GitLab Upgrader is available only for version 6.4.2 or higher__ +__GitLab Upgrader is available only for GitLab version 6.4.2 or higher__ ### 0. Backup @@ -20,9 +21,8 @@ __GitLab Upgrader is available only for version 6.4.2 or higher__ cd /home/git/gitlab sudo -u git -H ruby script/upgrade.rb - # it also supports -y option to avouid user input + # it also supports -y option to avoid waiting for user input # sudo -u git -H ruby script/upgrade.rb -y - ### 3. Start application diff --git a/lib/gitlab/blacklist.rb b/lib/gitlab/blacklist.rb index 2f9091e07df..6bc2c3b487c 100644 --- a/lib/gitlab/blacklist.rb +++ b/lib/gitlab/blacklist.rb @@ -3,7 +3,7 @@ module Gitlab extend self def path - %w(admin dashboard groups help profile projects search public assets u s teams merge_requests issues users snippets services repository hooks notes) + %w(admin dashboard files groups help profile projects search public assets u s teams merge_requests issues users snippets services repository hooks notes) end end end diff --git a/lib/gitlab/upgrader.rb b/lib/gitlab/upgrader.rb index 859923cb563..f46685e4bbe 100644 --- a/lib/gitlab/upgrader.rb +++ b/lib/gitlab/upgrader.rb @@ -8,7 +8,7 @@ module Gitlab puts "Latest available version for GitLab #{current_version.major} is #{latest_version}" if latest_version? - puts "You use latest GitLab version" + puts "You are using the latest GitLab version" else puts "Newer GitLab version is available" answer = if ARGV.first == "-y" diff --git a/lib/support/nginx/gitlab b/lib/support/nginx/gitlab index c49dce501ab..0860d2a8693 100644 --- a/lib/support/nginx/gitlab +++ b/lib/support/nginx/gitlab @@ -1,6 +1,20 @@ # GITLAB # Maintainer: @randx +# CHUNKED TRANSFER +# It is a known issue that Git-over-HTTP requires chunked transfer encoding [0] which is not +# supported by Nginx < 1.3.9 [1]. As a result, pushing a large object with Git (i.e. a single large file) +# can lead to a 411 error. In theory you can get around this by tweaking this configuration file and either +# - installing an old version of Nginx with the chunkin module [2] compiled in, or +# - using a newer version of Nginx. +# +# At the time of writing we do not know if either of these theoretical solutions works. As a workaround +# users can use Git over SSH to push large files. +# +# [0] https://git.kernel.org/cgit/git/git.git/tree/Documentation/technical/http-protocol.txt#n99 +# [1] https://github.com/agentzh/chunkin-nginx-module#status +# [2] https://github.com/agentzh/chunkin-nginx-module + upstream gitlab { server unix:/home/git/gitlab/tmp/sockets/gitlab.socket; } @@ -11,7 +25,8 @@ server { server_tokens off; # don't show the version number, a security best practice root /home/git/gitlab/public; - # Set value of client_max_body_size to at least the value of git.max_size in gitlab.yml + # Increase this if you want to upload large attachments + # Or if you want to accept large git objects over http client_max_body_size 5m; # individual nginx logs for this gitlab vhost diff --git a/public/gitlab_logo.png b/public/gitlab_logo.png Binary files differindex e3cda5978ab..dbe6dabb784 100644 --- a/public/gitlab_logo.png +++ b/public/gitlab_logo.png diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb index 6837e4c9196..6bae5951b7b 100644 --- a/spec/models/project_spec.rb +++ b/spec/models/project_spec.rb @@ -101,7 +101,7 @@ describe Project do it "returns the web URL without the protocol for this repo" do project = Project.new(path: "somewhere") - project.web_url_without_protocol.should == "#{Gitlab.config.gitlab.host}/somewhere" + project.web_url_without_protocol.should == "#{Gitlab.config.gitlab.url.split("://")[1]}/somewhere" end describe "last_activity methods" do diff --git a/spec/routing/routing_spec.rb b/spec/routing/routing_spec.rb index 1af052d8739..bcbf37e2eeb 100644 --- a/spec/routing/routing_spec.rb +++ b/spec/routing/routing_spec.rb @@ -111,13 +111,6 @@ describe HelpController, "routing" do end end -# errors_githost GET /errors/githost(.:format) errors#githost -describe ErrorsController, "routing" do - it "to #githost" do - get("/errors/githost").should route_to('errors#githost') - end -end - # profile_account GET /profile/account(.:format) profile#account # profile_history GET /profile/history(.:format) profile#history # profile_password PUT /profile/password(.:format) profile#password_update diff --git a/vendor/assets/images/authbuttons/github_32.png b/vendor/assets/images/authbuttons/github_32.png Binary files differindex 247e52a5f42..c56eef05eb9 100644 --- a/vendor/assets/images/authbuttons/github_32.png +++ b/vendor/assets/images/authbuttons/github_32.png diff --git a/vendor/assets/images/authbuttons/github_64.png b/vendor/assets/images/authbuttons/github_64.png Binary files differindex fca7bf44652..39de55bc796 100644 --- a/vendor/assets/images/authbuttons/github_64.png +++ b/vendor/assets/images/authbuttons/github_64.png diff --git a/vendor/assets/images/authbuttons/google_32.png b/vendor/assets/images/authbuttons/google_32.png Binary files differindex 3909e9de93b..6225cc9c2d7 100644 --- a/vendor/assets/images/authbuttons/google_32.png +++ b/vendor/assets/images/authbuttons/google_32.png diff --git a/vendor/assets/images/authbuttons/google_64.png b/vendor/assets/images/authbuttons/google_64.png Binary files differindex e55f34f1b7d..4d608f71008 100644 --- a/vendor/assets/images/authbuttons/google_64.png +++ b/vendor/assets/images/authbuttons/google_64.png diff --git a/vendor/assets/images/authbuttons/twitter_32.png b/vendor/assets/images/authbuttons/twitter_32.png Binary files differindex daadcffd315..696eb02484d 100644 --- a/vendor/assets/images/authbuttons/twitter_32.png +++ b/vendor/assets/images/authbuttons/twitter_32.png diff --git a/vendor/assets/images/authbuttons/twitter_64.png b/vendor/assets/images/authbuttons/twitter_64.png Binary files differindex 68b74530c06..2893274766f 100644 --- a/vendor/assets/images/authbuttons/twitter_64.png +++ b/vendor/assets/images/authbuttons/twitter_64.png diff --git a/vendor/assets/images/bg_fallback.png b/vendor/assets/images/bg_fallback.png Binary files differindex 4b2754b8040..d9066ad7d7b 100644 --- a/vendor/assets/images/bg_fallback.png +++ b/vendor/assets/images/bg_fallback.png diff --git a/vendor/assets/images/icon_sprite.png b/vendor/assets/images/icon_sprite.png Binary files differindex 636c80f2216..9ad65fc443b 100644 --- a/vendor/assets/images/icon_sprite.png +++ b/vendor/assets/images/icon_sprite.png diff --git a/vendor/assets/images/progress_bar.gif b/vendor/assets/images/progress_bar.gif Binary files differindex 156fbb53137..c3d43fa40b2 100644 --- a/vendor/assets/images/progress_bar.gif +++ b/vendor/assets/images/progress_bar.gif diff --git a/vendor/assets/images/slider_handles.png b/vendor/assets/images/slider_handles.png Binary files differindex b95a46eca97..a6d477033fa 100644 --- a/vendor/assets/images/slider_handles.png +++ b/vendor/assets/images/slider_handles.png diff --git a/vendor/assets/images/ui-icons_222222_256x240.png b/vendor/assets/images/ui-icons_222222_256x240.png Binary files differindex b273ff111d2..8bc06cbf03b 100644 --- a/vendor/assets/images/ui-icons_222222_256x240.png +++ b/vendor/assets/images/ui-icons_222222_256x240.png diff --git a/vendor/assets/images/ui-icons_454545_256x240.png b/vendor/assets/images/ui-icons_454545_256x240.png Binary files differindex 59bd45b907c..cfd1eaffaae 100644 --- a/vendor/assets/images/ui-icons_454545_256x240.png +++ b/vendor/assets/images/ui-icons_454545_256x240.png |