diff src/com/tmate/hgkit/console/Bundle.java @ 34:51bc56c0addd

Static Nodeid creation methods to reuse NULL id
author Artem Tikhomirov <tikhomirov.artem@gmail.com>
date Thu, 13 Jan 2011 04:03:13 +0100
parents 42585c7cd641
children 6061aa826a9e
line wrap: on
line diff
--- a/src/com/tmate/hgkit/console/Bundle.java	Thu Jan 13 03:42:14 2011 +0100
+++ b/src/com/tmate/hgkit/console/Bundle.java	Thu Jan 13 04:03:13 2011 +0100
@@ -20,23 +20,24 @@
 		File bundleFile = new File("/temp/hg/hg-bundle-a78c980749e3.tmp");
 		DataAccessProvider dap = new DataAccessProvider();
 		DataAccess da = dap.create(bundleFile);
-		while (!da.isEmpty()) {
-			int len = da.readInt();
-			while (len > 4) {
-				byte[] nb = new byte[20];
-				da.readBytes(nb, 0, 20);
-				Nodeid node = new Nodeid(nb, true);
-				da.readBytes(nb, 0, 20);
-				Nodeid p1 = new Nodeid(nb, true);
-				da.readBytes(nb, 0, 20);
-				Nodeid p2 = new Nodeid(nb, true);
-				da.readBytes(nb, 0, 20);
-				Nodeid cs = new Nodeid(nb, true);
-				da.skip(len - 84);
-				System.out.printf("%6d %s %s %s %s\n", len, node, p1, p2, cs);
-				len = da.isEmpty() ? 0 : da.readInt();
+		try {
+			while (!da.isEmpty()) {
+				int len = da.readInt();
+				while (len > 4) {
+					byte[] nb = new byte[80];
+					da.readBytes(nb, 0, 80);
+					Nodeid node = Nodeid.fromBinary(nb, 0);
+					Nodeid p1 = Nodeid.fromBinary(nb, 20);
+					Nodeid p2 = Nodeid.fromBinary(nb, 40);
+					Nodeid cs = Nodeid.fromBinary(nb, 60);
+					da.skip(len - 84);
+					System.out.printf("%6d %s %s %s %s\n", len, node, p1, p2, cs);
+					len = da.isEmpty() ? 0 : da.readInt();
+				}
+				System.out.println("Group done");
 			}
-			System.out.println("Group done");
+		} finally {
+			da.done();
 		}
 	}
 }