Commit bd2ca33d authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets

Merge branch 'relative' of /home/git/repositories/gitlab/gitlabhq

parents 99334d4b 4e9284a0
...@@ -64,7 +64,9 @@ module GitlabMarkdownHelper ...@@ -64,7 +64,9 @@ module GitlabMarkdownHelper
# ref - name of the branch or reference, eg. stable # ref - name of the branch or reference, eg. stable
# requested_path - path of request, eg. doc/api/README.md, used in special case when path is pointing to the .md file were the original request is coming from # requested_path - path of request, eg. doc/api/README.md, used in special case when path is pointing to the .md file were the original request is coming from
# wiki - whether the markdown is from wiki or not # wiki - whether the markdown is from wiki or not
def create_relative_links(text, project_path_with_namespace, ref, requested_path, wiki = false) def create_relative_links(text, project, ref, requested_path, wiki = false)
@path_to_satellite = project.satellite.path
project_path_with_namespace = project.path_with_namespace
paths = extract_paths(text) paths = extract_paths(text)
paths.each do |file_path| paths.each do |file_path|
new_path = rebuild_path(project_path_with_namespace, file_path, requested_path, ref) new_path = rebuild_path(project_path_with_namespace, file_path, requested_path, ref)
...@@ -145,13 +147,18 @@ module GitlabMarkdownHelper ...@@ -145,13 +147,18 @@ module GitlabMarkdownHelper
def file_exists?(path) def file_exists?(path)
return false if path.nil? || path.empty? return false if path.nil? || path.empty?
File.exists?(Rails.root.join(path)) File.exists?(path_on_fs(path))
end end
# Check if the path is pointing to a directory(tree) or a file(blob) # Check if the path is pointing to a directory(tree) or a file(blob)
# eg. doc/api is directory and doc/README.md is file # eg. doc/api is directory and doc/README.md is file
def local_path(path) def local_path(path)
File.directory?(Rails.root.join(path)) ? "tree" : "blob" File.directory?(path_on_fs(path)) ? "tree" : "blob"
end
# Path to the file in the satellites repository on the filesystem
def path_on_fs(path)
[@path_to_satellite, path].join("/")
end end
# We will assume that if no ref exists we can point to master # We will assume that if no ref exists we can point to master
......
...@@ -36,7 +36,7 @@ class Redcarpet::Render::GitlabHTML < Redcarpet::Render::HTML ...@@ -36,7 +36,7 @@ class Redcarpet::Render::GitlabHTML < Redcarpet::Render::HTML
def preprocess(full_document) def preprocess(full_document)
if @project if @project
h.create_relative_links(full_document, @project.path_with_namespace, @ref, @request_path, is_wiki?) h.create_relative_links(full_document, @project, @ref, @request_path, is_wiki?)
else else
full_document full_document
end end
......
...@@ -66,6 +66,7 @@ FactoryGirl.define do ...@@ -66,6 +66,7 @@ FactoryGirl.define do
after :create do |project| after :create do |project|
TestEnv.clear_repo_dir(project.namespace, project.path) TestEnv.clear_repo_dir(project.namespace, project.path)
TestEnv.reset_satellite_dir
TestEnv.create_repo(project.namespace, project.path) TestEnv.create_repo(project.namespace, project.path)
end end
end end
......
...@@ -97,6 +97,15 @@ module TestEnv ...@@ -97,6 +97,15 @@ module TestEnv
FileUtils.rm_rf File.join(testing_path(), "#{name}.wiki.git") FileUtils.rm_rf File.join(testing_path(), "#{name}.wiki.git")
end end
def reset_satellite_dir
setup_stubs
FileUtils.cd(seed_satellite_path) do
`git reset --hard --quiet`
`git clean -fx`
`git checkout --quiet origin/master`
end
end
# Create a repo and it's satellite # Create a repo and it's satellite
def create_repo(namespace, name) def create_repo(namespace, name)
setup_stubs setup_stubs
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment