in src/org/jetbrains/tfsIntegration/core/TFSChangeList.java [201:269]
private void processChange(int changeset,
final com.microsoft.schemas.teamfoundation._2005._06.versioncontrol.clientservices._03.Change change)
throws TfsException {
final ChangeTypeMask changeType = new ChangeTypeMask(change.getType());
final FilePath localPath =
myWorkspace
.findLocalPathByServerPath(change.getItem().getItem(), change.getItem().getType() == ItemType.Folder, getVcs().getProject());
if (localPath == null) {
// original path is out of current mappings -> no way to determine local path for it
return;
}
if (changeType.containsAny(ChangeType_type0.Add, ChangeType_type0.Undelete, ChangeType_type0.Branch)) {
if (changeType.contains(ChangeType_type0.Add)) {
TFSVcs.assertTrue(changeType.contains(ChangeType_type0.Encoding));
if (change.getItem().getType() == ItemType.File) {
TFSVcs.assertTrue(changeType.contains(ChangeType_type0.Edit));
}
else {
TFSVcs.assertTrue(!changeType.contains(ChangeType_type0.Edit));
}
}
TFSVcs.assertTrue(!changeType.contains(ChangeType_type0.Delete));
myAddedPaths.add(localPath);
return;
}
if (changeType.contains(ChangeType_type0.Delete)) {
TFSVcs.assertTrue(changeType.size() <= 3, "Unexpected change type: " + changeType); // can be merge
//TFSVcs.assertTrue(changeType.containsOnly(ChangeType.Delete) || changeType.contains(ChangeType.Rename),
// "Unexpected change type: " + changeType);
int previousCs = change.getItem().getCs() - 1; // same as getPreviousVersion(change.getItem(), changeset).getCs())
//Item item = getPreviousVersion(change.getItem(), changeset);
myDeletedPaths.put(localPath, previousCs);
return;
}
if (changeType.contains(ChangeType_type0.Rename)) {
if (change.getItem().getDid() != Integer.MIN_VALUE) {
// the item was deleted in some previous checkin
return;
}
Item item = getPreviousVersion(change.getItem(), changeset);
FilePath originalPath = myWorkspace
.findLocalPathByServerPath(item.getItem(), item.getType() == ItemType.Folder, getVcs().getProject());
if (originalPath != null) {
myMovedPaths.put(originalPath, Pair.create(localPath, item.getCs()));
}
else {
// original path is out of current mappings -> no way to determine local path for it
}
return;
}
if (changeType.containsAny(ChangeType_type0.Edit, ChangeType_type0.Merge)) {
int previousCs = change.getItem().getCs() - 1; // same as getPreviousVersion(change.getItem(), changeset).getCs())
//Item item = getPreviousVersion(change.getItem(), changeset);
//TFSVcs.assertTrue(changeType.contains(ChangeType.Value.Encoding));
myModifiedPaths.put(localPath, previousCs);
return;
}
TFSVcs.error("Unknown change: " + changeType + " for item " + change.getItem().getItem());
}