From 57cabb3ad3d296c2f65c157348cdf3b32e17e8c4 Mon Sep 17 00:00:00 2001
From: Ethan Koenig <etk39@cornell.edu>
Date: Wed, 14 Jun 2017 05:07:09 -0400
Subject: [PATCH] Fix diff of renamed and modified file (#1967)

---
 models/git_diff.go           | 13 ++++++-------
 templates/repo/diff/box.tmpl |  2 +-
 2 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/models/git_diff.go b/models/git_diff.go
index bde2f7ead0..659dfbc0a0 100644
--- a/models/git_diff.go
+++ b/models/git_diff.go
@@ -365,10 +365,12 @@ func ParsePatch(maxLines, maxLineCharacters, maxFiles int, reader io.Reader) (*D
 			}
 
 			curFile = &DiffFile{
-				Name:     a,
-				Index:    len(diff.Files) + 1,
-				Type:     DiffFileChange,
-				Sections: make([]*DiffSection, 0, 10),
+				Name:      b,
+				OldName:   a,
+				Index:     len(diff.Files) + 1,
+				Type:      DiffFileChange,
+				Sections:  make([]*DiffSection, 0, 10),
+				IsRenamed: a != b,
 			}
 			diff.Files = append(diff.Files, curFile)
 			if len(diff.Files) >= maxFiles {
@@ -401,9 +403,6 @@ func ParsePatch(maxLines, maxLineCharacters, maxFiles int, reader io.Reader) (*D
 					curFile.Type = DiffFileChange
 				case strings.HasPrefix(line, "similarity index 100%"):
 					curFile.Type = DiffFileRename
-					curFile.IsRenamed = true
-					curFile.OldName = curFile.Name
-					curFile.Name = b
 				}
 				if curFile.Type > 0 {
 					if strings.HasSuffix(line, " 160000\n") {
diff --git a/templates/repo/diff/box.tmpl b/templates/repo/diff/box.tmpl
index 90def1f843..40675d75b8 100644
--- a/templates/repo/diff/box.tmpl
+++ b/templates/repo/diff/box.tmpl
@@ -78,7 +78,7 @@
 					{{end}}
 				</h4>
 				<div class="ui attached table segment">
-					{{if not $file.IsRenamed}}
+					{{if ne $file.Type 4}}
 						{{$isImage := (call $.IsImageFile $file.Name)}}
 						{{if and $isImage}}
 							<div class="center">