comparison src/org/tmatesoft/hg/core/HgPushCommand.java @ 654:12a4f60ea972

1) Console push tool. 2) Pass class to blame into FileUtils
author Artem Tikhomirov <tikhomirov.artem@gmail.com>
date Wed, 03 Jul 2013 15:11:40 +0200
parents 629a7370554c
children 46b56864b483
comparison
equal deleted inserted replaced
653:629a7370554c 654:12a4f60ea972
17 package org.tmatesoft.hg.core; 17 package org.tmatesoft.hg.core;
18 18
19 import java.io.File; 19 import java.io.File;
20 import java.io.IOException; 20 import java.io.IOException;
21 import java.util.ArrayList; 21 import java.util.ArrayList;
22 import java.util.Collection;
23 import java.util.Collections;
22 import java.util.List; 24 import java.util.List;
23 25
24 import org.tmatesoft.hg.internal.BundleGenerator; 26 import org.tmatesoft.hg.internal.BundleGenerator;
25 import org.tmatesoft.hg.internal.Internals; 27 import org.tmatesoft.hg.internal.Internals;
26 import org.tmatesoft.hg.internal.PhasesHelper; 28 import org.tmatesoft.hg.internal.PhasesHelper;
50 */ 52 */
51 public class HgPushCommand extends HgAbstractCommand<HgPushCommand> { 53 public class HgPushCommand extends HgAbstractCommand<HgPushCommand> {
52 54
53 private final HgRepository repo; 55 private final HgRepository repo;
54 private HgRemoteRepository remoteRepo; 56 private HgRemoteRepository remoteRepo;
57 private RevisionSet outgoing;
55 58
56 public HgPushCommand(HgRepository hgRepo) { 59 public HgPushCommand(HgRepository hgRepo) {
57 repo = hgRepo; 60 repo = hgRepo;
58 } 61 }
59 62
75 final Internals implRepo = HgInternals.getImplementationRepo(repo); 78 final Internals implRepo = HgInternals.getImplementationRepo(repo);
76 final PhasesHelper phaseHelper = new PhasesHelper(implRepo, parentHelper); 79 final PhasesHelper phaseHelper = new PhasesHelper(implRepo, parentHelper);
77 final RepositoryComparator comparator = new RepositoryComparator(parentHelper, remoteRepo); 80 final RepositoryComparator comparator = new RepositoryComparator(parentHelper, remoteRepo);
78 comparator.compare(new ProgressSupport.Sub(progress, 50), getCancelSupport(null, true)); 81 comparator.compare(new ProgressSupport.Sub(progress, 50), getCancelSupport(null, true));
79 List<Nodeid> l = comparator.getLocalOnlyRevisions(); 82 List<Nodeid> l = comparator.getLocalOnlyRevisions();
80 final RevisionSet outgoing;
81 if (phaseHelper.isCapableOfPhases() && phaseHelper.withSecretRoots()) { 83 if (phaseHelper.isCapableOfPhases() && phaseHelper.withSecretRoots()) {
82 RevisionSet secret = phaseHelper.allSecret(); 84 RevisionSet secret = phaseHelper.allSecret();
83 outgoing = new RevisionSet(l).subtract(secret); 85 outgoing = new RevisionSet(l).subtract(secret);
84 } else { 86 } else {
85 outgoing = new RevisionSet(l); 87 outgoing = new RevisionSet(l);
195 } finally { 197 } finally {
196 progress.done(); 198 progress.done();
197 } 199 }
198 } 200 }
199 201
202 public Collection<Nodeid> getPushedRevisions() {
203 return outgoing == null ? Collections.<Nodeid>emptyList() : outgoing.asList();
204 }
205
200 private RevisionSet knownRemoteDrafts(HgRemoteRepository.Phases remotePhases, HgParentChildMap<HgChangelog> parentHelper, RevisionSet outgoing, RevisionSet localSecret) { 206 private RevisionSet knownRemoteDrafts(HgRemoteRepository.Phases remotePhases, HgParentChildMap<HgChangelog> parentHelper, RevisionSet outgoing, RevisionSet localSecret) {
201 ArrayList<Nodeid> knownRemoteDraftRoots = new ArrayList<Nodeid>(); 207 ArrayList<Nodeid> knownRemoteDraftRoots = new ArrayList<Nodeid>();
202 for (Nodeid rdr : remotePhases.draftRoots()) { 208 for (Nodeid rdr : remotePhases.draftRoots()) {
203 if (parentHelper.knownNode(rdr)) { 209 if (parentHelper.knownNode(rdr)) {
204 knownRemoteDraftRoots.add(rdr); 210 knownRemoteDraftRoots.add(rdr);