Hi, I have made the required changes to gitexe implementation and corresponding test case and also tested it with my scenario and it works fine. Please have a look at it and let me know what you think.
Best regards, Imran On Tue, Mar 31, 2009 at 3:39 PM, Imran M Yousuf <imyou...@gmail.com> wrote: > On Tue, Mar 31, 2009 at 2:57 PM, Mark Struberg <strub...@yahoo.de> wrote: >> >> Hi Imran! >> >> I recently changed the command back from git-log to git-whatchanged because >> I originally programmed the output consumer to fit git-whatchanged. Don't >> know anymore when we did this, but the git-log output hasn't been parseable >> with the GitLogConsumer for a while :( >> >> From the man git-whatchanged (git-1.6.0.6) --since should be supported: >>> git whatchanged --since="2 weeks ago" -- gitk >> > > Right, this is an example in the man pages, but as I said --since > expects date or date like expressions (probably) but not tags or > revision sha1. I have tried it several times unfortunately and that > also with both 1.5.6 and 1.6.2.1. > > Please let me know what you think about the changes I sent you, > because I believe they will solve the issue. > > Thank you, > > Imran > >> If you look at the git code it should take the --since and --until! >> This is also backed up with the comment in the man page: >>> The command internally invokes git-rev-list piped to >>> git-diff-tree, and takes command line options for both >>> of these commands. >> >> So imho --since and --until should work. >> >> Can you please try the git-whatchanged on the commandline again and play >> with the since date to see if the output changes? - txs! >> >> But maybe we trapped another error the code suffers from! >> >> LieGrue, >> strub >> >> >> --- Imran M Yousuf <imyou...@gmail.com> schrieb am Di, 31.3.2009: >> >>> Von: Imran M Yousuf <imyou...@gmail.com> >>> Betreff: A probable bug in git scm provider for maven-scm-plugin >>> An: scm-dev@maven.apache.org >>> CC: strub...@yahoo.de >>> Datum: Dienstag, 31. März 2009, 6:17 >>> Hi, >>> >>> When I use the <type>tag</type> in changelog >>> configuration (its at the >>> end of the email), it uses the following query for >>> generating the >>> changeset - >>> >>> git whatchanged --since=0.3 --until=HEAD --date=iso >>> >>> While 'git help whatchanged' says nothing about '--since' >>> but the 'git >>> help log' says that '--since' is to be a date, thus IMHO, >>> the >>> implementation should have been something like - >>> >>> git whatchanged 0.3...HEAD --date=iso >>> >>> I also checked the source code of the changelog and it is >>> using the >>> following method- >>> >>> changeLog(ScmRepository repository, ScmFileSet fileSet, >>> ScmVersion >>> startVersion, ScmVersion endVersion) >>> http://maven.apache.org/scm/projects/apidocs/org/apache/maven/scm/provider/ScmProvider.html#changeLog(org.apache.maven.scm.repository.ScmRepository,%20org.apache.maven.scm.ScmFileSet,%20org.apache.maven.scm.ScmVersion,%20org.apache.maven.scm.ScmVersion) >>> >>> Which IMHO, is the correct one to use. I will try to check >>> the gitexe >>> code today to see whether I can fix it or not. Please let >>> me know what >>> you think about the problem. >>> >>> Thank you, >>> >>> -- >>> Imran M Yousuf >>> Entrepreneur & Software Engineer >>> Smart IT Engineering >>> Dhaka, Bangladesh >>> Email: im...@smartitengineering.com >>> Blog: http://imyousuf-tech.blogs.smartitengineering.com/ >>> Mobile: +880-1711402557 >>> >> >> >> >> > > > > -- > Imran M Yousuf > Entrepreneur & Software Engineer > Smart IT Engineering > Dhaka, Bangladesh > Email: im...@smartitengineering.com > Blog: http://imyousuf-tech.blogs.smartitengineering.com/ > Mobile: +880-1711402557 > -- Imran M Yousuf Entrepreneur & Software Engineer Smart IT Engineering Dhaka, Bangladesh Email: im...@smartitengineering.com Blog: http://imyousuf-tech.blogs.smartitengineering.com/ Mobile: +880-1711402557
# This patch file was generated by NetBeans IDE # Following Index: paths are relative to: /home/imyousuf/projects/maven-scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe # This patch can be applied using context Tools: Patch action on respective folder. # It uses platform neutral UTF-8 encoding and \n newlines. # Above lines and this line are ignored by the patching process. Index: src/main/java/org/apache/maven/scm/provider/git/gitexe/command/changelog/GitChangeLogCommand.java --- src/main/java/org/apache/maven/scm/provider/git/gitexe/command/changelog/GitChangeLogCommand.java Base (BASE) +++ src/main/java/org/apache/maven/scm/provider/git/gitexe/command/changelog/GitChangeLogCommand.java Locally Modified (Based On LOCAL) @@ -110,30 +110,32 @@ Commandline cl = GitCommandLineUtils.getBaseGitCommandLine( workingDirectory, "whatchanged" ); - if ( startVersion != null ) + if ( startVersion != null || endVersion != null ) { - cl.createArg().setValue( "--since=" + StringUtils.escape( startVersion.getName() ) ); + StringBuilder builder = new StringBuilder(); + if ( startVersion != null ) { + builder.append(startVersion.getName()); + builder.append("..."); } + if ( endVersion != null ) + { + builder.append(endVersion.getName()); + } + cl.createArg().setValue( StringUtils.escape( builder.toString() ) ); + } else { if ( startDate != null ) { cl.createArg().setValue( "--since=" + StringUtils.escape( dateFormat.format( startDate ) ) ); } - } - - if ( endVersion != null ) - { - cl.createArg().setValue( "--until=" + StringUtils.escape( endVersion.getName() ) ); - } - else - { if ( endDate != null ) { cl.createArg().setValue( "--until=" + StringUtils.escape( dateFormat.format( endDate ) ) ); } } + cl.createArg().setValue( "--date=iso" ); return cl; Index: src/test/java/org/apache/maven/scm/provider/git/gitexe/command/changelog/GitChangeLogCommandTest.java --- src/test/java/org/apache/maven/scm/provider/git/gitexe/command/changelog/GitChangeLogCommandTest.java Base (BASE) +++ src/test/java/org/apache/maven/scm/provider/git/gitexe/command/changelog/GitChangeLogCommandTest.java Locally Modified (Based On LOCAL) @@ -93,21 +93,21 @@ public void testCommandLineWithStartVersion() throws Exception { - testCommandLine( "scm:git:http://foo.com/git", new ScmRevision( "1" ), null, "git whatchanged --since=1 --date=iso" ); + testCommandLine( "scm:git:http://foo.com/git", new ScmRevision( "1" ), null, "git whatchanged 1... --date=iso" ); } public void testCommandLineWithStartVersionAndEndVersion() throws Exception { testCommandLine( "scm:git:http://foo.com/git", new ScmRevision( "1" ), new ScmRevision( "10" ), - "git whatchanged --since=1 --until=10 --date=iso" ); + "git whatchanged 1...10 --date=iso" ); } public void testCommandLineWithStartVersionAndEndVersionEquals() throws Exception { testCommandLine( "scm:git:http://foo.com/git", new ScmRevision( "1" ), new ScmRevision( "1" ), - "git whatchanged --since=1 --until=1 --date=iso" ); + "git whatchanged 1...1 --date=iso" ); } // ----------------------------------------------------------------------