79 > fi |
79 > fi |
80 > echo $rev > a |
80 > echo $rev > a |
81 > hg commit -Aqd "$rev 0" -m "($rev) $msg" |
81 > hg commit -Aqd "$rev 0" -m "($rev) $msg" |
82 > } |
82 > } |
83 |
83 |
84 $ cat > printrevset.py <<EOF |
|
85 > from __future__ import absolute_import |
|
86 > from mercurial import ( |
|
87 > cmdutil, |
|
88 > commands, |
|
89 > extensions, |
|
90 > logcmdutil, |
|
91 > revsetlang, |
|
92 > smartset, |
|
93 > ) |
|
94 > from mercurial.utils import stringutil |
|
95 > |
|
96 > def logrevset(repo, pats, opts): |
|
97 > revs = logcmdutil._initialrevs(repo, opts) |
|
98 > if not revs: |
|
99 > return None |
|
100 > match, pats, slowpath = logcmdutil._makematcher(repo, revs, pats, opts) |
|
101 > return logcmdutil._makerevset(repo, match, pats, slowpath, opts) |
|
102 > |
|
103 > def uisetup(ui): |
|
104 > def printrevset(orig, repo, pats, opts): |
|
105 > revs, filematcher = orig(repo, pats, opts) |
|
106 > if opts.get(b'print_revset'): |
|
107 > expr = logrevset(repo, pats, opts) |
|
108 > if expr: |
|
109 > tree = revsetlang.parse(expr) |
|
110 > tree = revsetlang.analyze(tree) |
|
111 > else: |
|
112 > tree = [] |
|
113 > ui = repo.ui |
|
114 > ui.write(b'%r\n' % (opts.get(b'rev', []),)) |
|
115 > ui.write(revsetlang.prettyformat(tree) + b'\n') |
|
116 > ui.write(stringutil.prettyrepr(revs) + b'\n') |
|
117 > revs = smartset.baseset() # display no revisions |
|
118 > return revs, filematcher |
|
119 > extensions.wrapfunction(logcmdutil, 'getrevs', printrevset) |
|
120 > aliases, entry = cmdutil.findcmd(b'log', commands.table) |
|
121 > entry[1].append((b'', b'print-revset', False, |
|
122 > b'print generated revset and exit (DEPRECATED)')) |
|
123 > EOF |
|
124 |
|
125 $ echo "[extensions]" >> $HGRCPATH |
84 $ echo "[extensions]" >> $HGRCPATH |
126 $ echo "printrevset=`pwd`/printrevset.py" >> $HGRCPATH |
85 $ echo "printrevset=$TESTDIR/printrevset.py" >> $HGRCPATH |
127 |
86 |
128 $ hg init repo |
87 $ hg init repo |
129 $ cd repo |
88 $ cd repo |
130 |
89 |
131 Empty repo: |
90 Empty repo: |
1888 (string 'i:set:copied()'))) |
1847 (string 'i:set:copied()'))) |
1889 <filteredset |
1848 <filteredset |
1890 <spanset- 0:7>, |
1849 <spanset- 0:7>, |
1891 <matchfiles patterns=[], include=['set:copied()'] exclude=[], default='relpath', rev=2147483647>> |
1850 <matchfiles patterns=[], include=['set:copied()'] exclude=[], default='relpath', rev=2147483647>> |
1892 $ testlog -r "sort(file('set:copied()'), -rev)" |
1851 $ testlog -r "sort(file('set:copied()'), -rev)" |
1893 ["sort(file('set:copied()'), -rev)"] |
1852 ['sort(file(\'set:copied()\'), -rev)'] |
1894 [] |
1853 [] |
1895 <filteredset |
1854 <filteredset |
1896 <fullreposet- 0:7>, |
1855 <fullreposet- 0:7>, |
1897 <matchfiles patterns=['set:copied()'], include=[] exclude=[], default='glob', rev=None>> |
1856 <matchfiles patterns=['set:copied()'], include=[] exclude=[], default='glob', rev=None>> |
1898 |
1857 |