Mercurial > hg
annotate mercurial/stack.py @ 37499:75c13343cf38
templater: wrap result of '%' operation so it never looks like a thunk
This fixes min/max()/json() of map result. Before, it was taken as a lazy
byte string and stringified by evalfuncarg().
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Sun, 18 Mar 2018 23:36:52 +0900 |
parents | 68fcc5503ec5 |
children | 77c52ce50e6a |
rev | line source |
---|---|
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 # |
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): |
37004
68fcc5503ec5
stack: return a sorted smartrev by default
Boris Feld <boris.feld@octobus.net>
parents:
37000
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:
37000
diff
changeset
|
17 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
|
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) |
37004
68fcc5503ec5
stack: return a sorted smartrev by default
Boris Feld <boris.feld@octobus.net>
parents:
37000
diff
changeset
|
27 revisions = scmutil.revrange(repo, [revset]) |
68fcc5503ec5
stack: return a sorted smartrev by default
Boris Feld <boris.feld@octobus.net>
parents:
37000
diff
changeset
|
28 revisions.sort() |
68fcc5503ec5
stack: return a sorted smartrev by default
Boris Feld <boris.feld@octobus.net>
parents:
37000
diff
changeset
|
29 return revisions |