Set hashKeys = changes.keySet(); Iterator chgIter = hashKeys.iterator(); while(chgIter.hasNext()){ char action; String hashPathKey = (String)chgIter.next(); FSPathChange change = (FSPathChange)changes.get(hashPathKey); String path = hashPathKey;
for(Iterator paths = changes.keySet().iterator(); paths.hasNext();){ String changedPath = (String)paths.next(); FSPathChange change = (FSPathChange)changes.get(changedPath);
    public static Map detectChanged(File reposRootDir, FSRevisionNodePool revNodesPool, FSRoot root)throws SVNException{        Map returnChanged = new HashMap();        Map changes = FSReader.getFSpathChanged(reposRootDir, root);                if(changes.size() == 0){            return changes;        }        Set hashKeys = changes.keySet();        Iterator chgIter = hashKeys.iterator();        while(chgIter.hasNext()){            char action;            String hashPathKey = (String)chgIter.next();            FSPathChange change = (FSPathChange)changes.get(hashPathKey);            String path = hashPathKey;                                  if(change.getChangeKind() == FSPathChangeKind.FS_PATH_CHANGE_RESET){                continue;            }else if(change.getChangeKind() == FSPathChangeKind.FS_PATH_CHANGE_ADD){                action = 'A';            }else if(change.getChangeKind() == FSPathChangeKind.FS_PATH_CHANGE_DELETE){                action = 'D';            }else if(change.getChangeKind() == FSPathChangeKind.FS_PATH_CHANGE_REPLACE){                action = 'R';            }else{                action = 'M';            }            FSLogChangedPath itemCopyfrom = new FSLogChangedPath(action, new SVNLocationEntry(FSConstants.SVN_INVALID_REVNUM, null));            if(action == 'A' || action == 'R'){                                                SVNLocationEntry copyfromEntry = FSReader.copiedFrom(reposRootDir, root.getRootRevisionNode(), path, revNodesPool);                if(copyfromEntry.getPath() != null && FSRepository.isValidRevision(copyfromEntry.getRevision())){                    itemCopyfrom = new FSLogChangedPath(action, copyfromEntry);                }                            }            returnChanged.put(path, itemCopyfrom);        }        return returnChanged;    }