1685 elif repo.ui.configbool(b'format', b'usestore'): |
1685 elif repo.ui.configbool(b'format', b'usestore'): |
1686 # only remove store requires if we are using store |
1686 # only remove store requires if we are using store |
1687 repo.svfs.tryunlink(b'requires') |
1687 repo.svfs.tryunlink(b'requires') |
1688 |
1688 |
1689 |
1689 |
|
1690 def readrequires(vfs, allowmissing): |
|
1691 """reads the require file present at root of this vfs |
|
1692 and return a set of requirements |
|
1693 |
|
1694 If allowmissing is True, we suppress FileNotFoundError if raised""" |
|
1695 # requires file contains a newline-delimited list of |
|
1696 # features/capabilities the opener (us) must have in order to use |
|
1697 # the repository. This file was introduced in Mercurial 0.9.2, |
|
1698 # which means very old repositories may not have one. We assume |
|
1699 # a missing file translates to no requirements. |
|
1700 read = vfs.tryread if allowmissing else vfs.read |
|
1701 return set(read(b'requires').splitlines()) |
|
1702 |
|
1703 |
1690 def writerequires(opener, requirements) -> None: |
1704 def writerequires(opener, requirements) -> None: |
1691 with opener(b'requires', b'w', atomictemp=True) as fp: |
1705 with opener(b'requires', b'w', atomictemp=True) as fp: |
1692 for r in sorted(requirements): |
1706 for r in sorted(requirements): |
1693 fp.write(b"%s\n" % r) |
1707 fp.write(b"%s\n" % r) |
1694 |
1708 |