| // return true if a rev exists in the rev tree, false otherwise |
| function revExists(revs, rev) { |
| var toVisit = revs.slice(); |
| var splitRev = rev.split('-'); |
| var targetPos = parseInt(splitRev[0], 10); |
| var targetId = splitRev[1]; |
| |
| var node; |
| while ((node = toVisit.pop())) { |
| if (node.pos === targetPos && node.ids[0] === targetId) { |
| return true; |
| } |
| var branches = node.ids[2]; |
| for (var i = 0, len = branches.length; i < len; i++) { |
| toVisit.push({pos: node.pos + 1, ids: branches[i]}); |
| } |
| } |
| return false; |
| } |
| |
| export default revExists; |