tag };
// keep the command about in string form for reporting
StringBuilder cmd = joinCmd( tagCmd );
HgTagConsumer consumer = new HgTagConsumer( getLogger() );
ScmResult result = HgUtils.execute( consumer, getLogger(), workingDir, tagCmd );
HgScmProviderRepository repository = (HgScmProviderRepository) scmProviderRepository;
if ( result.isSuccess() )
{
// now push
// Push to parent branch if any
if ( repository.isPushChanges() )
{
if ( !repository.getURI().equals( fileSet.getBasedir().getAbsolutePath() ) )
{
String branchName = HgUtils.getCurrentBranchName( getLogger(), workingDir );
boolean differentOutgoingBranch =
HgUtils.differentOutgoingBranchFound( getLogger(), workingDir, branchName );
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 );
}
}
}
else
{
throw new ScmException( "Error while executing command " + cmd.toString() );
}
// do an inventory to return the files tagged (all of them)
String[] listCmd = new String[]{ HgCommandConstants.INVENTORY_CMD };
HgListConsumer listconsumer = new HgListConsumer( getLogger() );
result = HgUtils.execute( listconsumer, getLogger(), fileSet.getBasedir(), listCmd );
if ( result.isSuccess() )
{
List<ScmFile> files = listconsumer.getFiles();
List<ScmFile> fileList = new ArrayList<ScmFile>();
for ( ScmFile f : files )
{