mercurial/stack.py
author Matt Harbison <matt_harbison@yahoo.com>
Sun, 14 Jul 2019 01:31:42 -0400
changeset 42601 862f6bddacce
parent 37007 68fcc5503ec5
child 42720 77c52ce50e6a
permissions -rw-r--r--
automation: correct the path separator in LIBPATH on Windows I haven't tried building the x86 installer, but happened to notice this when working on the thg installer. Experimenting in PowerShell seems to show that LIBPATH was expanded at the end, but with ':' between, it effectively corrupted `${root}\WinSDK\Lib` and the first path in LIBPATH. Differential Revision: https://phab.mercurial-scm.org/D6642
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
37003
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
#
40583c7afd63 stack: add a new module for stack-related commands
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
     3
#  Copyright Matt Mackall <mpm@selenic.com> and other
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
40583c7afd63 stack: add a new module for stack-related commands
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    10
from . import (
40583c7afd63 stack: add a new module for stack-related commands
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    11
    revsetlang,
40583c7afd63 stack: add a new module for stack-related commands
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    12
    scmutil,
40583c7afd63 stack: add a new module for stack-related commands
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    13
)
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
def getstack(repo, rev=None):
37007
68fcc5503ec5 stack: return a sorted smartrev by default
Boris Feld <boris.feld@octobus.net>
parents: 37003
diff changeset
    16
    """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: 37003
diff changeset
    17
    not None or the current working directory parent.
37003
40583c7afd63 stack: add a new module for stack-related commands
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    18
40583c7afd63 stack: add a new module for stack-related commands
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    19
    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
    20
    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
    21
    """
40583c7afd63 stack: add a new module for stack-related commands
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    22
    if rev is None:
40583c7afd63 stack: add a new module for stack-related commands
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    23
        rev = '.'
40583c7afd63 stack: add a new module for stack-related commands
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    24
40583c7afd63 stack: add a new module for stack-related commands
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    25
    revspec = 'reverse(only(%s) and not public() and not ::merge())'
40583c7afd63 stack: add a new module for stack-related commands
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    26
    revset = revsetlang.formatspec(revspec, rev)
37007
68fcc5503ec5 stack: return a sorted smartrev by default
Boris Feld <boris.feld@octobus.net>
parents: 37003
diff changeset
    27
    revisions = scmutil.revrange(repo, [revset])
68fcc5503ec5 stack: return a sorted smartrev by default
Boris Feld <boris.feld@octobus.net>
parents: 37003
diff changeset
    28
    revisions.sort()
68fcc5503ec5 stack: return a sorted smartrev by default
Boris Feld <boris.feld@octobus.net>
parents: 37003
diff changeset
    29
    return revisions