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) |