}
});
+ for (VcsDirtyScope scope : scopes) {
+ scope.iterateExistingInsideScope(new Processor<VirtualFile>() {
+ @Override
+ public boolean process(VirtualFile file) {
+ file.putUserData(LastUnchangedContentTracker.VCS_INVALID_FILE_STATUS, null); //todo what if it has become dirty again during update?
+ return true;
+ }
+ });
+ }
+
+
myChangesViewManager.scheduleRefresh();
}
catch (DisposedException e) {
private static final Key<Long> LAST_TS_KEY = Key.create("LAST_TS_KEY");
private static final FileAttribute LAST_TS_ATTR = new FileAttribute("LAST_TS_ATTR", 0, true);
private static final FileAttribute ACQUIRED_CONTENT_ATTR = new FileAttribute("ACQUIRED_CONTENT_ATTR", 1, true);
+ public static final Key<Boolean> VCS_INVALID_FILE_STATUS = Key.create("VCS_INVALID_FILE_STATUS");
public static void updateLastUnchangedContent(@NotNull VirtualFile file) {
+ if (Boolean.TRUE.equals(file.getUserData(VCS_INVALID_FILE_STATUS))) {
+ return;
+ }
+
Long lastTs = getLastSavedStamp(file);
final long stamp = file.getModificationStamp();
if (lastTs != null && stamp == lastTs) {
}
saveContentReference(file, getFS().acquireContent(file));
+ file.putUserData(VCS_INVALID_FILE_STATUS, Boolean.TRUE);
}
@Nullable