comparison mercurial/localrepo.py @ 8411:4d5916358abd

commit: move lots of commitctx outside of the repo lock
author Matt Mackall <mpm@selenic.com>
date Thu, 14 May 2009 13:21:20 -0500
parents 1d11d985c179
children 2bf4f380f6ab
comparison
equal deleted inserted replaced
8410:1d11d985c179 8411:4d5916358abd
824 Revision information is passed via the context argument. 824 Revision information is passed via the context argument.
825 If editor is supplied, it is called to get a commit message. 825 If editor is supplied, it is called to get a commit message.
826 If working is set, the working directory is affected. 826 If working is set, the working directory is affected.
827 """ 827 """
828 828
829 lock = self.lock()
830 tr = None 829 tr = None
831 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
832 try: 831 lock = None
833 commit = sorted(ctx.modified() + ctx.added()) 832 commit = sorted(ctx.modified() + ctx.added())
834 remove = ctx.removed() 833 remove = ctx.removed()
835 extra = ctx.extra().copy() 834 extra = ctx.extra().copy()
836 branchname = extra['branch'] 835 branchname = extra['branch']
837 user = ctx.user() 836 user = ctx.user()
838 text = ctx.description() 837 text = ctx.description()
839 838
840 p1, p2 = [p.node() for p in ctx.parents()] 839 p1, p2 = [p.node() for p in ctx.parents()]
841 c1 = self.changelog.read(p1) 840 c1 = self.changelog.read(p1)
842 c2 = self.changelog.read(p2) 841 c2 = self.changelog.read(p2)
843 m1 = self.manifest.read(c1[0]).copy() 842 m1 = self.manifest.read(c1[0]).copy()
844 m2 = self.manifest.read(c2[0]) 843 m2 = self.manifest.read(c2[0])
845 844
846 xp1 = hex(p1) 845 xp1 = hex(p1)
847 if p2 == nullid: xp2 = '' 846 if p2 == nullid: xp2 = ''
848 else: xp2 = hex(p2) 847 else: xp2 = hex(p2)
849 848 self.hook("precommit", throw=True, parent1=xp1, parent2=xp2)
850 self.hook("precommit", throw=True, parent1=xp1, parent2=xp2) 849
851 850 lock = self.lock()
851 try:
852 tr = self.transaction() 852 tr = self.transaction()
853 trp = weakref.proxy(tr) 853 trp = weakref.proxy(tr)
854 854
855 # check in files 855 # check in files
856 new = {} 856 new = {}