void (@NotNull FilePath filePath, @NotNull PartialChangeTracker tracker) { if (myPartialChangeTrackers.containsKey(filePath)) { LOG.error(String.format("Attempt to register duplicate trackers: %s; old: %s; new: %s", filePath, myPartialChangeTrackers.get(filePath), tracker)); return; } myPartialChangeTrackers.put(filePath, tracker); ListData oldList = null; Change change = getChangeForAfterPath(filePath); if (change != null) { oldList = removeChangeMapping(change); } tracker.initChangeTracking(myDefault.id, ContainerUtil.map(myLists, list -> list.id), oldList != null ? oldList.id : null); List<String> oldIds = oldList != null ? Collections.singletonList(oldList.id) : Collections.emptyList(); notifyChangelistsChanged(filePath, oldIds, tracker.getAffectedChangeListsIds()); if (LOG.isDebugEnabled()) { LOG.debug(String.format("[registerChangeTracker] path: %s, old list: %s", filePath, oldList != null ? oldList.id : "null")); } }