# HG changeset patch # User Ryan McElroy # Date 1429040715 25200 # Node ID fb9b7b937b3e41418be9c50fb735c0afb89f4246 # Parent 20bff5d09018063ea830a8319fde880f45051aac bookmarks: simplify iscurrent to isactivewdirparent (API) Previously this function accepted two optional parameters that were unused by any callers and complicated the function. Today, the terms 'active' and 'current' are interchangeably used throughout the codebase in reference to the active bookmark (the bookmark that will be updated with the next commit). This leads to confusion among developers and users. This patch is part of a series to standardize the usage to 'active' throughout the mercurial codebase and user interface. diff -r 20bff5d09018 -r fb9b7b937b3e mercurial/bookmarks.py --- a/mercurial/bookmarks.py Tue May 05 14:45:09 2015 -0400 +++ b/mercurial/bookmarks.py Tue Apr 14 12:45:15 2015 -0700 @@ -165,17 +165,18 @@ finally: wlock.release() -def iscurrent(repo, mark=None, parents=None): - '''Tell whether the current bookmark is also active +def isactivewdirparent(repo): + """ + Tell whether the 'active' bookmark (the one that follows new commits) + points to one of the parents of the current working directory (wdir). - I.e., the bookmark listed in .hg/bookmarks.current also points to a - parent of the working directory. - ''' - if not mark: - mark = repo._activebookmark - if not parents: - parents = [p.node() for p in repo[None].parents()] + While this is normally the case, it can on occasion be false; for example, + immediately after a pull, the active bookmark can be moved to point + to a place different than the wdir. This is solved by running `hg update`. + """ + mark = repo._activebookmark marks = repo._bookmarks + parents = [p.node() for p in repo[None].parents()] return (mark in marks and marks[mark] in parents) def deletedivergent(repo, deletefrom, bm): @@ -201,7 +202,7 @@ movemarkfrom = None if checkout is None: curmark = repo._activebookmark - if iscurrent(repo): + if isactivewdirparent(repo): movemarkfrom = repo['.'].node() elif curmark: ui.status(_("updating to active bookmark %s\n") % curmark) diff -r 20bff5d09018 -r fb9b7b937b3e mercurial/cmdutil.py --- a/mercurial/cmdutil.py Tue May 05 14:45:09 2015 -0400 +++ b/mercurial/cmdutil.py Tue Apr 14 12:45:15 2015 -0700 @@ -2721,7 +2721,7 @@ edittext.append(_("HG: branch merge")) if ctx.branch(): edittext.append(_("HG: branch '%s'") % ctx.branch()) - if bookmarks.iscurrent(repo): + if bookmarks.isactivewdirparent(repo): edittext.append(_("HG: bookmark '%s'") % repo._activebookmark) edittext.extend([_("HG: subrepo %s") % s for s in subs]) edittext.extend([_("HG: added %s") % f for f in added]) diff -r 20bff5d09018 -r fb9b7b937b3e mercurial/templatekw.py --- a/mercurial/templatekw.py Tue May 05 14:45:09 2015 -0400 +++ b/mercurial/templatekw.py Tue Apr 14 12:45:15 2015 -0700 @@ -226,7 +226,7 @@ associated with the changeset""" import bookmarks as bookmarks # to avoid circular import issues repo = args['repo'] - if bookmarks.iscurrent(repo): + if bookmarks.isactivewdirparent(repo): current = repo._activebookmark if current in args['ctx'].bookmarks(): return current