[SCM] WebKit Debian packaging branch, webkit-1.1, updated. upstream/1.1.17-1283-gcf603cf
hamaji at chromium.org
hamaji at chromium.org
Tue Jan 5 23:43:20 UTC 2010
The following commit has been merged in the webkit-1.1 branch:
commit 350ac14ed515b9f5ca99c65a8c7b56360301f0a5
Author: hamaji at chromium.org <hamaji at chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Mon Dec 7 07:06:06 2009 +0000
2009-12-06 Shinichiro Hamaji <hamaji at chromium.org>
Unreviewed. Revert r51748.
Bugzilla should show images in git patches
https://bugs.webkit.org/show_bug.cgi?id=31395
* PrettyPatch/PrettyPatch.rb:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@51751 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/BugsSite/ChangeLog b/BugsSite/ChangeLog
index 5c8434d..66c284b 100644
--- a/BugsSite/ChangeLog
+++ b/BugsSite/ChangeLog
@@ -1,4 +1,13 @@
-2009-12-06 Shinichiro Hamaji <shinichiro.hamaji at gmail.com>
+2009-12-06 Shinichiro Hamaji <hamaji at chromium.org>
+
+ Unreviewed. Revert r51748.
+
+ Bugzilla should show images in git patches
+ https://bugs.webkit.org/show_bug.cgi?id=31395
+
+ * PrettyPatch/PrettyPatch.rb:
+
+2009-12-06 Shinichiro Hamaji <hamaji at chromium.org>
Reviewed by David Kilzer.
diff --git a/BugsSite/PrettyPatch/PrettyPatch.rb b/BugsSite/PrettyPatch/PrettyPatch.rb
index 59d9ca9..7539b74 100644
--- a/BugsSite/PrettyPatch/PrettyPatch.rb
+++ b/BugsSite/PrettyPatch/PrettyPatch.rb
@@ -1,16 +1,12 @@
require 'cgi'
require 'diff'
-require 'open3'
require 'pp'
require 'set'
-require 'tempfile'
module PrettyPatch
public
- GIT_PATH = "/opt/local/bin/git"
-
def self.prettify(string)
fileDiffs = FileDiff.parse(string)
@@ -42,16 +38,10 @@ private
/^diff/
]
- BINARY_FILE_MARKER_FORMAT = /^Cannot display: file marked as a binary type.$/
+ BINARY_FILE_MARKER_FORMAT = /^(?:Cannot display: file marked as a binary type.)|(?:GIT binary patch)$/
IMAGE_FILE_MARKER_FORMAT = /^svn:mime-type = image\/png$/
- GIT_INDEX_MARKER_FORMAT = /^index ([0-9a-f]{40})\.\.([0-9a-f]{40})/
-
- GIT_BINARY_FILE_MARKER_FORMAT = /^GIT binary patch$/
-
- GIT_LITERAL_FORMAT = /^literal \d+$/
-
START_OF_BINARY_DATA_FORMAT = /^[0-9a-zA-Z\+\/=]{20,}/ # Assume 20 chars without a space is base64 binary data.
START_OF_SECTION_FORMAT = /^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@\s*(.*)/
@@ -225,42 +215,11 @@ EOF
end
end
break
- when GIT_INDEX_MARKER_FORMAT
- @git_indexes = [$1, $2]
- when GIT_BINARY_FILE_MARKER_FORMAT
- @binary = true
- if (GIT_LITERAL_FORMAT.match(lines[i + 1]) and PrettyPatch.has_image_suffix(@filename)) then
- @git_image = true
- startOfSections = i + 1
- end
- break
end
end
lines_with_contents = lines[startOfSections...lines.length]
@sections = DiffSection.parse(lines_with_contents) unless @binary
- if @image
- @image_url = "data:image/png;base64," + lines_with_contents.join
- elsif @git_image
- begin
- raise "index line is missing" unless @git_indexes
-
- chunks = nil
- for i in 0...lines_with_contents.length
- if lines_with_contents[i] =~ /^$/
- chunks = [lines_with_contents[i + 1 .. -1], lines_with_contents[0 .. i]]
- break
- end
- end
-
- raise "no binary chunks" unless chunks
-
- @image_urls = chunks.zip(@git_indexes).collect do |chunk, git_index|
- FileDiff.extract_contents_from_git_binary_chunk(chunk, git_index)
- end
- rescue
- @image_error = "Exception raised during decoding git binary patch:<pre>#{CGI.escapeHTML($!.to_s)}</pre>"
- end
- end
+ @image_url = "data:image/png;base64," + lines_with_contents.join if @image
nil
end
@@ -269,21 +228,6 @@ EOF
str += "<h1>#{PrettyPatch.linkifyFilename(@filename)}</h1>\n"
if @image then
str += "<img class='image' src='" + @image_url + "' />"
- elsif @git_image then
- if @image_error
- str += @image_error
- else
- for i in (0...2)
- image_url = @image_urls[i]
- style = ["remove", "add"][i]
- str += "<p class=\"#{style}\">"
- if image_url
- str += "<img class='image' src='" + image_url + "' />"
- else
- str += ["Added", "Removed"][i]
- end
- end
- end
elsif @binary then
str += "<span class='text'>Binary file, nothing to see here</span>"
else
@@ -308,51 +252,6 @@ EOF
linesForDiffs.collect { |lines| FileDiff.new(lines) }
end
-
- def self.git_new_file_binary_patch(filename, encoded_chunk, git_index)
- return <<END
-diff --git a/#{filename} b/#{filename}
-new file mode 100644
-index 0000000000000000000000000000000000000000..#{git_index}
-GIT binary patch
-#{encoded_chunk.join("")}literal 0
-HcmV?d00001
-
-END
- end
-
- def self.extract_contents_from_git_binary_chunk(encoded_chunk, git_index)
- # We use Tempfile we need a unique file among processes.
- tempfile = Tempfile.new("PrettyPatch")
- # We need a filename which doesn't exist to apply a patch
- # which creates a new file. Append a suffix so filename
- # doesn't exist.
- filename = File.basename(tempfile.path) + '.bin'
-
- patch = FileDiff.git_new_file_binary_patch(filename, encoded_chunk, git_index)
-
- # Apply the git binary patch using git-apply.
- Dir.chdir(File.dirname(tempfile.path)) do
- stdin, stdout, stderr = *Open3.popen3(GIT_PATH + " apply")
- begin
- stdin.puts(patch)
- stdin.close
-
- error = stderr.read
- raise error if error != ""
-
- contents = File.read(filename)
- ensure
- stdin.close unless stdin.closed?
- stdout.close
- stderr.close
- File.unlink(filename) if File.exists?(filename)
- end
-
- return nil if contents.empty?
- return "data:image/png;base64," + [contents].pack("m")
- end
- end
end
class DiffSection
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list