use of org.apache.maven.scm.command.status.StatusScmResult in project maven-scm by apache.
the class LocalScmProvider method status.
/**
* {@inheritDoc}
*/
public StatusScmResult status(ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters) throws ScmException {
LocalStatusCommand command = new LocalStatusCommand();
command.setLogger(getLogger());
return (StatusScmResult) command.execute(repository, fileSet, parameters);
}
use of org.apache.maven.scm.command.status.StatusScmResult in project maven-scm by apache.
the class IntegrityScmProvider method status.
/**
* Maps to si viewsandbox with a filter of locally changed files
*/
@Override
protected StatusScmResult status(ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters params) throws ScmException {
IntegrityStatusCommand command = new IntegrityStatusCommand();
command.setLogger(getLogger());
return (StatusScmResult) command.execute(repository, fileSet, params);
}
use of org.apache.maven.scm.command.status.StatusScmResult in project maven-scm by apache.
the class HgCheckInCommand method executeCheckInCommand.
/**
* {@inheritDoc}
*/
protected CheckInScmResult executeCheckInCommand(ScmProviderRepository repo, ScmFileSet fileSet, String message, ScmVersion tag) throws ScmException {
if (tag != null && !StringUtils.isEmpty(tag.getName())) {
throw new ScmException("This provider can't handle tags for this operation");
}
File workingDir = fileSet.getBasedir();
String branchName = HgUtils.getCurrentBranchName(getLogger(), workingDir);
boolean differentOutgoingBranch = repo.isPushChanges() ? HgUtils.differentOutgoingBranchFound(getLogger(), workingDir, branchName) : false;
// Get files that will be committed (if not specified in fileSet)
List<ScmFile> commitedFiles = new ArrayList<ScmFile>();
List<File> files = fileSet.getFileList();
if (files.isEmpty()) {
// Either commit all changes
HgStatusCommand statusCmd = new HgStatusCommand();
statusCmd.setLogger(getLogger());
StatusScmResult status = statusCmd.executeStatusCommand(repo, fileSet);
List<ScmFile> statusFiles = status.getChangedFiles();
for (ScmFile file : statusFiles) {
if (file.getStatus() == ScmFileStatus.ADDED || file.getStatus() == ScmFileStatus.DELETED || file.getStatus() == ScmFileStatus.MODIFIED) {
commitedFiles.add(new ScmFile(file.getPath(), ScmFileStatus.CHECKED_IN));
}
}
} else {
// Or commit spesific files
for (File file : files) {
commitedFiles.add(new ScmFile(file.getPath(), ScmFileStatus.CHECKED_IN));
}
}
// Commit to local branch
String[] commitCmd = new String[] { HgCommandConstants.COMMIT_CMD, HgCommandConstants.MESSAGE_OPTION, message };
commitCmd = HgUtils.expandCommandLine(commitCmd, fileSet);
ScmResult result = HgUtils.execute(new HgConsumer(getLogger()), getLogger(), fileSet.getBasedir(), commitCmd);
// Push to parent branch if any
HgScmProviderRepository repository = (HgScmProviderRepository) repo;
if (repo.isPushChanges()) {
if (!repository.getURI().equals(fileSet.getBasedir().getAbsolutePath())) {
String[] pushCmd = new String[] { HgCommandConstants.PUSH_CMD, differentOutgoingBranch ? HgCommandConstants.REVISION_OPTION + branchName : null, repository.getURI() };
result = HgUtils.execute(new HgConsumer(getLogger()), getLogger(), fileSet.getBasedir(), pushCmd);
}
return new CheckInScmResult(commitedFiles, result);
}
return new CheckInScmResult(commitedFiles, result);
}
use of org.apache.maven.scm.command.status.StatusScmResult in project maven-scm by apache.
the class ClearCaseStatusCommand method executeStatusCommand.
/**
* {@inheritDoc}
*/
protected StatusScmResult executeStatusCommand(ScmProviderRepository scmProviderRepository, ScmFileSet scmFileSet) throws ScmException {
if (getLogger().isDebugEnabled()) {
getLogger().debug("executing status command...");
}
Commandline cl = createCommandLine(scmFileSet);
ClearCaseStatusConsumer consumer = new ClearCaseStatusConsumer(getLogger(), scmFileSet.getBasedir());
CommandLineUtils.StringStreamConsumer stderr = new CommandLineUtils.StringStreamConsumer();
int exitCode;
try {
if (getLogger().isDebugEnabled()) {
getLogger().debug("Executing: " + cl.getWorkingDirectory().getAbsolutePath() + ">>" + cl.toString());
}
exitCode = CommandLineUtils.executeCommandLine(cl, consumer, stderr);
} catch (CommandLineException ex) {
throw new ScmException("Error while executing clearcase command.", ex);
}
if (exitCode != 0) {
return new StatusScmResult(cl.toString(), "The cleartool command failed.", stderr.getOutput(), false);
}
return new StatusScmResult(cl.toString(), consumer.getCheckedOutFiles());
}
use of org.apache.maven.scm.command.status.StatusScmResult in project maven-scm by apache.
the class CvsExeStatusCommand method executeCvsCommand.
/**
* {@inheritDoc}
*/
protected StatusScmResult executeCvsCommand(Commandline cl) throws ScmException {
CvsStatusConsumer consumer = new CvsStatusConsumer(getLogger(), cl.getWorkingDirectory());
CommandLineUtils.StringStreamConsumer stderr = new CommandLineUtils.StringStreamConsumer();
int exitCode;
try {
exitCode = CommandLineUtils.executeCommandLine(cl, consumer, stderr);
} catch (CommandLineException ex) {
throw new ScmException("Error while executing command.", ex);
}
if (exitCode != 0) {
return new StatusScmResult(cl.toString(), "The cvs command failed.", stderr.getOutput(), false);
}
return new StatusScmResult(cl.toString(), consumer.getChangedFiles());
}
Aggregations