comparison mercurial/revset.py @ 29946:285a8c3e53f2

revset: make sort() noop depending on ordering requirement (BC) See the previous patch for why.
author Yuya Nishihara <yuya@tcha.org>
date Tue, 03 May 2016 13:36:12 +0900
parents 89dbae952ec1
children 1b5931604a5a
comparison
equal deleted inserted replaced
29945:89dbae952ec1 29946:285a8c3e53f2
1899 raise error.ParseError(_('topo.firstbranch can only be used ' 1899 raise error.ParseError(_('topo.firstbranch can only be used '
1900 'when using the topo sort key')) 1900 'when using the topo sort key'))
1901 1901
1902 return args['set'], keyflags, opts 1902 return args['set'], keyflags, opts
1903 1903
1904 @predicate('sort(set[, [-]key... [, ...]])', safe=True) 1904 @predicate('sort(set[, [-]key... [, ...]])', safe=True, takeorder=True)
1905 def sort(repo, subset, x): 1905 def sort(repo, subset, x, order):
1906 """Sort set by keys. The default sort order is ascending, specify a key 1906 """Sort set by keys. The default sort order is ascending, specify a key
1907 as ``-key`` to sort in descending order. 1907 as ``-key`` to sort in descending order.
1908 1908
1909 The keys can be: 1909 The keys can be:
1910 1910
1921 1921
1922 """ 1922 """
1923 s, keyflags, opts = _getsortargs(x) 1923 s, keyflags, opts = _getsortargs(x)
1924 revs = getset(repo, subset, s) 1924 revs = getset(repo, subset, s)
1925 1925
1926 if not keyflags: 1926 if not keyflags or order != defineorder:
1927 return revs 1927 return revs
1928 if len(keyflags) == 1 and keyflags[0][0] == "rev": 1928 if len(keyflags) == 1 and keyflags[0][0] == "rev":
1929 revs.sort(reverse=keyflags[0][1]) 1929 revs.sort(reverse=keyflags[0][1])
1930 return revs 1930 return revs
1931 elif keyflags[0][0] == "topo": 1931 elif keyflags[0][0] == "topo":