Mercurial > public > mercurial-scm > hg
diff hgext/mq.py @ 11064:590b1d6ef50b
mq: qpush --move, reorder patch series and apply only the patch
This makes it less necessary to edit .hg/patches/series manually.
author | Mads Kiilerich <mads@kiilerich.com> |
---|---|
date | Fri, 30 Apr 2010 15:05:51 +0200 |
parents | 5d35f7d93514 |
children | 37d1b20168d1 |
line wrap: on
line diff
--- a/hgext/mq.py Mon Apr 19 17:41:12 2010 +0900 +++ b/hgext/mq.py Fri Apr 30 15:05:51 2010 +0200 @@ -978,7 +978,7 @@ raise util.Abort(_("patch %s not in series") % patch) def push(self, repo, patch=None, force=False, list=False, - mergeq=None, all=False): + mergeq=None, all=False, move=False): diffopts = self.diffopts() wlock = repo.wlock() try: @@ -1034,6 +1034,15 @@ if not force: self.check_localchanges(repo) + if move: + try: + del self.full_series[self.full_series.index(patch, start)] + except ValueError: + raise util.Abort(_("patch '%s' not found") % patch) + self.full_series.insert(start, patch) + self.parse_series() + self.series_dirty = 1 + self.applied_dirty = 1 if start > 0: self.check_toppatch(repo) @@ -2222,7 +2231,7 @@ mergeq = queue(ui, repo.join(""), newpath) ui.warn(_("merging with queue at: %s\n") % mergeq.path) ret = q.push(repo, patch, force=opts['force'], list=opts['list'], - mergeq=mergeq, all=opts.get('all')) + mergeq=mergeq, all=opts.get('all'), move=opts.get('move')) return ret def pop(ui, repo, patch=None, **opts): @@ -2735,8 +2744,9 @@ ('l', 'list', None, _('list patch name in commit text')), ('a', 'all', None, _('apply all patches')), ('m', 'merge', None, _('merge from another queue (DEPRECATED)')), - ('n', 'name', '', _('merge queue name (DEPRECATED)'))], - _('hg qpush [-f] [-l] [-a] [-m] [-n NAME] [PATCH | INDEX]')), + ('n', 'name', '', _('merge queue name (DEPRECATED)')), + ('', 'move', None, _('reorder patch series and apply only the patch'))], + _('hg qpush [-f] [-l] [-a] [-m] [-n NAME] [--move] [PATCH | INDEX]')), "^qrefresh": (refresh, [('e', 'edit', None, _('edit commit message')),