Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/commands.py @ 7540:f1069e7f5635
merge with stable
author | Dirkjan Ochtman <dirkjan@ochtman.nl> |
---|---|
date | Sat, 20 Dec 2008 13:09:05 +0100 |
parents | 62e5d41b0a8b 3773e510d433 |
children | e05aa73ce2b7 |
comparison
equal
deleted
inserted
replaced
7539:92c373f8135f | 7540:f1069e7f5635 |
---|---|
154 The default is the basename of the archive, with suffixes removed. | 154 The default is the basename of the archive, with suffixes removed. |
155 ''' | 155 ''' |
156 | 156 |
157 ctx = repo[opts.get('rev')] | 157 ctx = repo[opts.get('rev')] |
158 if not ctx: | 158 if not ctx: |
159 raise util.Abort(_('repository has no revisions')) | 159 raise util.Abort(_('no working directory: please specify a revision')) |
160 node = ctx.node() | 160 node = ctx.node() |
161 dest = cmdutil.make_filename(repo, dest, node) | 161 dest = cmdutil.make_filename(repo, dest, node) |
162 if os.path.realpath(dest) == repo.root: | 162 if os.path.realpath(dest) == repo.root: |
163 raise util.Abort(_('repository root cannot be destination')) | 163 raise util.Abort(_('repository root cannot be destination')) |
164 matchfn = cmdutil.match(repo, [], opts) | 164 matchfn = cmdutil.match(repo, [], opts) |
2328 return cmdutil.copy(ui, repo, pats, opts, rename=True) | 2328 return cmdutil.copy(ui, repo, pats, opts, rename=True) |
2329 finally: | 2329 finally: |
2330 del wlock | 2330 del wlock |
2331 | 2331 |
2332 def resolve(ui, repo, *pats, **opts): | 2332 def resolve(ui, repo, *pats, **opts): |
2333 """resolve file merges from a branch merge or update | 2333 """retry file merges from a merge or update |
2334 | 2334 |
2335 This command will attempt to resolve unresolved merges from the | 2335 This command will cleanly retry unresolved file merges using file |
2336 last update or merge command. This will use the local file | 2336 revisions preserved from the last update or merge. To attempt to |
2337 revision preserved at the last update or merge to cleanly retry | 2337 resolve all unresolved files, use the -a switch. |
2338 the file merge attempt. With no file or options specified, this | 2338 |
2339 command will attempt to resolve all unresolved files. | 2339 This command will also allow listing resolved files and manually |
2340 marking and unmarking files as resolved. | |
2340 | 2341 |
2341 The codes used to show the status of files are: | 2342 The codes used to show the status of files are: |
2342 U = unresolved | 2343 U = unresolved |
2343 R = resolved | 2344 R = resolved |
2344 """ | 2345 """ |
2345 | 2346 |
2346 if len([x for x in opts if opts[x]]) > 1: | 2347 all, mark, unmark, show = [opts.get(o) for o in 'all mark unmark list'.split()] |
2348 | |
2349 if (show and (mark or unmark)) or (mark and unmark): | |
2347 raise util.Abort(_("too many options specified")) | 2350 raise util.Abort(_("too many options specified")) |
2351 if pats and all: | |
2352 raise util.Abort(_("can't specify --all and patterns")) | |
2353 if not (all or pats or show or mark or unmark): | |
2354 raise util.Abort(_('no files or directories specified; ' | |
2355 'use --all to remerge all files')) | |
2348 | 2356 |
2349 ms = merge_.mergestate(repo) | 2357 ms = merge_.mergestate(repo) |
2350 m = cmdutil.match(repo, pats, opts) | 2358 m = cmdutil.match(repo, pats, opts) |
2351 | 2359 |
2352 for f in ms: | 2360 for f in ms: |
2353 if m(f): | 2361 if m(f): |
2354 if opts.get("list"): | 2362 if show: |
2355 ui.write("%s %s\n" % (ms[f].upper(), f)) | 2363 ui.write("%s %s\n" % (ms[f].upper(), f)) |
2356 elif opts.get("mark"): | 2364 elif mark: |
2357 ms.mark(f, "r") | 2365 ms.mark(f, "r") |
2358 elif opts.get("unmark"): | 2366 elif unmark: |
2359 ms.mark(f, "u") | 2367 ms.mark(f, "u") |
2360 else: | 2368 else: |
2361 wctx = repo[None] | 2369 wctx = repo[None] |
2362 mctx = wctx.parents()[-1] | 2370 mctx = wctx.parents()[-1] |
2363 ms.resolve(f, wctx, mctx) | 2371 ms.resolve(f, wctx, mctx) |
3313 _('forcibly copy over an existing managed file')), | 3321 _('forcibly copy over an existing managed file')), |
3314 ] + walkopts + dryrunopts, | 3322 ] + walkopts + dryrunopts, |
3315 _('[OPTION]... SOURCE... DEST')), | 3323 _('[OPTION]... SOURCE... DEST')), |
3316 "resolve": | 3324 "resolve": |
3317 (resolve, | 3325 (resolve, |
3318 [('l', 'list', None, _('list state of files needing merge')), | 3326 [('a', 'all', None, _('remerge all unresolved files')), |
3327 ('l', 'list', None, _('list state of files needing merge')), | |
3319 ('m', 'mark', None, _('mark files as resolved')), | 3328 ('m', 'mark', None, _('mark files as resolved')), |
3320 ('u', 'unmark', None, _('unmark files as resolved'))], | 3329 ('u', 'unmark', None, _('unmark files as resolved'))], |
3321 _('[OPTION]... [FILE]...')), | 3330 _('[OPTION]... [FILE]...')), |
3322 "revert": | 3331 "revert": |
3323 (revert, | 3332 (revert, |