diff -r 92455c1d6f83 -r b8d750daadde mercurial/localrepo.py --- a/mercurial/localrepo.py Sun Jan 18 19:59:51 2009 +0100 +++ b/mercurial/localrepo.py Mon Feb 16 19:35:07 2009 -0600 @@ -88,6 +88,10 @@ def __getattr__(self, name): if name == 'changelog': self.changelog = changelog.changelog(self.sopener) + if 'HG_PENDING' in os.environ: + p = os.environ['HG_PENDING'] + if p.startswith(self.root): + self.changelog.readpending('00changelog.i.a') self.sopener.defversion = self.changelog.version return self.changelog if name == 'manifest': @@ -955,10 +959,13 @@ raise util.Abort(_("empty commit message")) text = '\n'.join(lines) + self.changelog.delayupdate() n = self.changelog.add(mn, changed + removed, text, trp, p1, p2, user, wctx.date(), extra) + p = lambda: self.changelog.writepending() and self.root or "" self.hook('pretxncommit', throw=True, node=hex(n), parent1=xp1, - parent2=xp2) + parent2=xp2, pending=p) + self.changelog.finalize(trp) tr.close() if self.branchcache: @@ -2034,9 +2041,6 @@ revisions += len(fl) - o files += 1 - # make changelog see real files again - cl.finalize(trp) - newheads = len(self.changelog.heads()) heads = "" if oldheads and newheads != oldheads: @@ -2047,9 +2051,13 @@ % (changesets, revisions, files, heads)) if changesets > 0: + p = lambda: self.changelog.writepending() and self.root or "" self.hook('pretxnchangegroup', throw=True, node=hex(self.changelog.node(cor+1)), source=srctype, - url=url) + url=url, pending=p) + + # make changelog see real files again + cl.finalize(trp) tr.close() finally: