diff -r 3da456d0c885 -r e41e2b79883d mercurial/localrepo.py --- a/mercurial/localrepo.py Mon Nov 22 18:15:58 2010 +0100 +++ b/mercurial/localrepo.py Mon Nov 22 12:43:31 2010 -0600 @@ -178,7 +178,19 @@ @propertycache def dirstate(self): - return dirstate.dirstate(self.opener, self.ui, self.root) + warned = [0] + def validate(node): + try: + r = self.changelog.rev(node) + return node + except error.LookupError: + if not warned[0]: + warned[0] = True + self.ui.warn(_("warning: ignoring unknown" + " working parent %s!\n" % short(node))) + return nullid + + return dirstate.dirstate(self.opener, self.ui, self.root, validate) def __getitem__(self, changeid): if changeid is None: