mirror of
https://github.com/facebook/sapling.git
synced 2024-10-07 07:17:55 +03:00
phases: implements simple revset symbol
This changeset adds ``public()``, ``draft()`` and ``secret`` symbol for revset.
This commit is contained in:
parent
5262f88500
commit
b6988087ea
@ -6,7 +6,7 @@
|
||||
# GNU General Public License version 2 or any later version.
|
||||
|
||||
import re
|
||||
import parser, util, error, discovery, hbisect
|
||||
import parser, util, error, discovery, hbisect, phases
|
||||
import node as nodemod
|
||||
import bookmarks as bookmarksmod
|
||||
import match as matchmod
|
||||
@ -395,6 +395,12 @@ def descendants(repo, subset, x):
|
||||
s = set(repo.changelog.descendants(*args)) | set(args)
|
||||
return [r for r in subset if r in s]
|
||||
|
||||
def draft(repo, subset, x):
|
||||
"""``draft()``
|
||||
Changeset in draft phase."""
|
||||
getargs(x, 0, 0, _("draft takes no arguments"))
|
||||
return [r for r in subset if repo._phaserev[r] == phases.draft]
|
||||
|
||||
def filelog(repo, subset, x):
|
||||
"""``filelog(pattern)``
|
||||
Changesets connected to the specified filelog.
|
||||
@ -725,6 +731,12 @@ def present(repo, subset, x):
|
||||
except error.RepoLookupError:
|
||||
return []
|
||||
|
||||
def public(repo, subset, x):
|
||||
"""``public()``
|
||||
Changeset in public phase."""
|
||||
getargs(x, 0, 0, _("public takes no arguments"))
|
||||
return [r for r in subset if repo._phaserev[r] == phases.public]
|
||||
|
||||
def removes(repo, subset, x):
|
||||
"""``removes(pattern)``
|
||||
Changesets which remove files matching pattern.
|
||||
@ -763,6 +775,12 @@ def roots(repo, subset, x):
|
||||
cs = set(children(repo, subset, x))
|
||||
return [r for r in s if r not in cs]
|
||||
|
||||
def secret(repo, subset, x):
|
||||
"""``secret()``
|
||||
Changeset in secret phase."""
|
||||
getargs(x, 0, 0, _("secret takes no arguments"))
|
||||
return [r for r in subset if repo._phaserev[r] == phases.secret]
|
||||
|
||||
def sort(repo, subset, x):
|
||||
"""``sort(set[, [-]key...])``
|
||||
Sort set by keys. The default sort order is ascending, specify a key
|
||||
@ -861,6 +879,7 @@ symbols = {
|
||||
"date": date,
|
||||
"desc": desc,
|
||||
"descendants": descendants,
|
||||
"draft": draft,
|
||||
"file": hasfile,
|
||||
"filelog": filelog,
|
||||
"first": first,
|
||||
@ -881,11 +900,13 @@ symbols = {
|
||||
"p2": p2,
|
||||
"parents": parents,
|
||||
"present": present,
|
||||
"public": public,
|
||||
"removes": removes,
|
||||
"rev": rev,
|
||||
"reverse": reverse,
|
||||
"roots": roots,
|
||||
"sort": sort,
|
||||
"secret": secret,
|
||||
"tag": tag,
|
||||
"tagged": tagged,
|
||||
"user": user,
|
||||
|
@ -134,3 +134,19 @@ Test secret changeset are not pull
|
||||
2 0 C
|
||||
1 0 B
|
||||
0 0 A
|
||||
$ cd ..
|
||||
|
||||
Test revset
|
||||
|
||||
$ cd initialrepo
|
||||
$ hglog -r 'public()'
|
||||
0 0 A
|
||||
1 0 B
|
||||
2 0 C
|
||||
3 0 D
|
||||
6 0 B'
|
||||
$ hglog -r 'draft()'
|
||||
$ hglog -r 'secret()'
|
||||
4 2 E
|
||||
5 2 H
|
||||
7 2 merge B' and E
|
||||
|
Loading…
Reference in New Issue
Block a user