@Override protected ChangeLogScmResult executeChangeLogCommand( ChangeLogScmRequest request ) throws ScmException { final ScmVersion startVersion = request.getStartRevision(); final ScmVersion endVersion = request.getEndRevision(); final ScmFileSet fileSet = request.getScmFileSet(); final String datePattern = request.getDatePattern(); return executeChangeLogCommand( request.getScmRepository().getProviderRepository(), fileSet, request.getStartDate(), request.getEndDate(), request.getScmBranch(), datePattern, startVersion, endVersion, request.getLimit() ); }
/** * {@inheritDoc} */ public ChangeLogScmResult changeLog( ScmRepository repository, ScmFileSet fileSet, Date startDate, Date endDate, int numDays, ScmBranch branch, String datePattern ) throws ScmException { final ChangeLogScmRequest request = new ChangeLogScmRequest( repository, fileSet ); request.setDateRange( startDate, endDate ); request.setNumDays( numDays ); request.setScmBranch( branch ); request.setDatePattern( datePattern ); return changeLog( request ); }
private Set<String> lastCommitChanges(Set<ScmFileStatus> statusToInclude, ScmRepository repository, File scmRoot) throws ScmException { ChangeLogScmRequest scmRequest = new ChangeLogScmRequest(repository, new ScmFileSet(scmRoot)); scmRequest.setLimit(1); return pathsAffectedByChange(scmRequest, statusToInclude, 1); }
private Set<String> changesBetweenBranchs(String origine, String destination, Set<ScmFileStatus> statusToInclude, ScmRepository repository, File scmRoot) throws ScmException { ChangeLogScmRequest scmRequest = new ChangeLogScmRequest(repository, new ScmFileSet(scmRoot)); scmRequest.setScmBranch(new ScmBranch(destination + ".." + origine)); return pathsAffectedByChange(scmRequest, statusToInclude, NO_LIMIT); }
public void testChangeLogCommandFromHeadToHead() throws Exception { Thread.sleep( SLEEP_TIME_IN_MILLIS ); ScmRepository scmRepository = getScmRepository(); ScmProvider provider = getScmManager().getProviderByRepository( scmRepository ); ScmFileSet fileSet = new ScmFileSet( getWorkingCopy() ); ChangeLogScmRequest clr = new ChangeLogScmRequest( scmRepository, fileSet ); String startVersion = "HEAD"; clr.setStartRevision( new ScmRevision( startVersion ) ); String endVersion = "HEAD"; clr.setEndRevision( new ScmRevision( endVersion ) ); ChangeLogScmResult changelogResult = provider.changeLog( clr ); List<ChangeSet> logEntries = changelogResult.getChangeLog().getChangeSets(); assertEquals( String.format( "changelog for %s..%s returned bad number of commits", startVersion, endVersion ), 0, logEntries.size() ); }
/** * {@inheritDoc} */ public ChangeLogScmResult changeLog( ChangeLogScmRequest request ) throws ScmException { final ScmRepository scmRepository = request.getScmRepository(); final ScmFileSet scmFileSet = request.getScmFileSet(); login( scmRepository, scmFileSet ); return changelog( scmRepository.getProviderRepository(), scmFileSet, request.getCommandParameters() ); }
final ChangeLogScmRequest req = new ChangeLogScmRequest(scmRepo, fileSet); req.setScmBranch(scmBranch); req.setEndRevision(scmVersion);
/** * {@inheritDoc} */ public ChangeLogScmResult changeLog( ChangeLogScmRequest scmRequest ) throws ScmException { return this.getProviderByRepository( scmRequest.getScmRepository() ).changeLog( scmRequest ); }
public void testChangeLogCommandFromHeadToStartOfRepository() throws Exception { Thread.sleep( SLEEP_TIME_IN_MILLIS ); ScmRepository scmRepository = getScmRepository(); ScmProvider provider = getScmManager().getProviderByRepository( scmRepository ); ScmFileSet fileSet = new ScmFileSet( getWorkingCopy() ); ChangeLogScmRequest clr = new ChangeLogScmRequest( scmRepository, fileSet ); String version = "HEAD"; clr.setRevision( new ScmRevision( version ) ); ChangeLogScmResult changelogResult = provider.changeLog( clr ); List<ChangeSet> logEntries = changelogResult.getChangeLog().getChangeSets(); assertEquals( String.format( "changelog for %s returned bad number of commits", version ), 5, logEntries.size() ); }
public void testChangeLogCommandFromUndefinedToHead() throws Exception { Thread.sleep( SLEEP_TIME_IN_MILLIS ); ScmRepository scmRepository = getScmRepository(); ScmProvider provider = getScmManager().getProviderByRepository( scmRepository ); ScmFileSet fileSet = new ScmFileSet( getWorkingCopy() ); ChangeLogScmRequest clr = new ChangeLogScmRequest( scmRepository, fileSet ); String endVersion = "HEAD"; clr.setEndRevision( new ScmRevision( endVersion ) ); ChangeLogScmResult changelogResult = provider.changeLog( clr ); List<ChangeSet> logEntries = changelogResult.getChangeLog().getChangeSets(); assertEquals( String.format( "changelog for ..%s returned bad number of commits", endVersion ), 0, logEntries.size() ); }
public void testChangeLogCommandFromVersionToUndefined() throws Exception { Thread.sleep( SLEEP_TIME_IN_MILLIS ); ScmRepository scmRepository = getScmRepository(); ScmProvider provider = getScmManager().getProviderByRepository( scmRepository ); ScmFileSet fileSet = new ScmFileSet( getWorkingCopy() ); ChangeLogScmRequest clr = new ChangeLogScmRequest( scmRepository, fileSet ); String startVersion = "e3864d9"; clr.setStartRevision( new ScmRevision( startVersion ) ); ChangeLogScmResult changelogResult = provider.changeLog( clr ); List<ChangeSet> logEntries = changelogResult.getChangeLog().getChangeSets(); assertEquals( String.format( "changelog for %s.. returned bad number of commits", startVersion ), 2, logEntries.size() ); assertThat( "bad commit SHA1 retrieved", logEntries.get( 0 ).getRevision(), startsWith( "464921b" ) ); assertThat( "bad commit SHA1 retrieved", logEntries.get( 1 ).getRevision(), startsWith( "db46d63" ) ); }
/** * This method extracts the simple metadata such as revision, lastCommitTimestamp of the commit/hash, author of the commit * from the Changelog available in the SCM repository * @param scmUrl - the SCM url to get the SCM connection * @param workingDir - the Working Copy or Directory of the SCM repo * @return a {@link Map<ExtraManifestKeys,String>} of values extracted form the changelog, with Keys from {@link ExtraManifestKeys} * @throws IOException - any error that might occur while manipulating the SCM Changelog * @throws ScmException - other SCM related exceptions */ public Map<ExtraManifestKeys, String> getChangeLog(String scmUrl, File workingDir) throws IOException, ScmException { Map<ExtraManifestKeys, String> changeLogMap = new HashMap<>(); ScmRepository scmRepository = scmManager.makeScmRepository(scmUrl); ChangeLogScmResult scmResult = scmManager.changeLog(new ChangeLogScmRequest(scmRepository, new ScmFileSet(workingDir, "*"))); if (scmResult.isSuccess()) { List<ChangeSet> changeSetList = scmResult.getChangeLog().getChangeSets(); if (changeSetList != null && !changeSetList.isEmpty()) { //get the latest changelog ChangeSet changeSet = changeSetList.get(0); changeLogMap.put(ExtraManifestKeys.SCM_TYPE, getScmType(scmUrl)); changeLogMap.put(ExtraManifestKeys.SCM_REVISION, changeSet.getRevision()); changeLogMap.put(ExtraManifestKeys.LAST_COMMIT_TIMESTAMP, manifestTimestampFormat(changeSet.getDate())); changeLogMap.put(ExtraManifestKeys.SCM_AUTHOR, changeSet.getAuthor()); } } return changeLogMap; } }
public void testChangeLogCommandWithStartEndInBadOrder() throws Exception { Thread.sleep( SLEEP_TIME_IN_MILLIS ); ScmRepository scmRepository = getScmRepository(); ScmProvider provider = getScmManager().getProviderByRepository( scmRepository ); ScmFileSet fileSet = new ScmFileSet( getWorkingCopy() ); ChangeLogScmRequest clr = new ChangeLogScmRequest( scmRepository, fileSet ); String startVersion = "db46d63"; clr.setStartRevision( new ScmRevision( startVersion ) ); String endVersion = "0f1e817"; clr.setEndRevision( new ScmRevision( endVersion ) ); ChangeLogScmResult changelogResult = provider.changeLog( clr ); List<ChangeSet> logEntries = changelogResult.getChangeLog().getChangeSets(); assertEquals( String.format( "changelog for %s..%s should return no commits", startVersion, endVersion ), 0, logEntries.size() ); }
/** * {@inheritDoc} */ public ChangeLogScmResult changeLog( ChangeLogScmRequest request ) throws ScmException { final ScmRepository scmRepository = request.getScmRepository(); final ScmFileSet scmFileSet = request.getScmFileSet(); login( scmRepository, scmFileSet ); return changelog( scmRepository.getProviderRepository(), scmFileSet, request.getCommandParameters() ); }
/** * {@inheritDoc} */ public ChangeLogScmResult changeLog( ChangeLogScmRequest request ) throws ScmException { final ScmRepository repository = request.getScmRepository(); return this.getProviderByRepository( repository ).changeLog( request ); }
public void testChangeLogCommandFromHeadToStartOfRepository() throws Exception { Thread.sleep( SLEEP_TIME_IN_MILLIS ); ScmRepository scmRepository = getScmRepository(); ScmProvider provider = getScmManager().getProviderByRepository( scmRepository ); ScmFileSet fileSet = new ScmFileSet( getWorkingCopy() ); ChangeLogScmRequest clr = new ChangeLogScmRequest( scmRepository, fileSet ); String version = "HEAD"; clr.setRevision( new ScmRevision( version ) ); ChangeLogScmResult changelogResult = provider.changeLog( clr ); List<ChangeSet> logEntries = changelogResult.getChangeLog().getChangeSets(); assertEquals( String.format( "changelog for %s returned bad number of commits", version ), 5, logEntries.size() ); }
private Set<String> changesBetweenBranchs(String origine, String destination, Set<ScmFileStatus> statusToInclude, ScmRepository repository, File scmRoot) throws ScmException { ChangeLogScmRequest scmRequest = new ChangeLogScmRequest(repository, new ScmFileSet(scmRoot)); scmRequest.setScmBranch(new ScmBranch(destination + ".." + origine)); return pathsAffectedByChange(scmRequest, statusToInclude, NO_LIMIT); }
public void testChangeLogCommandFromUndefinedToHead() throws Exception { Thread.sleep( SLEEP_TIME_IN_MILLIS ); ScmRepository scmRepository = getScmRepository(); ScmProvider provider = getScmManager().getProviderByRepository( scmRepository ); ScmFileSet fileSet = new ScmFileSet( getWorkingCopy() ); ChangeLogScmRequest clr = new ChangeLogScmRequest( scmRepository, fileSet ); String endVersion = "HEAD"; clr.setEndRevision( new ScmRevision( endVersion ) ); ChangeLogScmResult changelogResult = provider.changeLog( clr ); List<ChangeSet> logEntries = changelogResult.getChangeLog().getChangeSets(); assertEquals( String.format( "changelog for ..%s returned bad number of commits", endVersion ), 0, logEntries.size() ); }
private Set<String> lastCommitChanges(Set<ScmFileStatus> statusToInclude, ScmRepository repository, File scmRoot) throws ScmException { ChangeLogScmRequest scmRequest = new ChangeLogScmRequest(repository, new ScmFileSet(scmRoot)); scmRequest.setLimit(1); return pathsAffectedByChange(scmRequest, statusToInclude, 1); }
public void testChangeLogCommandFromVersionToUndefined() throws Exception { Thread.sleep( SLEEP_TIME_IN_MILLIS ); ScmRepository scmRepository = getScmRepository(); ScmProvider provider = getScmManager().getProviderByRepository( scmRepository ); ScmFileSet fileSet = new ScmFileSet( getWorkingCopy() ); ChangeLogScmRequest clr = new ChangeLogScmRequest( scmRepository, fileSet ); String startVersion = "e3864d9"; clr.setStartRevision( new ScmRevision( startVersion ) ); ChangeLogScmResult changelogResult = provider.changeLog( clr ); List<ChangeSet> logEntries = changelogResult.getChangeLog().getChangeSets(); assertEquals( String.format( "changelog for %s.. returned bad number of commits", startVersion ), 2, logEntries.size() ); assertThat( "bad commit SHA1 retrieved", logEntries.get( 0 ).getRevision(), startsWith( "464921b" ) ); assertThat( "bad commit SHA1 retrieved", logEntries.get( 1 ).getRevision(), startsWith( "db46d63" ) ); }