public List<Nodeid> executeLite() throws HgException, CancelledException {
try {
LinkedHashSet<Nodeid> result = new LinkedHashSet<Nodeid>();
RepositoryComparator repoCompare = getComparator();
for (BranchChain bc : getMissingBranches()) {
List<Nodeid> missing = repoCompare.visitBranches(bc);
HashSet<Nodeid> common = new HashSet<Nodeid>(); // ordering is irrelevant
repoCompare.collectKnownRoots(bc, common);
// missing could only start with common elements. Once non-common, rest is just distinct branch revision trails.
for (Iterator<Nodeid> it = missing.iterator(); it.hasNext() && common.contains(it.next()); it.remove()) ;
result.addAll(missing);