139 |
139 |
140 def warn(files, reason): |
140 def warn(files, reason): |
141 for f in files: |
141 for f in files: |
142 ui.warn(_('not removing %s: %s (use forget to undo)\n') |
142 ui.warn(_('not removing %s: %s (use forget to undo)\n') |
143 % (m.rel(f), reason)) |
143 % (m.rel(f), reason)) |
|
144 return int(len(files) > 0) |
|
145 |
|
146 result = 0 |
144 |
147 |
145 if after: |
148 if after: |
146 remove, forget = deleted, [] |
149 remove, forget = deleted, [] |
147 warn(modified + added + clean, _('file still exists')) |
150 result = warn(modified + added + clean, _('file still exists')) |
148 else: |
151 else: |
149 remove, forget = deleted + clean, [] |
152 remove, forget = deleted + clean, [] |
150 warn(modified, _('file is modified')) |
153 result = warn(modified, _('file is modified')) |
151 warn(added, _('file has been marked for add')) |
154 result = warn(added, _('file has been marked for add')) or result |
152 |
155 |
153 for f in sorted(remove + forget): |
156 for f in sorted(remove + forget): |
154 if ui.verbose or not m.exact(f): |
157 if ui.verbose or not m.exact(f): |
155 ui.status(_('removing %s\n') % m.rel(f)) |
158 ui.status(_('removing %s\n') % m.rel(f)) |
156 |
159 |
179 else: |
182 else: |
180 lfutil.reporemove(repo, remove, unlink=False) |
183 lfutil.reporemove(repo, remove, unlink=False) |
181 finally: |
184 finally: |
182 wlock.release() |
185 wlock.release() |
183 |
186 |
|
187 return result |
|
188 |
184 # For overriding mercurial.hgweb.webcommands so that largefiles will |
189 # For overriding mercurial.hgweb.webcommands so that largefiles will |
185 # appear at their right place in the manifests. |
190 # appear at their right place in the manifests. |
186 def decodepath(orig, path): |
191 def decodepath(orig, path): |
187 return lfutil.splitstandin(path) or path |
192 return lfutil.splitstandin(path) or path |
188 |
193 |
205 |
210 |
206 return (result == 1 or bad) and 1 or 0 |
211 return (result == 1 or bad) and 1 or 0 |
207 |
212 |
208 def overrideremove(orig, ui, repo, *pats, **opts): |
213 def overrideremove(orig, ui, repo, *pats, **opts): |
209 installnormalfilesmatchfn(repo[None].manifest()) |
214 installnormalfilesmatchfn(repo[None].manifest()) |
210 orig(ui, repo, *pats, **opts) |
215 result = orig(ui, repo, *pats, **opts) |
211 restorematchfn() |
216 restorematchfn() |
212 removelargefiles(ui, repo, *pats, **opts) |
217 return removelargefiles(ui, repo, *pats, **opts) or result |
213 |
218 |
214 def overridestatusfn(orig, repo, rev2, **opts): |
219 def overridestatusfn(orig, repo, rev2, **opts): |
215 try: |
220 try: |
216 repo._repo.lfstatus = True |
221 repo._repo.lfstatus = True |
217 return orig(repo, rev2, **opts) |
222 return orig(repo, rev2, **opts) |