##// END OF EJS Templates
revset: build dict of extra sort options before evaluating set...
Yuya Nishihara -
r29364:76a1a703 default
parent child Browse files
Show More
@@ -1881,30 +1881,33 b' def sort(repo, subset, x):'
1881 1881 raise error.ParseError(_("unknown sort key %r") % fk)
1882 1882 keyflags.append((k, reverse))
1883 1883
1884 s = args['set']
1885 revs = getset(repo, subset, s)
1886
1887 1884 if len(keyflags) > 1 and any(k == 'topo' for k, reverse in keyflags):
1888 1885 # i18n: "topo" is a keyword
1889 1886 raise error.ParseError(_(
1890 1887 'topo sort order cannot be combined with other sort keys'))
1891 1888
1892 firstbranch = ()
1889 opts = {}
1893 1890 if 'topo.firstbranch' in args:
1894 1891 if any(k == 'topo' for k, reverse in keyflags):
1895 firstbranch = getset(repo, subset, args['topo.firstbranch'])
1892 opts['topo.firstbranch'] = args['topo.firstbranch']
1896 1893 else:
1897 1894 # i18n: "topo" and "topo.firstbranch" are keywords
1898 1895 raise error.ParseError(_(
1899 1896 'topo.firstbranch can only be used when using the topo sort '
1900 1897 'key'))
1901 1898
1899 s = args['set']
1900 revs = getset(repo, subset, s)
1901
1902 1902 if not keyflags:
1903 1903 return revs
1904 1904 if len(keyflags) == 1 and keyflags[0][0] == "rev":
1905 1905 revs.sort(reverse=keyflags[0][1])
1906 1906 return revs
1907 1907 elif keyflags[0][0] == "topo":
1908 firstbranch = ()
1909 if 'topo.firstbranch' in opts:
1910 firstbranch = getset(repo, subset, opts['topo.firstbranch'])
1908 1911 revs = baseset(_toposort(revs, repo.changelog.parentrevs, firstbranch),
1909 1912 istopo=True)
1910 1913 if keyflags[0][1]:
General Comments 0
You need to be logged in to leave comments. Login now