# HG changeset patch # User Yuya Nishihara # Date 1523630707 -32400 # Node ID 141017c7f7a96a44c8fabb12b5d2b30d911abb24 # Parent 03d7f885d5f2cbf25ebcb205a7ed90e6b864a892 log: fix crash on empty revision with --copies switch If a revset is empty, .max() raises ValueError. I don't see any reason to recompute the revs, so I made it reuse the one returned by logcmdutil.getrevs(). If no revs specified by command line, the endrev will be smartset.spanset(repo) + 1, which is basically the same as len(repo), the default of getrenamedfn(). If --follow specified, revs.max() points to the working parent, which seems more correct. diff -r 03d7f885d5f2 -r 141017c7f7a9 mercurial/commands.py --- a/mercurial/commands.py Tue Apr 17 21:59:58 2018 +0900 +++ b/mercurial/commands.py Fri Apr 13 23:45:07 2018 +0900 @@ -3477,8 +3477,8 @@ getrenamed = None if opts.get('copies'): endrev = None - if opts.get('rev'): - endrev = scmutil.revrange(repo, opts.get('rev')).max() + 1 + if revs: + endrev = revs.max() + 1 getrenamed = templatekw.getrenamedfn(repo, endrev=endrev) ui.pager('log') diff -r 03d7f885d5f2 -r 141017c7f7a9 tests/test-log.t --- a/tests/test-log.t Tue Apr 17 21:59:58 2018 +0900 +++ b/tests/test-log.t Fri Apr 13 23:45:07 2018 +0900 @@ -656,6 +656,9 @@ 6 #endif +log copies, empty set + + $ hg log --copies -r '0 and not 0' log -p d