private static final StringBuilder formatFetchResult(TransferSummary fr) { Map<String, Collection<RefDiff>> refs = fr.getRefDiffs(); StringBuilder sb = new StringBuilder(); if (refs.isEmpty()) { sb.append("already up to date"); } else { for (Iterator<Entry<String, Collection<RefDiff>>> it = refs.entrySet().iterator(); it.hasNext(); ) { Entry<String, Collection<RefDiff>> entry = it.next(); String remoteUrl = entry.getKey(); Collection<RefDiff> changedRefs = entry.getValue(); sb.append(" From ").append(remoteUrl).append(": ["); print(changedRefs, sb); sb.append("]"); } } return sb; }
private Collection<RefDiff> fetchRemoteData(final Repository clone, final Remote remote, final int depth) { // Fetch remote data final TransferSummary fetchResults; final String remoteName = remote.getName(); final ProgressListener progress = getProgressListener(); fetchResults = clone.command(FetchOp.class)// .addRemote(remoteName)// .setDepth(depth)// .setProgressListener(progress)// .call(); Map<String, Collection<RefDiff>> changedRefs = fetchResults.getRefDiffs(); String fetchURL = remote.getFetchURL(); Collection<RefDiff> refs = changedRefs.get(fetchURL); if (refs == null) { refs = ImmutableList.of(); } return refs; }
private Collection<RefDiff> fetchRemoteData(final Repository clone, Remote remote, final int depth, final boolean cloneIndexes) { // Fetch remote data final TransferSummary fetchResults; final ProgressListener progress = getProgressListener(); fetchResults = clone.command(FetchOp.class)// .addRemote(remote)// .setDepth(depth)// .setAutofetchTags(true)// .setFetchIndexes(cloneIndexes)// .setProgressListener(progress)// .call(); Map<String, Collection<RefDiff>> changedRefs = fetchResults.getRefDiffs(); String fetchURL = remote.getFetchURL(); Collection<RefDiff> refs = changedRefs.get(fetchURL); if (refs == null) { refs = ImmutableList.of(); } return refs; }
private void verifyFetchedIndexes(AbstractGeoGigOp<?> command, TransferSummary ts) { Set<String> remotes = ts.getRefDiffs().keySet(); for (String remoteURI : remotes) { FetchOp op = (FetchOp) command; Remote remoteObj = op.getRemotes().stream() .filter(r -> remoteURI.equals(r.getFetchURL())).findFirst().get(); String fetchURL = remoteObj.getFetchURL(); Repository remote = (Repository) command.getClientData().get(fetchURL); Collection<RefDiff> collection = ts.getRefDiffs().get(remoteURI); for (RefDiff rd : collection) { if (rd.isDelete()) { continue; } Ref newRef = rd.getNewRef(); Repository local = command.context().repository(); String localRef = newRef.getName(); String remoteBranch = remoteObj.mapToRemote(localRef).orElse(null); verifyClonedIndexes(local, remote, Optional.of(localRef), Optional.of(remoteBranch)); } } }
protected void assertSummary(TransferSummary result, String remoteURL, Optional<Ref> before, Optional<Ref> after) { assertNotNull(result); Collection<RefDiff> diffs = result.getRefDiffs().get(remoteURL); assertNotNull(diffs); String name = before.or(after).get().getName(); RefDiff diff = Maps.uniqueIndex(diffs, (d) -> d.oldRef().or(d.newRef()).get().getName()) .get(name); assertNotNull(diff); assertEquals(before, diff.oldRef()); assertEquals(after, diff.newRef()); }
protected void assertSummary(TransferSummary result, String remoteURL, Optional<Ref> before, Optional<Ref> after) { assertNotNull(result); Collection<RefDiff> diffs = result.getRefDiffs().get(remoteURL); assertNotNull(diffs); String name = before.or(after).get().getName(); RefDiff diff = Maps.uniqueIndex(diffs, (d) -> d.oldRef().or(d.newRef()).get().getName()) .get(name); assertNotNull(diff); assertEquals(before, diff.oldRef()); assertEquals(after, diff.newRef()); } }
@Test public void testFetchSpecificRemote() throws Exception { // fetch from the remote FetchOp fetch = fetchOp(); TransferSummary summary = fetch.addRemote("upstream").call(); assertEquals(1, summary.getRefDiffs().size()); assertTrue(summary.getRefDiffs().containsKey(upstream.getFetchURL())); assertSummary(summary, upstream.getFetchURL(), absent(), upstreamMaster); assertSummary(summary, upstream.getFetchURL(), absent(), upstreamTag); assertSummary(summary, upstream.getFetchURL(), absent(), upstreamBranch1); TestSupport.verifySameContents(upstreamRepo, localRepo); }
@Test public void testFetchSpecificRemote() throws Exception { // fetch from the remote FetchOp fetch = fetchOp(); TransferSummary summary = fetch.addRemote("upstream").call(); assertEquals(1, summary.getRefDiffs().size()); assertTrue(summary.getRefDiffs().containsKey(upstream.getFetchURL())); assertSummary(summary, upstream.getFetchURL(), absent(), upstreamMaster); assertSummary(summary, upstream.getFetchURL(), absent(), upstreamTag); assertSummary(summary, upstream.getFetchURL(), absent(), upstreamBranch1); TestSupport.verifySameContents(upstreamRepo, localRepo); }
@Test public void testFetchAll() throws Exception { // fetch from the remote FetchOp fetch = fetchOp(); TransferSummary summary = fetch.setAll(true).call(); assertEquals(2, summary.getRefDiffs().size()); assertTrue(summary.getRefDiffs().containsKey(origin.getFetchURL())); assertTrue(summary.getRefDiffs().containsKey(upstream.getFetchURL())); assertSummary(summary, origin.getFetchURL(), localOriginMaster, originMaster); assertSummary(summary, origin.getFetchURL(), absent(), originBranch1); assertSummary(summary, origin.getFetchURL(), absent(), originTag); assertSummary(summary, upstream.getFetchURL(), absent(), upstreamMaster); assertSummary(summary, upstream.getFetchURL(), absent(), upstreamBranch1); verifyFetch(); }
@Test public void testFetchAll() throws Exception { // fetch from the remote FetchOp fetch = fetchOp(); TransferSummary summary = fetch.setAll(true).call(); assertEquals(2, summary.getRefDiffs().size()); assertTrue(summary.getRefDiffs().containsKey(origin.getFetchURL())); assertTrue(summary.getRefDiffs().containsKey(upstream.getFetchURL())); assertSummary(summary, origin.getFetchURL(), localOriginMaster, originMaster); assertSummary(summary, origin.getFetchURL(), absent(), originBranch1); assertSummary(summary, origin.getFetchURL(), absent(), originTag); assertSummary(summary, upstream.getFetchURL(), absent(), upstreamMaster); assertSummary(summary, upstream.getFetchURL(), absent(), upstreamBranch1); verifyFetch(); }
@Test public void testFetchNoArgsDefaultsToOrigin() throws Exception { // fetch from the remote FetchOp fetch = fetchOp(); TransferSummary summary = fetch.call(); assertNotNull(summary); assertEquals(1, summary.getRefDiffs().size()); assertTrue(summary.getRefDiffs().containsKey(origin.getFetchURL())); assertSummary(summary, origin.getFetchURL(), localOriginMaster, originMaster); assertSummary(summary, origin.getFetchURL(), absent(), originBranch1); assertSummary(summary, origin.getFetchURL(), absent(), originTag); verifyFetch(); }
@Test public void testFetchNoArgsDefaultsToOrigin() throws Exception { // fetch from the remote FetchOp fetch = fetchOp(); TransferSummary summary = fetch.call(); assertNotNull(summary); assertEquals(1, summary.getRefDiffs().size()); assertTrue(summary.getRefDiffs().containsKey(origin.getFetchURL())); assertSummary(summary, origin.getFetchURL(), localOriginMaster, originMaster); assertSummary(summary, origin.getFetchURL(), absent(), originBranch1); assertSummary(summary, origin.getFetchURL(), absent(), originTag); verifyFetch(); }
@Test public void testFetchSpecificRemoteAndAll() throws Exception { // fetch from the remote FetchOp fetch = fetchOp(); TransferSummary summary = fetch.addRemote("upstream").setAllRemotes(true).call(); assertEquals(2, summary.getRefDiffs().size()); assertTrue(summary.getRefDiffs().containsKey(origin.getFetchURL())); assertTrue(summary.getRefDiffs().containsKey(upstream.getFetchURL())); assertSummary(summary, origin.getFetchURL(), localOriginMaster, originMaster); assertSummary(summary, origin.getFetchURL(), absent(), originBranch1); assertSummary(summary, origin.getFetchURL(), absent(), originTag); assertSummary(summary, upstream.getFetchURL(), absent(), upstreamMaster); assertSummary(summary, upstream.getFetchURL(), absent(), upstreamBranch1); verifyFetch(); }
public static void print(TransferSummary result, Console console) throws IOException { for (Entry<String, Collection<RefDiff>> entry : result.getRefDiffs().entrySet()) { console.println("From " + entry.getKey()); for (RefDiff ref : entry.getValue()) { String line; if (ref.getType() == Type.CHANGED_REF) { line = " " + ref.getOldRef().getObjectId().toString().substring(0, 8) + ".." + ref.getNewRef().getObjectId().toString().substring(0, 8) + " " + ref.getOldRef().localName() + " -> " + ref.getOldRef().getName(); } else if (ref.getType() == Type.ADDED_REF) { String reftype = (ref.getNewRef().getName().startsWith(Ref.TAGS_PREFIX)) ? "tag" : "branch"; line = " * [new " + reftype + "] " + ref.getNewRef().localName() + " -> " + ref.getNewRef().getName(); } else if (ref.getType() == Type.REMOVED_REF) { line = " x [deleted] (none) -> " + ref.getOldRef().getName(); } else { line = " [deepened] " + ref.getNewRef().localName(); } console.println(line); } } } }
@Test public void testFetchSpecificRemoteAndAll() throws Exception { // fetch from the remote FetchOp fetch = fetchOp(); TransferSummary summary = fetch.addRemote("upstream").setAll(true).call(); assertEquals(2, summary.getRefDiffs().size()); assertTrue(summary.getRefDiffs().containsKey(origin.getFetchURL())); assertTrue(summary.getRefDiffs().containsKey(upstream.getFetchURL())); assertSummary(summary, origin.getFetchURL(), localOriginMaster, originMaster); assertSummary(summary, origin.getFetchURL(), absent(), originBranch1); assertSummary(summary, origin.getFetchURL(), absent(), originTag); assertSummary(summary, upstream.getFetchURL(), absent(), upstreamMaster); assertSummary(summary, upstream.getFetchURL(), absent(), upstreamBranch1); verifyFetch(); }
public static void print(TransferSummary result, Console console) throws IOException { for (Entry<String, Collection<RefDiff>> entry : result.getRefDiffs().entrySet()) { console.println("From " + entry.getKey()); for (RefDiff ref : entry.getValue()) { String line; if (ref.getType() == Type.CHANGED_REF) { line = " " + ref.getOldRef().getObjectId().toString().substring(0, 8) + ".." + ref.getNewRef().getObjectId().toString().substring(0, 8) + " " + ref.getOldRef().localName() + " -> " + ref.getOldRef().getName(); } else if (ref.getType() == Type.ADDED_REF) { String reftype = (ref.getNewRef().getName().startsWith(Ref.TAGS_PREFIX)) ? "tag" : "branch"; line = " * [new " + reftype + "] " + ref.getNewRef().localName() + " -> " + ref.getNewRef().getName(); } else if (ref.getType() == Type.REMOVED_REF) { line = " x [deleted] (none) -> " + ref.getOldRef().getName(); } else { line = " [deepened] " + ref.getNewRef().localName(); } console.println(line); } } } }
public static void print(TransferSummary result, Console console) throws IOException { for (Entry<String, Collection<RefDiff>> entry : result.getRefDiffs().entrySet()) { console.println("From " + entry.getKey()); for (RefDiff ref : entry.getValue()) { String line; if (ref.getType() == Type.CHANGED_REF) { line = " " + ref.getOldRef().getObjectId().toString().substring(0, 8) + ".." + ref.getNewRef().getObjectId().toString().substring(0, 8) + " " + ref.getOldRef().localName() + " -> " + ref.getOldRef().getName(); } else if (ref.getType() == Type.ADDED_REF) { String reftype = (ref.getNewRef().getName().startsWith(Ref.TAGS_PREFIX)) ? "tag" : "branch"; line = " * [new " + reftype + "] " + ref.getNewRef().localName() + " -> " + ref.getNewRef().getName(); } else if (ref.getType() == Type.REMOVED_REF) { line = " x [deleted] (none) -> " + ref.getOldRef().getName(); } else { line = " [deepened] " + ref.getNewRef().localName(); } console.println(line); } } } }
@Test public void testFetchNoChanges() throws Exception { // fetch from the remote FetchOp fetch = fetchOp(); TransferSummary summary = fetch.addRemote("origin").call(); assertEquals(1, summary.getRefDiffs().size()); assertTrue(summary.getRefDiffs().containsKey(origin.getFetchURL())); assertSummary(summary, origin.getFetchURL(), localOriginMaster, originMaster); assertSummary(summary, origin.getFetchURL(), absent(), originBranch1); assertSummary(summary, origin.getFetchURL(), absent(), originTag); verifyFetch(); // fetch again summary = fetch.call(); assertTrue(summary.toString(), summary.isEmpty()); }
@Test public void testFetchNoChanges() throws Exception { // fetch from the remote FetchOp fetch = fetchOp(); TransferSummary summary = fetch.addRemote("origin").call(); assertEquals(1, summary.getRefDiffs().size()); assertTrue(summary.getRefDiffs().containsKey(origin.getFetchURL())); assertSummary(summary, origin.getFetchURL(), localOriginMaster, originMaster); assertSummary(summary, origin.getFetchURL(), absent(), originBranch1); assertSummary(summary, origin.getFetchURL(), absent(), originTag); verifyFetch(); // fetch again summary = fetch.call(); assertTrue(summary.toString(), summary.isEmpty()); }
assertEquals(1, summary.getRefDiffs().size()); assertTrue(summary.getRefDiffs().containsKey(origin.getFetchURL())); assertSummary(summary, origin.getFetchURL(), localOriginBranch1, absent());