Mercurial > hg4j
annotate cmdline/org/tmatesoft/hg/console/Cat.java @ 130:7567f4a42fe5
Correct contact address
| author | Artem Tikhomirov <tikhomirov.artem@gmail.com> | 
|---|---|
| date | Wed, 16 Feb 2011 20:33:31 +0100 | 
| parents | a3a2e5deb320 | 
| children | b9700740553a | 
| 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: 
5diff
changeset | 1 /* | 
| 72 
9a03a80a0f2f
Command-line frontend moved to separate source root with new package statement
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
59diff
changeset | 2 * Copyright (c) 2010-2011 TMate Software Ltd | 
| 
9a03a80a0f2f
Command-line frontend moved to separate source root with new package statement
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
59diff
changeset | 3 * | 
| 
9a03a80a0f2f
Command-line frontend moved to separate source root with new package statement
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
59diff
changeset | 4 * This program is free software; you can redistribute it and/or modify | 
| 
9a03a80a0f2f
Command-line frontend moved to separate source root with new package statement
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
59diff
changeset | 5 * it under the terms of the GNU General Public License as published by | 
| 
9a03a80a0f2f
Command-line frontend moved to separate source root with new package statement
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
59diff
changeset | 6 * the Free Software Foundation; version 2 of the License. | 
| 
9a03a80a0f2f
Command-line frontend moved to separate source root with new package statement
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
59diff
changeset | 7 * | 
| 
9a03a80a0f2f
Command-line frontend moved to separate source root with new package statement
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
59diff
changeset | 8 * This program is distributed in the hope that it will be useful, | 
| 
9a03a80a0f2f
Command-line frontend moved to separate source root with new package statement
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
59diff
changeset | 9 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
| 
9a03a80a0f2f
Command-line frontend moved to separate source root with new package statement
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
59diff
changeset | 10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 
| 
9a03a80a0f2f
Command-line frontend moved to separate source root with new package statement
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
59diff
changeset | 11 * GNU General Public License for more details. | 
| 
9a03a80a0f2f
Command-line frontend moved to separate source root with new package statement
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
59diff
changeset | 12 * | 
| 
9a03a80a0f2f
Command-line frontend moved to separate source root with new package statement
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
59diff
changeset | 13 * For information on how to redistribute this software under | 
| 
9a03a80a0f2f
Command-line frontend moved to separate source root with new package statement
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
59diff
changeset | 14 * the terms of a license other than GNU General Public License | 
| 102 
a3a2e5deb320
Updated contact address to support@hg4j.com
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
96diff
changeset | 15 * contact TMate Software at support@hg4j.com | 
| 1 
a3576694a4d1
Repository detection from local/specified directory
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 16 */ | 
| 72 
9a03a80a0f2f
Command-line frontend moved to separate source root with new package statement
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
59diff
changeset | 17 package org.tmatesoft.hg.console; | 
| 1 
a3576694a4d1
Repository detection from local/specified directory
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 18 | 
| 74 
6f1b88693d48
Complete refactoring to org.tmatesoft
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
72diff
changeset | 19 import org.tmatesoft.hg.internal.DigestHelper; | 
| 
6f1b88693d48
Complete refactoring to org.tmatesoft
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
72diff
changeset | 20 import org.tmatesoft.hg.repo.HgDataFile; | 
| 
6f1b88693d48
Complete refactoring to org.tmatesoft
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
72diff
changeset | 21 import org.tmatesoft.hg.repo.HgRepository; | 
| 96 
ace7042a5ce6
Internals to HgInternals
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
74diff
changeset | 22 import org.tmatesoft.hg.repo.HgInternals; | 
| 74 
6f1b88693d48
Complete refactoring to org.tmatesoft
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
72diff
changeset | 23 | 
| 1 
a3576694a4d1
Repository detection from local/specified directory
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 24 | 
| 
a3576694a4d1
Repository detection from local/specified directory
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 25 /** | 
| 72 
9a03a80a0f2f
Command-line frontend moved to separate source root with new package statement
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
59diff
changeset | 26 * @author Artem Tikhomirov | 
| 
9a03a80a0f2f
Command-line frontend moved to separate source root with new package statement
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
59diff
changeset | 27 * @author TMate Software Ltd. | 
| 1 
a3576694a4d1
Repository detection from local/specified directory
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 28 */ | 
| 
a3576694a4d1
Repository detection from local/specified directory
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 29 public class Cat { | 
| 
a3576694a4d1
Repository detection from local/specified directory
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 30 | 
| 
a3576694a4d1
Repository detection from local/specified directory
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 31 public static void main(String[] args) throws Exception { | 
| 74 
6f1b88693d48
Complete refactoring to org.tmatesoft
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
72diff
changeset | 32 Options cmdLineOpts = Options.parse(args); | 
| 
6f1b88693d48
Complete refactoring to org.tmatesoft
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
72diff
changeset | 33 HgRepository hgRepo = cmdLineOpts.findRepository(); | 
| 1 
a3576694a4d1
Repository detection from local/specified directory
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 34 if (hgRepo.isInvalid()) { | 
| 
a3576694a4d1
Repository detection from local/specified directory
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 35 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 | 36 return; | 
| 
a3576694a4d1
Repository detection from local/specified directory
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 37 } | 
| 96 
ace7042a5ce6
Internals to HgInternals
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
74diff
changeset | 38 HgInternals debug = new HgInternals(hgRepo); | 
| 59 
b771e94a4f7c
Introduce Internals to keep LocalHgRepo casts and alike in a single place. WCSC optionally to reuse SC data
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
42diff
changeset | 39 String[] toCheck = new String[] {"design.txt", "src/com/tmate/hgkit/ll/Changelog.java", "src/Extras.java", "bin/com/tmate/hgkit/ll/Changelog.class"}; | 
| 
b771e94a4f7c
Introduce Internals to keep LocalHgRepo casts and alike in a single place. WCSC optionally to reuse SC data
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
42diff
changeset | 40 boolean[] checkResult = debug.checkIgnored(toCheck); | 
| 
b771e94a4f7c
Introduce Internals to keep LocalHgRepo casts and alike in a single place. WCSC optionally to reuse SC data
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
42diff
changeset | 41 for (int i = 0; i < toCheck.length; i++) { | 
| 
b771e94a4f7c
Introduce Internals to keep LocalHgRepo casts and alike in a single place. WCSC optionally to reuse SC data
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
42diff
changeset | 42 System.out.println("Ignored " + toCheck[i] + ": " + checkResult[i]); | 
| 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: 
5diff
changeset | 43 } | 
| 
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: 
5diff
changeset | 44 DigestHelper dh = new DigestHelper(); | 
| 5 
fc265ddeab26
File content and non-effective, although working, patch application
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
3diff
changeset | 45 for (String fname : cmdLineOpts.files) { | 
| 
fc265ddeab26
File content and non-effective, although working, patch application
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
3diff
changeset | 46 System.out.println(fname); | 
| 
fc265ddeab26
File content and non-effective, although working, patch application
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
3diff
changeset | 47 HgDataFile fn = hgRepo.getFileNode(fname); | 
| 
fc265ddeab26
File content and non-effective, although working, patch application
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
3diff
changeset | 48 if (fn.exists()) { | 
| 
fc265ddeab26
File content and non-effective, although working, patch application
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
3diff
changeset | 49 int total = fn.getRevisionCount(); | 
| 
fc265ddeab26
File content and non-effective, although working, patch application
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
3diff
changeset | 50 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: 
3diff
changeset | 51 for (int i = 0; i < total; i++) { | 
| 
fc265ddeab26
File content and non-effective, although working, patch application
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
3diff
changeset | 52 byte[] content = fn.content(i); | 
| 
fc265ddeab26
File content and non-effective, although working, patch application
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
3diff
changeset | 53 System.out.println("==========>"); | 
| 
fc265ddeab26
File content and non-effective, although working, patch application
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
3diff
changeset | 54 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: 
5diff
changeset | 55 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: 
5diff
changeset | 56 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: 
5diff
changeset | 57 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: 
5diff
changeset | 58 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: 
17diff
changeset | 59 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: 
3diff
changeset | 60 } | 
| 
fc265ddeab26
File content and non-effective, although working, patch application
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
3diff
changeset | 61 } else { | 
| 
fc265ddeab26
File content and non-effective, although working, patch application
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
3diff
changeset | 62 System.out.println(">>>Not found!"); | 
| 
fc265ddeab26
File content and non-effective, although working, patch application
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
3diff
changeset | 63 } | 
| 
fc265ddeab26
File content and non-effective, although working, patch application
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
3diff
changeset | 64 } | 
| 1 
a3576694a4d1
Repository detection from local/specified directory
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 65 } | 
| 
a3576694a4d1
Repository detection from local/specified directory
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 66 } | 
