Mercurial > hg
comparison hgext/transplant.py @ 15204:3ce9b1a7538b
transplant: wrap a transaction around the whole command
author | Greg Ward <greg@gerg.ca> |
---|---|
date | Tue, 04 Oct 2011 19:43:45 -0400 |
parents | 39235b398248 |
children | f7db54b832af |
comparison
equal
deleted
inserted
replaced
15203:c7ce651a6bc9 | 15204:3ce9b1a7538b |
---|---|
103 p1, p2 = repo.dirstate.parents() | 103 p1, p2 = repo.dirstate.parents() |
104 pulls = [] | 104 pulls = [] |
105 diffopts = patch.diffopts(self.ui, opts) | 105 diffopts = patch.diffopts(self.ui, opts) |
106 diffopts.git = True | 106 diffopts.git = True |
107 | 107 |
108 lock = wlock = None | 108 lock = wlock = tr = None |
109 try: | 109 try: |
110 wlock = repo.wlock() | 110 wlock = repo.wlock() |
111 lock = repo.lock() | 111 lock = repo.lock() |
112 tr = repo.transaction('transplant') | |
112 for rev in revs: | 113 for rev in revs: |
113 node = revmap[rev] | 114 node = revmap[rev] |
114 revstr = '%s:%s' % (rev, short(node)) | 115 revstr = '%s:%s' % (rev, short(node)) |
115 | 116 |
116 if self.applied(repo, node, p1): | 117 if self.applied(repo, node, p1): |
170 % (short(node), | 171 % (short(node), |
171 short(n))) | 172 short(n))) |
172 finally: | 173 finally: |
173 if patchfile: | 174 if patchfile: |
174 os.unlink(patchfile) | 175 os.unlink(patchfile) |
176 tr.close() | |
175 if pulls: | 177 if pulls: |
176 repo.pull(source, heads=pulls) | 178 repo.pull(source, heads=pulls) |
177 merge.update(repo, pulls[-1], False, False, None) | 179 merge.update(repo, pulls[-1], False, False, None) |
178 finally: | 180 finally: |
179 self.saveseries(revmap, merges) | 181 self.saveseries(revmap, merges) |
180 self.transplants.write() | 182 self.transplants.write() |
183 if tr: | |
184 tr.release() | |
181 lock.release() | 185 lock.release() |
182 wlock.release() | 186 wlock.release() |
183 | 187 |
184 def filter(self, filter, node, changelog, patchfile): | 188 def filter(self, filter, node, changelog, patchfile): |
185 '''arbitrarily rewrite changeset before applying it''' | 189 '''arbitrarily rewrite changeset before applying it''' |