String[] r = s.split("\\00");
if (r.length < 7) {
repo.getLog().dump(getClass(), Severity.Error, "Expect at least 7 zero-separated fields in the merge state file, not %d. Entry skipped", r.length);
continue;
}
Path p1fname = pathPool.path(r[3]);
Nodeid nidP1 = m1.nodeid(p1fname);
Nodeid nidCA = nodeidPool.unify(Nodeid.fromAscii(r[5]));
HgFileRevision p1 = new HgFileRevision(hgRepo, nidP1, m1.flags(p1fname), p1fname);
HgFileRevision ca;
if (nidCA == nidP1 && r[3].equals(r[4])) {
ca = p1;
} else {
ca = new HgFileRevision(hgRepo, nidCA, null, pathPool.path(r[4]));
}
HgFileRevision p2;
if (!wcp2.isNull() || !r[6].equals(r[4])) {
final Path p2fname = pathPool.path(r[6]);
Nodeid nidP2 = m2.nodeid(p2fname);
if (nidP2 == null) {
assert false : "There's not enough information (or I don't know where to look) in merge/state to find out what's the second parent";
nidP2 = NULL;
}