--- a/hgext/strip.py Mon Feb 25 16:49:01 2019 +0300
+++ b/hgext/strip.py Tue Oct 16 15:48:00 2018 +0200
@@ -76,7 +76,8 @@
return unode
-def strip(ui, repo, revs, update=True, backup=True, force=None, bookmarks=None):
+def strip(ui, repo, revs, update=True, backup=True, force=None, bookmarks=None,
+ soft=False):
with repo.wlock(), repo.lock():
if update:
@@ -85,7 +86,10 @@
hg.clean(repo, urev)
repo.dirstate.write(repo.currenttransaction())
- repair.strip(ui, repo, revs, backup)
+ if soft:
+ repair.softstrip(ui, repo, revs, backup)
+ else:
+ repair.strip(ui, repo, revs, backup)
repomarks = repo._bookmarks
if bookmarks:
@@ -110,7 +114,10 @@
('k', 'keep', None, _("do not modify working directory during "
"strip")),
('B', 'bookmark', [], _("remove revs only reachable from given"
- " bookmark"), _('BOOKMARK'))],
+ " bookmark"), _('BOOKMARK')),
+ ('', 'soft', None,
+ _("simply drop changesets from visible history (EXPERIMENTAL)")),
+ ],
_('hg strip [-k] [-f] [-B bookmark] [-r] REV...'),
helpcategory=command.CATEGORY_MAINTENANCE)
def stripcmd(ui, repo, *revs, **opts):
@@ -235,6 +242,7 @@
strip(ui, repo, revs, backup=backup, update=update,
- force=opts.get('force'), bookmarks=bookmarks)
+ force=opts.get('force'), bookmarks=bookmarks,
+ soft=opts['soft'])
return 0