Mercurial > public > mercurial-scm > hg
comparison mercurial/cmdutil.py @ 24062:f576addb5b77
log: extract common part from getgraphlogrevs() and getlogrevs()
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Fri, 06 Feb 2015 00:15:35 +0900 |
parents | 4fa72a09c73d |
children | c98fa0ca4678 |
comparison
equal
deleted
inserted
replaced
24061:4fa72a09c73d | 24062:f576addb5b77 |
---|---|
1820 expr = '(' + ' and '.join(expr) + ')' | 1820 expr = '(' + ' and '.join(expr) + ')' |
1821 else: | 1821 else: |
1822 expr = None | 1822 expr = None |
1823 return expr, filematcher | 1823 return expr, filematcher |
1824 | 1824 |
1825 def _logrevs(repo, opts): | |
1826 # Default --rev value depends on --follow but --follow behaviour | |
1827 # depends on revisions resolved from --rev... | |
1828 follow = opts.get('follow') or opts.get('follow_first') | |
1829 if opts.get('rev'): | |
1830 revs = scmutil.revrange(repo, opts['rev']) | |
1831 elif follow: | |
1832 revs = repo.revs('reverse(:.)') | |
1833 else: | |
1834 revs = revset.spanset(repo) | |
1835 revs.reverse() | |
1836 return revs | |
1837 | |
1825 def getgraphlogrevs(repo, pats, opts): | 1838 def getgraphlogrevs(repo, pats, opts): |
1826 """Return (revs, expr, filematcher) where revs is an iterable of | 1839 """Return (revs, expr, filematcher) where revs is an iterable of |
1827 revision numbers, expr is a revset string built from log options | 1840 revision numbers, expr is a revset string built from log options |
1828 and file patterns or None, and used to filter 'revs'. If --stat or | 1841 and file patterns or None, and used to filter 'revs'. If --stat or |
1829 --patch are not passed filematcher is None. Otherwise it is a | 1842 --patch are not passed filematcher is None. Otherwise it is a |
1830 callable taking a revision number and returning a match objects | 1843 callable taking a revision number and returning a match objects |
1831 filtering the files to be detailed when displaying the revision. | 1844 filtering the files to be detailed when displaying the revision. |
1832 """ | 1845 """ |
1833 limit = loglimit(opts) | 1846 limit = loglimit(opts) |
1834 # Default --rev value depends on --follow but --follow behaviour | 1847 revs = _logrevs(repo, opts) |
1835 # depends on revisions resolved from --rev... | |
1836 follow = opts.get('follow') or opts.get('follow_first') | |
1837 if opts.get('rev'): | |
1838 revs = scmutil.revrange(repo, opts['rev']) | |
1839 else: | |
1840 if follow: | |
1841 revs = repo.revs('reverse(:.)') | |
1842 else: | |
1843 revs = revset.spanset(repo) | |
1844 revs.reverse() | |
1845 if not revs: | 1848 if not revs: |
1846 return revset.baseset(), None, None | 1849 return revset.baseset(), None, None |
1847 expr, filematcher = _makelogrevset(repo, pats, opts, revs) | 1850 expr, filematcher = _makelogrevset(repo, pats, opts, revs) |
1848 if opts.get('rev'): | 1851 if opts.get('rev'): |
1849 # User-specified revs might be unsorted, but don't sort before | 1852 # User-specified revs might be unsorted, but don't sort before |
1876 --patch are not passed filematcher is None. Otherwise it is a | 1879 --patch are not passed filematcher is None. Otherwise it is a |
1877 callable taking a revision number and returning a match objects | 1880 callable taking a revision number and returning a match objects |
1878 filtering the files to be detailed when displaying the revision. | 1881 filtering the files to be detailed when displaying the revision. |
1879 """ | 1882 """ |
1880 limit = loglimit(opts) | 1883 limit = loglimit(opts) |
1881 # Default --rev value depends on --follow but --follow behaviour | 1884 revs = _logrevs(repo, opts) |
1882 # depends on revisions resolved from --rev... | |
1883 follow = opts.get('follow') or opts.get('follow_first') | |
1884 if opts.get('rev'): | |
1885 revs = scmutil.revrange(repo, opts['rev']) | |
1886 elif follow: | |
1887 revs = repo.revs('reverse(:.)') | |
1888 else: | |
1889 revs = revset.spanset(repo) | |
1890 revs.reverse() | |
1891 if not revs: | 1885 if not revs: |
1892 return revset.baseset([]), None, None | 1886 return revset.baseset([]), None, None |
1893 expr, filematcher = _makelogrevset(repo, pats, opts, revs) | 1887 expr, filematcher = _makelogrevset(repo, pats, opts, revs) |
1894 if expr: | 1888 if expr: |
1895 # Revset matchers often operate faster on revisions in changelog | 1889 # Revset matchers often operate faster on revisions in changelog |