tikhomirov@32: /* tikhomirov@32: * Copyright (c) 2011 Artem Tikhomirov tikhomirov@32: */ tikhomirov@32: package com.tmate.hgkit.console; tikhomirov@32: tikhomirov@32: import java.io.File; tikhomirov@32: tikhomirov@32: import com.tmate.hgkit.fs.DataAccess; tikhomirov@32: import com.tmate.hgkit.fs.DataAccessProvider; tikhomirov@32: import com.tmate.hgkit.ll.Nodeid; tikhomirov@32: tikhomirov@32: /** tikhomirov@32: * @see http://mercurial.selenic.com/wiki/BundleFormat tikhomirov@32: * tikhomirov@32: * @author artem tikhomirov@32: */ tikhomirov@32: public class Bundle { tikhomirov@32: tikhomirov@32: public static void main(String[] args) throws Exception { tikhomirov@32: File bundleFile = new File("/temp/hg/hg-bundle-a78c980749e3.tmp"); tikhomirov@32: DataAccessProvider dap = new DataAccessProvider(); tikhomirov@32: DataAccess da = dap.create(bundleFile); tikhomirov@32: while (!da.isEmpty()) { tikhomirov@32: int len = da.readInt(); tikhomirov@32: while (len > 4) { tikhomirov@32: byte[] nb = new byte[20]; tikhomirov@32: da.readBytes(nb, 0, 20); tikhomirov@32: Nodeid node = new Nodeid(nb, true); tikhomirov@32: da.readBytes(nb, 0, 20); tikhomirov@32: Nodeid p1 = new Nodeid(nb, true); tikhomirov@32: da.readBytes(nb, 0, 20); tikhomirov@32: Nodeid p2 = new Nodeid(nb, true); tikhomirov@32: da.readBytes(nb, 0, 20); tikhomirov@32: Nodeid cs = new Nodeid(nb, true); tikhomirov@32: da.skip(len - 84); tikhomirov@32: System.out.printf("%6d %s %s %s %s\n", len, node, p1, p2, cs); tikhomirov@32: len = da.isEmpty() ? 0 : da.readInt(); tikhomirov@32: } tikhomirov@32: System.out.println("Group done"); tikhomirov@32: } tikhomirov@32: } tikhomirov@32: }