/** {@inheritDoc} */ public UntagScmResult untag( ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters ) throws ScmException { return (UntagScmResult) executeCommand( getUntagCommand(), repository.getProviderRepository(), fileSet, parameters ); }
private ScmRepository getScmRepository( Project project, boolean useCredentialsCache ) throws ScmRepositoryException, NoSuchScmProviderException { ScmRepository repository = scmManager.makeScmRepository( project.getScmUrl().trim() ); repository.getProviderRepository().setPersistCheckout( true ); if ( !( useCredentialsCache && repository.getProvider().equals( "svn" ) ) ) { if ( !StringUtils.isEmpty( project.getScmUsername() ) ) { repository.getProviderRepository().setUser( project.getScmUsername() ); if ( !StringUtils.isEmpty( project.getScmPassword() ) ) { repository.getProviderRepository().setPassword( project.getScmPassword() ); } else { repository.getProviderRepository().setPassword( "" ); } } } if ( repository.getProvider().equals( "perforce" ) ) { //Remove the clientspec name, so it will be recalcuated between each command for each project //instead of use the same for all projects System.setProperty( "maven.scm.perforce.clientspec.name", "" ); } return repository; }
/** * {@inheritDoc} */ public ScmRepository makeProviderScmRepository( String providerType, File path ) throws ScmRepositoryException, UnknownRepositoryStructure, NoSuchScmProviderException { if ( providerType == null ) { throw new NullPointerException( "The provider type cannot be null." ); } ScmProvider provider = getProviderByType( providerType ); ScmProviderRepository providerRepository = provider.makeProviderScmRepository( path ); return new ScmRepository( providerType, providerRepository ); }
private ScmTranslator getScmTranslator( ScmRepository scmRepository ) { return scmTranslators.get( scmRepository.getProvider() ); }
/** * {@inheritDoc} */ public ScmProvider getProviderByRepository( ScmRepository repository ) throws NoSuchScmProviderException { return getProviderByType( repository.getProvider() ); }
/** * Get info from svn. * * @param repository * @param fileSet * @return * @throws ScmException * @todo this should be rolled into org.apache.maven.scm.provider.ScmProvider and * org.apache.maven.scm.provider.svn.SvnScmProvider */ public SvnInfoScmResult info( ScmRepository repository, ScmFileSet fileSet ) throws ScmException { AbstractSvnScmProvider abstractSvnScmProvider = (AbstractSvnScmProvider) scmManager.getProviderByType( "svn" ); return abstractSvnScmProvider.info( repository.getProviderRepository(), fileSet, null ); //org.apache.maven.scm.provider.svn.svnexe.command.info.SvnInfoCommand command = // new org.apache.maven.scm.provider.svn.svnexe.command.info.SvnInfoCommand(); //command.setLogger( getLogger() ); //return (SvnInfoScmResult) command.execute( repository.getProviderRepository(), fileSet, null ); }
repository.getProviderRepository().setPersistCheckout( true ); if ( !configuration.isUseCredentialsCache() || !"svn".equals( repository.getProvider() ) ) repository.getProviderRepository().setUser( configuration.getUsername() ); repository.getProviderRepository().setPassword( configuration.getPassword() ); repository.getProviderRepository().setPassword( "" ); if ( "perforce".equals( repository.getProvider() ) )
/** * {@inheritDoc} */ public ScmProvider getProviderByRepository( ScmRepository repository ) throws NoSuchScmProviderException { return getProviderByType( repository.getProvider() ); }
/** * {@inheritDoc} */ public ScmRepository makeProviderScmRepository( String providerType, File path ) throws ScmRepositoryException, UnknownRepositoryStructure, NoSuchScmProviderException { if ( providerType == null ) { throw new NullPointerException( "The provider type cannot be null." ); } ScmProvider provider = getProviderByType( providerType ); ScmProviderRepository providerRepository = provider.makeProviderScmRepository( path ); return new ScmRepository( providerType, providerRepository ); }
/** * {@inheritDoc} */ public EditScmResult edit( ScmRepository repository, ScmFileSet fileSet ) throws ScmException { login( repository, fileSet ); CommandParameters parameters = new CommandParameters(); return edit( repository.getProviderRepository(), fileSet, parameters ); }
ScmProviderRepository providerRepo = repository.getProviderRepository(); if ( repository.getProviderRepository() instanceof ScmProviderRepositoryWithHost ) ScmProviderRepositoryWithHost repo = (ScmProviderRepositoryWithHost) repository.getProviderRepository(); if ( !StringUtils.isEmpty( tagBase ) && repository.getProvider().equals( "svn" ) ) SvnScmProviderRepository svnRepo = (SvnScmProviderRepository) repository.getProviderRepository();
/** * Convenience method that return true is the defined <code>SCM repository</code> is a known provider. * <p> * Currently, we fully support ClearCase, CVS, Git, Perforce, Mercurial, Starteam and Subversion * by the maven-scm-providers component. * </p> * * @param scmRepository a SCM repository * @param scmProvider a SCM provider name * @return true if the provider of the given SCM repository is equal to the given scm provider. * @see <a href="http://svn.apache.org/repos/asf/maven/scm/trunk/maven-scm-providers/">maven-scm-providers</a> */ private static boolean isScmSystem( ScmRepository scmRepository, String scmProvider ) { if ( StringUtils.isEmpty( scmProvider ) ) { return false; } if ( scmRepository != null && scmProvider.equalsIgnoreCase( scmRepository.getProvider() ) ) { return true; } return false; } }
/** * {@inheritDoc} */ public ScmRepository makeScmRepository( String scmUrl ) throws ScmRepositoryException, NoSuchScmProviderException { if ( scmUrl == null ) { throw new NullPointerException( "The scm url cannot be null." ); } char delimiter = ScmUrlUtils.getDelimiter( scmUrl ).charAt( 0 ); String providerType = ScmUrlUtils.getProvider( scmUrl ); ScmProvider provider = getProviderByType( providerType ); String scmSpecificUrl = cleanScmUrl( scmUrl.substring( providerType.length() + 5 ) ); ScmProviderRepository providerRepository = provider.makeProviderScmRepository( scmSpecificUrl, delimiter ); return new ScmRepository( providerType, providerRepository ); }
/** * {@inheritDoc} */ public StatusScmResult status( ScmRepository repository, ScmFileSet fileSet ) throws ScmException { login( repository, fileSet ); CommandParameters parameters = new CommandParameters(); return status( repository.getProviderRepository(), fileSet, parameters ); }
if (repository.getProviderRepository() instanceof SvnScmProviderRepository) { SvnInfoScmResult scmResult = info( repository, new ScmFileSet( scmDirectory ) ); if ( ! scmResult.isSuccess() ) } else if (repository.getProviderRepository() instanceof GitScmProviderRepository) { GitBranchParseCommand command = new GitBranchParseCommand(); ScmResult execute = command.execute(repository.getProviderRepository(), new ScmFileSet( scmDirectory ), new CommandParameters()); return currentBranchName; } else throw new ScmException("No implementation for "+repository.getProvider());
/** * Convenience method that return true is the defined * <code>SCM repository</code> is a known provider. * <p> * Currently, we fully support ClearCase, CVS, Git, Perforce, Mercurial, * Starteam and Subversion by the maven-scm-providers component. * </p> * * @param scmRepository a SCM repository * @param scmProvider a SCM provider name * @return true if the provider of the given SCM repository is equal to the * given scm provider. * @see * <a href="http://svn.apache.org/repos/asf/maven/scm/trunk/maven-scm-providers/">maven-scm-providers</a> */ private static boolean isScmSystem(ScmRepository scmRepository, String scmProvider) { if (StringUtils.isEmpty(scmProvider)) { return false; } if (scmRepository != null && scmProvider.equalsIgnoreCase(scmRepository.getProvider())) { return true; } return false; } }
/** * {@inheritDoc} */ public ScmRepository makeScmRepository( String scmUrl ) throws ScmRepositoryException, NoSuchScmProviderException { if ( scmUrl == null ) { throw new NullPointerException( "The scm url cannot be null." ); } char delimiter = ScmUrlUtils.getDelimiter( scmUrl ).charAt( 0 ); String providerType = ScmUrlUtils.getProvider( scmUrl ); ScmProvider provider = getProviderByType( providerType ); String scmSpecificUrl = cleanScmUrl( scmUrl.substring( providerType.length() + 5 ) ); ScmProviderRepository providerRepository = provider.makeProviderScmRepository( scmSpecificUrl, delimiter ); return new ScmRepository( providerType, providerRepository ); }
/** * {@inheritDoc} */ public UnEditScmResult unedit( ScmRepository repository, ScmFileSet fileSet ) throws ScmException { login( repository, fileSet ); CommandParameters parameters = new CommandParameters(); return unedit( repository.getProviderRepository(), fileSet, parameters ); }
if (repository.getProviderRepository() instanceof SvnScmProviderRepository) { SvnInfoScmResult scmResult = info( repository, new ScmFileSet( scmDirectory ) ); } else if (repository.getProviderRepository() instanceof GitScmProviderRepository) { command.setRev("HEAD"); return command.execute(repository.getProviderRepository(), new ScmFileSet( scmDirectory ), new CommandParameters()).getCommandOutput().substring(0, 7); } else throw new ScmException("No implementation for "+repository.getProvider());
public UpdateScmResult update( ContinuumScmConfiguration configuration ) throws ScmException { ScmVersion scmVersion = getScmVersion( configuration ); File workingDirectory = configuration.getWorkingDirectory(); if ( !workingDirectory.exists() ) { // TODO: maybe we could check it out - it seems we currently rely on Continuum figuring this out throw new IllegalStateException( "The working directory for the project doesn't exist " + "(" + workingDirectory.getAbsolutePath() + ")." ); } ScmRepository repository = getScmRepository( configuration ); // Some SCM provider requires additional system properties during update if ( "starteam".equals( repository.getProvider() ) ) { // TODO: remove the use of system property - need a better way to pass provider specific configuration // Remove the clientspec name, so it will be recalculated between each command for each project // instead of use the same for all projects System.setProperty( "maven.scm.starteam.deleteLocal", "true" ); } UpdateScmResult result; ScmFileSet fileSet = new ScmFileSet( workingDirectory ); // TODO: shouldn't need to synchronize this synchronized ( this ) { result = scmManager.update( repository, fileSet, scmVersion, configuration.getLatestUpdateDate() ); } return result; }