Mercurial > hg4j
comparison src/org/tmatesoft/hg/repo/HgManifest.java @ 385:6150555eb41d
HgInvalidRevisionException for svn imported repositories (changeset 0 references nullid manifest)
author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
---|---|
date | Mon, 13 Feb 2012 14:19:36 +0100 |
parents | 155c1893bda4 |
children | 6952d9ce97f1 |
comparison
equal
deleted
inserted
replaced
384:4b97847d0b2d | 385:6150555eb41d |
---|---|
477 for (int u : undefinedChangelogRevision) { | 477 for (int u : undefinedChangelogRevision) { |
478 try { | 478 try { |
479 Nodeid manifest = repo.getChangelog().range(u, u).get(0).manifest(); | 479 Nodeid manifest = repo.getChangelog().range(u, u).get(0).manifest(); |
480 // FIXME calculate those missing effectively (e.g. cache and sort nodeids to speed lookup | 480 // FIXME calculate those missing effectively (e.g. cache and sort nodeids to speed lookup |
481 // right away in the #next (may refactor ParentWalker's sequential and sorted into dedicated helper and reuse here) | 481 // right away in the #next (may refactor ParentWalker's sequential and sorted into dedicated helper and reuse here) |
482 changelog2manifest[u] = repo.getManifest().getRevisionIndex(manifest); | 482 if (manifest.isNull()) { |
483 repo.getContext().getLog().warn(getClass(), "Changeset %d has no associated manifest entry", u); | |
484 // keep -1 in the changelog2manifest map. FIXME rest of the code shall accomodate to the fact manifest revision may be missing | |
485 } else { | |
486 changelog2manifest[u] = repo.getManifest().getRevisionIndex(manifest); | |
487 } | |
483 } catch (HgInvalidControlFileException ex) { | 488 } catch (HgInvalidControlFileException ex) { |
484 // FIXME need to propagate the error up to client | 489 // FIXME need to propagate the error up to client |
485 repo.getContext().getLog().error(getClass(), ex, null); | 490 repo.getContext().getLog().error(getClass(), ex, null); |
486 } | 491 } |
487 } | 492 } |