Mercurial > jhg
comparison src/com/tmate/hgkit/console/Cat.java @ 17:571e1b2cc3f7
Query file for its parents. Demo of recently added ignore and digest support from within cat cmd
| author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
|---|---|
| date | Mon, 27 Dec 2010 01:43:08 +0100 |
| parents | fc265ddeab26 |
| children | 92c3d0920d58 |
comparison
equal
deleted
inserted
replaced
| 16:254078595653 | 17:571e1b2cc3f7 |
|---|---|
| 1 /** | 1 /* |
| 2 * Copyright (c) 2010 Artem Tikhomirov | 2 * Copyright (c) 2010 Artem Tikhomirov |
| 3 */ | 3 */ |
| 4 package com.tmate.hgkit.console; | 4 package com.tmate.hgkit.console; |
| 5 | 5 |
| 6 import com.tmate.hgkit.fs.RepositoryLookup; | 6 import com.tmate.hgkit.fs.RepositoryLookup; |
| 7 import com.tmate.hgkit.ll.DigestHelper; | |
| 7 import com.tmate.hgkit.ll.HgDataFile; | 8 import com.tmate.hgkit.ll.HgDataFile; |
| 9 import com.tmate.hgkit.ll.HgIgnore; | |
| 8 import com.tmate.hgkit.ll.HgRepository; | 10 import com.tmate.hgkit.ll.HgRepository; |
| 11 import com.tmate.hgkit.ll.LocalHgRepo; | |
| 9 | 12 |
| 10 /** | 13 /** |
| 11 * @author artem | 14 * @author artem |
| 12 * | 15 * |
| 13 */ | 16 */ |
| 19 HgRepository hgRepo = repoLookup.detect(cmdLineOpts); | 22 HgRepository hgRepo = repoLookup.detect(cmdLineOpts); |
| 20 if (hgRepo.isInvalid()) { | 23 if (hgRepo.isInvalid()) { |
| 21 System.err.printf("Can't find repository in: %s\n", hgRepo.getLocation()); | 24 System.err.printf("Can't find repository in: %s\n", hgRepo.getLocation()); |
| 22 return; | 25 return; |
| 23 } | 26 } |
| 27 HgIgnore ignore = ((LocalHgRepo) hgRepo).loadIgnore(); | |
| 28 for (String s : new String[] {"design.txt", "src/com/tmate/hgkit/ll/Changelog.java", "src/Extras.java", "bin/com/tmate/hgkit/ll/Changelog.class"} ) { | |
| 29 System.out.println("Ignored " + s + ": " + ignore.isIgnored(s)); | |
| 30 } | |
| 31 DigestHelper dh = new DigestHelper(); | |
| 24 for (String fname : cmdLineOpts.files) { | 32 for (String fname : cmdLineOpts.files) { |
| 25 System.out.println(fname); | 33 System.out.println(fname); |
| 26 HgDataFile fn = hgRepo.getFileNode(fname); | 34 HgDataFile fn = hgRepo.getFileNode(fname); |
| 27 if (fn.exists()) { | 35 if (fn.exists()) { |
| 28 int total = fn.getRevisionCount(); | 36 int total = fn.getRevisionCount(); |
| 29 System.out.printf("Total revisions: %d\n", total); | 37 System.out.printf("Total revisions: %d\n", total); |
| 30 for (int i = 0; i < total; i++) { | 38 for (int i = 0; i < total; i++) { |
| 31 byte[] content = fn.content(i); | 39 byte[] content = fn.content(i); |
| 32 System.out.println("==========>"); | 40 System.out.println("==========>"); |
| 33 System.out.println(new String(content)); | 41 System.out.println(new String(content)); |
| 42 int[] parentRevisions = new int[2]; | |
| 43 byte[] parent1 = new byte[20]; | |
| 44 byte[] parent2 = new byte[20]; | |
| 45 fn.parents(i, parentRevisions, parent1, parent2); | |
| 46 System.out.println(dh.sha1(parent1, parent2, content)); | |
| 34 } | 47 } |
| 35 } else { | 48 } else { |
| 36 System.out.println(">>>Not found!"); | 49 System.out.println(">>>Not found!"); |
| 37 } | 50 } |
| 38 } | 51 } |
