comparison hgext/rebase.py @ 8454:6d4bf1c1a003

rebase: use set instead of dict
author Benoit Boissinot <benoit.boissinot@ens-lyon.org>
date Sun, 17 May 2009 02:55:22 +0200
parents 3477ad0b1f2c
children 94ca38e63576
comparison
equal deleted inserted replaced
8453:d1ca637b0773 8454:6d4bf1c1a003
49 If a rebase is interrupted to manually resolve a merge, it can be 49 If a rebase is interrupted to manually resolve a merge, it can be
50 continued with --continue/-c or aborted with --abort/-a. 50 continued with --continue/-c or aborted with --abort/-a.
51 """ 51 """
52 originalwd = target = None 52 originalwd = target = None
53 external = nullrev 53 external = nullrev
54 state = skipped = {} 54 state = {}
55 skipped = set()
55 56
56 lock = wlock = None 57 lock = wlock = None
57 try: 58 try:
58 lock = repo.lock() 59 lock = repo.lock()
59 wlock = repo.wlock() 60 wlock = repo.wlock()
141 if skipped: 142 if skipped:
142 ui.note(_("%d revisions have been skipped\n") % len(skipped)) 143 ui.note(_("%d revisions have been skipped\n") % len(skipped))
143 finally: 144 finally:
144 release(lock, wlock) 145 release(lock, wlock)
145 146
146 def concludenode(repo, rev, p1, p2, state, collapse, last=False, skipped={}, 147 def concludenode(repo, rev, p1, p2, state, collapse, last=False, skipped=None,
147 extrafn=None): 148 extrafn=None):
148 """Skip commit if collapsing has been required and rev is not the last 149 """Skip commit if collapsing has been required and rev is not the last
149 revision, commit otherwise 150 revision, commit otherwise
150 """ 151 """
151 repo.ui.debug(_(" set parents\n")) 152 repo.ui.debug(_(" set parents\n"))
152 if collapse and not last: 153 if collapse and not last:
153 repo.dirstate.setparents(repo[p1].node()) 154 repo.dirstate.setparents(repo[p1].node())
154 return None 155 return None
155 156
156 repo.dirstate.setparents(repo[p1].node(), repo[p2].node()) 157 repo.dirstate.setparents(repo[p1].node(), repo[p2].node())
158
159 if skipped is None:
160 skipped = set()
157 161
158 # Commit, record the old nodeid 162 # Commit, record the old nodeid
159 m, a, r = repo.status()[:3] 163 m, a, r = repo.status()[:3]
160 newrev = nullrev 164 newrev = nullrev
161 try: 165 try:
232 state[rev] = repo[newrev].rev() 236 state[rev] = repo[newrev].rev()
233 else: 237 else:
234 if not collapse: 238 if not collapse:
235 repo.ui.note(_('no changes, revision %d skipped\n') % rev) 239 repo.ui.note(_('no changes, revision %d skipped\n') % rev)
236 repo.ui.debug(_('next revision set to %s\n') % p1) 240 repo.ui.debug(_('next revision set to %s\n') % p1)
237 skipped[rev] = True 241 skipped.add(rev)
238 state[rev] = p1 242 state[rev] = p1
239 243
240 def defineparents(repo, rev, target, state, targetancestors): 244 def defineparents(repo, rev, target, state, targetancestors):
241 'Return the new parent relationship of the revision that will be rebased' 245 'Return the new parent relationship of the revision that will be rebased'
242 parents = repo[rev].parents() 246 parents = repo[rev].parents()