##// END OF EJS Templates
log: use revsetlang.formatspec() to concatenate list expression...
Yuya Nishihara -
r35662:7a0a90d6 default
parent child Browse files
Show More
@@ -41,6 +41,7 b' from . import ('
41 registrar,
41 registrar,
42 revlog,
42 revlog,
43 revset,
43 revset,
44 revsetlang,
44 scmutil,
45 scmutil,
45 smartset,
46 smartset,
46 templatekw,
47 templatekw,
@@ -2347,13 +2348,13 b' def _makenofollowlogfilematcher(repo, pa'
2347 '_fdescendants': ('_firstdescendants(%(val)s)', None),
2348 '_fdescendants': ('_firstdescendants(%(val)s)', None),
2348 '_matchfiles': ('_matchfiles(%(val)s)', None),
2349 '_matchfiles': ('_matchfiles(%(val)s)', None),
2349 'date': ('date(%(val)r)', None),
2350 'date': ('date(%(val)r)', None),
2350 'branch': ('branch(%(val)r)', ' or '),
2351 'branch': ('branch(%(val)r)', '%lr'),
2351 '_patslog': ('filelog(%(val)r)', ' or '),
2352 '_patslog': ('filelog(%(val)r)', '%lr'),
2352 '_patsfollow': ('follow(%(val)r)', ' or '),
2353 '_patsfollow': ('follow(%(val)r)', '%lr'),
2353 '_patsfollowfirst': ('_followfirst(%(val)r)', ' or '),
2354 '_patsfollowfirst': ('_followfirst(%(val)r)', '%lr'),
2354 'keyword': ('keyword(%(val)r)', ' or '),
2355 'keyword': ('keyword(%(val)r)', '%lr'),
2355 'prune': ('not ancestors(%(val)r)', ' and '),
2356 'prune': ('ancestors(%(val)r)', 'not %lr'),
2356 'user': ('user(%(val)r)', ' or '),
2357 'user': ('user(%(val)r)', '%lr'),
2357 }
2358 }
2358
2359
2359 def _makelogrevset(repo, pats, opts, revs):
2360 def _makelogrevset(repo, pats, opts, revs):
@@ -2473,14 +2474,15 b' def _makelogrevset(repo, pats, opts, rev'
2473 continue
2474 continue
2474 if op not in _opt2logrevset:
2475 if op not in _opt2logrevset:
2475 continue
2476 continue
2476 revop, andor = _opt2logrevset[op]
2477 revop, listop = _opt2logrevset[op]
2477 if '%(val)' not in revop:
2478 if '%(val)' not in revop:
2478 expr.append(revop)
2479 expr.append(revop)
2479 else:
2480 else:
2480 if not isinstance(val, list):
2481 if not listop:
2481 e = revop % {'val': val}
2482 e = revop % {'val': val}
2482 else:
2483 else:
2483 e = '(' + andor.join((revop % {'val': v}) for v in val) + ')'
2484 e = [revop % {'val': v} for v in val]
2485 e = revsetlang.formatspec(listop, e)
2484 expr.append(e)
2486 expr.append(e)
2485
2487
2486 if expr:
2488 if expr:
@@ -1500,12 +1500,14 b' glog always reorders nodes which explain'
1500 (func
1500 (func
1501 (symbol 'branch')
1501 (symbol 'branch')
1502 (string 'default'))
1502 (string 'default'))
1503 (func
1503 (or
1504 (symbol 'branch')
1504 (list
1505 (string 'branch'))
1505 (func
1506 (func
1506 (symbol 'branch')
1507 (symbol 'branch')
1507 (string 'branch'))
1508 (string 'branch'))))
1508 (func
1509 (symbol 'branch')
1510 (string 'branch'))))))
1509 <filteredset
1511 <filteredset
1510 <spanset- 0:37>,
1512 <spanset- 0:37>,
1511 <addset
1513 <addset
@@ -1571,26 +1573,25 b' glog always reorders nodes which explain'
1571 [255]
1573 [255]
1572 $ testlog --prune 31 --prune 32
1574 $ testlog --prune 31 --prune 32
1573 []
1575 []
1574 (and
1576 (not
1575 (not
1577 (or
1576 (func
1578 (list
1577 (symbol 'ancestors')
1579 (func
1578 (string '31')))
1580 (symbol 'ancestors')
1579 (not
1581 (string '31'))
1580 (func
1582 (func
1581 (symbol 'ancestors')
1583 (symbol 'ancestors')
1582 (string '32'))))
1584 (string '32')))))
1583 <filteredset
1585 <filteredset
1584 <filteredset
1586 <spanset- 0:37>,
1585 <spanset- 0:37>,
1587 <not
1586 <not
1588 <addset
1587 <filteredset
1589 <filteredset
1588 <spanset- 0:37>,
1590 <spanset- 0:37>,
1589 <generatorsetdesc+>>>>,
1591 <generatorsetdesc+>>,
1590 <not
1592 <filteredset
1591 <filteredset
1593 <spanset- 0:37>,
1592 <spanset- 0:37>,
1594 <generatorsetdesc+>>>>>
1593 <generatorsetdesc+>>>>
1594
1595
1595 Dedicated repo for --follow and paths filtering. The g is crafted to
1596 Dedicated repo for --follow and paths filtering. The g is crafted to
1596 have 2 filelog topological heads in a linear changeset graph.
1597 have 2 filelog topological heads in a linear changeset graph.
General Comments 0
You need to be logged in to leave comments. Login now