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.
--- 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')
--- 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