# HG changeset patch # User Dirkjan Ochtman # Date 1207323871 -7200 # Node ID 8c4cd80afd3e7de3841b0bd9786444c84073bf23 # Parent 0c1ec0cd7c6ad4d53fa581c390fe9aa5470989d8 mq: add --force option to strip diff -r 0c1ec0cd7c6a -r 8c4cd80afd3e hgext/mq.py --- a/hgext/mq.py Fri Apr 04 22:19:24 2008 +0200 +++ b/hgext/mq.py Fri Apr 04 17:44:31 2008 +0200 @@ -662,14 +662,14 @@ finally: del wlock - def strip(self, repo, rev, update=True, backup="all"): + def strip(self, repo, rev, update=True, backup="all", force=None): wlock = lock = None try: wlock = repo.wlock() lock = repo.lock() if update: - self.check_localchanges(repo, refresh=False) + self.check_localchanges(repo, force=force, refresh=False) urev = self.qparents(repo, rev) hg.clean(repo, urev) repo.dirstate.write() @@ -2043,7 +2043,7 @@ elif opts['nobackup']: backup = 'none' update = repo.dirstate.parents()[0] != revlog.nullid - repo.mq.strip(repo, rev, backup=backup, update=update) + repo.mq.strip(repo, rev, backup=backup, update=update, force=opts['force']) return 0 def select(ui, repo, *args, **opts): @@ -2352,7 +2352,8 @@ _('hg qseries [-ms]')), "^strip": (strip, - [('b', 'backup', None, _('bundle unrelated changesets')), + [('f', 'force', None, _('force removal with local changes')), + ('b', 'backup', None, _('bundle unrelated changesets')), ('n', 'nobackup', None, _('no backups'))], _('hg strip [-f] [-b] [-n] REV')), "qtop": (top, [] + seriesopts, _('hg qtop [-s]')), diff -r 0c1ec0cd7c6a -r 8c4cd80afd3e tests/test-mq --- a/tests/test-mq Fri Apr 04 22:19:24 2008 +0200 +++ b/tests/test-mq Fri Apr 04 17:44:31 2008 +0200 @@ -266,6 +266,14 @@ hg strip tip 2>&1 | sed 's/\(saving bundle to \).*/\1/' hg unbundle .hg/strip-backup/* +echo % strip with local changes, should complain +hg up +echo y>y +hg add y +hg strip tip | sed 's/\(saving bundle to \).*/\1/' +echo % --force strip with local changes +hg strip -f tip 2>&1 | sed 's/\(saving bundle to \).*/\1/' + echo '% cd b; hg qrefresh' hg init refresh cd refresh diff -r 0c1ec0cd7c6a -r 8c4cd80afd3e tests/test-mq.out --- a/tests/test-mq.out Fri Apr 04 22:19:24 2008 +0200 +++ b/tests/test-mq.out Fri Apr 04 17:44:31 2008 +0200 @@ -250,6 +250,12 @@ adding file changes added 1 changesets with 1 changes to 1 files (run 'hg update' to get a working copy) +% strip with local changes, should complain +1 files updated, 0 files merged, 0 files removed, 0 files unresolved +abort: local changes found +% --force strip with local changes +0 files updated, 0 files merged, 2 files removed, 0 files unresolved +saving bundle to % cd b; hg qrefresh adding a foo