use of org.eclipse.che.plugin.svn.shared.CLIOutputResponse in project che by eclipse.
the class SubversionApi method status.
/**
* Perform an "svn status" based on the request.
*
* @param request
* the request
* @return the response
* @throws IOException
* if there is a problem executing the command
* @throws SubversionException
* if there is a Subversion issue
*/
public CLIOutputResponse status(final StatusRequest request) throws IOException, SubversionException, UnauthorizedException {
final File projectPath = new File(request.getProjectPath());
final List<String> cliArgs = defaultArgs();
// Flags
addFlag(cliArgs, "--ignore-externals", request.isIgnoreExternals());
addFlag(cliArgs, "--no-ignore", request.isShowIgnored());
addFlag(cliArgs, "--quiet", !request.isShowUnversioned());
addFlag(cliArgs, "--show-updates", request.isShowUpdates());
addFlag(cliArgs, "--verbose", request.isVerbose());
// Options
addOptionList(cliArgs, "--changelist", request.getChangeLists());
addOption(cliArgs, "--depth", request.getDepth());
// Command Name
cliArgs.add("status");
final CommandLineResult result = runCommand(null, cliArgs, projectPath, addWorkingCopyPathIfNecessary(request.getPaths()));
return DtoFactory.getInstance().createDto(CLIOutputResponse.class).withCommand(result.getCommandLine().toString()).withOutput(result.getStdout()).withErrOutput(result.getStderr());
}
use of org.eclipse.che.plugin.svn.shared.CLIOutputResponse in project che by eclipse.
the class SubversionApi method merge.
/**
* Merges target with specified URL.
*
* @param request
* merge request
* @return merge response
* @throws IOException
* @throws SubversionException
*/
public CLIOutputResponse merge(final MergeRequest request) throws IOException, SubversionException, UnauthorizedException {
final File projectPath = new File(request.getProjectPath());
final List<String> cliArgs = defaultArgs();
// Command Name
cliArgs.add("merge");
cliArgs.add(request.getSourceURL());
List<String> paths = new ArrayList<String>();
paths.add(request.getTarget());
final CommandLineResult result = runCommand(null, cliArgs, projectPath, paths);
return DtoFactory.getInstance().createDto(CLIOutputResponse.class).withCommand(result.getCommandLine().toString()).withOutput(result.getStdout()).withErrOutput(result.getStderr());
}
use of org.eclipse.che.plugin.svn.shared.CLIOutputResponse in project che by eclipse.
the class SubversionApiITest method testPropSet.
/**
* Tests for {@link SubversionApi#propset(org.eclipse.che.plugin.svn.shared.PropertySetRequest)}.
*
* @throws Exception
* if anything goes wrong
*/
@Test
public void testPropSet() throws Exception {
this.subversionApi.checkout(DtoFactory.getInstance().createDto(CheckoutRequest.class).withProjectPath(tmpAbsolutePath).withUrl(repoUrl));
CLIOutputResponse response = this.subversionApi.propset(DtoFactory.getInstance().createDto(PropertySetRequest.class).withValue("'*.*'").withProjectPath(tmpAbsolutePath).withPath("trunk/A/B").withForce(true).withDepth(Depth.DIRS_ONLY).withName("svn:ignore"));
assertEquals(response.getOutput().size(), 1);
assertEquals(response.getOutput().get(0), "property 'svn:ignore' set on 'trunk" + File.separator + "A" + File.separator + "B'");
}
use of org.eclipse.che.plugin.svn.shared.CLIOutputResponse in project che by eclipse.
the class TestUtils method createGreekTreeRepository.
/**
* Creates a new Subversion repository in a temporary location with the Greek Tree structure within it.
*
* @return the path to the repository root
* @throws Exception
* if anything goes wrong
*/
public static File createGreekTreeRepository() throws Exception {
final File repoRoot = Files.createTempDir();
final File wcRoot = Files.createTempDir();
// Clean up after execution
repoRoot.deleteOnExit();
wcRoot.deleteOnExit();
// Create the repository
final CommandLineResult result = UpstreamUtils.executeCommandLine(null, "svnadmin", new String[] { "create", repoRoot.getAbsolutePath() }, -1, repoRoot);
// Make sure the result is fine
handleCLIResult(result);
// Checkout the repository
final CLIOutputWithRevisionResponse coResponse = subversionApi.checkout(dtoFactory.createDto(CheckoutRequest.class).withProjectPath(wcRoot.getAbsolutePath()).withUrl("file:///" + repoRoot.getAbsolutePath()));
assertTrue(coResponse.getRevision() > -1);
final List<String> pathsToAdd = new ArrayList<>();
// Create the directory structure
for (final String path : GREEK_TREE) {
final File fileForPath = new File(wcRoot, path);
final String[] pathParts = path.split("/");
// Create parent directories (Probably not necessary)
Files.createParentDirs(fileForPath);
if (!path.endsWith("/") && fileForPath.createNewFile()) {
Files.write(("This is the file '" + pathParts[pathParts.length - 1] + "'.").getBytes(), fileForPath);
pathsToAdd.add(path.substring(1));
}
}
// Add the files in the working copy to version control
subversionApi.add(dtoFactory.createDto(AddRequest.class).withProjectPath(wcRoot.getAbsolutePath()).withPaths(pathsToAdd).withAddParents(true));
//Add properties
final CLIOutputResponse propResponse = subversionApi.propset(dtoFactory.createDto(PropertySetRequest.class).withValue("user").withProjectPath(wcRoot.getAbsolutePath()).withPath(".").withForce(true).withDepth(Depth.FULLY_RECURSIVE).withName("owner"));
assertTrue(propResponse.getOutput().size() > 0);
// Commit the changes
final CLIOutputWithRevisionResponse cResponse = subversionApi.commit(dtoFactory.createDto(CommitRequest.class).withProjectPath(wcRoot.getAbsolutePath()).withMessage("Initial commit."));
assertEquals(1L, cResponse.getRevision());
return repoRoot;
}
Aggregations