diff --git a/platform/platform-api/src/com/intellij/ide/diff/DirDiffSettings.java b/platform/platform-api/src/com/intellij/ide/diff/DirDiffSettings.java index d37ccdea1c8a..592607973708 100644 --- a/platform/platform-api/src/com/intellij/ide/diff/DirDiffSettings.java +++ b/platform/platform-api/src/com/intellij/ide/diff/DirDiffSettings.java @@ -38,6 +38,7 @@ public class DirDiffSettings { public boolean showNewOnTarget = true; public boolean showCompareModes = true; public CompareMode compareMode = CompareMode.CONTENT; + public double compareTimestampAccuracy = 0; public boolean showInFrame = true; // in dialog otherwise diff --git a/platform/vcs-impl/src/com/intellij/openapi/diff/impl/dir/DTree.java b/platform/vcs-impl/src/com/intellij/openapi/diff/impl/dir/DTree.java index fc0aadd8898e..55f79ac29eb4 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/diff/impl/dir/DTree.java +++ b/platform/vcs-impl/src/com/intellij/openapi/diff/impl/dir/DTree.java @@ -162,7 +162,7 @@ public class DTree { dtype = isEqual(src, trg) ? DType.EQUAL : DType.CHANGED; break; case TIMESTAMP: - dtype = src.getTimeStamp() == trg.getTimeStamp() ? DType.EQUAL : DType.CHANGED; + dtype = Math.abs(src.getTimeStamp() - trg.getTimeStamp()) <= settings.compareTimestampAccuracy ? DType.EQUAL : DType.CHANGED; break; } }