comparison mercurial/scmutil.py @ 45919:aba4f2c97e74

scmutil: try-delete `.hg/store/requires` if store requirements are empty When downgrading from a shared-safe repository to non-shared-safe repository, we end up in a case where we had requirements stored in `.hg/store/requires` but no longer want them there. Let's explicitly try delete the `.hg/store/requires` file if store requirements are empty. Differential Revision: https://phab.mercurial-scm.org/D9357
author Pulkit Goyal <7895pulkit@gmail.com>
date Fri, 16 Oct 2020 19:03:09 +0530
parents 8f50dc096cf4
children 89a2afe31e82
comparison
equal deleted inserted replaced
45918:ac565222b9f8 45919:aba4f2c97e74
1578 wcreq, storereq = filterrequirements(repo.requirements) 1578 wcreq, storereq = filterrequirements(repo.requirements)
1579 if wcreq is not None: 1579 if wcreq is not None:
1580 writerequires(repo.vfs, wcreq) 1580 writerequires(repo.vfs, wcreq)
1581 if storereq is not None: 1581 if storereq is not None:
1582 writerequires(repo.svfs, storereq) 1582 writerequires(repo.svfs, storereq)
1583 elif repo.ui.configbool(b'format', b'usestore'):
1584 # only remove store requires if we are using store
1585 repo.svfs.tryunlink(b'requires')
1583 1586
1584 1587
1585 def writerequires(opener, requirements): 1588 def writerequires(opener, requirements):
1586 with opener(b'requires', b'w', atomictemp=True) as fp: 1589 with opener(b'requires', b'w', atomictemp=True) as fp:
1587 for r in sorted(requirements): 1590 for r in sorted(requirements):