Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/commands.py @ 4490:c927c568a5ad
Automated merge with http://hg.intevation.org/mercurial/crew
author | Bryan O'Sullivan <bos@serpentine.com> |
---|---|
date | Sun, 27 May 2007 14:43:29 -0700 |
parents | 62019c4427e3 8fa54b9c6c5a |
children | 649dd2492ae5 |
comparison
equal
deleted
inserted
replaced
4489:a11e13d50645 | 4490:c927c568a5ad |
---|---|
180 if not prefix: prefix = os.path.basename(repo.root) + '-%h' | 180 if not prefix: prefix = os.path.basename(repo.root) + '-%h' |
181 prefix = cmdutil.make_filename(repo, prefix, node) | 181 prefix = cmdutil.make_filename(repo, prefix, node) |
182 archival.archive(repo, dest, node, kind, not opts['no_decode'], | 182 archival.archive(repo, dest, node, kind, not opts['no_decode'], |
183 matchfn, prefix) | 183 matchfn, prefix) |
184 | 184 |
185 def backout(ui, repo, rev, **opts): | 185 def backout(ui, repo, node=None, rev=None, **opts): |
186 '''reverse effect of earlier changeset | 186 '''reverse effect of earlier changeset |
187 | 187 |
188 Commit the backed out changes as a new changeset. The new | 188 Commit the backed out changes as a new changeset. The new |
189 changeset is a child of the backed out changeset. | 189 changeset is a child of the backed out changeset. |
190 | 190 |
197 The --merge option remembers the parent of the working directory | 197 The --merge option remembers the parent of the working directory |
198 before starting the backout, then merges the new head with that | 198 before starting the backout, then merges the new head with that |
199 changeset afterwards. This saves you from doing the merge by | 199 changeset afterwards. This saves you from doing the merge by |
200 hand. The result of this merge is not committed, as for a normal | 200 hand. The result of this merge is not committed, as for a normal |
201 merge.''' | 201 merge.''' |
202 if rev and node: | |
203 raise util.Abort(_("please specify just one revision")) | |
204 | |
205 if not rev: | |
206 rev = node | |
202 | 207 |
203 bail_if_changed(repo) | 208 bail_if_changed(repo) |
204 op1, op2 = repo.dirstate.parents() | 209 op1, op2 = repo.dirstate.parents() |
205 if op2 != nullid: | 210 if op2 != nullid: |
206 raise util.Abort(_('outstanding uncommitted merge')) | 211 raise util.Abort(_('outstanding uncommitted merge')) |
1509 for p in patches: | 1514 for p in patches: |
1510 pf = os.path.join(d, p) | 1515 pf = os.path.join(d, p) |
1511 | 1516 |
1512 if pf == '-': | 1517 if pf == '-': |
1513 ui.status(_("applying patch from stdin\n")) | 1518 ui.status(_("applying patch from stdin\n")) |
1514 tmpname, message, user, date, nodeid, p1, p2 = patch.extract(ui, sys.stdin) | 1519 tmpname, message, user, date, branch, nodeid, p1, p2 = patch.extract(ui, sys.stdin) |
1515 else: | 1520 else: |
1516 ui.status(_("applying %s\n") % p) | 1521 ui.status(_("applying %s\n") % p) |
1517 tmpname, message, user, date, nodeid, p1, p2 = patch.extract(ui, file(pf)) | 1522 tmpname, message, user, date, branch, nodeid, p1, p2 = patch.extract(ui, file(pf)) |
1518 | 1523 |
1519 if tmpname is None: | 1524 if tmpname is None: |
1520 raise util.Abort(_('no diffs found')) | 1525 raise util.Abort(_('no diffs found')) |
1521 | 1526 |
1522 try: | 1527 try: |
1540 p2 = repo.lookup(p2 or hex(nullid)) | 1545 p2 = repo.lookup(p2 or hex(nullid)) |
1541 | 1546 |
1542 if p1 != wp[0].node(): | 1547 if p1 != wp[0].node(): |
1543 hg.clean(repo, p1, wlock=wlock) | 1548 hg.clean(repo, p1, wlock=wlock) |
1544 repo.dirstate.setparents(p1, p2) | 1549 repo.dirstate.setparents(p1, p2) |
1550 repo.dirstate.setbranch(branch or 'default') | |
1545 elif p2: | 1551 elif p2: |
1546 try: | 1552 try: |
1547 p1 = repo.lookup(p1) | 1553 p1 = repo.lookup(p1) |
1548 p2 = repo.lookup(p2) | 1554 p2 = repo.lookup(p2) |
1549 if p1 == wp[0].node(): | 1555 if p1 == wp[0].node(): |
1824 ui.write("%40s " % hex(m[f])) | 1830 ui.write("%40s " % hex(m[f])) |
1825 if ui.verbose: | 1831 if ui.verbose: |
1826 ui.write("%3s " % (m.execf(f) and "755" or "644")) | 1832 ui.write("%3s " % (m.execf(f) and "755" or "644")) |
1827 ui.write("%s\n" % f) | 1833 ui.write("%s\n" % f) |
1828 | 1834 |
1829 def merge(ui, repo, node=None, force=None): | 1835 def merge(ui, repo, node=None, force=None, rev=None): |
1830 """merge working directory with another revision | 1836 """merge working directory with another revision |
1831 | 1837 |
1832 Merge the contents of the current working directory and the | 1838 Merge the contents of the current working directory and the |
1833 requested revision. Files that changed between either parent are | 1839 requested revision. Files that changed between either parent are |
1834 marked as changed for the next commit and a commit must be | 1840 marked as changed for the next commit and a commit must be |
1837 If no revision is specified, the working directory's parent is a | 1843 If no revision is specified, the working directory's parent is a |
1838 head revision, and the repository contains exactly one other head, | 1844 head revision, and the repository contains exactly one other head, |
1839 the other head is merged with by default. Otherwise, an explicit | 1845 the other head is merged with by default. Otherwise, an explicit |
1840 revision to merge with must be provided. | 1846 revision to merge with must be provided. |
1841 """ | 1847 """ |
1848 | |
1849 if rev and node: | |
1850 raise util.Abort(_("please specify just one revision")) | |
1851 | |
1852 if not node: | |
1853 node = rev | |
1842 | 1854 |
1843 if not node: | 1855 if not node: |
1844 heads = repo.heads() | 1856 heads = repo.heads() |
1845 if len(heads) > 2: | 1857 if len(heads) > 2: |
1846 raise util.Abort(_('repo has %d heads - ' | 1858 raise util.Abort(_('repo has %d heads - ' |
2550 f = urllib.urlopen(fname) | 2562 f = urllib.urlopen(fname) |
2551 gen = changegroup.readbundle(f, fname) | 2563 gen = changegroup.readbundle(f, fname) |
2552 modheads = repo.addchangegroup(gen, 'unbundle', 'bundle:' + fname) | 2564 modheads = repo.addchangegroup(gen, 'unbundle', 'bundle:' + fname) |
2553 return postincoming(ui, repo, modheads, opts['update']) | 2565 return postincoming(ui, repo, modheads, opts['update']) |
2554 | 2566 |
2555 def update(ui, repo, node=None, clean=False, date=None): | 2567 def update(ui, repo, node=None, rev=None, clean=False, date=None): |
2556 """update working directory | 2568 """update working directory |
2557 | 2569 |
2558 Update the working directory to the specified revision, or the | 2570 Update the working directory to the specified revision, or the |
2559 tip of the current branch if none is specified. | 2571 tip of the current branch if none is specified. |
2560 | 2572 |
2566 merge command. | 2578 merge command. |
2567 | 2579 |
2568 By default, update will refuse to run if doing so would require | 2580 By default, update will refuse to run if doing so would require |
2569 discarding local changes. | 2581 discarding local changes. |
2570 """ | 2582 """ |
2583 if rev and node: | |
2584 raise util.Abort(_("please specify just one revision")) | |
2585 | |
2586 if not rev: | |
2587 rev = node | |
2588 | |
2571 if date: | 2589 if date: |
2572 if node: | 2590 if rev: |
2573 raise util.Abort(_("you can't specify a revision and a date")) | 2591 raise util.Abort(_("you can't specify a revision and a date")) |
2574 node = cmdutil.finddate(ui, repo, date) | 2592 rev = cmdutil.finddate(ui, repo, date) |
2575 | 2593 |
2576 if clean: | 2594 if clean: |
2577 return hg.clean(repo, node) | 2595 return hg.clean(repo, rev) |
2578 else: | 2596 else: |
2579 return hg.update(repo, node) | 2597 return hg.update(repo, rev) |
2580 | 2598 |
2581 def verify(ui, repo): | 2599 def verify(ui, repo): |
2582 """verify the integrity of the repository | 2600 """verify the integrity of the repository |
2583 | 2601 |
2584 Verify the integrity of the current repository. | 2602 Verify the integrity of the current repository. |
2674 [('', 'merge', None, | 2692 [('', 'merge', None, |
2675 _('merge with old dirstate parent after backout')), | 2693 _('merge with old dirstate parent after backout')), |
2676 ('d', 'date', '', _('record datecode as commit date')), | 2694 ('d', 'date', '', _('record datecode as commit date')), |
2677 ('', 'parent', '', _('parent to choose when backing out merge')), | 2695 ('', 'parent', '', _('parent to choose when backing out merge')), |
2678 ('u', 'user', '', _('record user as committer')), | 2696 ('u', 'user', '', _('record user as committer')), |
2697 ('r', 'rev', '', _('revision to backout')), | |
2679 ] + walkopts + commitopts, | 2698 ] + walkopts + commitopts, |
2680 _('hg backout [OPTION]... REV')), | 2699 _('hg backout [OPTION]... [-r] REV')), |
2681 "branch": (branch, | 2700 "branch": (branch, |
2682 [('f', 'force', None, | 2701 [('f', 'force', None, |
2683 _('set branch name even if it shadows an existing branch'))], | 2702 _('set branch name even if it shadows an existing branch'))], |
2684 _('hg branch [NAME]')), | 2703 _('hg branch [NAME]')), |
2685 "branches": (branches, [], _('hg branches')), | 2704 "branches": (branches, [], _('hg branches')), |
2850 ] + walkopts, | 2869 ] + walkopts, |
2851 _('hg log [OPTION]... [FILE]')), | 2870 _('hg log [OPTION]... [FILE]')), |
2852 "manifest": (manifest, [], _('hg manifest [REV]')), | 2871 "manifest": (manifest, [], _('hg manifest [REV]')), |
2853 "^merge": | 2872 "^merge": |
2854 (merge, | 2873 (merge, |
2855 [('f', 'force', None, _('force a merge with outstanding changes'))], | 2874 [('f', 'force', None, _('force a merge with outstanding changes')), |
2856 _('hg merge [-f] [REV]')), | 2875 ('r', 'rev', '', _('revision to merge')), |
2876 ], | |
2877 _('hg merge [-f] [[-r] REV]')), | |
2857 "outgoing|out": (outgoing, | 2878 "outgoing|out": (outgoing, |
2858 [('M', 'no-merges', None, _('do not show merges')), | 2879 [('M', 'no-merges', None, _('do not show merges')), |
2859 ('f', 'force', None, | 2880 ('f', 'force', None, |
2860 _('run even when remote repository is unrelated')), | 2881 _('run even when remote repository is unrelated')), |
2861 ('p', 'patch', None, _('show patch')), | 2882 ('p', 'patch', None, _('show patch')), |
2982 _('update to new tip if changesets were unbundled'))], | 3003 _('update to new tip if changesets were unbundled'))], |
2983 _('hg unbundle [-u] FILE')), | 3004 _('hg unbundle [-u] FILE')), |
2984 "^update|up|checkout|co": | 3005 "^update|up|checkout|co": |
2985 (update, | 3006 (update, |
2986 [('C', 'clean', None, _('overwrite locally modified files')), | 3007 [('C', 'clean', None, _('overwrite locally modified files')), |
2987 ('d', 'date', '', _('tipmost revision matching date'))], | 3008 ('d', 'date', '', _('tipmost revision matching date')), |
2988 _('hg update [-C] [-d DATE] [REV]')), | 3009 ('r', 'rev', '', _('revision'))], |
3010 _('hg update [-C] [-d DATE] [[-r] REV]')), | |
2989 "verify": (verify, [], _('hg verify')), | 3011 "verify": (verify, [], _('hg verify')), |
2990 "version": (version_, [], _('hg version')), | 3012 "version": (version_, [], _('hg version')), |
2991 } | 3013 } |
2992 | 3014 |
2993 norepo = ("clone init version help debugancestor debugcomplete debugdata" | 3015 norepo = ("clone init version help debugancestor debugcomplete debugdata" |