Mercurial > hg
changeset 41028:095a0a63ad88
narrow: when narrowing, write new narrowspec before removing revlogs
If revlogs were removed and then the process crashed before the
narrowspec was written, the repo would be corrupt.
Differential Revision: https://phab.mercurial-scm.org/D5467
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Wed, 05 Dec 2018 15:30:56 -0800 |
parents | 74e023f5a922 |
children | b2de94e59702 |
files | hgext/narrow/narrowcommands.py |
diffstat | 1 files changed, 4 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/narrow/narrowcommands.py Fri Nov 23 22:12:04 2018 -0800 +++ b/hgext/narrow/narrowcommands.py Wed Dec 05 15:30:56 2018 -0800 @@ -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()