1260 |
1260 |
1261 def recover(ui, repo): |
1261 def recover(ui, repo): |
1262 """roll back an interrupted transaction""" |
1262 """roll back an interrupted transaction""" |
1263 repo.recover() |
1263 repo.recover() |
1264 |
1264 |
1265 def remove(ui, repo, file1, *files): |
1265 def remove(ui, repo, pat, *pats, **opts): |
1266 """remove the specified files on the next commit""" |
1266 """remove the specified files on the next commit""" |
1267 repo.remove(relpath(repo, (file1,) + files)) |
1267 names = [] |
|
1268 for src, abs, rel, exact in walk(repo, (pat,) + pats, opts): |
|
1269 if exact: |
|
1270 skip = {'m': 'file has pending merge', |
|
1271 'a': 'file has been marked for add (use forget)', |
|
1272 '?': 'file not managed'} |
|
1273 reason = skip.get(repo.dirstate.state(abs)) |
|
1274 if reason: |
|
1275 ui.warn('not removing %s: %s\n' % (rel, reason)) |
|
1276 else: |
|
1277 names.append(abs) |
|
1278 elif repo.dirstate.state(abs) == 'n': |
|
1279 ui.status('removing %s\n' % rel) |
|
1280 names.append(abs) |
|
1281 repo.remove(names) |
1268 |
1282 |
1269 def revert(ui, repo, *names, **opts): |
1283 def revert(ui, repo, *names, **opts): |
1270 """revert modified files or dirs back to their unmodified states""" |
1284 """revert modified files or dirs back to their unmodified states""" |
1271 node = opts['rev'] and repo.lookup(opts['rev']) or \ |
1285 node = opts['rev'] and repo.lookup(opts['rev']) or \ |
1272 repo.dirstate.parents()[0] |
1286 repo.dirstate.parents()[0] |
1695 ('m', 'message', "", 'commit message'), |
1709 ('m', 'message', "", 'commit message'), |
1696 ('t', 'text', "", 'commit message (deprecated: use -m)'), |
1710 ('t', 'text', "", 'commit message (deprecated: use -m)'), |
1697 ('l', 'logfile', "", 'commit message file')], |
1711 ('l', 'logfile', "", 'commit message file')], |
1698 'hg rawcommit [OPTION]... [FILE]...'), |
1712 'hg rawcommit [OPTION]... [FILE]...'), |
1699 "recover": (recover, [], "hg recover"), |
1713 "recover": (recover, [], "hg recover"), |
1700 "^remove|rm": (remove, [], "hg remove FILE..."), |
1714 "^remove|rm": (remove, |
|
1715 [('I', 'include', [], 'include path in search'), |
|
1716 ('X', 'exclude', [], 'exclude path from search')], |
|
1717 "hg remove [OPTION]... FILE..."), |
1701 "^revert": |
1718 "^revert": |
1702 (revert, |
1719 (revert, |
1703 [("n", "nonrecursive", None, "don't recurse into subdirs"), |
1720 [("n", "nonrecursive", None, "don't recurse into subdirs"), |
1704 ("r", "rev", "", "revision")], |
1721 ("r", "rev", "", "revision")], |
1705 "hg revert [-n] [-r REV] [NAME]..."), |
1722 "hg revert [-n] [-r REV] [NAME]..."), |