summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJack Weeden <jack@ajack.org>2013-07-01 10:43:01 +0100
committerJack Weeden <jack@ajack.org>2013-07-01 10:43:01 +0100
commit5ffc90d90df54440f857b46009b1bd63c0786a2d (patch)
treeb6295045689a1dc033194be3cbe5ede70592c185
parent52feefb8e196cae0774292cce274e068356aec21 (diff)
parent315d4cc8e86efa1ad5a1e50e55311cb23419e23f (diff)
downloadgitlab-ce-5ffc90d90df54440f857b46009b1bd63c0786a2d.tar.gz
Merge remote-tracking branch 'upstream/master'
-rw-r--r--CONTRIBUTING.md10
-rw-r--r--app/assets/stylesheets/gitlab_bootstrap/avatar.scss1
-rw-r--r--app/contexts/merge_requests_load_context.rb2
-rw-r--r--app/controllers/admin/teams/projects_controller.rb2
-rw-r--r--app/helpers/issues_helper.rb2
-rw-r--r--app/helpers/projects_helper.rb4
-rw-r--r--app/views/admin/users/show.html.haml3
-rw-r--r--app/views/events/_commit.html.haml2
-rw-r--r--app/views/events/_event.html.haml2
-rw-r--r--app/views/groups/people.html.haml2
-rw-r--r--app/views/help/markdown.html.haml126
-rw-r--r--app/views/issues/_issues.html.haml6
-rw-r--r--app/views/layouts/_head_panel.html.haml3
-rw-r--r--app/views/notes/_discussion.html.haml2
-rw-r--r--app/views/notes/_note.html.haml2
-rw-r--r--app/views/profiles/show.html.haml2
-rw-r--r--app/views/repositories/_branch.html.haml2
-rw-r--r--app/views/repositories/_feed.html.haml2
-rw-r--r--app/views/repositories/stats.html.haml2
-rw-r--r--app/views/snippets/_snippet.html.haml2
-rw-r--r--app/views/team_members/_team_member.html.haml2
-rw-r--r--app/views/teams/members/_member.html.haml2
-rw-r--r--app/views/users/show.html.haml2
-rw-r--r--config/gitlab.yml.example8
-rw-r--r--db/schema.rb2
-rw-r--r--doc/install/installation.md3
-rw-r--r--doc/markdown/markdown.md451
-rw-r--r--doc/update/5.1-to-5.2.md15
-rw-r--r--spec/routing/project_routing_spec.rb2
29 files changed, 506 insertions, 160 deletions
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index a0f9ce2d0da..95fa25823ba 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -4,11 +4,15 @@ This guide details how to use issues and pull requests to improve GitLab.
## Closing policy for issues and pull requests
-Issues and pull requests not in line with the guidelines listed in this document will be closed. GitLab is a popular open source project and the capacity to deal with issues and pull requests is limited. To get support for your problems please use other channels as detailed in [the getting help section of the readme](https://github.com/gitlabhq/gitlabhq#getting-help). Professional [support subscriptions](http://www.gitlab.com/subscription/) and [consulting services](http://www.gitlab.com/consultancy/) are available from [GitLab.com](http://www.gitlab.com/).
+GitLab is a popular open source project and the capacity to deal with issues and pull requests is limited. Out of respect for our volunteers, issues and pull requests not in line with the guidelines listed in this document may be closed without notice.
+
+Please treat our volunteers with courtesy and respect, it will go a long way towards getting your issue resolved.
## Issue tracker
-The [issue tracker](https://github.com/gitlabhq/gitlabhq/issues) is only for obvious bugs or misbehavior in the latest [stable or development release of GitLab](MAINTENANCE.md). When submitting an issue please conform to the issue submission guidelines listed below.
+To get support for your particular problem please use the channels as detailed in [the getting help section of the readme](https://github.com/gitlabhq/gitlabhq#getting-help). Professional [support subscriptions](http://www.gitlab.com/subscription/) and [consulting services](http://www.gitlab.com/consultancy/) are available from [GitLab.com](http://www.gitlab.com/).
+
+The [issue tracker](https://github.com/gitlabhq/gitlabhq/issues) is only for obvious bugs or misbehavior in the latest [stable or development release of GitLab](MAINTENANCE.md). When submitting an issue please conform to the issue submission guidelines listed below. Not all issues will be addressed and your issue is more likely to be addressed if you submit a pull request which partially or fully addresses the issue.
Do not use the issue tracker for feature requests. We have a specific [feedback and suggestions forum](http://feedback.gitlab.com) for this purpose.
@@ -16,7 +20,7 @@ Please send a pull request with a tested solution or a pull request with a faili
### Issue tracker guidelines
-**[Search](https://github.com/gitlabhq/gitlabhq/search?q=&ref=cmdform&type=Issues)** for similar entries before submitting your own, there's a good chance somebody else had the same issue. Show your support with `:+1:` and/or join the discussion. Please submit issues in the following format:
+**[Search](https://github.com/gitlabhq/gitlabhq/search?q=&ref=cmdform&type=Issues)** for similar entries before submitting your own, there's a good chance somebody else had the same issue. Show your support with `:+1:` and/or join the discussion. Please submit issues in the following format (as the first post):
1. **Summary:** Summarize your issue in one sentence (what goes wrong, what did you expect to happen)
2. **Steps to reproduce:** How can we reproduce the issue, preferably on the [GitLab Vagrant virtual machine](https://github.com/gitlabhq/gitlab-vagrant-vm) (start with: `vagrant destroy && vagrant up && vagrant ssh`)
diff --git a/app/assets/stylesheets/gitlab_bootstrap/avatar.scss b/app/assets/stylesheets/gitlab_bootstrap/avatar.scss
index ed6ec77b89b..0b147faf59e 100644
--- a/app/assets/stylesheets/gitlab_bootstrap/avatar.scss
+++ b/app/assets/stylesheets/gitlab_bootstrap/avatar.scss
@@ -15,6 +15,7 @@
&.s16 { width: 16px; height: 16px; margin-right: 6px; }
&.s24 { width: 24px; height: 24px; margin-right: 8px; }
+ &.s26 { width: 26px; height: 26px; margin-right: 8px; }
&.s32 { width: 32px; height: 32px; margin-right: 10px; }
&.s90 { width: 90px; height: 90px; margin-right: 15px; }
}
diff --git a/app/contexts/merge_requests_load_context.rb b/app/contexts/merge_requests_load_context.rb
index fde04085f26..fd44572c0eb 100644
--- a/app/contexts/merge_requests_load_context.rb
+++ b/app/contexts/merge_requests_load_context.rb
@@ -9,7 +9,7 @@ class MergeRequestsLoadContext < BaseContext
merge_requests = case type
when 'all' then merge_requests
when 'closed' then merge_requests.closed
- when 'assigned-to-me' then merge_requests.opened.assigned(current_user)
+ when 'assigned-to-me' then merge_requests.opened.assigned_to(current_user)
else merge_requests.opened
end
diff --git a/app/controllers/admin/teams/projects_controller.rb b/app/controllers/admin/teams/projects_controller.rb
index 8584a188b20..687f8f68bf2 100644
--- a/app/controllers/admin/teams/projects_controller.rb
+++ b/app/controllers/admin/teams/projects_controller.rb
@@ -12,7 +12,7 @@ class Admin::Teams::ProjectsController < Admin::Teams::ApplicationController
user_team.assign_to_projects(project_ids, access)
end
- redirect_to admin_team_path(user_team), notice: 'Team of users was successfully assgned to projects.'
+ redirect_to admin_team_path(user_team), notice: 'Team of users was successfully assigned to projects.'
end
def edit
diff --git a/app/helpers/issues_helper.rb b/app/helpers/issues_helper.rb
index dc5aa6e1fb6..d7d50db8a2f 100644
--- a/app/helpers/issues_helper.rb
+++ b/app/helpers/issues_helper.rb
@@ -15,7 +15,7 @@ module IssuesHelper
# to allow filtering issues by an unassigned User or Milestone
def unassigned_filter
# Milestone uses :title, Issue uses :name
- OpenStruct.new(id: 0, title: 'Unspecified', name: 'Unassigned')
+ OpenStruct.new(id: 0, title: 'None (backlog)', name: 'Unassigned')
end
def issues_filter
diff --git a/app/helpers/projects_helper.rb b/app/helpers/projects_helper.rb
index 39290ec05bb..22aec62e2bf 100644
--- a/app/helpers/projects_helper.rb
+++ b/app/helpers/projects_helper.rb
@@ -25,7 +25,7 @@ module ProjectsHelper
author_html = ""
# Build avatar image tag
- author_html << image_tag(gravatar_icon(author.try(:email), opts[:size]), width: opts[:size], class: "avatar avatar-inline #{"s#{opts[:size]}" if opts[:size]}") if opts[:avatar]
+ author_html << image_tag(gravatar_icon(author.try(:email), opts[:size]), width: opts[:size], class: "avatar avatar-inline #{"s#{opts[:size]}" if opts[:size]}", alt:'') if opts[:avatar]
# Build name span tag
author_html << content_tag(:span, sanitize(author.name), class: 'author') if opts[:name]
@@ -62,7 +62,7 @@ module ProjectsHelper
def get_project_nav_tabs(project, current_user)
nav_tabs = [:home]
- if project.repo_exists? && can?(current_user, :download_code, project)
+ if !project.empty_repo? && can?(current_user, :download_code, project)
nav_tabs << [:files, :commits, :network, :graphs]
end
diff --git a/app/views/admin/users/show.html.haml b/app/views/admin/users/show.html.haml
index 6cf7152e5f7..3edd76a7c1b 100644
--- a/app/views/admin/users/show.html.haml
+++ b/app/views/admin/users/show.html.haml
@@ -24,7 +24,7 @@
%h5.title
Account:
.pull-right
- = image_tag gravatar_icon(@admin_user.email, 32), class: "avatar s32"
+ = image_tag gravatar_icon(@admin_user.email, 32), class:"avatar s32", alt:""
%ul.well-list
%li
%span.light Name:
@@ -62,7 +62,6 @@
%span.light Created by:
%strong
= link_to @admin_user.created_by.name, [:admin, @admin_user.created_by]
-
%hr
%h5
Add User to Projects
diff --git a/app/views/events/_commit.html.haml b/app/views/events/_commit.html.haml
index 2d80fc103f6..b50faf5a25c 100644
--- a/app/views/events/_commit.html.haml
+++ b/app/views/events/_commit.html.haml
@@ -1,6 +1,6 @@
%li.commit
%p
- = link_to commit[:id][0..8], project_commit_path(project, commit[:id]), class: "commit_short_id"
+ = link_to commit[:id][0..8], project_commit_path(project, commit[:id]), class: "commit_short_id", alt: ''
%span= commit[:author][:name]
&ndash;
= image_tag gravatar_icon(commit[:author][:email]), class: "avatar", width: 16
diff --git a/app/views/events/_event.html.haml b/app/views/events/_event.html.haml
index e2bf54ea5c9..80d16631fa0 100644
--- a/app/views/events/_event.html.haml
+++ b/app/views/events/_event.html.haml
@@ -4,7 +4,7 @@
#{time_ago_in_words(event.created_at)} ago.
= cache event do
- = image_tag gravatar_icon(event.author_email), class: "avatar s24"
+ = image_tag gravatar_icon(event.author_email), class: "avatar s24", alt:''
- if event.push?
= render "events/event/push", event: event
diff --git a/app/views/groups/people.html.haml b/app/views/groups/people.html.haml
index 3e4eb082f56..44f623006eb 100644
--- a/app/views/groups/people.html.haml
+++ b/app/views/groups/people.html.haml
@@ -12,7 +12,7 @@
%ul.well-list
- @users.each do |user|
%li
- = image_tag gravatar_icon(user.email, 16), class: "avatar s16"
+ = image_tag gravatar_icon(user.email, 16), class: "avatar s16" , alt: ''
%strong= user.name
%span.cgray= user.email
- if @group.owner == user
diff --git a/app/views/help/markdown.html.haml b/app/views/help/markdown.html.haml
index 92c1e49be49..b4ff88c7f93 100644
--- a/app/views/help/markdown.html.haml
+++ b/app/views/help/markdown.html.haml
@@ -2,126 +2,6 @@
%h3.page_title GitLab Flavored Markdown
%br
- .row
- .span8
- %p
- For GitLab we developed something we call "GitLab Flavored Markdown" (GFM).
- It extends the standard Markdown in a few significant ways adds some useful functionality.
-
- %p You can use GFM in:
- %ul
- %li commit messages
- %li comments
- %li wall posts
- %li issues
- %li merge requests
- %li milestones
- %li wiki pages
-
- .span4
- .alert.alert-info
- %p
- If you're not already familiar with Markdown, you should spend 15 minutes and go over the excellent
- %strong= link_to "Markdown Syntax Guide", "http://daringfireball.net/projects/markdown/syntax"
- at Daring Fireball.
-
- .row
- .span8
- %h3 Differences from traditional Markdown
-
- %h4 Newlines
-
- %p
- The biggest difference that GFM introduces is in the handling of linebreaks.
- With traditional Markdown you can hard wrap paragraphs of text and they will be combined into a single paragraph. We find this to be the cause of a huge number of unintentional formatting errors.
- GFM treats newlines in paragraph-like content as real line breaks, which is probably what you intended.
-
-
- %p The next paragraph contains two phrases separated by a single newline character:
- %pre= "Roses are red\nViolets are blue"
- %p becomes
- = markdown "Roses are red\nViolets are blue"
-
- %h4 Multiple underscores in words
-
- %p
- It is not reasonable to italicize just <em>part</em> of a word, especially when you're dealing with code and names often appear with multiple underscores.
- Therefore, GFM ignores multiple underscores in words.
-
- %pre= "perform_complicated_task\ndo_this_and_do_that_and_another_thing"
- %p becomes
- = markdown "perform_complicated_task\ndo_this_and_do_that_and_another_thing"
-
- %h4 URL autolinking
-
- %p
- GFM will autolink standard URLs you copy and paste into your text.
- So if you want to link to a URL (instead of a textual link), you can simply put the URL in verbatim and it will be turned into a link to that URL.
-
- %h4 Fenced code blocks
-
- %p
- Markdown converts text with four spaces at the front of each line to code blocks.
- GFM supports that, but we also support fenced blocks.
- Just wrap your code blocks in <code>```</code> and you won't need to indent manually to trigger a code block.
-
- %pre= %Q{```ruby\nrequire 'redcarpet'\nmarkdown = Redcarpet.new("Hello World!")\nputs markdown.to_html\n```}
- %p becomes
- = markdown %Q{```ruby\nrequire 'redcarpet'\nmarkdown = Redcarpet.new("Hello World!")\nputs markdown.to_html\n```}
-
- %h4 Emoji
-
- .row
- .span8
- :ruby
- puts markdown %Q{Sometimes you want to be :cool: and add some :sparkles: to your :speech_balloon:. Well we have a :gift: for you:
-
- :exclamation: You can use emoji anywhere GFM is supported. :sunglasses:
-
- You can use it to point out a :bug: or warn about :monkey:patches. And if someone improves your really :snail: code, send them a :bouquet: or some :candy:. People will :heart: you for that.
-
- If you are :new: to this, don't be :fearful:. You can easily join the emoji :circus_tent:. All you need to do is to :book: up on the supported codes.
- }
-
- .span4
- .alert.alert-info
- %p
- Consult the
- %strong= link_to "Emoji Cheat Sheet", "http://www.emoji-cheat-sheet.com/"
- for a list of all supported emoji codes.
-
- .row
- .span8
- %h4 Special GitLab references
-
- %p
- GFM recognizes special references.
- You can easily reference e.g. a team member, an issue or a commit within a project.
- GFM will turn that reference into a link so you can navigate between them easily.
-
- %p GFM will recognize the following references:
- %ul
- %li
- %code @foo
- for team members
- %li
- %code #123
- for issues
- %li
- %code !123
- for merge request
- %li
- %code $123
- for snippets
- %li
- %code 1234567
- for commits
-
- -# this example will only be shown if the user has a project with at least one issue
- - if @project = current_user.authorized_projects.first
- - if issue = @project.issues.first
- %p For example in your #{link_to @project.name, project_path(@project)} project, writing:
- %pre= "This is related to ##{issue.id}. @#{current_user.username} is working on solving it."
- %p becomes:
- = markdown "This is related to ##{issue.id}. @#{current_user.username} is working on solving it."
- - @project = nil # Prevent this from bubbling up to page title
+ .help_body
+ = preserve do
+ = markdown File.read(Rails.root.join("doc", "markdown", "markdown.md"))
diff --git a/app/views/issues/_issues.html.haml b/app/views/issues/_issues.html.haml
index cc8d8d9cae2..fb15effceb8 100644
--- a/app/views/issues/_issues.html.haml
+++ b/app/views/issues/_issues.html.haml
@@ -53,7 +53,7 @@
- @project.users.sort_by(&:name).each do |user|
%li
= link_to project_issues_with_filter_path(@project, assignee_id: user.id) do
- = image_tag gravatar_icon(user.email), class: "avatar s16"
+ = image_tag gravatar_icon(user.email), class: "avatar s16", alt: ''
= user.name
.dropdown.inline.prepend-left-10
@@ -63,7 +63,7 @@
- if @milestone.present?
%strong= @milestone.title
- elsif params[:milestone_id] == "0"
- Unspecified
+ None (backlog)
- else
Any
%b.caret
@@ -72,7 +72,7 @@
= link_to project_issues_with_filter_path(@project, milestone_id: nil) do
Any
= link_to project_issues_with_filter_path(@project, milestone_id: 0) do
- Unspecified
+ None (backlog)
- issues_active_milestones.each do |milestone|
%li
= link_to project_issues_with_filter_path(@project, milestone_id: milestone.id) do
diff --git a/app/views/layouts/_head_panel.html.haml b/app/views/layouts/_head_panel.html.haml
index f0b001f6efc..a539d5b7432 100644
--- a/app/views/layouts/_head_panel.html.haml
+++ b/app/views/layouts/_head_panel.html.haml
@@ -37,5 +37,4 @@
%i.icon-signout
%li
= link_to current_user, class: "profile-pic" do
- = image_tag gravatar_icon(current_user.email, 26)
-
+ = image_tag(gravatar_icon(current_user.email, 26),alt: '',class: "avatar s26")
diff --git a/app/views/notes/_discussion.html.haml b/app/views/notes/_discussion.html.haml
index 24cb4228174..e65a4f390e6 100644
--- a/app/views/notes/_discussion.html.haml
+++ b/app/views/notes/_discussion.html.haml
@@ -8,7 +8,7 @@
= link_to "javascript:;", class: "js-details-target turn-off js-toggler-target" do
%i.icon-eye-open
Show discussion
- = image_tag gravatar_icon(note.author.email), class: "avatar s32"
+ = image_tag gravatar_icon(note.author.email), class: "avatar s32", alt: ''
%div
= link_to_member(@project, note.author, avatar: false)
- if note.for_merge_request?
diff --git a/app/views/notes/_note.html.haml b/app/views/notes/_note.html.haml
index b355e2a0bd4..88c450d61f9 100644
--- a/app/views/notes/_note.html.haml
+++ b/app/views/notes/_note.html.haml
@@ -8,7 +8,7 @@
- if(note.author_id == current_user.id) || can?(current_user, :admin_note, @project)
= link_to project_note_path(@project, note), title: "Remove comment", method: :delete, confirm: 'Are you sure you want to remove comment?', remote: true, class: "danger js-note-delete" do
%i.icon-trash.cred
- = image_tag gravatar_icon(note.author.email), class: "avatar s32"
+ = image_tag gravatar_icon(note.author.email), class: "avatar s32", alt: ''
= link_to_member(@project, note.author, avatar: false)
%span.note-last-update
= time_ago_in_words(note.updated_at)
diff --git a/app/views/profiles/show.html.haml b/app/views/profiles/show.html.haml
index d4793da8987..96870924371 100644
--- a/app/views/profiles/show.html.haml
+++ b/app/views/profiles/show.html.haml
@@ -1,5 +1,5 @@
.profile_avatar_holder
- = image_tag gravatar_icon(@user.email, 90)
+ = image_tag gravatar_icon(@user.email, 90), alt: ''
%h3.page_title
= @user.name
%br
diff --git a/app/views/repositories/_branch.html.haml b/app/views/repositories/_branch.html.haml
index dd91e14b66b..2115f3c427f 100644
--- a/app/views/repositories/_branch.html.haml
+++ b/app/views/repositories/_branch.html.haml
@@ -12,7 +12,7 @@
%td
= link_to project_commit_path(@project, commit.id), class: 'commit_short_id' do
= commit.short_id
- = image_tag gravatar_icon(commit.author_email), class: "avatar s16"
+ = image_tag gravatar_icon(commit.author_email), class: "avatar s16", alt: ''
%span.light
= gfm escape_once(truncate(commit.title, length: 40))
%span
diff --git a/app/views/repositories/_feed.html.haml b/app/views/repositories/_feed.html.haml
index 6bb75265ffb..faa3ed1746c 100644
--- a/app/views/repositories/_feed.html.haml
+++ b/app/views/repositories/_feed.html.haml
@@ -11,7 +11,7 @@
%div
= link_to project_commits_path(@project, commit.id) do
%code= commit.short_id
- = image_tag gravatar_icon(commit.author_email), class: "", width: 16
+ = image_tag gravatar_icon(commit.author_email), class: "", width: 16, alt: ''
= gfm escape_once(truncate(commit.title, length: 40))
%td
%span.pull-right.cgray
diff --git a/app/views/repositories/stats.html.haml b/app/views/repositories/stats.html.haml
index 6d1fb4686ea..fc8ccfe458d 100644
--- a/app/views/repositories/stats.html.haml
+++ b/app/views/repositories/stats.html.haml
@@ -19,7 +19,7 @@
%ol.styled
- @stats.authors[0...50].each do |author|
%li
- = image_tag gravatar_icon(author.email, 16), class: 'avatar s16'
+ = image_tag gravatar_icon(author.email, 16), class: 'avatar s16', alt: ''
= author.name
%small.light= author.email
.pull-right
diff --git a/app/views/snippets/_snippet.html.haml b/app/views/snippets/_snippet.html.haml
index 194eb051ee3..a013cdfe16a 100644
--- a/app/views/snippets/_snippet.html.haml
+++ b/app/views/snippets/_snippet.html.haml
@@ -25,6 +25,6 @@
= "##{snippet.id}"
%span.light
by
- = image_tag gravatar_icon(snippet.author_email), class: "avatar avatar-inline s16"
+ = image_tag gravatar_icon(snippet.author_email), class: "avatar avatar-inline s16", alt: ''
= snippet.author_name
diff --git a/app/views/team_members/_team_member.html.haml b/app/views/team_members/_team_member.html.haml
index d829a79213c..d61513fa03a 100644
--- a/app/views/team_members/_team_member.html.haml
+++ b/app/views/team_members/_team_member.html.haml
@@ -4,7 +4,7 @@
.row
.span4
= link_to user, title: user.name, class: "dark" do
- = image_tag gravatar_icon(user.email, 32), class: "avatar s32"
+ = image_tag gravatar_icon(user.email, 32), class: "avatar s32", alt: ''
%strong= truncate(user.name, lenght: 40)
%br
%small.cgray= user.username
diff --git a/app/views/teams/members/_member.html.haml b/app/views/teams/members/_member.html.haml
index 17096d2f1cd..19591db03e2 100644
--- a/app/views/teams/members/_member.html.haml
+++ b/app/views/teams/members/_member.html.haml
@@ -4,7 +4,7 @@
.row
.span3
= link_to user_path(user.username), title: user.name, class: "dark" do
- = image_tag gravatar_icon(user.email, 40), class: "avatar s32"
+ = image_tag gravatar_icon(user.email, 40), class: "avatar s32", alt: ''
= link_to user_path(user.username), title: user.name, class: "dark" do
%strong= truncate(user.name, lenght: 40)
%br
diff --git a/app/views/users/show.html.haml b/app/views/users/show.html.haml
index 10bd90b166a..548458e0d3b 100644
--- a/app/views/users/show.html.haml
+++ b/app/views/users/show.html.haml
@@ -1,7 +1,7 @@
.row
.span8
%h3.page_title
- = image_tag gravatar_icon(@user.email, 90), class: "avatar s90"
+ = image_tag gravatar_icon(@user.email, 90), class: "avatar s90", alt: ''
= @user.name
- if @user == current_user
.pull-right
diff --git a/config/gitlab.yml.example b/config/gitlab.yml.example
index a612102ab1c..9f50aab3c28 100644
--- a/config/gitlab.yml.example
+++ b/config/gitlab.yml.example
@@ -1,4 +1,4 @@
-# # # # # # # # # # # # # # # # # #
+# # # # # # # # # # # # # # # # # #
# GitLab application config file #
# # # # # # # # # # # # # # # # # #
#
@@ -37,7 +37,7 @@ production: &base
# default_can_create_group: false # default: true
# default_can_create_team: false # default: true
# username_changing_enabled: false # default: true - User can change her username/namespace
-
+
## Users management
# signup_enabled: true # default: false - Account passwords are not sent via the email if signup is enabled.
@@ -168,12 +168,12 @@ production: &base
# 4. Extra customization
# ==========================
- extra:
+ extra:
## Google analytics. Uncomment if you want it
# google_analytics_id: '_your_tracking_id'
## Text under sign-in page (Markdown enabled)
- # sign_in_text: |
+ # sign_in_text: |
# ![Company Logo](http://www.companydomain.com/logo.png)
# [Learn more about CompanyName](http://www.companydomain.com/)
diff --git a/db/schema.rb b/db/schema.rb
index b755d555630..348272e0832 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -11,7 +11,7 @@
#
# It's strongly recommended to check this file into your version control system.
-ActiveRecord::Schema.define(:version => 20130326142630) do
+ActiveRecord::Schema.define(:version => 20130614132337) do
create_table "deploy_keys_projects", :force => true do |t|
t.integer "deploy_key_id", :null => false
diff --git a/doc/install/installation.md b/doc/install/installation.md
index a16c5acf1b1..47faab407e3 100644
--- a/doc/install/installation.md
+++ b/doc/install/installation.md
@@ -173,6 +173,9 @@ You can change `5-3-stable` to `master` if you want the *bleeding edge* version,
# Create directory for satellites
sudo -u git -H mkdir /home/git/gitlab-satellites
+ # Make config/database.yml readable to git only
+ sudo -u git -H chmod o-rwx config/database.yml
+
# Create directories for sockets/pids and make sure GitLab can write to them
sudo -u git -H mkdir tmp/pids/
sudo -u git -H mkdir tmp/sockets/
diff --git a/doc/markdown/markdown.md b/doc/markdown/markdown.md
new file mode 100644
index 00000000000..3ff3ab9a5ae
--- /dev/null
+++ b/doc/markdown/markdown.md
@@ -0,0 +1,451 @@
+
+----------------------------------------------
+
+Table of Contents
+=================
+
+----------------------------------------------
+
+[GitLab Flavored Markdown](#toc_3)
+-------------------------------
+[Newlines](#toc_4)
+[Multiple underscores in words](#toc_5)
+[URL autolinking](#toc_6)
+[Code and Syntax Highlighting](#toc_7)
+[Emoji](#toc_8)
+[Special GitLab references](#toc_9)
+
+
+
+[Standard Markdown](#toc_10)
+------------------------------
+[Headers](#toc_11)
+[Emphasis](#toc_20)
+[Lists](#toc_21)
+[Links](#toc_22)
+[Images](#toc_23)
+[Blockquotes](#toc_24)
+[Inline HTML](#toc_25)
+[Horizontal Rule](#toc_26)
+[Line Breaks](#toc_27)
+
+[References](#toc_28)
+---------------------
+
+----------------------------------------------
+
+<a name="gfm" />
+GitLab Flavored Markdown (GFM)
+==============================
+For GitLab we developed something we call "GitLab Flavored Markdown" (GFM). It extends the standard Markdown in a few significant ways to add some useful functionality.
+
+You can use GFM in
+
+* commit messages
+* comments
+* wall posts
+* issues
+* merge requests
+* milestones
+* wiki pages
+
+<a name="newlines" />
+Newlines
+--------
+The biggest difference that GFM introduces is in the handling of linebreaks. With traditional Markdown you can hard wrap paragraphs of text and they will be combined into a single paragraph. We find this to be the cause of a huge number of unintentional formatting errors. GFM treats newlines in paragraph-like content as real line breaks, which is probably what you intended.
+
+The next paragraph contains two phrases separated by a single newline character:
+
+ Roses are red
+ Violets are blue
+
+Roses are red
+Violets are blue
+
+<a name="underscores" />
+Multiple underscores in words
+-----------------------------
+It is not reasonable to italicize just _part_ of a word, especially when you're dealing with code and names that often appear with multiple underscores. Therefore, GFM ignores multiple underscores in words.
+
+ perform_complicated_task
+ do_this_and_do_that_and_another_thing
+
+perform_complicated_task
+do_this_and_do_that_and_another_thing
+
+<a name="autolink" />
+URL autolinking
+---------------
+GFM will autolink standard URLs you copy and paste into your text.
+So if you want to link to a URL (instead of a textural link), you can simply put the URL in verbatim and it will be turned into a link to that URL.
+
+ http://www.google.com
+
+http://www.google.com
+
+<a name="code"/>
+## Code and Syntax Highlighting
+
+Blocks of code are either fenced by lines with three back-ticks <code>```</code>, or are indented with four spaces. Only the fenced code blocks support syntax highlighting.
+
+
+```no-highlight
+Inline `code` has `back-ticks around` it.
+```
+
+Inline `code` has `back-ticks around` it.
+
+Example:
+
+ ```javascript
+ var s = "JavaScript syntax highlighting";
+ alert(s);
+ ```
+
+ ```python
+ def function():
+ #indenting works just fine in the fenced code block
+ s = "Python syntax highlighting"
+ print s
+ ```
+
+ ```ruby
+ require 'redcarpet'
+ markdown = Redcarpet.new("Hello World!")
+ puts markdown.to_html
+ ```
+
+ ```
+ No language indicated, so no syntax highlighting.
+ s = "There is no highlighting for this."
+ But let's throw in a <b>tag</b>.
+ ```
+
+becomes:
+
+```javascript
+var s = "JavaScript syntax highlighting";
+alert(s);
+```
+
+```python
+def function():
+ #indenting works just fine in the fenced code block
+ s = "Python syntax highlighting"
+ print s
+```
+
+```ruby
+require 'redcarpet'
+markdown = Redcarpet.new("Hello World!")
+puts markdown.to_html
+```
+
+```
+No language indicated, so no syntax highlighting.
+s = "There is no highlighting for this."
+But let's throw in a <b>tag</b>.
+```
+
+<a name="emoji"/>
+Emoji
+-----
+
+ Sometimes you want to be :cool: and add some :sparkles: to your :speech_balloon:. Well we have a :gift: for you:
+
+ :exclamation: You can use emoji anywhere GFM is supported. :sunglasses:
+
+ You can use it to point out a :bug: or warn about :monkey:patches. And if someone improves your really :snail: code, send them a :bouquet: or some :candy:. People will :heart: you for that.
+
+ If you are :new: to this, don't be :fearful:. You can easily join the emoji :circus_tent:. All you need to do is to :book: up on the supported codes.
+
+ Consult the [Emoji Cheat Sheet]( "http://www.emoji-cheat-sheet.com/") for a list of all supported emoji codes. :thumbsup:
+
+Sometimes you want to be :cool: and add some :sparkles: to your :speech_balloon:. Well we have a :gift: for you:
+
+:exclamation: You can use emoji anywhere GFM is supported. :sunglasses:
+
+You can use it to point out a :bug: or warn about :monkey:patches. And if someone improves your really :snail: code, send them a :bouquet: or some :candy:. People will :heart: you for that.
+
+If you are :new: to this, don't be :fearful:. You can easily join the emoji :circus_tent:. All you need to do is to :book: up on the supported codes.
+
+Consult the [Emoji Cheat Sheet]( "http://www.emoji-cheat-sheet.com/") for a list of all supported emoji codes. :thumbsup:
+
+<a name="special"/>
+Special GitLab References
+-----
+
+GFM recognized special references.
+You can easily reference e.g. a team member, an issue, or a commit within a project.
+GFM will turn that reference into a link so you can navigate between them easily.
+
+
+GFM will recognize the following:
+
+* @foo : for team members
+* #123 : for issues
+* !123 : for merge requests
+* $123 : for snippets
+* 1234567 : for commits
+* [file](path/to/file) : for file references
+
+<a name="standard"/>
+
+----------------------------------
+# Standard Markdown
+
+----------------------------------
+<a name="headers"/>
+## Headers
+
+```no-highlight
+# H1
+## H2
+### H3
+#### H4
+##### H5
+###### H6
+
+Alternatively, for H1 and H2, an underline-ish style:
+
+Alt-H1
+======
+
+Alt-H2
+------
+```
+
+# H1
+## H2
+### H3
+#### H4
+##### H5
+###### H6
+
+Alternatively, for H1 and H2, an underline-ish style:
+
+Alt-H1
+======
+
+Alt-H2
+------
+
+<a name="emphasis"/>
+## Emphasis
+
+```no-highlight
+Emphasis, aka italics, with *asterisks* or _underscores_.
+
+Strong emphasis, aka bold, with **asterisks** or __underscores__.
+
+Combined emphasis with **asterisks and _underscores_**.
+
+Strikethrough uses two tildes. ~~Scratch this.~~
+```
+
+Emphasis, aka italics, with *asterisks* or _underscores_.
+
+Strong emphasis, aka bold, with **asterisks** or __underscores__.
+
+Combined emphasis with **asterisks and _underscores_**.
+
+Strikethrough uses two tildes. ~~Scratch this.~~
+
+
+<a name="lists"/>
+## Lists
+
+```no-highlight
+1. First ordered list item
+2. Another item
+ * Unordered sub-list.
+1. Actual numbers don't matter, just that it's a number
+ 1. Ordered sub-list
+4. And another item.
+
+ Some text that should be aligned with the above item.
+
+* Unordered list can use asterisks
+- Or minuses
++ Or pluses
+```
+
+1. First ordered list item
+2. Another item
+ * Unordered sub-list.
+1. Actual numbers don't matter, just that it's a number
+ 1. Ordered sub-list
+4. And another item.
+
+ Some text that should be aligned with the above item.
+
+* Unordered list can use asterisks
+- Or minuses
++ Or pluses
+
+<a name="links"/>
+## Links
+
+There are two ways to create links.
+
+ [I'm an inline-style link](https://www.google.com)
+
+ [I'm a reference-style link][Arbitrary case-insensitive reference text]
+
+ [I'm a relative reference to a repository file](../blob/master/LICENSE)
+
+ [You can use numbers for reference-style link definitions][1]
+
+ Or leave it empty and use the [link text itself][]
+
+ Some text to show that the reference links can follow later.
+
+ [arbitrary case-insensitive reference text]: https://www.mozilla.org
+ [1]: http://slashdot.org
+ [link text itself]: http://www.reddit.com
+
+[I'm an inline-style link](https://www.google.com)
+
+[I'm a reference-style link][Arbitrary case-insensitive reference text]
+
+[I'm a relative reference to a repository file](../blob/master/LICENSE)
+
+[You can use numbers for reference-style link definitions][1]
+
+Or leave it empty and use the [link text itself][]
+
+Some text to show that the reference links can follow later.
+
+[arbitrary case-insensitive reference text]: https://www.mozilla.org
+[1]: http://slashdot.org
+[link text itself]: http://www.reddit.com
+
+<a name="images"/>
+## Images
+
+ Here's our logo (hover to see the title text):
+
+ Inline-style:
+ ![alt text](/assets/logo-white.png "Logo Title Text 1")
+
+ Reference-style:
+ ![alt text][logo]
+
+ [logo]: /assets/logo-white.png "Logo Title Text 2"
+
+Here's our logo (hover to see the title text):
+
+Inline-style:
+![alt text](/assets/logo-white.png "Logo Title Text 1")
+
+Reference-style:
+![alt text][logo]
+
+[logo]: /assets/logo-white.png "Logo Title Text 2"
+
+<a name="blockquotes"/>
+## Blockquotes
+
+```no-highlight
+> Blockquotes are very handy in email to emulate reply text.
+> This line is part of the same quote.
+
+Quote break.
+
+> This is a very long line that will still be quoted properly when it wraps. Oh boy let's keep writing to make sure this is long enough to actually wrap for everyone. Oh, you can *put* **Markdown** into a blockquote.
+```
+
+> Blockquotes are very handy in email to emulate reply text.
+> This line is part of the same quote.
+
+Quote break.
+
+> This is a very long line that will still be quoted properly when it wraps. Oh boy let's keep writing to make sure this is long enough to actually wrap for everyone. Oh, you can *put* **Markdown** into a blockquote.
+
+<a name="html"/>
+## Inline HTML
+
+You can also use raw HTML in your Markdown, and it'll mostly work pretty well.
+
+```no-highlight
+<dl>
+ <dt>Definition list</dt>
+ <dd>Is something people use sometimes.</dd>
+
+ <dt>Markdown in HTML</dt>
+ <dd>Does *not* work **very** well. Use HTML <em>tags</em>.</dd>
+</dl>
+```
+
+<dl>
+ <dt>Definition list</dt>
+ <dd>Is something people use sometimes.</dd>
+
+ <dt>Markdown in HTML</dt>
+ <dd>Does *not* work **very** well. Use HTML <em>tags</em>.</dd>
+</dl>
+
+<a name="hr"/>
+## Horizontal Rule
+
+```
+Three or more...
+
+---
+
+Hyphens
+
+***
+
+Asterisks
+
+___
+
+Underscores
+```
+
+Three or more...
+
+---
+
+Hyphens
+
+***
+
+Asterisks
+
+___
+
+Underscores
+
+<a name="lines"/>
+## Line Breaks
+
+My basic recommendation for learning how line breaks work is to experiment and discover -- hit &lt;Enter&gt; once (i.e., insert one newline), then hit it twice (i.e., insert two newlines), see what happens. You'll soon learn to get what you want. "Markdown Toggle" is your friend.
+
+Here are some things to try out:
+
+```
+Here's a line for us to start with.
+
+This line is separated from the one above by two newlines, so it will be a *separate paragraph*.
+
+This line is also a separate paragraph, but...
+This line is only separated by a single newline, so it's a separate line in the *same paragraph*.
+```
+
+Here's a line for us to start with.
+
+This line is separated from the one above by two newlines, so it will be a *separate paragraph*.
+
+This line is also begins a separate paragraph, but...
+This line is only separated by a single newline, so it's a separate line in the *same paragraph*.
+
+------------
+
+<a name="references"/>
+## References
+
+* This document leveraged heavily from the [Markdown-Cheatsheet](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet).
+* The [Markdown Syntax Guide](http://daringfireball.net/projects/markdown/syntax) at Daring Fireball is an excellent resource for a detailed explanation of standard markdown.
+* [Dillinger.io](http://dillinger.io) is a handy tool for testing standard markdown.
diff --git a/doc/update/5.1-to-5.2.md b/doc/update/5.1-to-5.2.md
index 3f874555f49..23de2d99c58 100644
--- a/doc/update/5.1-to-5.2.md
+++ b/doc/update/5.1-to-5.2.md
@@ -52,17 +52,26 @@ sudo -u git -H bundle exec rake db:migrate RAILS_ENV=production
### 6. Update Init script
```bash
+cd /home/git/gitlab
sudo rm /etc/init.d/gitlab
-sudo curl --output /etc/init.d/gitlab https://raw.github.com/gitlabhq/gitlabhq/5-2-stable/lib/support/init.d/gitlab
+sudo cp lib/support/init.d/gitlab /etc/init.d/gitlab
sudo chmod +x /etc/init.d/gitlab
```
-### 6. Start application
+### 7. Create uploads directory
+
+```bash
+cd /home/git/gitlab
+sudo -u git -H mkdir public/uploads
+sudo chmod -R u+rwX public/uploads
+```
+
+### 8. Start application
sudo service gitlab start
sudo service nginx restart
-### 7. Check application status
+### 9. Check application status
Check if GitLab and its environment are configured correctly:
diff --git a/spec/routing/project_routing_spec.rb b/spec/routing/project_routing_spec.rb
index b2b20ef6b5d..a716f13a4cd 100644
--- a/spec/routing/project_routing_spec.rb
+++ b/spec/routing/project_routing_spec.rb
@@ -262,7 +262,7 @@ end
# project_snippet GET /:project_id/snippets/:id(.:format) snippets#show
# PUT /:project_id/snippets/:id(.:format) snippets#update
# DELETE /:project_id/snippets/:id(.:format) snippets#destroy
-describe Project::SnippetsController, "routing" do
+describe Projects::SnippetsController, "routing" do
it "to #raw" do
get("/gitlabhq/snippets/1/raw").should route_to('projects/snippets#raw', project_id: 'gitlabhq', id: '1')
end