public static List<Record> getStatus(Map<String, LinkDigest> working,
                                         Map<String, LinkDigest> parent,
                                         Map<String, LinkDigest> rebase) {

        // LATER: Is this worth cleaning up?
        // RemoteWikiTextChanges has a copy of changes. Pass it in? Not worth it? diff is cheap
        FileManifest.Changes changes = FileManifest.diff(parent, rebase);

        HashMap<String, Integer> opLut = new HashMap<String, Integer>();
        for (String name : changes.mAdded) { opLut.put(name, OP_ADDED); }
        for (String name : changes.mDeleted) { opLut.put(name, OP_DELETED); }
        for (String name : changes.mModified) { opLut.put(name, OP_MODIFIED); }

        List<String> ordered = new ArrayList<String>(opLut.keySet());
        Collections.sort(ordered);

        List<Record> records = new ArrayList<Record>();
        for (String name : ordered) {
            int state = 0;
            LinkDigest workingDigest = get(working, name);
            if (workingDigest.equals(get(parent, name))) {
                state = PARENT;
            } else if (workingDigest.equals(get(rebase, name))) {
                state = REBASE;
            } else {
                state = LOCALLY_MODIFIED;
            }
            //System.err.println(String.format("%s, %d, %d", name, opLut.get(name), state));
            records.add(new Record(name, opLut.get(name), state));
        }
        return records;
    }