Mercurial > hg
changeset 30781:f2c069bf78ee
repair: clean up stale lock file from store backup
Since we did a directory rename on the stores, the source
repository's lock path now references the dest repository's
lock path and the dest repository's lock path now references
a non-existent filename.
So releasing the lock on the source will unlock the dest and
releasing the lock on the dest will no-op because it fails due
to file not found. So we clean up the dest's lock manually.
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Thu, 24 Nov 2016 18:45:29 -0800 |
parents | 2603d04889e1 |
children | db38cfc7c29d |
files | mercurial/repair.py tests/test-upgrade-repo.t |
diffstat | 2 files changed, 6 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/repair.py Thu Nov 24 18:34:50 2016 -0800 +++ b/mercurial/repair.py Thu Nov 24 18:45:29 2016 -0800 @@ -918,6 +918,12 @@ 'again\n')) scmutil.writerequires(srcrepo.vfs, requirements) + # The lock file from the old store won't be removed because nothing has a + # reference to its new location. So clean it up manually. Alternatively, we + # could update srcrepo.svfs and other variables to point to the new + # location. This is simpler. + backupvfs.unlink('store/lock') + return backuppath def upgraderepo(ui, repo, run=False, optimize=None):