Mercurial > jhg
annotate src/org/tmatesoft/hg/repo/ext/MqManager.java @ 581:0890628ed51e
Progress/cancel support in new commands
| author | Artem Tikhomirov <tikhomirov.artem@gmail.com> | 
|---|---|
| date | Mon, 22 Apr 2013 16:02:17 +0200 | 
| parents | d2f6ab541330 | 
| children | 507602cb4fb3 | 
| rev | line source | 
|---|---|
| 463 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 1 /* | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 2 * Copyright (c) 2012 TMate Software Ltd | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 3 * | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 4 * This program is free software; you can redistribute it and/or modify | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 5 * it under the terms of the GNU General Public License as published by | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 6 * the Free Software Foundation; version 2 of the License. | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 7 * | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 8 * This program is distributed in the hope that it will be useful, | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 9 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 11 * GNU General Public License for more details. | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 12 * | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 13 * For information on how to redistribute this software under | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 14 * the terms of a license other than GNU General Public License | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 15 * contact TMate Software at support@hg4j.com | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 16 */ | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 17 package org.tmatesoft.hg.repo.ext; | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 18 | 
| 471 
7bcfbc255f48
Merge changes from smartgit3 branch into 1.1 stream
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
465diff
changeset | 19 import static org.tmatesoft.hg.util.LogFacility.Severity.Warn; | 
| 
7bcfbc255f48
Merge changes from smartgit3 branch into 1.1 stream
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
465diff
changeset | 20 | 
| 463 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 21 import java.io.File; | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 22 import java.io.IOException; | 
| 464 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 23 import java.util.ArrayList; | 
| 463 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 24 import java.util.Collections; | 
| 464 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 25 import java.util.HashMap; | 
| 463 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 26 import java.util.LinkedList; | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 27 import java.util.List; | 
| 464 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 28 import java.util.Map; | 
| 463 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 29 | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 30 import org.tmatesoft.hg.core.Nodeid; | 
| 493 
ba36f66c32b4
Refactor to keep knowledge about repository control files and their location in respect to .hg/ in a single place (facilitate future adoption of shared repositories)
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
490diff
changeset | 31 import org.tmatesoft.hg.internal.Internals; | 
| 480 
f3fab7a20841
Refactor LineReader utility as stanalone class to facilitate reuse
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
475diff
changeset | 32 import org.tmatesoft.hg.internal.LineReader; | 
| 471 
7bcfbc255f48
Merge changes from smartgit3 branch into 1.1 stream
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
465diff
changeset | 33 import org.tmatesoft.hg.repo.HgInvalidControlFileException; | 
| 
7bcfbc255f48
Merge changes from smartgit3 branch into 1.1 stream
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
465diff
changeset | 34 import org.tmatesoft.hg.repo.HgInvalidFileException; | 
| 463 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 35 import org.tmatesoft.hg.util.LogFacility; | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 36 import org.tmatesoft.hg.util.Path; | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 37 | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 38 /** | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 39 * Mercurial Queues Support. | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 40 * Access to MqExtension functionality. | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 41 * | 
| 501 
d2f6ab541330
Change the way extensions are accessed (with ExtensionsManager now), add preliminary Rebase extension support
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
493diff
changeset | 42 * FIXME check we don't hold any mq files for too long, close them, use | 
| 
d2f6ab541330
Change the way extensions are accessed (with ExtensionsManager now), add preliminary Rebase extension support
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
493diff
changeset | 43 * the same lock mechanism as mq does (if any). Check if MQ uses Mercurial's store lock | 
| 
d2f6ab541330
Change the way extensions are accessed (with ExtensionsManager now), add preliminary Rebase extension support
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
493diff
changeset | 44 * | 
| 
d2f6ab541330
Change the way extensions are accessed (with ExtensionsManager now), add preliminary Rebase extension support
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
493diff
changeset | 45 * @since 1.1 | 
| 463 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 46 * @author Artem Tikhomirov | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 47 * @author TMate Software Ltd. | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 48 */ | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 49 public class MqManager { | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 50 | 
| 465 
2078692eeb58
MqManager: read status/series of the active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
464diff
changeset | 51 private static final String PATCHES_DIR = "patches"; | 
| 
2078692eeb58
MqManager: read status/series of the active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
464diff
changeset | 52 | 
| 501 
d2f6ab541330
Change the way extensions are accessed (with ExtensionsManager now), add preliminary Rebase extension support
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
493diff
changeset | 53 private final Internals repo; | 
| 463 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 54 private List<PatchRecord> applied = Collections.emptyList(); | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 55 private List<PatchRecord> allKnown = Collections.emptyList(); | 
| 464 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 56 private List<String> queueNames = Collections.emptyList(); | 
| 465 
2078692eeb58
MqManager: read status/series of the active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
464diff
changeset | 57 private String activeQueue = PATCHES_DIR; | 
| 463 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 58 | 
| 501 
d2f6ab541330
Change the way extensions are accessed (with ExtensionsManager now), add preliminary Rebase extension support
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
493diff
changeset | 59 /*package-local*/ MqManager(Internals internalRepo) { | 
| 
d2f6ab541330
Change the way extensions are accessed (with ExtensionsManager now), add preliminary Rebase extension support
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
493diff
changeset | 60 repo = internalRepo; | 
| 463 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 61 } | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 62 | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 63 /** | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 64 * Updates manager with up-to-date state of the mercurial queues. | 
| 501 
d2f6ab541330
Change the way extensions are accessed (with ExtensionsManager now), add preliminary Rebase extension support
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
493diff
changeset | 65 * @return <code>this</code> for convenience | 
| 463 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 66 */ | 
| 501 
d2f6ab541330
Change the way extensions are accessed (with ExtensionsManager now), add preliminary Rebase extension support
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
493diff
changeset | 67 public MqManager refresh() throws HgInvalidControlFileException { | 
| 464 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 68 applied = allKnown = Collections.emptyList(); | 
| 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 69 queueNames = Collections.emptyList(); | 
| 490 
b3c16d1aede0
Refactoring: move HgRepository's implementation aspects to Internals (which is now its imlementation counterpart and primary repository class to be used by other parts of the library)
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
480diff
changeset | 70 final LogFacility log = repo.getSessionContext().getLog(); | 
| 463 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 71 try { | 
| 501 
d2f6ab541330
Change the way extensions are accessed (with ExtensionsManager now), add preliminary Rebase extension support
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
493diff
changeset | 72 File queues = repo.getFileFromRepoDir("patches.queues"); | 
| 464 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 73 if (queues.isFile()) { | 
| 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 74 LineReader lr = new LineReader(queues, log).trimLines(true).skipEmpty(true); | 
| 480 
f3fab7a20841
Refactor LineReader utility as stanalone class to facilitate reuse
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
475diff
changeset | 75 lr.read(new LineReader.SimpleLineCollector(), queueNames = new LinkedList<String>()); | 
| 464 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 76 } | 
| 465 
2078692eeb58
MqManager: read status/series of the active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
464diff
changeset | 77 final String queueLocation; // path under .hg to patch queue information (status, series and diff files) | 
| 501 
d2f6ab541330
Change the way extensions are accessed (with ExtensionsManager now), add preliminary Rebase extension support
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
493diff
changeset | 78 File activeQueueFile = repo.getFileFromRepoDir("patches.queue"); | 
| 465 
2078692eeb58
MqManager: read status/series of the active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
464diff
changeset | 79 // file is there only if it's not default queue ('patches') that is active | 
| 464 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 80 if (activeQueueFile.isFile()) { | 
| 465 
2078692eeb58
MqManager: read status/series of the active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
464diff
changeset | 81 ArrayList<String> contents = new ArrayList<String>(); | 
| 480 
f3fab7a20841
Refactor LineReader utility as stanalone class to facilitate reuse
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
475diff
changeset | 82 new LineReader(activeQueueFile, log).read(new LineReader.SimpleLineCollector(), contents); | 
| 464 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 83 if (contents.isEmpty()) { | 
| 471 
7bcfbc255f48
Merge changes from smartgit3 branch into 1.1 stream
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
465diff
changeset | 84 log.dump(getClass(), Warn, "File %s with active queue name is empty", activeQueueFile.getName()); | 
| 465 
2078692eeb58
MqManager: read status/series of the active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
464diff
changeset | 85 activeQueue = PATCHES_DIR; | 
| 
2078692eeb58
MqManager: read status/series of the active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
464diff
changeset | 86 queueLocation = PATCHES_DIR + '/'; | 
| 464 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 87 } else { | 
| 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 88 activeQueue = contents.get(0); | 
| 465 
2078692eeb58
MqManager: read status/series of the active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
464diff
changeset | 89 queueLocation = PATCHES_DIR + '-' + activeQueue + '/'; | 
| 464 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 90 } | 
| 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 91 } else { | 
| 465 
2078692eeb58
MqManager: read status/series of the active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
464diff
changeset | 92 activeQueue = PATCHES_DIR; | 
| 
2078692eeb58
MqManager: read status/series of the active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
464diff
changeset | 93 queueLocation = PATCHES_DIR + '/'; | 
| 464 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 94 } | 
| 465 
2078692eeb58
MqManager: read status/series of the active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
464diff
changeset | 95 final Path.Source patchLocation = new Path.Source() { | 
| 
2078692eeb58
MqManager: read status/series of the active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
464diff
changeset | 96 | 
| 471 
7bcfbc255f48
Merge changes from smartgit3 branch into 1.1 stream
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
465diff
changeset | 97 public Path path(CharSequence p) { | 
| 465 
2078692eeb58
MqManager: read status/series of the active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
464diff
changeset | 98 StringBuilder sb = new StringBuilder(64); | 
| 
2078692eeb58
MqManager: read status/series of the active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
464diff
changeset | 99 sb.append(".hg/"); | 
| 
2078692eeb58
MqManager: read status/series of the active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
464diff
changeset | 100 sb.append(queueLocation); | 
| 
2078692eeb58
MqManager: read status/series of the active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
464diff
changeset | 101 sb.append(p); | 
| 
2078692eeb58
MqManager: read status/series of the active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
464diff
changeset | 102 return Path.create(sb); | 
| 
2078692eeb58
MqManager: read status/series of the active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
464diff
changeset | 103 } | 
| 
2078692eeb58
MqManager: read status/series of the active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
464diff
changeset | 104 }; | 
| 501 
d2f6ab541330
Change the way extensions are accessed (with ExtensionsManager now), add preliminary Rebase extension support
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
493diff
changeset | 105 final File fileStatus = repo.getFileFromRepoDir(queueLocation + "status"); | 
| 
d2f6ab541330
Change the way extensions are accessed (with ExtensionsManager now), add preliminary Rebase extension support
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
493diff
changeset | 106 final File fileSeries = repo.getFileFromRepoDir(queueLocation + "series"); | 
| 463 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 107 if (fileStatus.isFile()) { | 
| 480 
f3fab7a20841
Refactor LineReader utility as stanalone class to facilitate reuse
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
475diff
changeset | 108 new LineReader(fileStatus, log).read(new LineReader.LineConsumer<List<PatchRecord>>() { | 
| 463 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 109 | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 110 public boolean consume(String line, List<PatchRecord> result) throws IOException { | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 111 int sep = line.indexOf(':'); | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 112 if (sep == -1) { | 
| 471 
7bcfbc255f48
Merge changes from smartgit3 branch into 1.1 stream
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
465diff
changeset | 113 log.dump(MqManager.class, Warn, "Bad line in %s:%s", fileStatus.getPath(), line); | 
| 463 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 114 return true; | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 115 } | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 116 Nodeid nid = Nodeid.fromAscii(line.substring(0, sep)); | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 117 String name = new String(line.substring(sep+1)); | 
| 465 
2078692eeb58
MqManager: read status/series of the active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
464diff
changeset | 118 result.add(new PatchRecord(nid, name, patchLocation.path(name))); | 
| 463 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 119 return true; | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 120 } | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 121 }, applied = new LinkedList<PatchRecord>()); | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 122 } | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 123 if (fileSeries.isFile()) { | 
| 464 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 124 final Map<String,PatchRecord> name2patch = new HashMap<String, PatchRecord>(); | 
| 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 125 for (PatchRecord pr : applied) { | 
| 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 126 name2patch.put(pr.getName(), pr); | 
| 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 127 } | 
| 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 128 LinkedList<String> knownPatchNames = new LinkedList<String>(); | 
| 480 
f3fab7a20841
Refactor LineReader utility as stanalone class to facilitate reuse
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
475diff
changeset | 129 new LineReader(fileSeries, log).read(new LineReader.SimpleLineCollector(), knownPatchNames); | 
| 464 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 130 // XXX read other queues? | 
| 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 131 allKnown = new ArrayList<PatchRecord>(knownPatchNames.size()); | 
| 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 132 for (String name : knownPatchNames) { | 
| 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 133 PatchRecord pr = name2patch.get(name); | 
| 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 134 if (pr == null) { | 
| 465 
2078692eeb58
MqManager: read status/series of the active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
464diff
changeset | 135 pr = new PatchRecord(null, name, patchLocation.path(name)); | 
| 463 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 136 } | 
| 464 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 137 allKnown.add(pr); | 
| 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 138 } | 
| 463 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 139 } | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 140 } catch (HgInvalidFileException ex) { | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 141 HgInvalidControlFileException th = new HgInvalidControlFileException(ex.getMessage(), ex.getCause(), ex.getFile()); | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 142 th.setStackTrace(ex.getStackTrace()); | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 143 throw th; | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 144 } | 
| 501 
d2f6ab541330
Change the way extensions are accessed (with ExtensionsManager now), add preliminary Rebase extension support
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
493diff
changeset | 145 return this; | 
| 463 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 146 } | 
| 464 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 147 | 
| 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 148 /** | 
| 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 149 * Number of patches not yet applied | 
| 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 150 * @return positive value when there are | 
| 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 151 */ | 
| 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 152 public int getQueueSize() { | 
| 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 153 return getAllKnownPatches().size() - getAppliedPatches().size(); | 
| 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 154 } | 
| 463 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 155 | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 156 /** | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 157 * Subset of the patches from the queue that were already applied to the repository | 
| 464 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 158 * <p>Analog of 'hg qapplied' | 
| 463 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 159 * | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 160 * <p>Clients shall call {@link #refresh()} prior to first use | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 161 * @return collection of records in no particular order, may be empty if none applied | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 162 */ | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 163 public List<PatchRecord> getAppliedPatches() { | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 164 return Collections.unmodifiableList(applied); | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 165 } | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 166 | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 167 /** | 
| 465 
2078692eeb58
MqManager: read status/series of the active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
464diff
changeset | 168 * All of the patches in the active queue that MQ knows about for this repository | 
| 463 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 169 * | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 170 * <p>Clients shall call {@link #refresh()} prior to first use | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 171 * @return collection of records in no particular order, may be empty if there are no patches in the queue | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 172 */ | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 173 public List<PatchRecord> getAllKnownPatches() { | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 174 return Collections.unmodifiableList(allKnown); | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 175 } | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 176 | 
| 464 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 177 /** | 
| 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 178 * Name of the patch queue <code>hg qqueue --active</code> which is active now. | 
| 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 179 * @return patch queue name | 
| 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 180 */ | 
| 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 181 public String getActiveQueueName() { | 
| 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 182 return activeQueue; | 
| 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 183 } | 
| 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 184 | 
| 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 185 /** | 
| 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 186 * Patch queues known in the repository, <code>hg qqueue -l</code> analog. | 
| 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 187 * There's at least one patch queue (default one names 'patches'). Only one patch queue at a time is active. | 
| 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 188 * | 
| 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 189 * @return names of patch queues | 
| 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 190 */ | 
| 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 191 public List<String> getQueueNames() { | 
| 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 192 return Collections.unmodifiableList(queueNames); | 
| 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 193 } | 
| 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 194 | 
| 475 
0e34b8f3946a
Tests for MqManager
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
471diff
changeset | 195 public final class PatchRecord { | 
| 463 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 196 private final Nodeid nodeid; | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 197 private final String name; | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 198 private final Path location; | 
| 464 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 199 | 
| 
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
463diff
changeset | 200 // hashCode/equals might be useful if cons becomes public | 
| 463 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 201 | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 202 PatchRecord(Nodeid revision, String name, Path diffLocation) { | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 203 nodeid = revision; | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 204 this.name = name; | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 205 this.location = diffLocation; | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 206 } | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 207 | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 208 /** | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 209 * Identifies changeset of the patch that has been applied to the repository | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 210 * | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 211 * @return changeset revision or <code>null</code> if this patch is not yet applied | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 212 */ | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 213 public Nodeid getRevision() { | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 214 return nodeid; | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 215 } | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 216 | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 217 /** | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 218 * Identifies patch, either based on a user-supplied name (<code>hg qnew <i>patch-name</i></code>) or | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 219 * an automatically generated name (like <code><i>revisionIndex</i>.diff</code> for imported changesets). | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 220 * Clients shall not rely on this naming scheme, though. | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 221 * | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 222 * @return never <code>null</code> | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 223 */ | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 224 public String getName() { | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 225 return name; | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 226 } | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 227 | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 228 /** | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 229 * Location of diff file with the patch, relative to repository root | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 230 * @return path to the patch, never <code>null</code> | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 231 */ | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 232 public Path getPatchLocation() { | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 233 return location; | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 234 } | 
| 475 
0e34b8f3946a
Tests for MqManager
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
471diff
changeset | 235 | 
| 
0e34b8f3946a
Tests for MqManager
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
471diff
changeset | 236 @Override | 
| 
0e34b8f3946a
Tests for MqManager
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
471diff
changeset | 237 public String toString() { | 
| 
0e34b8f3946a
Tests for MqManager
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
471diff
changeset | 238 String fmt = "mq.PatchRecord[name:%s; %spath:%s]"; | 
| 
0e34b8f3946a
Tests for MqManager
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
471diff
changeset | 239 String ni = nodeid != null ? String.format("applied as: %s; ", nodeid.shortNotation()) : ""; | 
| 
0e34b8f3946a
Tests for MqManager
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
471diff
changeset | 240 return String.format(fmt, name, ni, location); | 
| 
0e34b8f3946a
Tests for MqManager
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
471diff
changeset | 241 } | 
| 463 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 242 } | 
| 
a0507a9f3da0
Initial support for MqExtension
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 243 } | 
