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" );
     }
 
     // ----------------------------------------------------------------------

Reply via email to