Do not re-canonicalize names referring to existing page files when updating format extensions
This commit is contained in:
committed by
Arran Cudbard-Bell
parent
af7a52970f
commit
6926746624
+19
-15
@@ -222,12 +222,14 @@ module Gollum
|
||||
else
|
||||
Committer.new(self, commit)
|
||||
end
|
||||
|
||||
committer.add_to_index('', name, format, data)
|
||||
|
||||
filename = Gollum::Page.cname(name)
|
||||
|
||||
committer.add_to_index('', filename, format, data)
|
||||
|
||||
committer.after_commit do |index, sha|
|
||||
@access.refresh
|
||||
index.update_working_dir('', name, format)
|
||||
index.update_working_dir('', filename, format)
|
||||
end
|
||||
|
||||
multi_commit ? committer : committer.commit
|
||||
@@ -259,7 +261,10 @@ module Gollum
|
||||
name ||= page.name
|
||||
format ||= page.format
|
||||
dir = ::File.dirname(page.path)
|
||||
dir = '' if dir == '.'
|
||||
dir = '' if dir == '.'
|
||||
filename = (rename = page.name != name) ?
|
||||
Gollum::Page.cname(name) : page.filename_stripped
|
||||
|
||||
multi_commit = false
|
||||
|
||||
committer = if obj = commit[:committer]
|
||||
@@ -268,18 +273,18 @@ module Gollum
|
||||
else
|
||||
Committer.new(self, commit)
|
||||
end
|
||||
|
||||
if page.name == name && page.format == format
|
||||
|
||||
if !rename && page.format == format
|
||||
committer.add(page.path, normalize(data))
|
||||
else
|
||||
committer.delete(page.path)
|
||||
committer.add_to_index(dir, name, format, data, :allow_same_ext)
|
||||
committer.add_to_index(dir, filename, format, data, :allow_same_ext)
|
||||
end
|
||||
|
||||
|
||||
committer.after_commit do |index, sha|
|
||||
@access.refresh
|
||||
index.update_working_dir(dir, page.name, page.format)
|
||||
index.update_working_dir(dir, name, format)
|
||||
index.update_working_dir(dir, page.filename_stripped, page.format)
|
||||
index.update_working_dir(dir, filename, format)
|
||||
end
|
||||
|
||||
multi_commit ? committer : committer.commit
|
||||
@@ -318,7 +323,7 @@ module Gollum
|
||||
dir = '' if dir == '.'
|
||||
|
||||
@access.refresh
|
||||
index.update_working_dir(dir, page.name, page.format)
|
||||
index.update_working_dir(dir, page.filename_stripped, page.format)
|
||||
end
|
||||
|
||||
multi_commit ? committer : committer.commit
|
||||
@@ -356,7 +361,7 @@ module Gollum
|
||||
|
||||
files = []
|
||||
if page
|
||||
files << [page.path, page.name, page.format]
|
||||
files << [page.path, page.filename_stripped, page.format]
|
||||
else
|
||||
# Grit::Diff can't parse reverse diffs.... yet
|
||||
patch.each_line do |line|
|
||||
@@ -516,13 +521,12 @@ module Gollum
|
||||
|
||||
# Assemble a Page's filename from its name and format.
|
||||
#
|
||||
# name - The String name of the page (may be in human format).
|
||||
# name - The String name of the page (should be pre-canonicalized).
|
||||
# format - The Symbol format of the page.
|
||||
#
|
||||
# Returns the String filename.
|
||||
def page_file_name(name, format)
|
||||
ext = @page_class.format_to_ext(format)
|
||||
@page_class.cname(name) + '.' + ext
|
||||
name + '.' + @page_class.format_to_ext(format)
|
||||
end
|
||||
|
||||
# Fill an array with a list of pages.
|
||||
|
||||
Reference in New Issue
Block a user