Show More
@@ -247,7 +247,15 b' def notset(repo, subset, x, order):' | |||
|
247 | 247 | |
|
248 | 248 | |
|
249 | 249 | def relationset(repo, subset, x, y, order): |
|
250 | raise error.ParseError(_(b"can't use a relation in this context")) | |
|
250 | # this is pretty basic implementation of 'x#y' operator, still | |
|
251 | # experimental so undocumented. see the wiki for further ideas. | |
|
252 | # https://www.mercurial-scm.org/wiki/RevsetOperatorPlan | |
|
253 | rel = getsymbol(y) | |
|
254 | if rel in relations: | |
|
255 | return relations[rel](repo, subset, x, rel, order) | |
|
256 | ||
|
257 | relnames = [r for r in relations.keys() if len(r) > 1] | |
|
258 | raise error.UnknownIdentifier(rel, relnames) | |
|
251 | 259 | |
|
252 | 260 | |
|
253 | 261 | def _splitrange(a, b): |
@@ -281,6 +289,11 b' def _splitrange(a, b):' | |||
|
281 | 289 | return ancdepths, descdepths |
|
282 | 290 | |
|
283 | 291 | |
|
292 | def generationsrel(repo, subset, x, rel, order): | |
|
293 | z = (b'rangeall', None) | |
|
294 | return generationssubrel(repo, subset, x, rel, z, order) | |
|
295 | ||
|
296 | ||
|
284 | 297 | def generationssubrel(repo, subset, x, rel, z, order): |
|
285 | 298 | # TODO: rewrite tests, and drop startdepth argument from ancestors() and |
|
286 | 299 | # descendants() predicates |
@@ -2649,6 +2662,11 b' methods = {' | |||
|
2649 | 2662 | b"smartset": rawsmartset, |
|
2650 | 2663 | } |
|
2651 | 2664 | |
|
2665 | relations = { | |
|
2666 | b"g": generationsrel, | |
|
2667 | b"generations": generationsrel, | |
|
2668 | } | |
|
2669 | ||
|
2652 | 2670 | subscriptrelations = { |
|
2653 | 2671 | b"g": generationssubrel, |
|
2654 | 2672 | b"generations": generationssubrel, |
@@ -1274,6 +1274,36 b' test descendants with depth limit' | |||
|
1274 | 1274 | 5 |
|
1275 | 1275 | 7 |
|
1276 | 1276 | |
|
1277 | test ancestors/descendants relation: | |
|
1278 | ||
|
1279 | $ log 'tip#generations' | |
|
1280 | 0 | |
|
1281 | 1 | |
|
1282 | 2 | |
|
1283 | 4 | |
|
1284 | 8 | |
|
1285 | 9 | |
|
1286 | ||
|
1287 | $ log '3#g' | |
|
1288 | 0 | |
|
1289 | 1 | |
|
1290 | 3 | |
|
1291 | 5 | |
|
1292 | 6 | |
|
1293 | 7 | |
|
1294 | ||
|
1295 | $ hg debugrevspec -p parsed 'tip#g' | |
|
1296 | * parsed: | |
|
1297 | (relation | |
|
1298 | (symbol 'tip') | |
|
1299 | (symbol 'g')) | |
|
1300 | 0 | |
|
1301 | 1 | |
|
1302 | 2 | |
|
1303 | 4 | |
|
1304 | 8 | |
|
1305 | 9 | |
|
1306 | ||
|
1277 | 1307 | test ancestors/descendants relation subscript: |
|
1278 | 1308 | |
|
1279 | 1309 | $ log 'tip#generations[0]' |
General Comments 0
You need to be logged in to leave comments.
Login now