Mercurial > public > mercurial-scm > hg
diff hgext/rebase.py @ 13766:627e50e9e316
rebase: restore mq guards after rebasing (issue2107)
Guards on rebased mq patches were lost.
This patch restores them after the qimporting step.
author | Stefano Tortarolo <stefano.tortarolo@gmail.com> |
---|---|
date | Sat, 26 Mar 2011 13:05:17 +0100 |
parents | 4e2690a764c1 |
children | 46c3043253fb |
line wrap: on
line diff
--- a/hgext/rebase.py Fri Mar 25 22:18:05 2011 +0200 +++ b/hgext/rebase.py Sat Mar 26 13:05:17 2011 +0100 @@ -361,6 +361,8 @@ 'Update rebased mq patches - finalize and then import them' mqrebase = {} mq = repo.mq + original_series = mq.full_series[:] + for p in mq.applied: rev = repo[p.node].rev() if rev in state: @@ -378,6 +380,15 @@ repo.ui.debug('import mq patch %d (%s)\n' % (state[rev], name)) mq.qimport(repo, (), patchname=name, git=isgit, rev=[str(state[rev])]) + + # Restore missing guards + for s in original_series: + pname = mq.guard_re.split(s, 1)[0] + if pname in mq.full_series: + repo.ui.debug('restoring guard for patch %s' % (pname)) + mq.full_series.remove(pname) + mq.full_series.append(s) + mq.series_dirty = True mq.save_dirty() def storestatus(repo, originalwd, target, state, collapse, keep, keepbranches,