Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/commands.py @ 254:c03f58e5fd2d
unify checkout and resolve into update
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
unify checkout and resolve into update
This replaces checkout and resolve with a single command:
$ hg help co
hg update [node]
update or merge working directory
If there are no outstanding changes in the working directory and
there is a linear relationship between the current version and the
requested version, the result is the requested version.
Otherwise the result is a merge between the contents of the
current working directory and the requested version. Files that
changed between either parent are marked as changed for the next
commit and a commit must be performed before any further updates
are allowed.
manifest hash: 513d285d7fb775d0560de49387042a685ea062f7
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFComS7ywK+sNU5EO8RAmgRAJ96GA6qvHLy0Jp0fzUrR2os2azPuACePsdC
YBldZtA7yIuTnV2vIbn7OSE=
=QtM/
-----END PGP SIGNATURE-----
author | mpm@selenic.com |
---|---|
date | Sat, 04 Jun 2005 18:34:35 -0800 |
parents | 5eda6c542978 |
children | 20a44c82795f |
comparison
equal
deleted
inserted
replaced
253:2da0a56aa1fd | 254:c03f58e5fd2d |
---|---|
162 r = repo.file(file) | 162 r = repo.file(file) |
163 n = r.tip() | 163 n = r.tip() |
164 if rev: n = r.lookup(rev) | 164 if rev: n = r.lookup(rev) |
165 sys.stdout.write(r.read(n)) | 165 sys.stdout.write(r.read(n)) |
166 | 166 |
167 def checkout(ui, repo, changeset=None): | |
168 '''checkout a given changeset or the current tip''' | |
169 (c, a, d, u) = repo.diffdir(repo.root) | |
170 if c or a or d: | |
171 ui.warn("aborting (outstanding changes in working directory)\n") | |
172 sys.exit(1) | |
173 | |
174 node = repo.changelog.tip() | |
175 if changeset: | |
176 node = repo.lookup(changeset) | |
177 repo.checkout(node) | |
178 | |
179 def commit(ui, repo, *files): | 167 def commit(ui, repo, *files): |
180 """commit the specified files or all outstanding changes""" | 168 """commit the specified files or all outstanding changes""" |
181 repo.commit(relpath(repo, files)) | 169 repo.commit(relpath(repo, files)) |
182 | 170 |
183 def debugaddchangegroup(ui, repo): | 171 def debugaddchangegroup(ui, repo): |
403 | 391 |
404 def remove(ui, repo, file, *files): | 392 def remove(ui, repo, file, *files): |
405 """remove the specified files on the next commit""" | 393 """remove the specified files on the next commit""" |
406 repo.remove(relpath(repo, (file,) + files)) | 394 repo.remove(relpath(repo, (file,) + files)) |
407 | 395 |
408 def resolve(ui, repo, node=None): | |
409 '''merge a given node or the current tip into the working dir''' | |
410 if not node: | |
411 node = repo.changelog.tip() | |
412 else: | |
413 node = repo.lookup(node) | |
414 repo.resolve(node) | |
415 | |
416 def serve(ui, repo, **opts): | 396 def serve(ui, repo, **opts): |
417 from mercurial import hgweb | 397 from mercurial import hgweb |
418 hgweb.server(repo.root, opts["name"], opts["templates"], | 398 hgweb.server(repo.root, opts["name"], opts["templates"], |
419 opts["address"], opts["port"]) | 399 opts["address"], opts["port"]) |
420 | 400 |
450 t = repo.changelog.rev(n) | 430 t = repo.changelog.rev(n) |
451 ui.status("%d:%s\n" % (t, hg.hex(n))) | 431 ui.status("%d:%s\n" % (t, hg.hex(n))) |
452 | 432 |
453 def undo(ui, repo): | 433 def undo(ui, repo): |
454 repo.undo() | 434 repo.undo() |
435 | |
436 def update(ui, repo, node=None): | |
437 '''update or merge working directory | |
438 | |
439 If there are no outstanding changes in the working directory and | |
440 there is a linear relationship between the current version and the | |
441 requested version, the result is the requested version. | |
442 | |
443 Otherwise the result is a merge between the contents of the | |
444 current working directory and the requested version. Files that | |
445 changed between either parent are marked as changed for the next | |
446 commit and a commit must be performed before any further updates | |
447 are allowed. | |
448 ''' | |
449 node = node and repo.lookup(node) or repo.changelog.tip() | |
450 repo.update(node) | |
455 | 451 |
456 def verify(ui, repo): | 452 def verify(ui, repo): |
457 """verify the integrity of the repository""" | 453 """verify the integrity of the repository""" |
458 return repo.verify() | 454 return repo.verify() |
459 | 455 |
466 ('n', 'number', None, 'show revision number'), | 462 ('n', 'number', None, 'show revision number'), |
467 ('c', 'changeset', None, 'show changeset')], | 463 ('c', 'changeset', None, 'show changeset')], |
468 'hg annotate [-u] [-c] [-n] [-r id] [files]'), | 464 'hg annotate [-u] [-c] [-n] [-r id] [files]'), |
469 "branch|clone": (branch, [], 'hg branch [path]'), | 465 "branch|clone": (branch, [], 'hg branch [path]'), |
470 "cat|dump": (cat, [], 'hg cat <file> [rev]'), | 466 "cat|dump": (cat, [], 'hg cat <file> [rev]'), |
471 "checkout|co": (checkout, [], 'hg checkout [changeset]'), | |
472 "commit|ci": (commit, [], 'hg commit [files]'), | 467 "commit|ci": (commit, [], 'hg commit [files]'), |
473 "debugaddchangegroup": (debugaddchangegroup, [], 'debugaddchangegroup'), | 468 "debugaddchangegroup": (debugaddchangegroup, [], 'debugaddchangegroup'), |
474 "debugchangegroup": (debugchangegroup, [], 'debugchangegroup [roots]'), | 469 "debugchangegroup": (debugchangegroup, [], 'debugchangegroup [roots]'), |
475 "debugindex": (debugindex, [], 'debugindex <file>'), | 470 "debugindex": (debugindex, [], 'debugindex <file>'), |
476 "debugindexdot": (debugindexdot, [], 'debugindexdot <file>'), | 471 "debugindexdot": (debugindexdot, [], 'debugindexdot <file>'), |
499 ('t', 'text', "", 'commit text'), | 494 ('t', 'text', "", 'commit text'), |
500 ('l', 'logfile', "", 'commit text file')], | 495 ('l', 'logfile', "", 'commit text file')], |
501 'hg rawcommit [options] [files]'), | 496 'hg rawcommit [options] [files]'), |
502 "recover": (recover, [], "hg recover"), | 497 "recover": (recover, [], "hg recover"), |
503 "remove": (remove, [], "hg remove [files]"), | 498 "remove": (remove, [], "hg remove [files]"), |
504 "resolve": (resolve, [], 'hg resolve [node]'), | |
505 "serve": (serve, [('p', 'port', 8000, 'listen port'), | 499 "serve": (serve, [('p', 'port', 8000, 'listen port'), |
506 ('a', 'address', '', 'interface address'), | 500 ('a', 'address', '', 'interface address'), |
507 ('n', 'name', os.getcwd(), 'repository name'), | 501 ('n', 'name', os.getcwd(), 'repository name'), |
508 ('t', 'templates', "", 'template map')], | 502 ('t', 'templates', "", 'template map')], |
509 "hg serve [options]"), | 503 "hg serve [options]"), |
510 "status": (status, [], 'hg status'), | 504 "status": (status, [], 'hg status'), |
511 "tags": (tags, [], 'hg tags'), | 505 "tags": (tags, [], 'hg tags'), |
512 "tip": (tip, [], 'hg tip'), | 506 "tip": (tip, [], 'hg tip'), |
513 "undo": (undo, [], 'hg undo'), | 507 "undo": (undo, [], 'hg undo'), |
508 "update|up|checkout|co|resolve": (update, [], 'hg update [node]'), | |
514 "verify": (verify, [], 'hg verify'), | 509 "verify": (verify, [], 'hg verify'), |
515 } | 510 } |
516 | 511 |
517 norepo = "init branch help debugindex debugindexdot" | 512 norepo = "init branch help debugindex debugindexdot" |
518 | 513 |