https://bz.mercurial-scm.org/show_bug.cgi?id=5609
Bug ID: 5609 Summary: revsingle behavior changed Product: Mercurial Version: default branch Hardware: PC OS: Linux Status: UNCONFIRMED Severity: bug Priority: wish Component: revset Assignee: bugzi...@mercurial-scm.org Reporter: lothiral...@gmail.com CC: mercurial-devel@mercurial-scm.org The behavior of scmutil.revsingle seems to have changed in default branch. Here is a reproduction scenario using annotate: Setup: hg init test cd test touch ROOT hg commit -A -m ROOT echo "A" > A hg commit -A -m "A" Repro: hg annotate -r "0::" A The expected output is: 1: A The current output is: abort: A: no such file in rev c19fb0feaa37 Not all commands using revsingle seems affected. I've bisected the problem to d83b189aef83 ( dagop: change revdescendants() to include all root revisions). I tried debugging the issue by printing "l.last()" value in revsingle: diff -r d83b189aef83 mercurial/scmutil.py --- a/mercurial/scmutil.py Tue Jun 20 22:26:52 2017 +0900 +++ b/mercurial/scmutil.py Tue Jun 27 15:43:25 2017 +0200 @@ -404,6 +404,7 @@ l = revrange(repo, [revspec]) if not l: raise error.Abort(_('empty revision set')) + print("Last", l.last()) return repo[l.last()] def _pairspec(revspec): But after adding the print, the reproduction script stops failing. Even stranger, printing "l.last()" value several times shows that the incorrect value is only here the first time: diff -r d83b189aef83 mercurial/scmutil.py --- a/mercurial/scmutil.py Tue Jun 20 22:26:52 2017 +0900 +++ b/mercurial/scmutil.py Tue Jun 27 15:45:22 2017 +0200 @@ -404,6 +404,9 @@ l = revrange(repo, [revspec]) if not l: raise error.Abort(_('empty revision set')) + print("Last", l.last()) + print("Last", l.last()) + print("Last", l.last()) return repo[l.last()] def _pairspec(revspec): And here is the annotate call: ('Last', 0) ('Last', 1) ('Last', 1) 1: A Here is the reproduction script as a .t file: $ hg init test $ cd test $ touch ROOT $ hg commit -A -m ROOT adding ROOT $ echo "A" > A $ hg commit -A -m "A" adding A $ hg annotate -r "0::" A 1: A (fails with the example at the top) -- You are receiving this mail because: You are on the CC list for the bug. _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel