Mercurial > jhg
annotate src/com/tmate/hgkit/console/Cat.java @ 159:f5aed108754e wrap-data-access
Approach with DataAccess instead of plain byte[] was merged into default branch
| author | Artem Tikhomirov <tikhomirov.artem@gmail.com> | 
|---|---|
| date | Wed, 09 Mar 2011 13:28:02 +0100 | 
| parents | 92c3d0920d58 | 
| children | b771e94a4f7c | 
| rev | line source | 
|---|---|
| 
17
 
571e1b2cc3f7
Query file for its parents. Demo of recently added ignore and digest support from within cat cmd
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
5 
diff
changeset
 | 
1 /* | 
| 
1
 
a3576694a4d1
Repository detection from local/specified directory
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
2 * Copyright (c) 2010 Artem Tikhomirov | 
| 
 
a3576694a4d1
Repository detection from local/specified directory
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
3 */ | 
| 
 
a3576694a4d1
Repository detection from local/specified directory
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
4 package com.tmate.hgkit.console; | 
| 
 
a3576694a4d1
Repository detection from local/specified directory
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
5 | 
| 
2
 
08db726a0fb7
Shaping out low-level Hg structures
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
1 
diff
changeset
 | 
6 import com.tmate.hgkit.fs.RepositoryLookup; | 
| 
17
 
571e1b2cc3f7
Query file for its parents. Demo of recently added ignore and digest support from within cat cmd
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
5 
diff
changeset
 | 
7 import com.tmate.hgkit.ll.DigestHelper; | 
| 
5
 
fc265ddeab26
File content and non-effective, although working, patch application
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
3 
diff
changeset
 | 
8 import com.tmate.hgkit.ll.HgDataFile; | 
| 
17
 
571e1b2cc3f7
Query file for its parents. Demo of recently added ignore and digest support from within cat cmd
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
5 
diff
changeset
 | 
9 import com.tmate.hgkit.ll.HgIgnore; | 
| 
1
 
a3576694a4d1
Repository detection from local/specified directory
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
10 import com.tmate.hgkit.ll.HgRepository; | 
| 
17
 
571e1b2cc3f7
Query file for its parents. Demo of recently added ignore and digest support from within cat cmd
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
5 
diff
changeset
 | 
11 import com.tmate.hgkit.ll.LocalHgRepo; | 
| 
1
 
a3576694a4d1
Repository detection from local/specified directory
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
12 | 
| 
 
a3576694a4d1
Repository detection from local/specified directory
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
13 /** | 
| 
 
a3576694a4d1
Repository detection from local/specified directory
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
14 * @author artem | 
| 
 
a3576694a4d1
Repository detection from local/specified directory
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
15 * | 
| 
 
a3576694a4d1
Repository detection from local/specified directory
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
16 */ | 
| 
 
a3576694a4d1
Repository detection from local/specified directory
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
17 public class Cat { | 
| 
 
a3576694a4d1
Repository detection from local/specified directory
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
18 | 
| 
 
a3576694a4d1
Repository detection from local/specified directory
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
19 public static void main(String[] args) throws Exception { | 
| 
2
 
08db726a0fb7
Shaping out low-level Hg structures
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
1 
diff
changeset
 | 
20 RepositoryLookup repoLookup = new RepositoryLookup(); | 
| 
5
 
fc265ddeab26
File content and non-effective, although working, patch application
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
3 
diff
changeset
 | 
21 RepositoryLookup.Options cmdLineOpts = RepositoryLookup.Options.parse(args); | 
| 
 
fc265ddeab26
File content and non-effective, although working, patch application
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
3 
diff
changeset
 | 
22 HgRepository hgRepo = repoLookup.detect(cmdLineOpts); | 
| 
1
 
a3576694a4d1
Repository detection from local/specified directory
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
23 if (hgRepo.isInvalid()) { | 
| 
 
a3576694a4d1
Repository detection from local/specified directory
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
24 System.err.printf("Can't find repository in: %s\n", hgRepo.getLocation()); | 
| 
 
a3576694a4d1
Repository detection from local/specified directory
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
25 return; | 
| 
 
a3576694a4d1
Repository detection from local/specified directory
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
26 } | 
| 
17
 
571e1b2cc3f7
Query file for its parents. Demo of recently added ignore and digest support from within cat cmd
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
5 
diff
changeset
 | 
27 HgIgnore ignore = ((LocalHgRepo) hgRepo).loadIgnore(); | 
| 
 
571e1b2cc3f7
Query file for its parents. Demo of recently added ignore and digest support from within cat cmd
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
5 
diff
changeset
 | 
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"} ) { | 
| 
 
571e1b2cc3f7
Query file for its parents. Demo of recently added ignore and digest support from within cat cmd
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
5 
diff
changeset
 | 
29 System.out.println("Ignored " + s + ": " + ignore.isIgnored(s)); | 
| 
 
571e1b2cc3f7
Query file for its parents. Demo of recently added ignore and digest support from within cat cmd
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
5 
diff
changeset
 | 
30 } | 
| 
 
571e1b2cc3f7
Query file for its parents. Demo of recently added ignore and digest support from within cat cmd
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
5 
diff
changeset
 | 
31 DigestHelper dh = new DigestHelper(); | 
| 
5
 
fc265ddeab26
File content and non-effective, although working, patch application
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
3 
diff
changeset
 | 
32 for (String fname : cmdLineOpts.files) { | 
| 
 
fc265ddeab26
File content and non-effective, although working, patch application
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
3 
diff
changeset
 | 
33 System.out.println(fname); | 
| 
 
fc265ddeab26
File content and non-effective, although working, patch application
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
3 
diff
changeset
 | 
34 HgDataFile fn = hgRepo.getFileNode(fname); | 
| 
 
fc265ddeab26
File content and non-effective, although working, patch application
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
3 
diff
changeset
 | 
35 if (fn.exists()) { | 
| 
 
fc265ddeab26
File content and non-effective, although working, patch application
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
3 
diff
changeset
 | 
36 int total = fn.getRevisionCount(); | 
| 
 
fc265ddeab26
File content and non-effective, although working, patch application
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
3 
diff
changeset
 | 
37 System.out.printf("Total revisions: %d\n", total); | 
| 
 
fc265ddeab26
File content and non-effective, although working, patch application
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
3 
diff
changeset
 | 
38 for (int i = 0; i < total; i++) { | 
| 
 
fc265ddeab26
File content and non-effective, although working, patch application
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
3 
diff
changeset
 | 
39 byte[] content = fn.content(i); | 
| 
 
fc265ddeab26
File content and non-effective, although working, patch application
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
3 
diff
changeset
 | 
40 System.out.println("==========>"); | 
| 
 
fc265ddeab26
File content and non-effective, although working, patch application
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
3 
diff
changeset
 | 
41 System.out.println(new String(content)); | 
| 
17
 
571e1b2cc3f7
Query file for its parents. Demo of recently added ignore and digest support from within cat cmd
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
5 
diff
changeset
 | 
42 int[] parentRevisions = new int[2]; | 
| 
 
571e1b2cc3f7
Query file for its parents. Demo of recently added ignore and digest support from within cat cmd
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
5 
diff
changeset
 | 
43 byte[] parent1 = new byte[20]; | 
| 
 
571e1b2cc3f7
Query file for its parents. Demo of recently added ignore and digest support from within cat cmd
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
5 
diff
changeset
 | 
44 byte[] parent2 = new byte[20]; | 
| 
 
571e1b2cc3f7
Query file for its parents. Demo of recently added ignore and digest support from within cat cmd
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
5 
diff
changeset
 | 
45 fn.parents(i, parentRevisions, parent1, parent2); | 
| 
42
 
92c3d0920d58
Real integrity check, with exception. DigestHelper refactored to accomodate new needs
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
17 
diff
changeset
 | 
46 System.out.println(dh.sha1(parent1, parent2, content).asHexString()); | 
| 
5
 
fc265ddeab26
File content and non-effective, although working, patch application
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
3 
diff
changeset
 | 
47 } | 
| 
 
fc265ddeab26
File content and non-effective, although working, patch application
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
3 
diff
changeset
 | 
48 } else { | 
| 
 
fc265ddeab26
File content and non-effective, although working, patch application
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
3 
diff
changeset
 | 
49 System.out.println(">>>Not found!"); | 
| 
 
fc265ddeab26
File content and non-effective, although working, patch application
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
3 
diff
changeset
 | 
50 } | 
| 
 
fc265ddeab26
File content and non-effective, although working, patch application
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
3 
diff
changeset
 | 
51 } | 
| 
1
 
a3576694a4d1
Repository detection from local/specified directory
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
52 } | 
| 
 
a3576694a4d1
Repository detection from local/specified directory
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
53 } | 
