Page MenuHomePhabricator

D20850.diff
No OneTemporary

D20850.diff

diff --git a/src/applications/differential/parser/DifferentialChangesetParser.php b/src/applications/differential/parser/DifferentialChangesetParser.php
--- a/src/applications/differential/parser/DifferentialChangesetParser.php
+++ b/src/applications/differential/parser/DifferentialChangesetParser.php
@@ -1718,7 +1718,8 @@
$viewer,
$new_ref);
- $shared_engines = array_intersect_key($old_engines, $new_engines);
+ $shared_engines = array_intersect_key($new_engines, $old_engines);
+ $default_engine = head_key($new_engines);
foreach ($shared_engines as $key => $shared_engine) {
if (!$shared_engine->canDiffDocuments($old_ref, $new_ref)) {
@@ -1734,7 +1735,17 @@
$document_engine = null;
}
} else {
- $document_engine = head($shared_engines);
+ // If we aren't rendering with a specific engine, only use a default
+ // engine if the best engine for the new file is a shared engine which
+ // can diff files. If we're less picky (for example, by accepting any
+ // shared engine) we can end up with silly behavior (like ".json" files
+ // rendering as Jupyter documents).
+
+ if (isset($shared_engines[$default_engine])) {
+ $document_engine = $shared_engines[$default_engine];
+ } else {
+ $document_engine = null;
+ }
}
if ($document_engine) {

File Metadata

Mime Type
text/plain
Expires
Sun, May 12, 5:46 AM (3 w, 4 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
6290253
Default Alt Text
D20850.diff (1 KB)

Event Timeline