Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/commands.py @ 6518:92ccccb55ba3
resolve: new command
- add basic resolve command functionality
- point failed update and merge at resolve
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Fri, 11 Apr 2008 12:52:56 -0500 |
parents | 5279848424e7 |
children | 626cb86a6523 |
comparison
equal
deleted
inserted
replaced
6517:fcfb6a0a0a84 | 6518:92ccccb55ba3 |
---|---|
11 import os, re, sys, urllib | 11 import os, re, sys, urllib |
12 import hg, util, revlog, bundlerepo, extensions, copies | 12 import hg, util, revlog, bundlerepo, extensions, copies |
13 import difflib, patch, time, help, mdiff, tempfile | 13 import difflib, patch, time, help, mdiff, tempfile |
14 import version, socket | 14 import version, socket |
15 import archival, changegroup, cmdutil, hgweb.server, sshserver, hbisect | 15 import archival, changegroup, cmdutil, hgweb.server, sshserver, hbisect |
16 import merge as merge_ | |
16 | 17 |
17 # Commands start here, listed alphabetically | 18 # Commands start here, listed alphabetically |
18 | 19 |
19 def add(ui, repo, *pats, **opts): | 20 def add(ui, repo, *pats, **opts): |
20 """add the specified files on the next commit | 21 """add the specified files on the next commit |
2233 wlock = repo.wlock(False) | 2234 wlock = repo.wlock(False) |
2234 try: | 2235 try: |
2235 return cmdutil.copy(ui, repo, pats, opts, rename=True) | 2236 return cmdutil.copy(ui, repo, pats, opts, rename=True) |
2236 finally: | 2237 finally: |
2237 del wlock | 2238 del wlock |
2239 | |
2240 def resolve(ui, repo, *pats, **opts): | |
2241 """resolve file merges from a branch merge or update | |
2242 | |
2243 This command will attempt to resolve unresolved merges from the | |
2244 last update or merge command. This will use the local file | |
2245 revision preserved at the last update or merge to cleanly retry | |
2246 the file merge attempt. With no file or options specified, this | |
2247 command will attempt to resolve all unresolved files. | |
2248 """ | |
2249 | |
2250 if len([x for x in opts if opts[x]]) > 1: | |
2251 raise util.Abort(_("too many options specified")) | |
2252 | |
2253 ms = merge_.mergestate(repo) | |
2254 mf = util.matcher(repo.root, "", pats, [], [])[1] | |
2255 | |
2256 for f in ms: | |
2257 if mf(f): | |
2258 if opts.get("list"): | |
2259 ui.write("%s %s\n" % (ms[f].upper(), f)) | |
2260 elif opts.get("mark"): | |
2261 ms.mark(f, "r") | |
2262 elif opts.get("unmark"): | |
2263 ms.mark(f, "u") | |
2264 else: | |
2265 wctx = repo.workingctx() | |
2266 mctx = wctx.parents()[-1] | |
2267 ms.resolve(f, wctx, mctx) | |
2238 | 2268 |
2239 def revert(ui, repo, *pats, **opts): | 2269 def revert(ui, repo, *pats, **opts): |
2240 """restore individual files or dirs to an earlier state | 2270 """restore individual files or dirs to an earlier state |
2241 | 2271 |
2242 (use update -r to check out earlier revisions, revert does not | 2272 (use update -r to check out earlier revisions, revert does not |
3194 [('A', 'after', None, _('record a rename that has already occurred')), | 3224 [('A', 'after', None, _('record a rename that has already occurred')), |
3195 ('f', 'force', None, | 3225 ('f', 'force', None, |
3196 _('forcibly copy over an existing managed file')), | 3226 _('forcibly copy over an existing managed file')), |
3197 ] + walkopts + dryrunopts, | 3227 ] + walkopts + dryrunopts, |
3198 _('hg rename [OPTION]... SOURCE... DEST')), | 3228 _('hg rename [OPTION]... SOURCE... DEST')), |
3229 "resolve": | |
3230 (resolve, | |
3231 [('l', 'list', None, _('list state of files needing merge')), | |
3232 ('m', 'mark', None, _('mark files as resolved')), | |
3233 ('u', 'unmark', None, _('unmark files as resolved'))], | |
3234 ('hg resolve [OPTION] [FILES...]')), | |
3199 "revert": | 3235 "revert": |
3200 (revert, | 3236 (revert, |
3201 [('a', 'all', None, _('revert all changes when no arguments given')), | 3237 [('a', 'all', None, _('revert all changes when no arguments given')), |
3202 ('d', 'date', '', _('tipmost revision matching date')), | 3238 ('d', 'date', '', _('tipmost revision matching date')), |
3203 ('r', 'rev', '', _('revision to revert to')), | 3239 ('r', 'rev', '', _('revision to revert to')), |