Mercurial > hg
comparison mercurial/localrepo.py @ 8414:2348ce25849b
commitctx: use contexts more fully
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Thu, 14 May 2009 13:24:26 -0500 |
parents | 2bf4f380f6ab |
children | 221a18019b2b |
comparison
equal
deleted
inserted
replaced
8413:36448afdadd4 | 8414:2348ce25849b |
---|---|
827 """ | 827 """ |
828 | 828 |
829 tr = lock = None | 829 tr = lock = None |
830 valid = 0 # don't save the dirstate if this isn't set | 830 valid = 0 # don't save the dirstate if this isn't set |
831 remove = ctx.removed() | 831 remove = ctx.removed() |
832 | 832 p1, p2 = ctx.p1(), ctx.p2() |
833 p1, p2 = [p.node() for p in ctx.parents()] | 833 m1 = p1.manifest().copy() |
834 c1 = self.changelog.read(p1) | 834 m2 = p2.manifest() |
835 c2 = self.changelog.read(p2) | |
836 m1 = self.manifest.read(c1[0]).copy() | |
837 m2 = self.manifest.read(c2[0]) | |
838 user = ctx.user() | 835 user = ctx.user() |
839 | 836 |
840 xp1, xp2 = hex(p1), hex(p2) | 837 xp1, xp2 = p1.hex(), p2 and p2.hex() or '' |
841 if p2 == nullid: | |
842 xp2 = '' | |
843 self.hook("precommit", throw=True, parent1=xp1, parent2=xp2) | 838 self.hook("precommit", throw=True, parent1=xp1, parent2=xp2) |
844 | 839 |
845 lock = self.lock() | 840 lock = self.lock() |
846 try: | 841 try: |
847 tr = self.transaction() | 842 tr = self.transaction() |
882 | 877 |
883 for f in removed: | 878 for f in removed: |
884 if f in m1: | 879 if f in m1: |
885 del m1[f] | 880 del m1[f] |
886 removed1.append(f) | 881 removed1.append(f) |
887 mn = self.manifest.add(m1, trp, linkrev, c1[0], c2[0], | 882 mn = self.manifest.add(m1, trp, linkrev, p1.manifestnode(), |
888 (new, removed1)) | 883 p2.manifestnode(), (new, removed1)) |
889 | 884 |
890 text = ctx.description() | 885 text = ctx.description() |
891 if editor: | 886 if editor: |
892 text = editor(self, ctx, added, updated, removed) | 887 text = editor(self, ctx, added, updated, removed) |
893 | 888 |
895 while lines and not lines[0]: | 890 while lines and not lines[0]: |
896 del lines[0] | 891 del lines[0] |
897 text = '\n'.join(lines) | 892 text = '\n'.join(lines) |
898 | 893 |
899 self.changelog.delayupdate() | 894 self.changelog.delayupdate() |
900 n = self.changelog.add(mn, changed + removed, text, trp, p1, p2, | 895 n = self.changelog.add(mn, changed + removed, text, trp, |
896 p1.node(), p2.node(), | |
901 user, ctx.date(), ctx.extra().copy()) | 897 user, ctx.date(), ctx.extra().copy()) |
902 p = lambda: self.changelog.writepending() and self.root or "" | 898 p = lambda: self.changelog.writepending() and self.root or "" |
903 self.hook('pretxncommit', throw=True, node=hex(n), parent1=xp1, | 899 self.hook('pretxncommit', throw=True, node=hex(n), parent1=xp1, |
904 parent2=xp2, pending=p) | 900 parent2=xp2, pending=p) |
905 self.changelog.finalize(trp) | 901 self.changelog.finalize(trp) |