text: // returns the current leaf node for a given revision
  function latest(rev, metadata) {
    var toVisit = metadata.rev_tree.slice();
    var node;
    while ((node = toVisit.pop())) {
      var pos = node.pos;
      var tree = node.ids;
      var id = tree[0];
      var opts = tree[1];
      var branches = tree[2];
      var isLeaf = branches.length === 0;
  
      var history = node.history ? node.history.slice() : [];
      history.push({id: id, pos: pos, opts: opts});
  
      if (isLeaf) {
        for (var i = 0, len = history.length; i < len; i++) {
          var historyNode = history[i];
          var historyRev = historyNode.pos + '-' + historyNode.id;
  
          if (historyRev === rev) {
            // return the rev of this leaf
            return pos + '-' + id;
          }
        }
      }
  
      for (var j = 0, l = branches.length; j < l; j++) {
        toVisit.push({pos: pos + 1, ids: branches[j], history: history});
      }
    }
  
    /* istanbul ignore next */
    throw new Error('Unable to resolve latest revision for id ' + metadata.id + ', rev ' + rev);
  }
  
  export default latest;