Permalink
Browse files

[svn] Fix removing a binary file without svn:mime-type set

Summary:
If we're removing a binary file that didn't have svn:mime-type set properly,
we can't propset it (because the file doesn't exist locally). Instead, just
return a synthetic diff for the removed file.

Test Plan:
run arc diff in an svn working copy where I ran svn rm on a binary file that
doesn't have svn:mime-type set, and the diff correctly gets uploaded to
phabricator instead of erroring when trying to set properties.

Reviewers: epriestley, wez

Reviewed By: epriestley

CC: aran, Korvin

Differential Revision: https://secure.phabricator.com/D5655
  • Loading branch information...
1 parent 7c22017 commit b1fe436cfc23bb2fbea59bd5ea0098c1375c5353 Nick Harper committed Apr 10, 2013
Showing with 9 additions and 0 deletions.
  1. +9 −0 src/repository/api/ArcanistSubversionAPI.php
@@ -383,6 +383,15 @@ public function getRawDiffText($path) {
$matches = null;
if (preg_match('/\.(gif|png|jpe?g|swf|pdf|ico)$/i', $path, $matches)) {
$mime = $this->getSVNProperty($path, 'svn:mime-type');
+ if ($status & ArcanistRepositoryAPI::FLAG_DELETED) {
+ return <<<EODIFF
+Index: {$path}
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+
+EODIFF;
+ }
if ($mime != 'application/octet-stream') {
execx(
'svn propset svn:mime-type application/octet-stream %s',

0 comments on commit b1fe436

Please sign in to comment.