comparison mercurial/commands.py @ 15935:6c97eb445341

bookmarks: automatically advance bookmark on naked update (BC) (issue2894)
author Matt Mackall <mpm@selenic.com>
date Thu, 19 Jan 2012 14:07:48 -0600
parents 2bd54ffaa27e
children f57f891eb88e
comparison
equal deleted inserted replaced
15934:9d4b5c3cb853 15935:6c97eb445341
5631 def update(ui, repo, node=None, rev=None, clean=False, date=None, check=False): 5631 def update(ui, repo, node=None, rev=None, clean=False, date=None, check=False):
5632 """update working directory (or switch revisions) 5632 """update working directory (or switch revisions)
5633 5633
5634 Update the repository's working directory to the specified 5634 Update the repository's working directory to the specified
5635 changeset. If no changeset is specified, update to the tip of the 5635 changeset. If no changeset is specified, update to the tip of the
5636 current named branch. 5636 current named branch and move the current bookmark.
5637 5637
5638 If the changeset is not a descendant of the working directory's 5638 If the changeset is not a descendant of the working directory's
5639 parent, the update is aborted. With the -c/--check option, the 5639 parent, the update is aborted. With the -c/--check option, the
5640 working directory is checked for uncommitted changes; if none are 5640 working directory is checked for uncommitted changes; if none are
5641 found, the working directory is updated to the specified 5641 found, the working directory is updated to the specified
5676 raise util.Abort(_("please specify just one revision")) 5676 raise util.Abort(_("please specify just one revision"))
5677 5677
5678 if rev is None or rev == '': 5678 if rev is None or rev == '':
5679 rev = node 5679 rev = node
5680 5680
5681 # with no argument, we also move the current bookmark, if any
5682 movemarkfrom = None
5683 if node is None or node == '':
5684 movemarkfrom = repo['.'].node()
5685
5681 # if we defined a bookmark, we have to remember the original bookmark name 5686 # if we defined a bookmark, we have to remember the original bookmark name
5682 brev = rev 5687 brev = rev
5683 rev = scmutil.revsingle(repo, rev, rev).rev() 5688 rev = scmutil.revsingle(repo, rev, rev).rev()
5684 5689
5685 if check and clean: 5690 if check and clean:
5699 if clean or check: 5704 if clean or check:
5700 ret = hg.clean(repo, rev) 5705 ret = hg.clean(repo, rev)
5701 else: 5706 else:
5702 ret = hg.update(repo, rev) 5707 ret = hg.update(repo, rev)
5703 5708
5704 if brev in repo._bookmarks: 5709 if not ret and movemarkfrom:
5710 bookmarks.update(repo, [movemarkfrom], repo['.'].node())
5711 elif brev in repo._bookmarks:
5705 bookmarks.setcurrent(repo, brev) 5712 bookmarks.setcurrent(repo, brev)
5706 5713
5707 return ret 5714 return ret
5708 5715
5709 @command('verify', []) 5716 @command('verify', [])