mercurial/stack.py
author Pierre-Yves David <pierre-yves.david@octobus.net>
Thu, 08 Jul 2021 01:23:06 +0200
changeset 47647 f16958beb27b
parent 46819 d4ba4d51f85f
child 48875 6000f5b25c9b
permissions -rw-r--r--
largefile: synchronise the dirstate within a `parentchange` context Semantically these changes are made to adjust the dirstate after a commit, so it should be in a `parentchange` context. Differential Revision: https://phab.mercurial-scm.org/D11103
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
37000
40583c7afd63 stack: add a new module for stack-related commands
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
     1
# stack.py - Mercurial functions for stack definition
40583c7afd63 stack: add a new module for stack-related commands
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
     2
#
46819
d4ba4d51f85f contributor: change mentions of mpm to olivia
Raphaël Gomès <rgomes@octobus.net>
parents: 43077
diff changeset
     3
#  Copyright Olivia Mackall <olivia@selenic.com> and other
37000
40583c7afd63 stack: add a new module for stack-related commands
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
     4
#
40583c7afd63 stack: add a new module for stack-related commands
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
     5
# This software may be used and distributed according to the terms of the
40583c7afd63 stack: add a new module for stack-related commands
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
     6
# GNU General Public License version 2 or any later version.
40583c7afd63 stack: add a new module for stack-related commands
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
     7
40583c7afd63 stack: add a new module for stack-related commands
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
     8
from __future__ import absolute_import
40583c7afd63 stack: add a new module for stack-related commands
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
     9
43075
57875cf423c9 style: run a patched black on a subset of mercurial
Augie Fackler <augie@google.com>
parents: 42960
diff changeset
    10
37000
40583c7afd63 stack: add a new module for stack-related commands
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    11
def getstack(repo, rev=None):
37004
68fcc5503ec5 stack: return a sorted smartrev by default
Boris Feld <boris.feld@octobus.net>
parents: 37000
diff changeset
    12
    """return a sorted smartrev of the stack containing either rev if it is
68fcc5503ec5 stack: return a sorted smartrev by default
Boris Feld <boris.feld@octobus.net>
parents: 37000
diff changeset
    13
    not None or the current working directory parent.
37000
40583c7afd63 stack: add a new module for stack-related commands
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    14
40583c7afd63 stack: add a new module for stack-related commands
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    15
    The stack will always contain all drafts changesets which are ancestors to
40583c7afd63 stack: add a new module for stack-related commands
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    16
    the revision and are not merges.
40583c7afd63 stack: add a new module for stack-related commands
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    17
    """
40583c7afd63 stack: add a new module for stack-related commands
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    18
    if rev is None:
43077
687b865b95ad formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents: 43075
diff changeset
    19
        rev = b'.'
37000
40583c7afd63 stack: add a new module for stack-related commands
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    20
43077
687b865b95ad formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents: 43075
diff changeset
    21
    revspec = b'only(%s) and not public() and not ::merge()'
42960
763028fc6a69 stack: use repo.revs() instead of revsetlang.formatspec() + scmutil.revrange()
Anton Shestakov <av6@dwimlabs.net>
parents: 42698
diff changeset
    22
    revisions = repo.revs(revspec, rev)
37004
68fcc5503ec5 stack: return a sorted smartrev by default
Boris Feld <boris.feld@octobus.net>
parents: 37000
diff changeset
    23
    revisions.sort()
68fcc5503ec5 stack: return a sorted smartrev by default
Boris Feld <boris.feld@octobus.net>
parents: 37000
diff changeset
    24
    return revisions