Fix combined diffs on merge commits
A bad automated refactoring led us to try and obtain the EditList for a combined diff patch script. These scripts don't have any edits, because there is more than old image involved in each range. Fix the code to rule out a combined diff format script and do not access its EditList when creating the cache entry. Change-Id: Idc81370ffb4b1c7bf65c525043bf6b21314a01cf Signed-off-by: Shawn O. Pearce <sop@google.com>
This commit is contained in:
		| @@ -188,10 +188,6 @@ public class PatchListCacheImpl implements PatchListCache { | |||||||
|  |  | ||||||
|   private static PatchListEntry newEntry(Repository repo, RevTree aTree, |   private static PatchListEntry newEntry(Repository repo, RevTree aTree, | ||||||
|       RevTree bTree, FileHeader fileHeader) throws IOException { |       RevTree bTree, FileHeader fileHeader) throws IOException { | ||||||
|     if (fileHeader.getHunks().isEmpty()) { |  | ||||||
|       return new PatchListEntry(fileHeader, Collections.<Edit> emptyList()); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     final FileMode oldMode = fileHeader.getOldMode(); |     final FileMode oldMode = fileHeader.getOldMode(); | ||||||
|     final FileMode newMode = fileHeader.getNewMode(); |     final FileMode newMode = fileHeader.getNewMode(); | ||||||
|  |  | ||||||
| @@ -199,17 +195,17 @@ public class PatchListCacheImpl implements PatchListCache { | |||||||
|       return new PatchListEntry(fileHeader, Collections.<Edit> emptyList()); |       return new PatchListEntry(fileHeader, Collections.<Edit> emptyList()); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     List<Edit> edits = fileHeader.toEditList(); |     if (aTree == null // want combined diff | ||||||
|  |         || fileHeader.getPatchType() != PatchType.UNIFIED | ||||||
|  |         || fileHeader.getHunks().isEmpty()) { | ||||||
|  |       return new PatchListEntry(fileHeader, Collections.<Edit> emptyList()); | ||||||
|  |     } | ||||||
|  |  | ||||||
|     // Bypass the longer task of looking for replacement edits if |     List<Edit> edits = fileHeader.toEditList(); | ||||||
|     // there cannot be a replacement within plain text. |     if (edits.isEmpty()) { | ||||||
|     // |       return new PatchListEntry(fileHeader, Collections.<Edit> emptyList()); | ||||||
|     if (aTree == null /* want combined diff */) { |  | ||||||
|       return new PatchListEntry(fileHeader, edits); |  | ||||||
|     } |  | ||||||
|     if (fileHeader.getPatchType() != PatchType.UNIFIED || edits.isEmpty()) { |  | ||||||
|       return new PatchListEntry(fileHeader, edits); |  | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     switch (fileHeader.getChangeType()) { |     switch (fileHeader.getChangeType()) { | ||||||
|       case ADD: |       case ADD: | ||||||
|       case DELETE: |       case DELETE: | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Shawn O. Pearce
					Shawn O. Pearce