diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsObjDatabase.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsObjDatabase.java index f6e4c2391..b1d6c0dd1 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsObjDatabase.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsObjDatabase.java @@ -67,6 +67,11 @@ boolean dirty() { return true; } + @Override + void clearDirty() { + // Always dirty. + } + @Override public void markDirty() { // Always dirty. @@ -443,8 +448,10 @@ private PackList scanPacksImpl(PackList old) throws IOException { p.close(); if (list.isEmpty()) return new PackListImpl(NO_PACKS.packs); - if (!foundNew) + if (!foundNew) { + old.clearDirty(); return old; + } return new PackListImpl(list.toArray(new DfsPackFile[list.size()])); } @@ -514,6 +521,7 @@ public long getLastModified() { } abstract boolean dirty(); + abstract void clearDirty(); /** * Mark pack list as dirty. @@ -537,6 +545,11 @@ boolean dirty() { return dirty; } + @Override + void clearDirty() { + dirty = false; + } + @Override public void markDirty() { dirty = true;