use: bk rset -l$REV Basically like bk get -r$REV ChangeSet with rootkey replaces by path and deltakey in MD5 form.

bk rset -r$LOWER..$UPPER
List only files that have different deltakeys
bk rset -r$LOWER1,$LOWER2..$UPPER
Handles a merge with 2 merge parents (new to bk-7)

Performance:

Up through bk-6.x, rset walked the cset weave once for -l, twice for -r, and 3 times if --show-gone . In bk-7, the weave is only walked once in all cases, with effort taken to walk a minimal part of the weave.

This is achieved by having a copy / customized version of walkrevs(). Walkrevs() has a limitation of tracking 2 versions. Rset needs to track 3 to correctly handle -r$MERGE. More could be handled, but use case hasn’t presented itself yet. The routine is weaveExtract().

Todo: Mark new files in the weave. Currently, if all a cset did was introduce a new file, the weave is walked from that cset on to root, because weaveExtract() is looking for a lower bound. If new file entries had some type of special annotation in the weave, then the walk could stop after reading one line.