Show More
@@ -527,7 +527,7 b' def docopy(ui, repo, pats, opts, wlock):' | |||||
527 | restore = False |
|
527 | restore = False | |
528 | finally: |
|
528 | finally: | |
529 | if restore: |
|
529 | if restore: | |
530 | repo.remove([abstarget], wlock) |
|
530 | repo.remove([abstarget], wlock=wlock) | |
531 | except IOError, inst: |
|
531 | except IOError, inst: | |
532 | if inst.errno == errno.ENOENT: |
|
532 | if inst.errno == errno.ENOENT: | |
533 | ui.warn(_('%s: deleted in working copy\n') % relsrc) |
|
533 | ui.warn(_('%s: deleted in working copy\n') % relsrc) | |
@@ -2082,7 +2082,8 b' def remove(ui, repo, *pats, **opts):' | |||||
2082 | This only removes files from the current branch, not from the |
|
2082 | This only removes files from the current branch, not from the | |
2083 | entire project history. If the files still exist in the working |
|
2083 | entire project history. If the files still exist in the working | |
2084 | directory, they will be deleted from it. If invoked with --after, |
|
2084 | directory, they will be deleted from it. If invoked with --after, | |
2085 | files that have been manually deleted are marked as removed. |
|
2085 | files are marked as removed, but not actually unlinked unless --force | |
|
2086 | is also given. | |||
2086 |
|
2087 | |||
2087 | This command schedules the files to be removed at the next commit. |
|
2088 | This command schedules the files to be removed at the next commit. | |
2088 | To undo a remove before that, see hg revert. |
|
2089 | To undo a remove before that, see hg revert. | |
@@ -2100,9 +2101,7 b' def remove(ui, repo, *pats, **opts):' | |||||
2100 | remove, forget = [], [] |
|
2101 | remove, forget = [], [] | |
2101 | for src, abs, rel, exact in cmdutil.walk(repo, pats, opts): |
|
2102 | for src, abs, rel, exact in cmdutil.walk(repo, pats, opts): | |
2102 | reason = None |
|
2103 | reason = None | |
2103 |
if abs |
|
2104 | if abs in modified and not opts['force']: | |
2104 | reason = _('is still present') |
|
|||
2105 | elif abs in modified and not opts['force']: |
|
|||
2106 | reason = _('is modified (use -f to force removal)') |
|
2105 | reason = _('is modified (use -f to force removal)') | |
2107 | elif abs in added: |
|
2106 | elif abs in added: | |
2108 | if opts['force']: |
|
2107 | if opts['force']: | |
@@ -2121,7 +2120,7 b' def remove(ui, repo, *pats, **opts):' | |||||
2121 | ui.status(_('removing %s\n') % rel) |
|
2120 | ui.status(_('removing %s\n') % rel) | |
2122 | remove.append(abs) |
|
2121 | remove.append(abs) | |
2123 | repo.forget(forget) |
|
2122 | repo.forget(forget) | |
2124 | repo.remove(remove, unlink=not opts['after']) |
|
2123 | repo.remove(remove, unlink=opts['force'] or not opts['after']) | |
2125 |
|
2124 | |||
2126 | def rename(ui, repo, *pats, **opts): |
|
2125 | def rename(ui, repo, *pats, **opts): | |
2127 | """rename files; equivalent of copy + remove |
|
2126 | """rename files; equivalent of copy + remove | |
@@ -2145,7 +2144,7 b' def rename(ui, repo, *pats, **opts):' | |||||
2145 | ui.status(_('removing %s\n') % rel) |
|
2144 | ui.status(_('removing %s\n') % rel) | |
2146 | names.append(abs) |
|
2145 | names.append(abs) | |
2147 | if not opts.get('dry_run'): |
|
2146 | if not opts.get('dry_run'): | |
2148 | repo.remove(names, True, wlock) |
|
2147 | repo.remove(names, True, wlock=wlock) | |
2149 | return errs |
|
2148 | return errs | |
2150 |
|
2149 | |||
2151 | def revert(ui, repo, *pats, **opts): |
|
2150 | def revert(ui, repo, *pats, **opts): |
@@ -1031,8 +1031,7 b' class localrepository(repo.repository):' | |||||
1031 | if not wlock: |
|
1031 | if not wlock: | |
1032 | wlock = self.wlock() |
|
1032 | wlock = self.wlock() | |
1033 | for f in list: |
|
1033 | for f in list: | |
1034 |
|
|
1034 | if unlink and os.path.exists(self.wjoin(f)): | |
1035 | if os.path.exists(p): |
|
|||
1036 | self.ui.warn(_("%s still exists!\n") % f) |
|
1035 | self.ui.warn(_("%s still exists!\n") % f) | |
1037 | elif self.dirstate.state(f) == 'a': |
|
1036 | elif self.dirstate.state(f) == 'a': | |
1038 | self.dirstate.forget([f]) |
|
1037 | self.dirstate.forget([f]) |
@@ -23,10 +23,13 b' hg add a' | |||||
23 | hg rm a |
|
23 | hg rm a | |
24 | hg rm -f a |
|
24 | hg rm -f a | |
25 | echo b > b |
|
25 | echo b > b | |
|
26 | echo c > c | |||
26 | hg ci -A -m 3 -d "1000001 0" |
|
27 | hg ci -A -m 3 -d "1000001 0" | |
27 | echo c >> b |
|
28 | echo c >> b | |
28 | hg rm b |
|
29 | hg rm b | |
29 | hg rm -f b |
|
30 | hg rm -f b | |
|
31 | hg rm -A c | |||
|
32 | cat c | |||
30 |
|
33 | |||
31 | cd .. |
|
34 | cd .. | |
32 | hg clone a b |
|
35 | hg clone a b |
@@ -52,5 +52,7 b' diff -r 8ba83d44753d -r a1fce69c50d9 foo' | |||||
52 | not removing a: file has been marked for add (use -f to force removal) |
|
52 | not removing a: file has been marked for add (use -f to force removal) | |
53 | adding a |
|
53 | adding a | |
54 | adding b |
|
54 | adding b | |
|
55 | adding c | |||
55 | not removing b: file is modified (use -f to force removal) |
|
56 | not removing b: file is modified (use -f to force removal) | |
56 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
57 | c | |
|
58 | 3 files updated, 0 files merged, 0 files removed, 0 files unresolved |
General Comments 0
You need to be logged in to leave comments.
Login now