Mercurial > hg4j
view src/com/tmate/hgkit/console/Bundle.java @ 32:42585c7cd641
Initial dump of a bundle
author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
---|---|
date | Thu, 13 Jan 2011 03:41:10 +0100 |
parents | |
children | 51bc56c0addd |
line wrap: on
line source
/* * Copyright (c) 2011 Artem Tikhomirov */ package com.tmate.hgkit.console; import java.io.File; import com.tmate.hgkit.fs.DataAccess; import com.tmate.hgkit.fs.DataAccessProvider; import com.tmate.hgkit.ll.Nodeid; /** * @see http://mercurial.selenic.com/wiki/BundleFormat * * @author artem */ public class Bundle { public static void main(String[] args) throws Exception { 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(); } System.out.println("Group done"); } } }