diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListCacheImpl.java b/gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListCacheImpl.java index fa75f42716..8048bdf488 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListCacheImpl.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListCacheImpl.java @@ -38,6 +38,7 @@ import org.eclipse.jgit.errors.IncorrectObjectTypeException; import org.eclipse.jgit.errors.MissingObjectException; import org.eclipse.jgit.lib.AnyObjectId; import org.eclipse.jgit.lib.Constants; +import org.eclipse.jgit.lib.FileMode; import org.eclipse.jgit.lib.ObjectId; import org.eclipse.jgit.lib.ObjectLoader; import org.eclipse.jgit.lib.ObjectWriter; @@ -191,6 +192,13 @@ public class PatchListCacheImpl implements PatchListCache { return new PatchListEntry(fileHeader, Collections. emptyList()); } + final FileMode oldMode = fileHeader.getOldMode(); + final FileMode newMode = fileHeader.getNewMode(); + + if (oldMode == FileMode.GITLINK || newMode == FileMode.GITLINK) { + return new PatchListEntry(fileHeader, Collections. emptyList()); + } + List edits = fileHeader.toEditList(); // Bypass the longer task of looking for replacement edits if