From 0f814a2a6c0d5af14267ab6bcf0e1ccde934d93c Mon Sep 17 00:00:00 2001 From: Zhen Chen Date: Mon, 9 Oct 2017 10:53:58 -0700 Subject: [PATCH] Skip unreachable garbage packs in dfs fsck Change-Id: I8899e0faf1e4e6386dfd57340dfa4f4fdebc3cf3 Signed-off-by: Zhen Chen --- .../src/org/eclipse/jgit/internal/storage/dfs/DfsFsck.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsFsck.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsFsck.java index 75eade2273..daaa220840 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsFsck.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsFsck.java @@ -55,6 +55,7 @@ import org.eclipse.jgit.internal.JGitText; import org.eclipse.jgit.internal.fsck.FsckError; import org.eclipse.jgit.internal.fsck.FsckError.CorruptIndex; import org.eclipse.jgit.internal.fsck.FsckPackParser; +import org.eclipse.jgit.internal.storage.dfs.DfsObjDatabase.PackSource; import org.eclipse.jgit.lib.Constants; import org.eclipse.jgit.lib.NullProgressMonitor; import org.eclipse.jgit.lib.ObjectChecker; @@ -106,6 +107,10 @@ public class DfsFsck { try (DfsReader ctx = objdb.newReader()) { for (DfsPackFile pack : objdb.getPacks()) { DfsPackDescription packDesc = pack.getPackDescription(); + if (packDesc.getPackSource() + == PackSource.UNREACHABLE_GARBAGE) { + continue; + } try (ReadableChannel rc = objdb.openFile(packDesc, PACK)) { verifyPack(pm, errors, ctx, pack, rc); } catch (MissingObjectException e) { -- 2.39.5