[jira] [Commented] (SCM-885) Extend GitChangeLogCommand by using revision only
[ https://issues.apache.org/jira/browse/SCM-885?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16488447#comment-16488447 ] Matthieu Brouillard commented on SCM-885: - thank you Mickael, do you have an idea when will {{1.10.0}} be released? > Extend GitChangeLogCommand by using revision only > - > > Key: SCM-885 > URL: https://issues.apache.org/jira/browse/SCM-885 > Project: Maven SCM > Issue Type: Improvement > Components: maven-scm-provider-gitexe, maven-scm-provider-jgit >Affects Versions: 1.9.5 >Reporter: Matthieu Brouillard >Assignee: Michael Osipov >Priority: Major > Fix For: 1.10.0 > > Attachments: scm-885-different-behavior-exe-jgit-patch.diff > > > Invoking execution of a GitChangeLogCommand where only the end revision has > been set produces a wrong out. > +Actual result:+ > {{git whatchanged --date=iso ..END_REVISION_SHA1 -- PROJECT_PATH}} > +Expected result:+ only the end revison SHA1 is used without the two dots > {{git whatchanged --date=iso END_REVISION_SHA1 -- PROJECT_PATH}} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Closed] (SCM-826) Allow multiple identities on same SCM host
[ https://issues.apache.org/jira/browse/SCM-826?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Michael Osipov closed SCM-826. -- Resolution: Not A Problem > Allow multiple identities on same SCM host > -- > > Key: SCM-826 > URL: https://issues.apache.org/jira/browse/SCM-826 > Project: Maven SCM > Issue Type: Improvement > Components: maven-plugin >Reporter: phansson >Priority: Major > > It is no longer uncommon for a developer to have several identities on a > single SCM host (just think of sites such as GitHub and BitBucket). > The current scheme for centralizing credentials is to put them in > settings.xml and then Maven SCM Plugin will match the host name in {{}} > section of the POM with the {{}} section from {{}} in > settings.xml. > As far as I know (pretty much undocumented) this scheme will currently only > work for a single identity at the VCS host. > My proposal is to expand on the current scheme so that it will allow some > form of *longest match* which would include a potential prefixed username in > the SCM URL (e.g. j...@github.com) or matching on the URL path > (github.com/apache rather than just matching on the hostname itself). > Here's an example of how I envisage it: > {code:xml} > > > > > us...@github.com > user1 > mysecret > > > > us...@github.com > user2 > mysecret > > > > us...@github.com/apache > user2 > mysecret > > > > github.com > user1 > mysecret > > {code} > This enhancement would be completely backwards compatible, is simple to > implement and will solve a lot of use cases in one go. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (SCM-885) Extend GitChangeLogCommand by using revision only
[ https://issues.apache.org/jira/browse/SCM-885?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16488005#comment-16488005 ] ASF GitHub Bot commented on SCM-885: asfgit closed pull request #74: [SCM-885] third implementation URL: https://github.com/apache/maven-scm/pull/74 This is a PR merged from a forked repository. As GitHub hides the original diff on merge, it is displayed below for the sake of provenance: As this is a foreign pull request (from a fork), the diff is supplied below (as it won't show otherwise due to GitHub magic): diff --git a/.gitattributes b/.gitattributes index 3bb3b5ea8..d09ce69a2 100644 --- a/.gitattributes +++ b/.gitattributes @@ -6,3 +6,8 @@ *.csstext *.js text *.sqltext + +/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/resources/linear-changelog/objects/** binary +/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/test/resources/linear-changelog/objects/** binary +/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/resources/linear-changelog/* text eol=lf +/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/test/resources/linear-changelog/* text eol=lf \ No newline at end of file diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/command/changelog/AbstractChangeLogCommand.java b/maven-scm-api/src/main/java/org/apache/maven/scm/command/changelog/AbstractChangeLogCommand.java index b8473ab0b..61242c36f 100644 --- a/maven-scm-api/src/main/java/org/apache/maven/scm/command/changelog/AbstractChangeLogCommand.java +++ b/maven-scm-api/src/main/java/org/apache/maven/scm/command/changelog/AbstractChangeLogCommand.java @@ -55,6 +55,14 @@ protected ChangeLogScmResult executeChangeLogCommand( ScmProviderRepository repo throw new ScmException( "Unsupported method for this provider." ); } +@Deprecated +protected ChangeLogScmResult executeChangeLogCommand( ScmProviderRepository repository, ScmFileSet fileSet, + ScmVersion version, String datePattern ) +throws ScmException +{ +throw new ScmException( "Unsupported method for this provider." ); +} + /** * {@inheritDoc} */ @@ -76,13 +84,21 @@ public ScmResult executeCommand( ScmProviderRepository repository, ScmFileSet fi ScmBranch branch = (ScmBranch) parameters.getScmVersion( CommandParameter.BRANCH, null ); +ScmVersion version = parameters.getScmVersion( CommandParameter.SCM_VERSION, null ); + ScmVersion startVersion = parameters.getScmVersion( CommandParameter.START_SCM_VERSION, null ); ScmVersion endVersion = parameters.getScmVersion( CommandParameter.END_SCM_VERSION, null ); String datePattern = parameters.getString( CommandParameter.CHANGELOG_DATE_PATTERN, null ); -if ( startVersion != null || endVersion != null ) +boolean uniqueUsageOfVersion = startVersion == null && endVersion == null && version != null; + +if ( uniqueUsageOfVersion ) +{ +return executeChangeLogCommand( repository, fileSet, version, datePattern ); +} +else if ( startVersion != null || endVersion != null ) { return executeChangeLogCommand( repository, fileSet, startVersion, endVersion, datePattern ); } diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/command/changelog/ChangeLogScmRequest.java b/maven-scm-api/src/main/java/org/apache/maven/scm/command/changelog/ChangeLogScmRequest.java index f96c12603..f8723c1c2 100644 --- a/maven-scm-api/src/main/java/org/apache/maven/scm/command/changelog/ChangeLogScmRequest.java +++ b/maven-scm-api/src/main/java/org/apache/maven/scm/command/changelog/ChangeLogScmRequest.java @@ -175,4 +175,15 @@ public void setDateRange( Date startDate, Date endDate ) setEndDate( endDate ); } +public void setRevision( ScmVersion revision ) +throws ScmException +{ +parameters.setScmVersion( CommandParameter.SCM_VERSION, revision ); +} + +public ScmVersion getRevision() +throws ScmException +{ +return parameters.getScmVersion( CommandParameter.SCM_VERSION, null ); +} } diff --git a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/changelog/GitChangeLogCommand.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/changelog/GitChangeLogCommand.java index 2145eeb83..50b8df861 100644 --- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/changelog/GitChangeLogCommand.java +++
[jira] [Commented] (SCM-885) Extend GitChangeLogCommand by using revision only
[ https://issues.apache.org/jira/browse/SCM-885?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16488003#comment-16488003 ] ASF GitHub Bot commented on SCM-885: asfgit closed pull request #70: [SCM-885] allow to use only endVersion in GitChangeLogCommand URL: https://github.com/apache/maven-scm/pull/70 This is a PR merged from a forked repository. As GitHub hides the original diff on merge, it is displayed below for the sake of provenance: As this is a foreign pull request (from a fork), the diff is supplied below (as it won't show otherwise due to GitHub magic): diff --git a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/changelog/GitChangeLogCommand.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/changelog/GitChangeLogCommand.java index 2145eeb83..7aab4e89f 100644 --- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/changelog/GitChangeLogCommand.java +++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/changelog/GitChangeLogCommand.java @@ -170,10 +170,10 @@ static Commandline createCommandLine( GitScmProviderRepository repository, File if ( startVersion != null ) { versionRange.append( StringUtils.escape( startVersion.getName() ) ); + // range separator needed only if a lower bound revision is set +versionRange.append( ".." ); } -versionRange.append( ".." ); - if ( endVersion != null ) { versionRange.append( StringUtils.escape( endVersion.getName() ) ); diff --git a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/changelog/GitChangeLogCommandTest.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/changelog/GitChangeLogCommandTest.java index ecc6086fa..f498c5d13 100644 --- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/changelog/GitChangeLogCommandTest.java +++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/changelog/GitChangeLogCommandTest.java @@ -151,6 +151,14 @@ public void testCommandLineWithStartVersionAndEndVersionEquals() + " -- " + StringUtils.quoteAndEscape( workingDirectory.getPath(), '"' ) ); } +public void testCommandLineWithOnlyEndVersion() +throws Exception +{ +testCommandLine( "scm:git:http://foo.com/git;, null, null, new ScmRevision( "10" ), + "git whatchanged --date=iso 10" + + " -- " + StringUtils.quoteAndEscape( workingDirectory.getPath(), '"' ) ); +} + public void testCommandLineWithStartVersionAndEndVersionAndBranch() throws Exception { This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > Extend GitChangeLogCommand by using revision only > - > > Key: SCM-885 > URL: https://issues.apache.org/jira/browse/SCM-885 > Project: Maven SCM > Issue Type: Improvement > Components: maven-scm-provider-gitexe, maven-scm-provider-jgit >Affects Versions: 1.9.5 >Reporter: Matthieu Brouillard >Assignee: Michael Osipov >Priority: Major > Fix For: 1.9.6 > > Attachments: scm-885-different-behavior-exe-jgit-patch.diff > > > Invoking execution of a GitChangeLogCommand where only the end revision has > been set produces a wrong out. > +Actual result:+ > {{git whatchanged --date=iso ..END_REVISION_SHA1 -- PROJECT_PATH}} > +Expected result:+ only the end revison SHA1 is used without the two dots > {{git whatchanged --date=iso END_REVISION_SHA1 -- PROJECT_PATH}} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (SCM-885) Extend GitChangeLogCommand by using revision only
[ https://issues.apache.org/jira/browse/SCM-885?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16488004#comment-16488004 ] ASF GitHub Bot commented on SCM-885: asfgit closed pull request #72: [SCM-885] second implementation with new API URL: https://github.com/apache/maven-scm/pull/72 This is a PR merged from a forked repository. As GitHub hides the original diff on merge, it is displayed below for the sake of provenance: As this is a foreign pull request (from a fork), the diff is supplied below (as it won't show otherwise due to GitHub magic): diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/CommandParameter.java b/maven-scm-api/src/main/java/org/apache/maven/scm/CommandParameter.java index c8edd3541..3d695ef4f 100644 --- a/maven-scm-api/src/main/java/org/apache/maven/scm/CommandParameter.java +++ b/maven-scm-api/src/main/java/org/apache/maven/scm/CommandParameter.java @@ -50,6 +50,8 @@ public static final CommandParameter BRANCH = new CommandParameter( "branch" ); +public static final CommandParameter FROM_START_OF_REPOSITORY = new CommandParameter( "fromStartOfRepository" ); + public static final CommandParameter START_SCM_VERSION = new CommandParameter( "startScmVersion" ); public static final CommandParameter END_SCM_VERSION = new CommandParameter( "endScmVersion" ); diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/command/changelog/AbstractChangeLogCommand.java b/maven-scm-api/src/main/java/org/apache/maven/scm/command/changelog/AbstractChangeLogCommand.java index b8473ab0b..b808900f0 100644 --- a/maven-scm-api/src/main/java/org/apache/maven/scm/command/changelog/AbstractChangeLogCommand.java +++ b/maven-scm-api/src/main/java/org/apache/maven/scm/command/changelog/AbstractChangeLogCommand.java @@ -55,6 +55,14 @@ protected ChangeLogScmResult executeChangeLogCommand( ScmProviderRepository repo throw new ScmException( "Unsupported method for this provider." ); } +protected ChangeLogScmResult executeChangeLogCommand( ScmProviderRepository repository, ScmFileSet fileSet, + ScmVersion endVersion, + String datePattern, boolean fromStartOfRepository ) +throws ScmException +{ +throw new ScmException( "Unsupported method for this provider." ); +} + /** * {@inheritDoc} */ @@ -82,9 +90,18 @@ public ScmResult executeCommand( ScmProviderRepository repository, ScmFileSet fi String datePattern = parameters.getString( CommandParameter.CHANGELOG_DATE_PATTERN, null ); +boolean fromStartOfRepository = parameters.getBoolean( CommandParameter.FROM_START_OF_REPOSITORY, false ); + if ( startVersion != null || endVersion != null ) { -return executeChangeLogCommand( repository, fileSet, startVersion, endVersion, datePattern ); +if ( startVersion == null && fromStartOfRepository ) +{ +return executeChangeLogCommand( repository, fileSet, endVersion, datePattern, fromStartOfRepository ); +} +else +{ +return executeChangeLogCommand( repository, fileSet, startVersion, endVersion, datePattern ); +} } else { diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/command/changelog/ChangeLogScmRequest.java b/maven-scm-api/src/main/java/org/apache/maven/scm/command/changelog/ChangeLogScmRequest.java index f96c12603..0fe6305f5 100644 --- a/maven-scm-api/src/main/java/org/apache/maven/scm/command/changelog/ChangeLogScmRequest.java +++ b/maven-scm-api/src/main/java/org/apache/maven/scm/command/changelog/ChangeLogScmRequest.java @@ -130,6 +130,18 @@ public void setEndRevision( ScmVersion endRevision ) parameters.setScmVersion( CommandParameter.END_SCM_VERSION, endRevision ); } +public boolean isFromStartOfRepository() +throws ScmException +{ +return parameters.getBoolean( CommandParameter.FROM_START_OF_REPOSITORY, false ); +} + +public void setFromStartOfRepository() +throws ScmException +{ +parameters.setString( CommandParameter.FROM_START_OF_REPOSITORY, Boolean.TRUE.toString() ); +} + public String getDatePattern() throws ScmException { diff --git a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/changelog/GitChangeLogCommand.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/changelog/GitChangeLogCommand.java index 2145eeb83..41211df79 100644 ---
[jira] [Closed] (SCM-885) Extend GitChangeLogCommand by using revision only
[ https://issues.apache.org/jira/browse/SCM-885?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Michael Osipov closed SCM-885. -- Resolution: Fixed Fixed with [67a4c252838c2c4c6d12409c5831b1e92d9bcc98|https://gitbox.apache.org/repos/asf?p=maven-scm.git;a=commit;h=67a4c252838c2c4c6d12409c5831b1e92d9bcc98] > Extend GitChangeLogCommand by using revision only > - > > Key: SCM-885 > URL: https://issues.apache.org/jira/browse/SCM-885 > Project: Maven SCM > Issue Type: Improvement > Components: maven-scm-provider-gitexe, maven-scm-provider-jgit >Affects Versions: 1.9.5 >Reporter: Matthieu Brouillard >Assignee: Michael Osipov >Priority: Major > Fix For: 1.9.6 > > Attachments: scm-885-different-behavior-exe-jgit-patch.diff > > > Invoking execution of a GitChangeLogCommand where only the end revision has > been set produces a wrong out. > +Actual result:+ > {{git whatchanged --date=iso ..END_REVISION_SHA1 -- PROJECT_PATH}} > +Expected result:+ only the end revison SHA1 is used without the two dots > {{git whatchanged --date=iso END_REVISION_SHA1 -- PROJECT_PATH}} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[GitHub] asfgit closed pull request #74: [SCM-885] third implementation
asfgit closed pull request #74: [SCM-885] third implementation URL: https://github.com/apache/maven-scm/pull/74 This is a PR merged from a forked repository. As GitHub hides the original diff on merge, it is displayed below for the sake of provenance: As this is a foreign pull request (from a fork), the diff is supplied below (as it won't show otherwise due to GitHub magic): diff --git a/.gitattributes b/.gitattributes index 3bb3b5ea8..d09ce69a2 100644 --- a/.gitattributes +++ b/.gitattributes @@ -6,3 +6,8 @@ *.csstext *.js text *.sqltext + +/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/resources/linear-changelog/objects/** binary +/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/test/resources/linear-changelog/objects/** binary +/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/resources/linear-changelog/* text eol=lf +/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/test/resources/linear-changelog/* text eol=lf \ No newline at end of file diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/command/changelog/AbstractChangeLogCommand.java b/maven-scm-api/src/main/java/org/apache/maven/scm/command/changelog/AbstractChangeLogCommand.java index b8473ab0b..61242c36f 100644 --- a/maven-scm-api/src/main/java/org/apache/maven/scm/command/changelog/AbstractChangeLogCommand.java +++ b/maven-scm-api/src/main/java/org/apache/maven/scm/command/changelog/AbstractChangeLogCommand.java @@ -55,6 +55,14 @@ protected ChangeLogScmResult executeChangeLogCommand( ScmProviderRepository repo throw new ScmException( "Unsupported method for this provider." ); } +@Deprecated +protected ChangeLogScmResult executeChangeLogCommand( ScmProviderRepository repository, ScmFileSet fileSet, + ScmVersion version, String datePattern ) +throws ScmException +{ +throw new ScmException( "Unsupported method for this provider." ); +} + /** * {@inheritDoc} */ @@ -76,13 +84,21 @@ public ScmResult executeCommand( ScmProviderRepository repository, ScmFileSet fi ScmBranch branch = (ScmBranch) parameters.getScmVersion( CommandParameter.BRANCH, null ); +ScmVersion version = parameters.getScmVersion( CommandParameter.SCM_VERSION, null ); + ScmVersion startVersion = parameters.getScmVersion( CommandParameter.START_SCM_VERSION, null ); ScmVersion endVersion = parameters.getScmVersion( CommandParameter.END_SCM_VERSION, null ); String datePattern = parameters.getString( CommandParameter.CHANGELOG_DATE_PATTERN, null ); -if ( startVersion != null || endVersion != null ) +boolean uniqueUsageOfVersion = startVersion == null && endVersion == null && version != null; + +if ( uniqueUsageOfVersion ) +{ +return executeChangeLogCommand( repository, fileSet, version, datePattern ); +} +else if ( startVersion != null || endVersion != null ) { return executeChangeLogCommand( repository, fileSet, startVersion, endVersion, datePattern ); } diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/command/changelog/ChangeLogScmRequest.java b/maven-scm-api/src/main/java/org/apache/maven/scm/command/changelog/ChangeLogScmRequest.java index f96c12603..f8723c1c2 100644 --- a/maven-scm-api/src/main/java/org/apache/maven/scm/command/changelog/ChangeLogScmRequest.java +++ b/maven-scm-api/src/main/java/org/apache/maven/scm/command/changelog/ChangeLogScmRequest.java @@ -175,4 +175,15 @@ public void setDateRange( Date startDate, Date endDate ) setEndDate( endDate ); } +public void setRevision( ScmVersion revision ) +throws ScmException +{ +parameters.setScmVersion( CommandParameter.SCM_VERSION, revision ); +} + +public ScmVersion getRevision() +throws ScmException +{ +return parameters.getScmVersion( CommandParameter.SCM_VERSION, null ); +} } diff --git a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/changelog/GitChangeLogCommand.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/changelog/GitChangeLogCommand.java index 2145eeb83..50b8df861 100644 --- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/changelog/GitChangeLogCommand.java +++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/changelog/GitChangeLogCommand.java @@ -69,6 +69,14 @@ protected ChangeLogScmResult executeChangeLogCommand( ScmProviderRepository repo
[GitHub] asfgit closed pull request #72: [SCM-885] second implementation with new API
asfgit closed pull request #72: [SCM-885] second implementation with new API URL: https://github.com/apache/maven-scm/pull/72 This is a PR merged from a forked repository. As GitHub hides the original diff on merge, it is displayed below for the sake of provenance: As this is a foreign pull request (from a fork), the diff is supplied below (as it won't show otherwise due to GitHub magic): diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/CommandParameter.java b/maven-scm-api/src/main/java/org/apache/maven/scm/CommandParameter.java index c8edd3541..3d695ef4f 100644 --- a/maven-scm-api/src/main/java/org/apache/maven/scm/CommandParameter.java +++ b/maven-scm-api/src/main/java/org/apache/maven/scm/CommandParameter.java @@ -50,6 +50,8 @@ public static final CommandParameter BRANCH = new CommandParameter( "branch" ); +public static final CommandParameter FROM_START_OF_REPOSITORY = new CommandParameter( "fromStartOfRepository" ); + public static final CommandParameter START_SCM_VERSION = new CommandParameter( "startScmVersion" ); public static final CommandParameter END_SCM_VERSION = new CommandParameter( "endScmVersion" ); diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/command/changelog/AbstractChangeLogCommand.java b/maven-scm-api/src/main/java/org/apache/maven/scm/command/changelog/AbstractChangeLogCommand.java index b8473ab0b..b808900f0 100644 --- a/maven-scm-api/src/main/java/org/apache/maven/scm/command/changelog/AbstractChangeLogCommand.java +++ b/maven-scm-api/src/main/java/org/apache/maven/scm/command/changelog/AbstractChangeLogCommand.java @@ -55,6 +55,14 @@ protected ChangeLogScmResult executeChangeLogCommand( ScmProviderRepository repo throw new ScmException( "Unsupported method for this provider." ); } +protected ChangeLogScmResult executeChangeLogCommand( ScmProviderRepository repository, ScmFileSet fileSet, + ScmVersion endVersion, + String datePattern, boolean fromStartOfRepository ) +throws ScmException +{ +throw new ScmException( "Unsupported method for this provider." ); +} + /** * {@inheritDoc} */ @@ -82,9 +90,18 @@ public ScmResult executeCommand( ScmProviderRepository repository, ScmFileSet fi String datePattern = parameters.getString( CommandParameter.CHANGELOG_DATE_PATTERN, null ); +boolean fromStartOfRepository = parameters.getBoolean( CommandParameter.FROM_START_OF_REPOSITORY, false ); + if ( startVersion != null || endVersion != null ) { -return executeChangeLogCommand( repository, fileSet, startVersion, endVersion, datePattern ); +if ( startVersion == null && fromStartOfRepository ) +{ +return executeChangeLogCommand( repository, fileSet, endVersion, datePattern, fromStartOfRepository ); +} +else +{ +return executeChangeLogCommand( repository, fileSet, startVersion, endVersion, datePattern ); +} } else { diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/command/changelog/ChangeLogScmRequest.java b/maven-scm-api/src/main/java/org/apache/maven/scm/command/changelog/ChangeLogScmRequest.java index f96c12603..0fe6305f5 100644 --- a/maven-scm-api/src/main/java/org/apache/maven/scm/command/changelog/ChangeLogScmRequest.java +++ b/maven-scm-api/src/main/java/org/apache/maven/scm/command/changelog/ChangeLogScmRequest.java @@ -130,6 +130,18 @@ public void setEndRevision( ScmVersion endRevision ) parameters.setScmVersion( CommandParameter.END_SCM_VERSION, endRevision ); } +public boolean isFromStartOfRepository() +throws ScmException +{ +return parameters.getBoolean( CommandParameter.FROM_START_OF_REPOSITORY, false ); +} + +public void setFromStartOfRepository() +throws ScmException +{ +parameters.setString( CommandParameter.FROM_START_OF_REPOSITORY, Boolean.TRUE.toString() ); +} + public String getDatePattern() throws ScmException { diff --git a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/changelog/GitChangeLogCommand.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/changelog/GitChangeLogCommand.java index 2145eeb83..41211df79 100644 --- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/changelog/GitChangeLogCommand.java +++
[GitHub] asfgit closed pull request #70: [SCM-885] allow to use only endVersion in GitChangeLogCommand
asfgit closed pull request #70: [SCM-885] allow to use only endVersion in GitChangeLogCommand URL: https://github.com/apache/maven-scm/pull/70 This is a PR merged from a forked repository. As GitHub hides the original diff on merge, it is displayed below for the sake of provenance: As this is a foreign pull request (from a fork), the diff is supplied below (as it won't show otherwise due to GitHub magic): diff --git a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/changelog/GitChangeLogCommand.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/changelog/GitChangeLogCommand.java index 2145eeb83..7aab4e89f 100644 --- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/changelog/GitChangeLogCommand.java +++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/changelog/GitChangeLogCommand.java @@ -170,10 +170,10 @@ static Commandline createCommandLine( GitScmProviderRepository repository, File if ( startVersion != null ) { versionRange.append( StringUtils.escape( startVersion.getName() ) ); + // range separator needed only if a lower bound revision is set +versionRange.append( ".." ); } -versionRange.append( ".." ); - if ( endVersion != null ) { versionRange.append( StringUtils.escape( endVersion.getName() ) ); diff --git a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/changelog/GitChangeLogCommandTest.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/changelog/GitChangeLogCommandTest.java index ecc6086fa..f498c5d13 100644 --- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/changelog/GitChangeLogCommandTest.java +++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/changelog/GitChangeLogCommandTest.java @@ -151,6 +151,14 @@ public void testCommandLineWithStartVersionAndEndVersionEquals() + " -- " + StringUtils.quoteAndEscape( workingDirectory.getPath(), '"' ) ); } +public void testCommandLineWithOnlyEndVersion() +throws Exception +{ +testCommandLine( "scm:git:http://foo.com/git;, null, null, new ScmRevision( "10" ), + "git whatchanged --date=iso 10" + + " -- " + StringUtils.quoteAndEscape( workingDirectory.getPath(), '"' ) ); +} + public void testCommandLineWithStartVersionAndEndVersionAndBranch() throws Exception { This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[jira] [Updated] (SCM-885) Extend GitChangeLogCommand by using revision only
[ https://issues.apache.org/jira/browse/SCM-885?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Michael Osipov updated SCM-885: --- Summary: Extend GitChangeLogCommand by using revision only (was: GitChangeLogCommand is wrong when only endVersion is set) > Extend GitChangeLogCommand by using revision only > - > > Key: SCM-885 > URL: https://issues.apache.org/jira/browse/SCM-885 > Project: Maven SCM > Issue Type: Improvement > Components: maven-scm-provider-gitexe, maven-scm-provider-jgit >Affects Versions: 1.9.5 >Reporter: Matthieu Brouillard >Assignee: Michael Osipov >Priority: Major > Fix For: 1.9.6 > > Attachments: scm-885-different-behavior-exe-jgit-patch.diff > > > Invoking execution of a GitChangeLogCommand where only the end revision has > been set produces a wrong out. > +Actual result:+ > {{git whatchanged --date=iso ..END_REVISION_SHA1 -- PROJECT_PATH}} > +Expected result:+ only the end revison SHA1 is used without the two dots > {{git whatchanged --date=iso END_REVISION_SHA1 -- PROJECT_PATH}} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Updated] (SCM-885) GitChangeLogCommand is wrong when only endVersion is set
[ https://issues.apache.org/jira/browse/SCM-885?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Michael Osipov updated SCM-885: --- Component/s: maven-scm-provider-jgit > GitChangeLogCommand is wrong when only endVersion is set > > > Key: SCM-885 > URL: https://issues.apache.org/jira/browse/SCM-885 > Project: Maven SCM > Issue Type: Bug > Components: maven-scm-provider-gitexe, maven-scm-provider-jgit >Affects Versions: 1.9.5 >Reporter: Matthieu Brouillard >Assignee: Michael Osipov >Priority: Major > Fix For: 1.9.6 > > Attachments: scm-885-different-behavior-exe-jgit-patch.diff > > > Invoking execution of a GitChangeLogCommand where only the end revision has > been set produces a wrong out. > +Actual result:+ > {{git whatchanged --date=iso ..END_REVISION_SHA1 -- PROJECT_PATH}} > +Expected result:+ only the end revison SHA1 is used without the two dots > {{git whatchanged --date=iso END_REVISION_SHA1 -- PROJECT_PATH}} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Updated] (SCM-885) GitChangeLogCommand is wrong when only endVersion is set
[ https://issues.apache.org/jira/browse/SCM-885?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Michael Osipov updated SCM-885: --- Issue Type: Improvement (was: Bug) > GitChangeLogCommand is wrong when only endVersion is set > > > Key: SCM-885 > URL: https://issues.apache.org/jira/browse/SCM-885 > Project: Maven SCM > Issue Type: Improvement > Components: maven-scm-provider-gitexe, maven-scm-provider-jgit >Affects Versions: 1.9.5 >Reporter: Matthieu Brouillard >Assignee: Michael Osipov >Priority: Major > Fix For: 1.9.6 > > Attachments: scm-885-different-behavior-exe-jgit-patch.diff > > > Invoking execution of a GitChangeLogCommand where only the end revision has > been set produces a wrong out. > +Actual result:+ > {{git whatchanged --date=iso ..END_REVISION_SHA1 -- PROJECT_PATH}} > +Expected result:+ only the end revison SHA1 is used without the two dots > {{git whatchanged --date=iso END_REVISION_SHA1 -- PROJECT_PATH}} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Closed] (MJAVADOC-519) IT detectLinks fails on Windows
[ https://issues.apache.org/jira/browse/MJAVADOC-519?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Robert Scholte closed MJAVADOC-519. --- Resolution: Cannot Reproduce Assignee: Robert Scholte (was: Karl Heinz Marbaise) Fix Version/s: (was: 3.0.1) > IT detectLinks fails on Windows > --- > > Key: MJAVADOC-519 > URL: https://issues.apache.org/jira/browse/MJAVADOC-519 > Project: Maven Javadoc Plugin > Issue Type: Bug >Affects Versions: 3.0.1 >Reporter: Karl Heinz Marbaise >Assignee: Robert Scholte >Priority: Critical > Attachments: failing-javadoc-it.log > > > [Currently|https://gitbox.apache.org/repos/asf?p=maven-javadoc-plugin.git;a=commitdiff;h=e637834a1aecaaa835fe2cdcda67664156f3630d] > the following IT is failing: > {code} > [windows-jdk9] [INFO] Passed: 35, Failed: 1, Errors: 0, Skipped: 0 > [windows-jdk9] [INFO] - > [windows-jdk9] [WARNING] The following builds failed: > [windows-jdk9] [WARNING] * detectLinks\pom.xml > [windows-jdk9] [INFO] - > [windows-jdk9] [WARNING] Ignoring that 1 build failed. > [windows-jdk9] [INFO] > > [windows-jdk9] [INFO] BUILD SUCCESS > [windows-jdk9] [INFO] --- > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Comment Edited] (MNG-6415) Project Artifacts Cache does not retain the order of classpath entries.
[ https://issues.apache.org/jira/browse/MNG-6415?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16487829#comment-16487829 ] Michael Osipov edited comment on MNG-6415 at 5/23/18 6:44 PM: -- I am fine when this fix is accompanied by a documentation update + an IT. was (Author: michael-o): I am fine when this fix is accompanied by a documentation update. > Project Artifacts Cache does not retain the order of classpath entries. > --- > > Key: MNG-6415 > URL: https://issues.apache.org/jira/browse/MNG-6415 > Project: Maven > Issue Type: Bug > Components: core >Affects Versions: 3.5.2 > Environment: Windows 7, JDK8u144 >Reporter: Seckin Onur SELAMET >Priority: Major > Labels: CLASSPATH > Attachments: > [MNG-6415]_Fixes_Project_Artifact_Cache_classpath_order_retaining_issue_.patch > > > Project artifacts cache does not retain the order of classpath entries. > Wrong Object type used in implementation. HashSet can not guarantee the order > of elements. > In runtime ProjectArtifacts passed as LinkedHashSet already which is safe. > > Possible fix is provided in comments section. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (MNG-6415) Project Artifacts Cache does not retain the order of classpath entries.
[ https://issues.apache.org/jira/browse/MNG-6415?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16487829#comment-16487829 ] Michael Osipov commented on MNG-6415: - I am fine when this fix is accompanied by a documentation update. > Project Artifacts Cache does not retain the order of classpath entries. > --- > > Key: MNG-6415 > URL: https://issues.apache.org/jira/browse/MNG-6415 > Project: Maven > Issue Type: Bug > Components: core >Affects Versions: 3.5.2 > Environment: Windows 7, JDK8u144 >Reporter: Seckin Onur SELAMET >Priority: Major > Labels: CLASSPATH > Attachments: > [MNG-6415]_Fixes_Project_Artifact_Cache_classpath_order_retaining_issue_.patch > > > Project artifacts cache does not retain the order of classpath entries. > Wrong Object type used in implementation. HashSet can not guarantee the order > of elements. > In runtime ProjectArtifacts passed as LinkedHashSet already which is safe. > > Possible fix is provided in comments section. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (MNG-6415) Project Artifacts Cache does not retain the order of classpath entries.
[ https://issues.apache.org/jira/browse/MNG-6415?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16487809#comment-16487809 ] Robert Scholte commented on MNG-6415: - {quote}We have never documented this to be retained throughout.{quote} Maybe not explicit, but surely implicit. The result of a build is consistent which is possible because the order of jars stays the same. It is a known practice that if you have classpath-order issues, you can put that dependency more up in your pom. Anyway, this is how dependency resolution worked for years, we're now hit by an unintended change which can easily be fixed. Better to change the documentation than to disappoint the projects that relied on this "bug/feature". > Project Artifacts Cache does not retain the order of classpath entries. > --- > > Key: MNG-6415 > URL: https://issues.apache.org/jira/browse/MNG-6415 > Project: Maven > Issue Type: Bug > Components: core >Affects Versions: 3.5.2 > Environment: Windows 7, JDK8u144 >Reporter: Seckin Onur SELAMET >Priority: Major > Labels: CLASSPATH > Attachments: > [MNG-6415]_Fixes_Project_Artifact_Cache_classpath_order_retaining_issue_.patch > > > Project artifacts cache does not retain the order of classpath entries. > Wrong Object type used in implementation. HashSet can not guarantee the order > of elements. > In runtime ProjectArtifacts passed as LinkedHashSet already which is safe. > > Possible fix is provided in comments section. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (MPMD-263) Add documentation information for GitHub
[ https://issues.apache.org/jira/browse/MPMD-263?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16487704#comment-16487704 ] Hudson commented on MPMD-263: - Build succeeded in Jenkins: Maven TLP » maven-pmd-plugin » MPMD-263 #2 See https://builds.apache.org/job/maven-box/job/maven-pmd-plugin/job/MPMD-263/2/ > Add documentation information for GitHub > > > Key: MPMD-263 > URL: https://issues.apache.org/jira/browse/MPMD-263 > Project: Maven PMD Plugin > Issue Type: Improvement > Components: CPD, PMD >Reporter: Andreas Dangel >Assignee: Andreas Dangel >Priority: Minor > Fix For: 3.10.0 > > > Add a README.md similar to MPH-151 -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (MPMD-263) Add documentation information for GitHub
Andreas Dangel created MPMD-263: --- Summary: Add documentation information for GitHub Key: MPMD-263 URL: https://issues.apache.org/jira/browse/MPMD-263 Project: Maven PMD Plugin Issue Type: Improvement Components: CPD, PMD Reporter: Andreas Dangel Assignee: Andreas Dangel Fix For: 3.10.0 Add a README.md similar to MPH-151 -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (SCM-885) GitChangeLogCommand is wrong when only endVersion is set
[ https://issues.apache.org/jira/browse/SCM-885?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16487435#comment-16487435 ] Michael Osipov commented on SCM-885: This works for me on Windows and should be set by everyone on Windows: {noformat} core.autocrlf=true core.safecrlf=true core.eol=native {noformat} > GitChangeLogCommand is wrong when only endVersion is set > > > Key: SCM-885 > URL: https://issues.apache.org/jira/browse/SCM-885 > Project: Maven SCM > Issue Type: Bug > Components: maven-scm-provider-gitexe >Affects Versions: 1.9.5 >Reporter: Matthieu Brouillard >Assignee: Michael Osipov >Priority: Major > Fix For: 1.9.6 > > Attachments: scm-885-different-behavior-exe-jgit-patch.diff > > > Invoking execution of a GitChangeLogCommand where only the end revision has > been set produces a wrong out. > +Actual result:+ > {{git whatchanged --date=iso ..END_REVISION_SHA1 -- PROJECT_PATH}} > +Expected result:+ only the end revison SHA1 is used without the two dots > {{git whatchanged --date=iso END_REVISION_SHA1 -- PROJECT_PATH}} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (MNG-3092) Resolution of version ranges with non-snapshot bounds can resolve to a snapshot version
[ https://issues.apache.org/jira/browse/MNG-3092?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16487418#comment-16487418 ] Tim Shaw commented on MNG-3092: --- We were about to use ranges in a CI/SemanticVersioning environment. Without this 'fix' we have serious issues. Please just implement it (as per the non-implemented 2.0 spec???) > Resolution of version ranges with non-snapshot bounds can resolve to a > snapshot version > --- > > Key: MNG-3092 > URL: https://issues.apache.org/jira/browse/MNG-3092 > Project: Maven > Issue Type: Bug > Components: Dependencies >Reporter: Mark Hobson >Priority: Major > Fix For: 3.x / Backlog > > Attachments: MNG-3092.patch, MNG-3092.patch > > > Contrary to the 2.0 design docs: > "Resolution of dependency ranges should not resolve to a snapshot > (development version) unless it is included as an explicit boundary." > -- from > http://docs.codehaus.org/display/MAVEN/Dependency+Mediation+and+Conflict+Resolution#DependencyMediationandConflictResolution-Incorporating%7B%7BSNAPSHOT%7D%7Dversionsintothespecification > The following is equates to true: > VersionRange.createFromVersionSpec( "[1.0,1.1]" ).containsVersion( new > DefaultArtifactVersion( "1.1-SNAPSHOT" ) ) > The attached patch only allows snapshot versions to be contained in a range > if they are equal to one of the boundaries. Note that this is a strict > equality, so [1.0,1.2-SNAPSHOT] will not contain 1.1-SNAPSHOT. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Comment Edited] (SCM-885) GitChangeLogCommand is wrong when only endVersion is set
[ https://issues.apache.org/jira/browse/SCM-885?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16486818#comment-16486818 ] Matthieu Brouillard edited comment on SCM-885 at 5/23/18 1:11 PM: -- Hi Mickael, * regarding the `.gitattributes`, if I added both the binary and EOL for the repositories files that I added it is because: ** it happened that some files were recognized as text instead of binary ** some text files, extracted with CR+LF on my windows machine, were causing troubles and lead to unrecognized git repo. Forcing LF resolved the pb. * looks like the hooks were not that important ;) Go ahead otherwise. was (Author: mcfoggy): Hi Mickael, * regarding the `.gitattributes`, if I defined both the binary and EOL for the repositories I added it is because: ** it happened that some files were recognized as text instead of binary ** some text files, extracted with CR+LF on my windows machine, were causing troubles and lead to unrecognized git repo. Forcing LF resolved the pb. * looks like the hooks were not that important ;) Go ahead otherwise. > GitChangeLogCommand is wrong when only endVersion is set > > > Key: SCM-885 > URL: https://issues.apache.org/jira/browse/SCM-885 > Project: Maven SCM > Issue Type: Bug > Components: maven-scm-provider-gitexe >Affects Versions: 1.9.5 >Reporter: Matthieu Brouillard >Assignee: Michael Osipov >Priority: Major > Fix For: 1.9.6 > > Attachments: scm-885-different-behavior-exe-jgit-patch.diff > > > Invoking execution of a GitChangeLogCommand where only the end revision has > been set produces a wrong out. > +Actual result:+ > {{git whatchanged --date=iso ..END_REVISION_SHA1 -- PROJECT_PATH}} > +Expected result:+ only the end revison SHA1 is used without the two dots > {{git whatchanged --date=iso END_REVISION_SHA1 -- PROJECT_PATH}} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (MASSEMBLY-888) jar-with-dependencies performance can be greatly improved by using the cache
Robin Björklin created MASSEMBLY-888: Summary: jar-with-dependencies performance can be greatly improved by using the cache Key: MASSEMBLY-888 URL: https://issues.apache.org/jira/browse/MASSEMBLY-888 Project: Maven Assembly Plugin Issue Type: Improvement Affects Versions: 3.1.0 Reporter: Robin Björklin Plexus-io disabled use of URLConnection cache back in 2016 (see external issue link) which has a very noticeable performance impact when building a jar-with-dependencies and one or more of the dependencies are fairly large such as eclipse-collections. If this could be made configurable it would be great as we're seeing build times drop from ~2 minutes to ~20 seconds on single module builds. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Comment Edited] (MNG-6311) Maven intolerably slow when import scope used heavily in large project
[ https://issues.apache.org/jira/browse/MNG-6311?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16487007#comment-16487007 ] Thomas Nikolay edited comment on MNG-6311 at 5/23/18 10:07 AM: --- Our Company runs in the same problem with very large POM structures and imports. This is currently a blocker to migrate from 3.3.9 to 3.5.X. The same POM with JDK 1.8.0_112 * with MVN 3.3.9 duration = 6 seconds * with MVN 3.5.2 duration = 107 seconds I analysed with Yourkit [^Call-tree-–-All-threads-together.html] was (Author: tnikolay): Our Company runs in the same problem with very large POM structures and imports. This is currently a blocker to migrate from 3.3.9 to 3.5.X. I analysed with Yourkit [^Call-tree-–-All-threads-together.html] > Maven intolerably slow when import scope used heavily in large project > -- > > Key: MNG-6311 > URL: https://issues.apache.org/jira/browse/MNG-6311 > Project: Maven > Issue Type: Bug > Components: core, Performance >Affects Versions: 3.5.0, 3.5.2 >Reporter: David Churcher >Priority: Major > Labels: performance > Attachments: Call-tree-–-All-threads-together.html, > anon-hierarchy-maven-output.zip, modelcachefix.diff > > > I have a build performance problem that is identical to MNG-5312, and has > appeared since MNG-6030 in Maven v3.5.0 reversed the patch for MNG-5312, > removing the ModelCache from some of the overloads for > DefaultProjectBuilder.build. > As in MNG-5312 the problem is in a large proprietary project. It uses up to 8 > levels of parent POMs, many of which use the import scope and have large > dependency-management sections, and has hundreds of dependencies that also > use the same parent POM hierarchy. Adding some logging shows that Maven does > over 800,000 uncached reads of parent POM files, which takes about half an > hour. With model caching this goes down to a few seconds. > I've attached a patch that fixes this by using a class-level ModelCache in > DefaultProjectBuilder. This does not suffer from the memory usage problems > reported in MNG-6030. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (MNG-6311) Maven intolerably slow when import scope used heavily in large project
[ https://issues.apache.org/jira/browse/MNG-6311?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16487007#comment-16487007 ] Thomas Nikolay commented on MNG-6311: - Our Company runs in the same problem with very large POM structures and imports. This is currently a blocker to migrate from 3.3.9 to 3.5.X. I analysed with Yourkit [^Call-tree-–-All-threads-together.html] > Maven intolerably slow when import scope used heavily in large project > -- > > Key: MNG-6311 > URL: https://issues.apache.org/jira/browse/MNG-6311 > Project: Maven > Issue Type: Bug > Components: core, Performance >Affects Versions: 3.5.0, 3.5.2 >Reporter: David Churcher >Priority: Major > Labels: performance > Attachments: Call-tree-–-All-threads-together.html, > anon-hierarchy-maven-output.zip, modelcachefix.diff > > > I have a build performance problem that is identical to MNG-5312, and has > appeared since MNG-6030 in Maven v3.5.0 reversed the patch for MNG-5312, > removing the ModelCache from some of the overloads for > DefaultProjectBuilder.build. > As in MNG-5312 the problem is in a large proprietary project. It uses up to 8 > levels of parent POMs, many of which use the import scope and have large > dependency-management sections, and has hundreds of dependencies that also > use the same parent POM hierarchy. Adding some logging shows that Maven does > over 800,000 uncached reads of parent POM files, which takes about half an > hour. With model caching this goes down to a few seconds. > I've attached a patch that fixes this by using a class-level ModelCache in > DefaultProjectBuilder. This does not suffer from the memory usage problems > reported in MNG-6030. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Updated] (MNG-6311) Maven intolerably slow when import scope used heavily in large project
[ https://issues.apache.org/jira/browse/MNG-6311?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Thomas Nikolay updated MNG-6311: Attachment: Call-tree-–-All-threads-together.html > Maven intolerably slow when import scope used heavily in large project > -- > > Key: MNG-6311 > URL: https://issues.apache.org/jira/browse/MNG-6311 > Project: Maven > Issue Type: Bug > Components: core, Performance >Affects Versions: 3.5.0, 3.5.2 >Reporter: David Churcher >Priority: Major > Labels: performance > Attachments: Call-tree-–-All-threads-together.html, > anon-hierarchy-maven-output.zip, modelcachefix.diff > > > I have a build performance problem that is identical to MNG-5312, and has > appeared since MNG-6030 in Maven v3.5.0 reversed the patch for MNG-5312, > removing the ModelCache from some of the overloads for > DefaultProjectBuilder.build. > As in MNG-5312 the problem is in a large proprietary project. It uses up to 8 > levels of parent POMs, many of which use the import scope and have large > dependency-management sections, and has hundreds of dependencies that also > use the same parent POM hierarchy. Adding some logging shows that Maven does > over 800,000 uncached reads of parent POM files, which takes about half an > hour. With model caching this goes down to a few seconds. > I've attached a patch that fixes this by using a class-level ModelCache in > DefaultProjectBuilder. This does not suffer from the memory usage problems > reported in MNG-6030. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Comment Edited] (MNG-6415) Project Artifacts Cache does not retain the order of classpath entries.
[ https://issues.apache.org/jira/browse/MNG-6415?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16486809#comment-16486809 ] Rene Vrijsen edited comment on MNG-6415 at 5/23/18 8:48 AM: {quote}Can you provide a minimal project depicting your issue? {quote} See: MDEP-609 (Seckin Onur, Ahmed and myself work on this same problem for our company :)) was (Author: devrem): {quote}Can you provide a minimal project depicting your issue? {quote} See: MDEP-609 > Project Artifacts Cache does not retain the order of classpath entries. > --- > > Key: MNG-6415 > URL: https://issues.apache.org/jira/browse/MNG-6415 > Project: Maven > Issue Type: Bug > Components: core >Affects Versions: 3.5.2 > Environment: Windows 7, JDK8u144 >Reporter: Seckin Onur SELAMET >Priority: Major > Labels: CLASSPATH > Attachments: > [MNG-6415]_Fixes_Project_Artifact_Cache_classpath_order_retaining_issue_.patch > > > Project artifacts cache does not retain the order of classpath entries. > Wrong Object type used in implementation. HashSet can not guarantee the order > of elements. > In runtime ProjectArtifacts passed as LinkedHashSet already which is safe. > > Possible fix is provided in comments section. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (MRRESOURCES-106) ProcessRemoteResourcesMojo#getProjects() can end up consuming a lot of memory for big projects
Thomas Mortagne created MRRESOURCES-106: --- Summary: ProcessRemoteResourcesMojo#getProjects() can end up consuming a lot of memory for big projects Key: MRRESOURCES-106 URL: https://issues.apache.org/jira/browse/MRRESOURCES-106 Project: Maven Remote Resources Plugin Issue Type: Bug Affects Versions: 1.5 Reporter: Thomas Mortagne At XWiki we are using the remote resource plugin to generate a NOTICE files we put in the META-INF of all jars. The file can be found on https://github.com/xwiki/xwiki-commons/blob/master/xwiki-commons-tools/xwiki-commons-tool-license-resources/src/main/resources/META-INF/NOTICE.vm. We have a lot of memory issues and we kept increasing the max memory but it was starting to be a bit insane (we now get a OOM with -Xmx2500m) so I finally took a profiler to try to figure out where all this memory goes. We did noticed for a while that remote resource plugin is taking longer and longer to execute during the build so I had my doubts already. What Yourkit is telling me is that almost half of the memory (400MB here because I reduced the max memory for it to fail earlier) is retained by an ArrayList of MavenProject instances located in ProcessRemoteResourcesMojo#getProjects(). It can be reproduced by building https://github.com/xwiki/xwiki-platform (you will need to add some repositories in your settings.xml, you can find them on http://dev.xwiki.org/xwiki/bin/view/Community/Building/#HInstallingMaven). Also I can probably put the memory dump I have somewhere if someone wants to download it. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (SCM-885) GitChangeLogCommand is wrong when only endVersion is set
[ https://issues.apache.org/jira/browse/SCM-885?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16486818#comment-16486818 ] Matthieu Brouillard commented on SCM-885: - Hi Mickael, * regarding the `.gitattributes`, if I defined both the binary and EOL for the repositories I added it is because: ** it happened that some files were recognized as text instead of binary ** some text files, extracted with CR+LF on my windows machine, were causing troubles and lead to unrecognized git repo. Forcing LF resolved the pb. * looks like the hooks were not that important ;) Go ahead otherwise. > GitChangeLogCommand is wrong when only endVersion is set > > > Key: SCM-885 > URL: https://issues.apache.org/jira/browse/SCM-885 > Project: Maven SCM > Issue Type: Bug > Components: maven-scm-provider-gitexe >Affects Versions: 1.9.5 >Reporter: Matthieu Brouillard >Assignee: Michael Osipov >Priority: Major > Fix For: 1.9.6 > > Attachments: scm-885-different-behavior-exe-jgit-patch.diff > > > Invoking execution of a GitChangeLogCommand where only the end revision has > been set produces a wrong out. > +Actual result:+ > {{git whatchanged --date=iso ..END_REVISION_SHA1 -- PROJECT_PATH}} > +Expected result:+ only the end revison SHA1 is used without the two dots > {{git whatchanged --date=iso END_REVISION_SHA1 -- PROJECT_PATH}} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (MNG-6415) Project Artifacts Cache does not retain the order of classpath entries.
[ https://issues.apache.org/jira/browse/MNG-6415?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16486809#comment-16486809 ] Rene Vrijsen commented on MNG-6415: --- {quote}Can you provide a minimal project depicting your issue? {quote} See: MDEP-609 > Project Artifacts Cache does not retain the order of classpath entries. > --- > > Key: MNG-6415 > URL: https://issues.apache.org/jira/browse/MNG-6415 > Project: Maven > Issue Type: Bug > Components: core >Affects Versions: 3.5.2 > Environment: Windows 7, JDK8u144 >Reporter: Seckin Onur SELAMET >Priority: Major > Labels: CLASSPATH > Attachments: > [MNG-6415]_Fixes_Project_Artifact_Cache_classpath_order_retaining_issue_.patch > > > Project artifacts cache does not retain the order of classpath entries. > Wrong Object type used in implementation. HashSet can not guarantee the order > of elements. > In runtime ProjectArtifacts passed as LinkedHashSet already which is safe. > > Possible fix is provided in comments section. -- This message was sent by Atlassian JIRA (v7.6.3#76005)