@Override public List<Modification> latestModification(SvnMaterial material, File baseDir, SubprocessExecutionContext execCtx) { return material.latestModification(baseDir, execCtx); }
private Revision latestRevision(SvnMaterial material, File workingDir, TestSubprocessExecutionContext execCtx) { List<Modification> modifications = material.latestModification(workingDir, execCtx); return new Modifications(modifications).latestRevision(material); }
private Revision latestRevision(SvnMaterial material, File workingDir, TestSubprocessExecutionContext execCtx) { List<Modification> modifications = material.latestModification(workingDir, execCtx); return new Modifications(modifications).latestRevision(material); }
private Revision latestRevision(SvnMaterial material, File workingDir, TestSubprocessExecutionContext execCtx) { List<Modification> modifications = material.latestModification(workingDir, execCtx); return new Modifications(modifications).latestRevision(material); }
@Override public List<Modification> latestModification() throws IOException { final File workingCopy = temporaryFolder.newFolder(); return material().latestModification(workingCopy, new TestSubprocessExecutionContext()); }
protected List<Modification> checkInOneFile(SvnMaterial svnMaterial, String filename, String message) throws IOException { final File workingCopy = temporaryFolder.newFolder(); tmpFolders.add(workingCopy); InMemoryStreamConsumer consumer = inMemoryConsumer(); Revision latestRevision = getLatestRevision(svnMaterial); svnMaterial.updateTo(consumer, workingCopy, new RevisionContext(latestRevision), new TestSubprocessExecutionContext()); File newFileToAdd = new File(workingCopy, filename); File directoryToAddTo = newFileToAdd.getParentFile(); boolean addedToExistingDir = directoryToAddTo.exists(); directoryToAddTo.mkdirs(); FileUtils.writeStringToFile(newFileToAdd, "", UTF_8); svnMaterial.add(consumer, addedToExistingDir ? newFileToAdd : directoryToAddTo); svnMaterial.commit(consumer, workingCopy, message); return svnMaterial.latestModification(workingCopy, new TestSubprocessExecutionContext()); }
/** * @deprecated Used only in tests */ public MaterialRevisions latestModification(File baseDir, final SubprocessExecutionContext execCtx) { MaterialRevisions revisions = new MaterialRevisions(); for (Material material : this) { List<Modification> modifications = new ArrayList<>(); if (material instanceof SvnMaterial) { modifications = ((SvnMaterial) material).latestModification(baseDir, execCtx); } if (material instanceof HgMaterial) { modifications = ((HgMaterial) material).latestModification(baseDir, execCtx); } if (material instanceof GitMaterial) { modifications = ((GitMaterial) material).latestModification(baseDir, execCtx); } if (material instanceof P4Material) { modifications = ((P4Material) material).latestModification(baseDir, execCtx); } if (material instanceof TfsMaterial) { modifications = ((TfsMaterial) material).latestModification(baseDir, execCtx); } if (material instanceof DependencyMaterial) { modifications = ((DependencyMaterial) material).latestModification(baseDir, execCtx); } revisions.addRevision(material, modifications); } return revisions; }
@Test public void shouldUpdateMaterialToItsDestFolder() throws Exception { SvnMaterial material1 = repo.createMaterial("multiple-materials/trunk/part1", "part1"); MaterialRevision materialRevision = new MaterialRevision(material1, material1.latestModification(pipelineDir, new TestSubprocessExecutionContext())); materialRevision.updateTo(pipelineDir, ProcessOutputStreamConsumer.inMemoryConsumer(), new TestSubprocessExecutionContext()); assertThat(new File(pipelineDir, "part1").exists(), is(true)); }
@Test public void shouldIgnoreDestinationFolderWhenServerSide() throws Exception { SvnMaterial material1 = repo.createMaterial("multiple-materials/trunk/part1", "part1"); MaterialRevision materialRevision = new MaterialRevision(material1, material1.latestModification(pipelineDir, new TestSubprocessExecutionContext())); materialRevision.updateTo(pipelineDir, ProcessOutputStreamConsumer.inMemoryConsumer(), new TestSubprocessExecutionContext(true)); assertThat(new File(pipelineDir, "part1").exists(), is(false)); }
@Test public void shouldGetLatestRevisionFromExpandedSvnExternalRepository() { MaterialRevisions materialRevisions = new MaterialRevisions(); Material svnExt = svnMaterial(svnRepo.externalRepositoryUrl(), "end2end"); List<Modification> modifications = ((SvnMaterial) svnExt).latestModification(svnRepo.workingFolder(), new TestSubprocessExecutionContext()); materialRevisions.addRevision(svnExt, modifications); assertThat(materialRevisions.numberOfRevisions(), is(1)); MaterialRevision materialRevision = materialRevisions.getRevisions().get(0); assertThat(materialRevision.getMaterial(), is(svnExt)); assertThat(materialRevision.getRevision().getRevision(), is("4")); }