mercurial/narrowspec.py
changeset 38872 576eef1ab43d
parent 38871 204e074c188e
child 39525 2675d561f5cb
equal deleted inserted replaced
38871:204e074c188e 38872:576eef1ab43d
   106 def needsexpansion(includes):
   106 def needsexpansion(includes):
   107     return [i for i in includes if i.startswith('include:')]
   107     return [i for i in includes if i.startswith('include:')]
   108 
   108 
   109 def load(repo):
   109 def load(repo):
   110     try:
   110     try:
   111         spec = repo.vfs.read(FILENAME)
   111         spec = repo.svfs.read(FILENAME)
   112     except IOError as e:
   112     except IOError as e:
   113         # Treat "narrowspec does not exist" the same as "narrowspec file exists
   113         # Treat "narrowspec does not exist" the same as "narrowspec file exists
   114         # and is empty".
   114         # and is empty".
   115         if e.errno == errno.ENOENT:
   115         if e.errno == errno.ENOENT:
   116             return set(), set()
   116             return set(), set()
   123                             " suported in narrowspec"))
   123                             " suported in narrowspec"))
   124     return includepats, excludepats
   124     return includepats, excludepats
   125 
   125 
   126 def save(repo, includepats, excludepats):
   126 def save(repo, includepats, excludepats):
   127     spec = format(includepats, excludepats)
   127     spec = format(includepats, excludepats)
   128     repo.vfs.write(FILENAME, spec)
   128     repo.svfs.write(FILENAME, spec)
   129 
   129 
   130 def savebackup(repo, backupname):
   130 def savebackup(repo, backupname):
   131     if repository.NARROW_REQUIREMENT not in repo.requirements:
   131     if repository.NARROW_REQUIREMENT not in repo.requirements:
   132         return
   132         return
   133     vfs = repo.vfs
   133     vfs = repo.vfs
   134     vfs.tryunlink(backupname)
   134     vfs.tryunlink(backupname)
   135     util.copyfile(vfs.join(FILENAME), vfs.join(backupname), hardlink=True)
   135     util.copyfile(repo.svfs.join(FILENAME), vfs.join(backupname), hardlink=True)
   136 
   136 
   137 def restorebackup(repo, backupname):
   137 def restorebackup(repo, backupname):
   138     if repository.NARROW_REQUIREMENT not in repo.requirements:
   138     if repository.NARROW_REQUIREMENT not in repo.requirements:
   139         return
   139         return
   140     repo.vfs.rename(backupname, FILENAME)
   140     util.rename(repo.vfs.join(backupname), repo.svfs.join(FILENAME))
   141 
   141 
   142 def clearbackup(repo, backupname):
   142 def clearbackup(repo, backupname):
   143     if repository.NARROW_REQUIREMENT not in repo.requirements:
   143     if repository.NARROW_REQUIREMENT not in repo.requirements:
   144         return
   144         return
   145     repo.vfs.unlink(backupname)
   145     repo.vfs.unlink(backupname)