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() |