You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm-commits@maven.apache.org by br...@apache.org on 2005/01/12 12:56:53 UTC

cvs commit: maven-scm/maven-scm-providers/maven-scm-provider-cvs/src/test/java/org/apache/maven/scm/provider/cvslib/command/diff CvsDiffCommand.java CvsDiffConsumer.java

brett       2005/01/12 03:56:52

  Modified:    maven-scm-providers/maven-scm-provider-svn/src/main/java/org/apache/maven/scm/provider/svn/command/diff
                        SvnDiffCommand.java SvnDiffConsumer.java
               maven-scm-api/src/main/java/org/apache/maven/scm/command/diff
                        DiffScmResult.java
               maven-scm-providers/maven-scm-provider-cvs/src/test/java/org/apache/maven/scm/provider/cvslib/command/diff
                        CvsDiffCommand.java CvsDiffConsumer.java
  Log:
  generate a full patch as well
  
  Revision  Changes    Path
  1.3       +8 -5      maven-scm/maven-scm-providers/maven-scm-provider-svn/src/main/java/org/apache/maven/scm/provider/svn/command/diff/SvnDiffCommand.java
  
  Index: SvnDiffCommand.java
  ===================================================================
  RCS file: /home/cvs/maven-scm/maven-scm-providers/maven-scm-provider-svn/src/main/java/org/apache/maven/scm/provider/svn/command/diff/SvnDiffCommand.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- SvnDiffCommand.java	12 Jan 2005 10:30:53 -0000	1.2
  +++ SvnDiffCommand.java	12 Jan 2005 11:56:52 -0000	1.3
  @@ -37,10 +37,12 @@
       extends AbstractDiffCommand
       implements SvnCommand
   {
  -    protected DiffScmResult executeDiffCommand( ScmProviderRepository repo, ScmFileSet fileSet, String startRevision, String endRevision )
  +    protected DiffScmResult executeDiffCommand( ScmProviderRepository repo, ScmFileSet fileSet, String startRevision,
  +                                                String endRevision )
           throws ScmException
       {
  -        Commandline cl = createCommandLine( (SvnScmProviderRepository) repo, fileSet.getBasedir(), startRevision, endRevision );
  +        Commandline cl = createCommandLine( (SvnScmProviderRepository) repo, fileSet.getBasedir(), startRevision,
  +                                            endRevision );
   
           SvnDiffConsumer consumer = new SvnDiffConsumer( getLogger(), fileSet.getBasedir() );
   
  @@ -65,14 +67,15 @@
               return new DiffScmResult( "The svn command failed.", stderr.getOutput(), false );
           }
   
  -        return new DiffScmResult( consumer.getChangedFiles(), consumer.getDifferences() );
  +        return new DiffScmResult( consumer.getChangedFiles(), consumer.getDifferences(), consumer.getPatch() );
       }
   
       // ----------------------------------------------------------------------
       //
       // ----------------------------------------------------------------------
   
  -    public static Commandline createCommandLine( SvnScmProviderRepository repository, File workingDirectory, String startRevision, String endRevision )
  +    public static Commandline createCommandLine( SvnScmProviderRepository repository, File workingDirectory,
  +                                                 String startRevision, String endRevision )
       {
           Commandline cl = new Commandline();
   
  
  
  
  1.4       +19 -2     maven-scm/maven-scm-providers/maven-scm-provider-svn/src/main/java/org/apache/maven/scm/provider/svn/command/diff/SvnDiffConsumer.java
  
  Index: SvnDiffConsumer.java
  ===================================================================
  RCS file: /home/cvs/maven-scm/maven-scm-providers/maven-scm-provider-svn/src/main/java/org/apache/maven/scm/provider/svn/command/diff/SvnDiffConsumer.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- SvnDiffConsumer.java	12 Jan 2005 11:16:59 -0000	1.3
  +++ SvnDiffConsumer.java	12 Jan 2005 11:56:52 -0000	1.4
  @@ -31,7 +31,8 @@
    * @author <a href="mailto:brett@apache.org">Brett Porter</a>
    * @version $Id$
    */
  -public class SvnDiffConsumer implements StreamConsumer
  +public class SvnDiffConsumer
  +    implements StreamConsumer
   {
   //
   // Index: plugin.jelly
  @@ -74,6 +75,8 @@
   
       private Map differences = new HashMap();
   
  +    private StringBuffer patch = new StringBuffer();
  +
       // ----------------------------------------------------------------------
       //
       // ----------------------------------------------------------------------
  @@ -102,26 +105,32 @@
   
               differences.put( currentFile, currentDifference );
   
  +            patch.append( line ).append( "\n" );
  +
               return;
           }
   
           if ( currentFile == null )
           {
               logger.warn( "Unparseable line: '" + line + "'" );
  +            patch.append( line ).append( "\n" );
               return;
           }
   
           if ( line.startsWith( FILE_SEPARATOR_TOKEN ) )
           {
               // skip
  +            patch.append( line ).append( "\n" );
           }
           else if ( line.startsWith( START_REVISION_TOKEN ) )
           {
               // skip, though could parse to verify filename, start revision
  +            patch.append( line ).append( "\n" );
           }
           else if ( line.startsWith( END_REVISION_TOKEN ) )
           {
               // skip, though could parse to verify filename, end revision
  +            patch.append( line ).append( "\n" );
           }
           else if ( line.startsWith( ADDED_LINE_TOKEN ) || line.startsWith( REMOVED_LINE_TOKEN ) ||
               line.startsWith( UNCHANGED_LINE_TOKEN ) || line.startsWith( CHANGE_SEPARATOR_TOKEN ) ||
  @@ -129,12 +138,14 @@
           {
               // add to buffer
               currentDifference.append( line ).append( "\n" );
  +            patch.append( line ).append( "\n" );
           }
           else
           {
               // TODO: handle property differences
   
               logger.warn( "Unparseable line: '" + line + "'" );
  +            patch.append( line ).append( "\n" );
               // skip to next file
               currentFile = null;
               currentDifference = null;
  @@ -150,4 +161,10 @@
       {
           return differences;
       }
  +
  +    public String getPatch()
  +    {
  +        return patch.toString();
  +    }
  +
   }
  
  
  
  1.3       +11 -5     maven-scm/maven-scm-api/src/main/java/org/apache/maven/scm/command/diff/DiffScmResult.java
  
  Index: DiffScmResult.java
  ===================================================================
  RCS file: /home/cvs/maven-scm/maven-scm-api/src/main/java/org/apache/maven/scm/command/diff/DiffScmResult.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- DiffScmResult.java	12 Jan 2005 10:30:53 -0000	1.2
  +++ DiffScmResult.java	12 Jan 2005 11:56:52 -0000	1.3
  @@ -22,8 +22,6 @@
   import java.util.Map;
   
   /**
  - * @todo allow different formats, currently assumes unified diff, include new files
  - * @todo probably need to parse command output into individual diffs instead
    * @author <a href="mailto:brett@apache.org">Brett Porter</a>
    * @version $Id$
    */
  @@ -34,11 +32,14 @@
   
       private Map differences;
   
  -    public DiffScmResult( List changedFiles, Map differences )
  +    private String patch;
  +
  +    public DiffScmResult( List changedFiles, Map differences, String patch )
       {
  -        super();
  +        this( null, null, true );
           this.changedFiles = changedFiles;
           this.differences = differences;
  +        this.patch = patch;
       }
   
       public DiffScmResult( String providerMessage, String commandOutput, boolean success )
  @@ -54,5 +55,10 @@
       public Map getDifferences()
       {
           return differences;
  +    }
  +
  +    public String getPatch()
  +    {
  +        return patch;
       }
   }
  
  
  
  1.2       +5 -3      maven-scm/maven-scm-providers/maven-scm-provider-cvs/src/test/java/org/apache/maven/scm/provider/cvslib/command/diff/CvsDiffCommand.java
  
  Index: CvsDiffCommand.java
  ===================================================================
  RCS file: /home/cvs/maven-scm/maven-scm-providers/maven-scm-provider-cvs/src/test/java/org/apache/maven/scm/provider/cvslib/command/diff/CvsDiffCommand.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- CvsDiffCommand.java	12 Jan 2005 11:17:00 -0000	1.1
  +++ CvsDiffCommand.java	12 Jan 2005 11:56:52 -0000	1.2
  @@ -32,7 +32,9 @@
    * @author <a href="mailto:brett@apache.org">Brett Porter</a>
    * @version $Id$
    */
  -public class CvsDiffCommand extends AbstractDiffCommand implements CvsCommand
  +public class CvsDiffCommand
  +    extends AbstractDiffCommand
  +    implements CvsCommand
   {
       protected DiffScmResult executeDiffCommand( ScmProviderRepository repo, ScmFileSet fileSet, String startRevision,
                                                   String endRevision )
  @@ -64,7 +66,7 @@
   //            return new DiffScmResult( "The cvs command failed.", stderr.getOutput(), false );
   //        }
   
  -        return new DiffScmResult( consumer.getChangedFiles(), consumer.getDifferences() );
  +        return new DiffScmResult( consumer.getChangedFiles(), consumer.getDifferences(), consumer.getPatch() );
       }
   
       // ----------------------------------------------------------------------
  
  
  
  1.2       +19 -2     maven-scm/maven-scm-providers/maven-scm-provider-cvs/src/test/java/org/apache/maven/scm/provider/cvslib/command/diff/CvsDiffConsumer.java
  
  Index: CvsDiffConsumer.java
  ===================================================================
  RCS file: /home/cvs/maven-scm/maven-scm-providers/maven-scm-provider-cvs/src/test/java/org/apache/maven/scm/provider/cvslib/command/diff/CvsDiffConsumer.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- CvsDiffConsumer.java	12 Jan 2005 11:17:00 -0000	1.1
  +++ CvsDiffConsumer.java	12 Jan 2005 11:56:52 -0000	1.2
  @@ -32,7 +32,8 @@
    * @version $Id$
    * @todo share with SVN (3 extra lines can be ignored)
    */
  -public class CvsDiffConsumer implements StreamConsumer
  +public class CvsDiffConsumer
  +    implements StreamConsumer
   {
   //
   // Index: plugin.jelly
  @@ -80,6 +81,8 @@
   
       private Map differences = new HashMap();
   
  +    private StringBuffer patch = new StringBuffer();
  +
       // ----------------------------------------------------------------------
       //
       // ----------------------------------------------------------------------
  @@ -108,26 +111,32 @@
   
               differences.put( currentFile, currentDifference );
   
  +            patch.append( line ).append( "\n" );
  +
               return;
           }
   
           if ( currentFile == null )
           {
               logger.warn( "Unparseable line: '" + line + "'" );
  +            patch.append( line ).append( "\n" );
               return;
           }
   
           if ( line.startsWith( FILE_SEPARATOR_TOKEN ) )
           {
               // skip
  +            patch.append( line ).append( "\n" );
           }
           else if ( line.startsWith( START_REVISION_TOKEN ) )
           {
               // skip, though could parse to verify filename, start revision
  +            patch.append( line ).append( "\n" );
           }
           else if ( line.startsWith( END_REVISION_TOKEN ) )
           {
               // skip, though could parse to verify filename, end revision
  +            patch.append( line ).append( "\n" );
           }
           else if ( line.startsWith( RCS_TOKEN ) )
           {
  @@ -147,10 +156,12 @@
           {
               // add to buffer
               currentDifference.append( line ).append( "\n" );
  +            patch.append( line ).append( "\n" );
           }
           else
           {
               logger.warn( "Unparseable line: '" + line + "'" );
  +            patch.append( line ).append( "\n" );
               // skip to next file
               currentFile = null;
               currentDifference = null;
  @@ -166,4 +177,10 @@
       {
           return differences;
       }
  +
  +    public String getPatch()
  +    {
  +        return patch.toString();
  +    }
  +
   }