diff --git a/hgext/narrow/narrowcommands.py b/hgext/narrow/narrowcommands.py --- a/hgext/narrow/narrowcommands.py +++ b/hgext/narrow/narrowcommands.py @@ -242,6 +242,10 @@ repo.destroying() with repo.transaction("narrowing"): + # Update narrowspec before removing revlogs, so repo won't be + # corrupt in case of crash + repo.setnarrowpats(newincludes, newexcludes) + for f in todelete: ui.status(_('deleting %s\n') % f) util.unlinkpath(repo.svfs.join(f)) @@ -249,7 +253,6 @@ _narrowcleanupwdir(repo, oldincludes, oldexcludes, newincludes, newexcludes, oldmatch, newmatch) - repo.setnarrowpats(newincludes, newexcludes) repo.destroyed()