On 15.12.2018 11:10, Daniel Shahaf wrote: > Julian Foad wrote on Fri, Dec 14, 2018 at 22:30:01 +0000: >> Daniel Shahaf wrote: >>> [...] write a script that: >>> 1. Queries the repository for trunk revnums that have been merged to the >> stable branch since the last tag; >> >> See attached "svn-revs-backported.sh". > I think the script might break when we reach r10⁷ (r10000000) because > "svn mergeinfo"'s output is sorted numerically, but comm(1) expects its > inputs to be sorted according to strcoll(3). > > Currently comm(1)'s precondition does hold, but only because all the > revision numbers in "svn mergeinfo"'s output have the same number of > digits. However, as soon as HEAD passes a power of ten, we'll run into > the problem that "r9" is printed before "r10" (because 9 < 10) but > «!(strcoll("r9", "r10") < 0)». (This is the same problem we warned > about in the 1.9 and 1.10 release notes.) > >>> 3. Synthesizes a CHANGES-like listing [...] >> That's one reasonable option. >> >> I do also wonder if we couldn't implement something that more directly >> queries 'svn' and displays the result. That is, start designing and >> implementing some more powerful querying, starting with "changes in >> 1.10.x but not in 1.10.3". > Would that need new RA APIs?
For that particular query, no; it's "just" an intersection of log and mergeinfo (with history). But before we start on something I'd like to see some proposals on query language, so that we don't implement ourselves into a corner. I'd propose this as a starting point: https://www.mercurial-scm.org/repo/hg/help/revsets -- Brane