Commit b8ea26f7a6904eae83732d473f55fc959773417f

Authored by dosire
2 parents d54e3f36 dc8bd607

Merge branch 'master' into readable-doc-readme

Conflicts:
	doc/README.md
@@ -6,6 +6,7 @@ v 6.8.0 @@ -6,6 +6,7 @@ v 6.8.0
6 - Drop all tables before restoring a Postgres backup 6 - Drop all tables before restoring a Postgres backup
7 - Make the repository downloads path configurable 7 - Make the repository downloads path configurable
8 - Create branches via API (sponsored by O'Reilly Media) 8 - Create branches via API (sponsored by O'Reilly Media)
  9 + - Changed permission of gitlab-satellites directory not to be world accessible
9 10
10 v 6.7.2 11 v 6.7.2
11 - Fix upgrader script 12 - Fix upgrader script
@@ -12,8 +12,6 @@ gem "rails", "~> 4.0.0" @@ -12,8 +12,6 @@ gem "rails", "~> 4.0.0"
12 12
13 gem "protected_attributes" 13 gem "protected_attributes"
14 gem 'rails-observers' 14 gem 'rails-observers'
15 -gem 'actionpack-page_caching'  
16 -gem 'actionpack-action_caching'  
17 15
18 # Default values for AR models 16 # Default values for AR models
19 gem "default_value_for", "~> 3.0.0" 17 gem "default_value_for", "~> 3.0.0"
@@ -27,10 +27,6 @@ GEM @@ -27,10 +27,6 @@ GEM
27 erubis (~> 2.7.0) 27 erubis (~> 2.7.0)
28 rack (~> 1.5.2) 28 rack (~> 1.5.2)
29 rack-test (~> 0.6.2) 29 rack-test (~> 0.6.2)
30 - actionpack-action_caching (1.1.0)  
31 - actionpack (>= 4.0.0, < 5.0)  
32 - actionpack-page_caching (1.0.2)  
33 - actionpack (>= 4.0.0, < 5)  
34 activemodel (4.0.3) 30 activemodel (4.0.3)
35 activesupport (= 4.0.3) 31 activesupport (= 4.0.3)
36 builder (~> 3.1.0) 32 builder (~> 3.1.0)
@@ -567,8 +563,6 @@ PLATFORMS @@ -567,8 +563,6 @@ PLATFORMS
567 563
568 DEPENDENCIES 564 DEPENDENCIES
569 ace-rails-ap 565 ace-rails-ap
570 - actionpack-action_caching  
571 - actionpack-page_caching  
572 acts-as-taggable-on 566 acts-as-taggable-on
573 annotate (~> 2.6.0.beta2) 567 annotate (~> 2.6.0.beta2)
574 asciidoctor 568 asciidoctor
app/assets/stylesheets/application.scss
@@ -2,7 +2,7 @@ @@ -2,7 +2,7 @@
2 * This is a manifest file that'll automatically include all the stylesheets available in this directory 2 * This is a manifest file that'll automatically include all the stylesheets available in this directory
3 * and any sub-directories. You're free to add application-wide styles to this file and they'll appear at 3 * and any sub-directories. You're free to add application-wide styles to this file and they'll appear at
4 * the top of the compiled file, but it's generally better to create a new file per style scope. 4 * the top of the compiled file, but it's generally better to create a new file per style scope.
5 - *= require jquery.ui.gitlab 5 + *= require jquery.ui.datepicker
6 *= require jquery.atwho 6 *= require jquery.atwho
7 *= require select2 7 *= require select2
8 *= require highlightjs.min 8 *= require highlightjs.min
@@ -43,6 +43,7 @@ @@ -43,6 +43,7 @@
43 @import "generic/forms.scss"; 43 @import "generic/forms.scss";
44 @import "generic/selects.scss"; 44 @import "generic/selects.scss";
45 @import "generic/highlight.scss"; 45 @import "generic/highlight.scss";
  46 +@import "generic/jquery.scss";
46 47
47 /** 48 /**
48 * Page specific styles (issues, projects etc): 49 * Page specific styles (issues, projects etc):
app/assets/stylesheets/generic/jquery.scss 0 → 100644
@@ -0,0 +1,20 @@ @@ -0,0 +1,20 @@
  1 +.ui-widget {
  2 + font-family: $regular_font;
  3 + font-size: $font-size-base;
  4 +
  5 + &.ui-datepicker-inline {
  6 + border: 1px solid #DDD;
  7 + padding: 10px;
  8 + width: 270px;
  9 +
  10 + .ui-datepicker-header {
  11 + background: #EEE;
  12 + border-color: #DDD;
  13 + }
  14 +
  15 + .ui-datepicker-calendar td a {
  16 + padding: 5px;
  17 + text-align: center;
  18 + }
  19 + }
  20 +}
app/assets/stylesheets/jquery.ui.gitlab.css
@@ -1,257 +0,0 @@ @@ -1,257 +0,0 @@
1 -/* Interaction Cues  
2 -----------------------------------*/  
3 -.ui-state-disabled { cursor: default !important; }  
4 -  
5 -  
6 -/* Icons  
7 -----------------------------------*/  
8 -  
9 -/* states and images */  
10 -.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }  
11 -  
12 -  
13 -/* Misc visuals  
14 -----------------------------------*/  
15 -  
16 -/* Overlays */  
17 -.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }  
18 -  
19 -  
20 -/*  
21 - * jQuery UI CSS Framework 1.8.7  
22 - *  
23 - * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)  
24 - * Dual licensed under the MIT or GPL Version 2 licenses.  
25 - * http://jquery.org/license  
26 - *  
27 - * http://docs.jquery.com/UI/Theming/API  
28 - *  
29 - * To view and modify this theme, visit http://jqueryui.com/themeroller/?ctl=themeroller  
30 - */  
31 -  
32 -  
33 -/* Component containers  
34 -----------------------------------*/  
35 -.ui-widget { font-family: Arial,sans-serif; font-size: 1.1em; }  
36 -.ui-widget .ui-widget { font-size: 1em; }  
37 -.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Arial,sans-serif; font-size: 1em; }  
38 -.ui-widget-content { border: 1px solid #CCC; background: #ffffff; color: #4F4F4F; }  
39 -.ui-widget-content a { color: #4F4F4F; }  
40 -.ui-widget-header { border: 1px solid #B6B6B6; color: #4F4F4F; font-weight: bold; }  
41 -.ui-widget-header {  
42 - background: #ededed url(bg_fallback.png) 0 0 repeat-x; /* Old browsers */  
43 - background: -moz-linear-gradient(top, #ededed 0%, #c4c4c4 100%); /* FF3.6+ */  
44 - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ededed), color-stop(100%,#c4c4c4)); /* Chrome,Safari4+ */  
45 - background: -webkit-linear-gradient(top, #ededed 0%,#c4c4c4 100%); /* Chrome10+,Safari5.1+ */  
46 - background: -o-linear-gradient(top, #ededed 0%,#c4c4c4 100%); /* Opera11.10+ */  
47 - background: -ms-linear-gradient(top, #ededed 0%,#c4c4c4 100%); /* IE10+ */  
48 - background: linear-gradient(top, #ededed 0%,#c4c4c4 100%); /* W3C */  
49 -}  
50 -.ui-widget-header a { color: #4F4F4F; }  
51 -  
52 -/* Interaction states  
53 -----------------------------------*/  
54 -.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #B6B6B6; font-weight: normal; color: #4F4F4F; }  
55 -.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default {  
56 - background: #ededed url(bg_fallback.png) 0 0 repeat-x; /* Old browsers */  
57 - background: -moz-linear-gradient(top, #ededed 0%, #c4c4c4 100%); /* FF3.6+ */  
58 - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ededed), color-stop(100%,#c4c4c4)); /* Chrome,Safari4+ */  
59 - background: -webkit-linear-gradient(top, #ededed 0%,#c4c4c4 100%); /* Chrome10+,Safari5.1+ */  
60 - background: -o-linear-gradient(top, #ededed 0%,#c4c4c4 100%); /* Opera11.10+ */  
61 - background: -ms-linear-gradient(top, #ededed 0%,#c4c4c4 100%); /* IE10+ */  
62 - background: linear-gradient(top, #ededed 0%,#c4c4c4 100%); /* W3C */  
63 - -webkit-box-shadow: 0 1px 0 rgba(255,255,255,0.6) inset;  
64 - -moz-box-shadow: 0 1px 0 rgba(255,255,255,0.6) inset;  
65 - box-shadow: 0 1px 0 rgba(255,255,255,0.6) inset;  
66 -}  
67 -.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #4F4F4F; text-decoration: none; }  
68 -.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #9D9D9D; font-weight: normal; color: #313131; }  
69 -.ui-state-hover a, .ui-state-hover a:hover { color: #313131; text-decoration: none; }  
70 -.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active {  
71 - outline: none;  
72 - color: #1c4257; border: 1px solid #7096ab;  
73 - background: #ededed url(bg_fallback.png) 0 -50px repeat-x; /* Old browsers */  
74 - background: -moz-linear-gradient(top, #b9e0f5 0%, #92bdd6 100%); /* FF3.6+ */  
75 - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#b9e0f5), color-stop(100%,#92bdd6)); /* Chrome,Safari4+ */  
76 - background: -webkit-linear-gradient(top, #b9e0f5 0%,#92bdd6 100%); /* Chrome10+,Safari5.1+ */  
77 - background: -o-linear-gradient(top, #b9e0f5 0%,#92bdd6 100%); /* Opera11.10+ */  
78 - background: -ms-linear-gradient(top, #b9e0f5 0%,#92bdd6 100%); /* IE10+ */  
79 - background: linear-gradient(top, #b9e0f5 0%,#92bdd6 100%); /* W3C */  
80 - -webkit-box-shadow: none;  
81 - -moz-box-shadow: none;  
82 - box-shadow: none;  
83 -}  
84 -.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #313131; text-decoration: none; }  
85 -.ui-widget :active { outline: none; }  
86 -  
87 -/* Interaction Cues  
88 -----------------------------------*/  
89 -.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight { border: 1px solid #d2dbf4; background: #f4f8fd; color: #0d2054; -moz-border-radius: 0 !important; -webkit-border-radius: 0 !important; border-radius: 0 !important; }  
90 -.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }  
91 -.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error { border: 1px solid #e2d0d0; background: #fcf0f0; color: #280b0b; -moz-border-radius: 0 !important; -webkit-border-radius: 0 !important; border-radius: 0 !important; }  
92 -.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; }  
93 -.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; }  
94 -.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }  
95 -.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }  
96 -.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }  
97 -  
98 -/* Icons  
99 -----------------------------------*/  
100 -  
101 -/* states and images */  
102 -.ui-icon { width: 16px; height: 16px; background-image: url(ui-icons_222222_256x240.png); }  
103 -.ui-widget-content .ui-icon {background-image: url(ui-icons_222222_256x240.png); }  
104 -.ui-widget-header .ui-icon {background-image: url(ui-icons_222222_256x240.png); }  
105 -.ui-state-default .ui-icon { background-image: url(ui-icons_454545_256x240.png); }  
106 -.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(ui-icons_454545_256x240.png); }  
107 -.ui-state-active .ui-icon {background-image: url(ui-icons_454545_256x240.png); }  
108 -.ui-state-highlight .ui-icon {background-image: url(ui-icons_454545_256x240.png); }  
109 -.ui-state-error .ui-icon, .ui-state-error-text .ui-icon { background: url(icon_sprite.png) -16px 0 no-repeat !important; }  
110 -.ui-state-highlight .ui-icon, .ui-state-error .ui-icon { margin-top: -1px; }  
111 -  
112 -  
113 -/* Misc visuals  
114 -----------------------------------*/  
115 -  
116 -/* Overlays */  
117 -.ui-widget-overlay { background: #262b33; opacity: .70;filter:Alpha(Opacity=70); }  
118 -.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #000000; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }  
119 -/*  
120 - * jQuery UI Selectable 1.8.7  
121 - *  
122 - * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)  
123 - * Dual licensed under the MIT or GPL Version 2 licenses.  
124 - * http://jquery.org/license  
125 - *  
126 - * http://docs.jquery.com/UI/Selectable#theming  
127 - */  
128 -.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }  
129 -/*  
130 - * jQuery UI Autocomplete 1.8.7  
131 - *  
132 - * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)  
133 - * Dual licensed under the MIT or GPL Version 2 licenses.  
134 - * http://jquery.org/license  
135 - *  
136 - * http://docs.jquery.com/UI/Autocomplete#theming  
137 - */  
138 -.ui-autocomplete {  
139 - position: absolute; cursor: default; z-index: 3;  
140 - -moz-border-radius: 0;  
141 - -webkit-border-radius: 0;  
142 - border-radius: 0;  
143 - -moz-box-shadow: 0 1px 5px rgba(0,0,0,0.3);  
144 - -webkit-box-shadow: 0 1px 5px rgba(0,0,0,0.3);  
145 - box-shadow: 0 1px 5px rgba(0,0,0,0.3);  
146 -}  
147 -  
148 -/* workarounds */  
149 -* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */  
150 -  
151 -/*  
152 - * jQuery UI Menu 1.8.7  
153 - *  
154 - * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)  
155 - * Dual licensed under the MIT or GPL Version 2 licenses.  
156 - * http://jquery.org/license  
157 - *  
158 - * http://docs.jquery.com/UI/Menu#theming  
159 - */  
160 -.ui-menu {  
161 - list-style:none;  
162 - padding: 1px;  
163 - margin: 0;  
164 - display:block;  
165 - float: left;  
166 -}  
167 -.ui-menu .ui-menu {  
168 - margin-top: -3px;  
169 -}  
170 -.ui-menu .ui-menu-item {  
171 - margin:0;  
172 - padding: 0;  
173 - zoom: 1;  
174 - float: left;  
175 - clear: left;  
176 - width: 100%;  
177 -}  
178 -.ui-menu .ui-menu-item a {  
179 - text-decoration:none;  
180 - display:block;  
181 - padding:.2em .4em;  
182 - line-height:1.5;  
183 - zoom:1;  
184 - color: #666;  
185 - font-size: 13px;  
186 -}  
187 -.ui-menu .ui-menu-item a.ui-state-hover,  
188 -.ui-menu .ui-menu-item a.ui-state-active {  
189 - font-weight: normal;  
190 - margin: -1px;  
191 - background: #D9EDF7;  
192 - color: #3A89A3;  
193 - text-shadow: 0px 1px 1px #fff;  
194 - border: none;  
195 - border: 1px solid #ADE;  
196 - cursor: pointer;  
197 - font-weight: bold;  
198 -}  
199 -  
200 -/*  
201 - * jQuery UI Datepicker 1.8.7  
202 - *  
203 - * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)  
204 - * Dual licensed under the MIT or GPL Version 2 licenses.  
205 - * http://jquery.org/license  
206 - *  
207 - * http://docs.jquery.com/UI/Datepicker#theming  
208 - */  
209 -.ui-datepicker {  
210 - width: 17em;  
211 - padding: 0;  
212 - display: none;  
213 - border-color: #DDDDDD;  
214 - border: none;  
215 - box-shadow: none;  
216 -}  
217 -.ui-datepicker .ui-datepicker-header {  
218 - position:relative;  
219 - padding:.35em 0;  
220 - border: none;  
221 - border-bottom: 1px solid #B6B6B6;  
222 - -moz-border-radius: 0;  
223 - -webkit-border-radius: 0;  
224 - border-radius: 0;  
225 - margin-bottom: 10px;  
226 - border: 1px solid #bbb;  
227 - -webkit-box-shadow: 0 0 0 3px #F1F1F1;  
228 - -moz-box-shadow: 0 0 0 3px #f1f1f1;  
229 - -ms-box-shadow: 0 0 0 3px #f1f1f1;  
230 - -o-box-shadow: 0 0 0 3px #f1f1f1;  
231 - box-shadow: 0 0 0 3px #F1F1F1;  
232 -}  
233 -  
234 -.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 6px; width: 1.8em; height: 1.8em; }  
235 -.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { border: 1px none; }  
236 -.ui-datepicker .ui-datepicker-prev { left:2px; }  
237 -.ui-datepicker .ui-datepicker-next { right:2px; }  
238 -.ui-datepicker .ui-datepicker-prev span { background-position: 0px -32px !important; }  
239 -.ui-datepicker .ui-datepicker-next span { background-position: -16px -32px !important; }  
240 -.ui-datepicker .ui-datepicker-prev-hover span { background-position: 0px -48px !important; }  
241 -.ui-datepicker .ui-datepicker-next-hover span { background-position: -16px -48px !important; }  
242 -.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; background: url(icon_sprite.png) no-repeat; }  
243 -.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; font-size: 12px; text-shadow: 0 1px 0 rgba(255,255,255,0.6); }  
244 -.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }  
245 -.ui-datepicker select.ui-datepicker-month-year {width: 100%;}  
246 -.ui-datepicker select.ui-datepicker-month,  
247 -.ui-datepicker select.ui-datepicker-year { width: 49%;}  
248 -.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }  
249 -.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }  
250 -.ui-datepicker td { border: 0; padding: 1px; line-height: 24px; background-color: #FFF!important; }  
251 -.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }  
252 -.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }  
253 -.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }  
254 -.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }  
255 -.ui-datepicker table .ui-state-highlight { border-color: #ADE; }  
256 -.ui-datepicker-calendar .ui-state-default { background: transparent; border-color: #FFF; }  
257 -.ui-datepicker-calendar .ui-state-active { background: #D9EDF7; border-color: #ADE; color: #3A89A3; font-weight: bold; text-shadow: 0 1px 1px #fff; }  
app/assets/stylesheets/main/fonts.scss
1 /** Typo **/ 1 /** Typo **/
2 $monospace_font: 'Menlo', 'Liberation Mono', 'Consolas', 'Courier New', 'andale mono', 'lucida console', monospace; 2 $monospace_font: 'Menlo', 'Liberation Mono', 'Consolas', 'Courier New', 'andale mono', 'lucida console', monospace;
  3 +$regular_font: "Helvetica Neue", Helvetica, Arial, sans-serif;
app/helpers/merge_requests_helper.rb
@@ -20,7 +20,7 @@ module MergeRequestsHelper @@ -20,7 +20,7 @@ module MergeRequestsHelper
20 target_project_id: target_project.id, 20 target_project_id: target_project.id,
21 source_branch: event.branch_name, 21 source_branch: event.branch_name,
22 target_branch: target_project.repository.root_ref, 22 target_branch: target_project.repository.root_ref,
23 - title: event.branch_name.humanize 23 + title: event.branch_name.titleize.humanize
24 } 24 }
25 end 25 end
26 26
app/views/projects/issues/_head.html.haml
@@ -20,6 +20,11 @@ @@ -20,6 +20,11 @@
20 = form_tag project_issues_path(@project), method: :get, id: "issue_search_form", class: 'pull-left issue-search-form' do 20 = form_tag project_issues_path(@project), method: :get, id: "issue_search_form", class: 'pull-left issue-search-form' do
21 .append-right-10.hidden-xs.hidden-sm 21 .append-right-10.hidden-xs.hidden-sm
22 = search_field_tag :issue_search, nil, { placeholder: 'Filter by title or description', class: 'form-control issue_search search-text-input input-mn-300' } 22 = search_field_tag :issue_search, nil, { placeholder: 'Filter by title or description', class: 'form-control issue_search search-text-input input-mn-300' }
  23 + = hidden_field_tag :state, params['state']
  24 + = hidden_field_tag :scope, params['scope']
  25 + = hidden_field_tag :assignee_id, params['assignee_id']
  26 + = hidden_field_tag :milestone_id, params['milestone_id']
  27 + = hidden_field_tag :label_id, params['label_id']
23 - if can? current_user, :write_issue, @project 28 - if can? current_user, :write_issue, @project
24 = link_to new_project_issue_path(@project, issue: { assignee_id: params[:assignee_id], milestone_id: params[:milestone_id]}), class: "btn btn-new pull-left", title: "New Issue", id: "new_issue_link" do 29 = link_to new_project_issue_path(@project, issue: { assignee_id: params[:assignee_id], milestone_id: params[:milestone_id]}), class: "btn btn-new pull-left", title: "New Issue", id: "new_issue_link" do
25 %i.icon-plus 30 %i.icon-plus
app/views/projects/merge_requests/branch_from.js.haml
@@ -3,5 +3,5 @@ @@ -3,5 +3,5 @@
3 var mrTitle = $('#merge_request_title'); 3 var mrTitle = $('#merge_request_title');
4 4
5 if(mrTitle.val().length == 0) { 5 if(mrTitle.val().length == 0) {
6 - mrTitle.val("#{params[:ref].humanize}"); 6 + mrTitle.val("#{params[:ref].titleize.humanize}");
7 } 7 }
config/application.rb
@@ -64,6 +64,7 @@ module Gitlab @@ -64,6 +64,7 @@ module Gitlab
64 config.assets.enabled = true 64 config.assets.enabled = true
65 config.assets.paths << Emoji.images_path 65 config.assets.paths << Emoji.images_path
66 config.assets.precompile << "emoji/*.png" 66 config.assets.precompile << "emoji/*.png"
  67 + config.assets.precompile << "print.css"
67 68
68 # Version of your assets, change this if you want to expire all your assets 69 # Version of your assets, change this if you want to expire all your assets
69 config.assets.version = '1.0' 70 config.assets.version = '1.0'
doc/install/installation.md
@@ -202,6 +202,7 @@ You can change `6-6-stable` to `master` if you want the *bleeding edge* version, @@ -202,6 +202,7 @@ You can change `6-6-stable` to `master` if you want the *bleeding edge* version,
202 202
203 # Create directory for satellites 203 # Create directory for satellites
204 sudo -u git -H mkdir /home/git/gitlab-satellites 204 sudo -u git -H mkdir /home/git/gitlab-satellites
  205 + sudo chmod o-rwx /home/git/gitlab-satellites
205 206
206 # Create directories for sockets/pids and make sure GitLab can write to them 207 # Create directories for sockets/pids and make sure GitLab can write to them
207 sudo -u git -H mkdir tmp/pids/ 208 sudo -u git -H mkdir tmp/pids/
doc/workflow/README.md 0 → 100644
@@ -0,0 +1,2 @@ @@ -0,0 +1,2 @@
  1 ++ [Workflow](workflow/workflow.md)
  2 ++ [Project Features](workflow/project_features.md)
doc/workflow/project_features.md 0 → 100644
@@ -0,0 +1,35 @@ @@ -0,0 +1,35 @@
  1 +When in a Project -> Settings, you will find Features on the bottom of the page that you can toggle.
  2 +Below you will find a more elaborate explanation of each of these.
  3 +
  4 +
  5 +## Issues
  6 +
  7 +Issues is a really powerful, but lightweight issue tracking system.
  8 +You can make tickets, assign them to people, file them under milestones, order them with labels and have discussion in them.
  9 +They integrate deeply into GitLab and are easily referenced from anywhere by using # and the issuenumber.
  10 +At GitLab.com, we use this for all our project management needs.
  11 +
  12 +## Merge Requests
  13 +
  14 +Using a merge request, you can review and discuss code before it is merged in the branch of your code.
  15 +As with issues, it can be assigned; people, issues, etc. can be refereced; milestones attached.
  16 +We see it as an integral part of working together on code and couldn't work without it.
  17 +
  18 +
  19 +## Wiki
  20 +
  21 +This is a separate system for documentation, built right into GitLab.
  22 +It is source controlled and is very convenient if you don't want to keep you documentation in your source code, but you do want to keep it in your GitLab project.
  23 +
  24 +
  25 +## Wall
  26 +
  27 +For simple, project specific conversations, the wall can be used.
  28 +It's very lightweight and simple and works well if you're not interested in using issues, but still want to occasionally communicate within a project.
  29 +
  30 +
  31 +## Snippets
  32 +
  33 +Snippets are little bits of code or text.
  34 +This is a nice place to put code or text that is used semi-regularly within the project, but does not belong in source control.
  35 +For example, a specific config file that is used by > the team that is only valid for the people that work on the code.
lib/tasks/gitlab/check.rake
@@ -342,6 +342,7 @@ namespace :gitlab do @@ -342,6 +342,7 @@ namespace :gitlab do
342 check_repo_base_is_not_symlink 342 check_repo_base_is_not_symlink
343 check_repo_base_user_and_group 343 check_repo_base_user_and_group
344 check_repo_base_permissions 344 check_repo_base_permissions
  345 + check_satellites_permissions
345 check_update_hook_is_up_to_date 346 check_update_hook_is_up_to_date
346 check_repos_update_hooks_is_link 347 check_repos_update_hooks_is_link
347 check_gitlab_shell_self_test 348 check_gitlab_shell_self_test
@@ -443,6 +444,29 @@ namespace :gitlab do @@ -443,6 +444,29 @@ namespace :gitlab do
443 end 444 end
444 end 445 end
445 446
  447 + def check_satellites_permissions
  448 + print "Satellites access is drwxr-x---? ... "
  449 +
  450 + satellites_path = Gitlab.config.satellites.path
  451 + unless File.exists?(satellites_path)
  452 + puts "can't check because of previous errors".magenta
  453 + return
  454 + end
  455 +
  456 + if File.stat(satellites_path).mode.to_s(8).ends_with?("0750")
  457 + puts "yes".green
  458 + else
  459 + puts "no".red
  460 + try_fixing_it(
  461 + "sudo chmod u+rwx,g+rx,o-rwx #{satellites_path}",
  462 + )
  463 + for_more_information(
  464 + see_installation_guide_section "GitLab"
  465 + )
  466 + fix_and_rerun
  467 + end
  468 + end
  469 +
446 def check_repo_base_user_and_group 470 def check_repo_base_user_and_group
447 gitlab_shell_ssh_user = Gitlab.config.gitlab_shell.ssh_user 471 gitlab_shell_ssh_user = Gitlab.config.gitlab_shell.ssh_user
448 gitlab_shell_owner_group = Gitlab.config.gitlab_shell.owner_group 472 gitlab_shell_owner_group = Gitlab.config.gitlab_shell.owner_group