Mercurial > jhg
comparison src/org/tmatesoft/hg/repo/HgBundle.java @ 354:5f9073eabf06
Propagate errors with exceptions up to a end client
| author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
|---|---|
| date | Thu, 01 Dec 2011 05:21:40 +0100 |
| parents | 694ebabb5cb3 |
| children | dfb8405d996f |
comparison
equal
deleted
inserted
replaced
| 353:0f3687e79f5a | 354:5f9073eabf06 |
|---|---|
| 19 import java.io.File; | 19 import java.io.File; |
| 20 import java.io.IOException; | 20 import java.io.IOException; |
| 21 import java.util.LinkedList; | 21 import java.util.LinkedList; |
| 22 | 22 |
| 23 import org.tmatesoft.hg.core.HgBadStateException; | 23 import org.tmatesoft.hg.core.HgBadStateException; |
| 24 import org.tmatesoft.hg.core.HgCallbackTargetException; | |
| 24 import org.tmatesoft.hg.core.HgException; | 25 import org.tmatesoft.hg.core.HgException; |
| 25 import org.tmatesoft.hg.core.HgInvalidFileException; | 26 import org.tmatesoft.hg.core.HgInvalidFileException; |
| 26 import org.tmatesoft.hg.core.Nodeid; | 27 import org.tmatesoft.hg.core.Nodeid; |
| 27 import org.tmatesoft.hg.internal.ByteArrayChannel; | 28 import org.tmatesoft.hg.internal.ByteArrayChannel; |
| 28 import org.tmatesoft.hg.internal.ByteArrayDataAccess; | 29 import org.tmatesoft.hg.internal.ByteArrayDataAccess; |
| 91 /** | 92 /** |
| 92 * Get changes recorded in the bundle that are missing from the supplied repository. | 93 * Get changes recorded in the bundle that are missing from the supplied repository. |
| 93 * @param hgRepo repository that shall possess base revision for this bundle | 94 * @param hgRepo repository that shall possess base revision for this bundle |
| 94 * @param inspector callback to get each changeset found | 95 * @param inspector callback to get each changeset found |
| 95 */ | 96 */ |
| 96 public void changes(final HgRepository hgRepo, final HgChangelog.Inspector inspector) throws HgInvalidFileException { | 97 public void changes(final HgRepository hgRepo, final HgChangelog.Inspector inspector) throws HgCallbackTargetException, HgInvalidFileException { |
| 97 Inspector bundleInsp = new Inspector() { | 98 Inspector bundleInsp = new Inspector() { |
| 98 DigestHelper dh = new DigestHelper(); | 99 DigestHelper dh = new DigestHelper(); |
| 99 boolean emptyChangelog = true; | 100 boolean emptyChangelog = true; |
| 100 private DataAccess prevRevContent; | 101 private DataAccess prevRevContent; |
| 101 private int revisionIndex; | 102 private int revisionIndex; |
| 175 public void manifestEnd() {} | 176 public void manifestEnd() {} |
| 176 public void fileStart(String name) {} | 177 public void fileStart(String name) {} |
| 177 public void fileEnd(String name) {} | 178 public void fileEnd(String name) {} |
| 178 | 179 |
| 179 }; | 180 }; |
| 180 inspectChangelog(bundleInsp); | 181 try { |
| 182 inspectChangelog(bundleInsp); | |
| 183 } catch (RuntimeException ex) { | |
| 184 throw new HgCallbackTargetException(ex); | |
| 185 } | |
| 181 } | 186 } |
| 182 | 187 |
| 183 public void dump() throws HgException { | 188 public void dump() throws HgException { |
| 184 Dump dump = new Dump(); | 189 Dump dump = new Dump(); |
| 185 inspectAll(dump); | 190 inspectAll(dump); |
