diff -r 121816063b9a -r 46455285c6b5 mercurial/localrepo.py --- a/mercurial/localrepo.py Sat Sep 22 19:05:36 2007 +0200 +++ b/mercurial/localrepo.py Sun Sep 23 15:29:58 2007 +0200 @@ -1045,14 +1045,14 @@ def undelete(self, list): wlock = None try: - p = self.dirstate.parents()[0] - mn = self.changelog.read(p)[0] - m = self.manifest.read(mn) + manifests = [self.manifest.read(self.changelog.read(p)[0]) + for p in self.dirstate.parents() if p != nullid] wlock = self.wlock() for f in list: if self.dirstate[f] != 'r': self.ui.warn("%s not removed!\n" % f) else: + m = f in manifests[0] and manifests[0] or manifests[1] t = self.file(f).read(m[f]) self.wwrite(f, t, m.flags(f)) self.dirstate.normal(f)