Verifying trunk
 FAIL: File contents differ for bundles/org.eclipse.e4.tools.ui.designer/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-trunk/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-06-17 20:10:57.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-trunk/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2011-06-14 10:24:15.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.4 2010/06/18 00:10:57 yvyang Exp $
  +# $Id: plugin.properties,v 1.3 2010/05/22 20:53:49 yvyang Exp $
   
   pluginName = e4 Visual Design Editor (Incubation)
   providerName = Eclipse.org
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.categorynode/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-trunk/bundles/org.eclipse.e4.xwt.tools.categorynode/build.properties	2010-06-17 20:27:04.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-trunk/bundles/org.eclipse.e4.xwt.tools.categorynode/build.properties	2011-06-14 10:24:15.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2010/06/18 00:27:04 yvyang Exp $
  +# $Id: build.properties,v 1.1 2010/05/22 21:00:28 yvyang Exp $
   
   bin.includes = .,\
                  model/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.categorynode.edit/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-trunk/bundles/org.eclipse.e4.xwt.tools.categorynode.edit/build.properties	2010-06-17 20:27:02.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-trunk/bundles/org.eclipse.e4.xwt.tools.categorynode.edit/build.properties	2011-06-14 10:24:15.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2010/06/18 00:27:02 yvyang Exp $
  +# $Id: build.properties,v 1.1 2010/05/22 20:52:05 yvyang Exp $
   
   bin.includes = .,\
                  icons/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-trunk/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2010-06-17 20:15:49.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-trunk/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2011-06-14 10:24:15.000000000 -0400
  @@ -11,7 +11,7 @@
   package org.eclipse.e4.xwt.tools.ui.designer.policies.layout;
   
   /*
  - * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.3 $ $Date: 2010/06/18 00:15:49 $
  + * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.2 $ $Date: 2010/04/28 20:04:33 $
    */
   
   import java.util.List;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-trunk/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2010-06-17 20:15:48.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-trunk/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2011-06-14 10:24:15.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: GridSpanHandle.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:48 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:34:28 $ 
    */
   
   import org.eclipse.draw2d.ColorConstants;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-trunk/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2010-06-17 20:15:25.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-trunk/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2011-06-14 10:24:15.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.3 $  $Date: 2010/06/18 00:15:25 $ 
  + *  $Revision: 1.2 $  $Date: 2010/04/28 20:04:47 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-trunk/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2010-06-17 20:15:23.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-trunk/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2011-06-14 10:24:15.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: ImageFigure.java,v $
  - *  $Revision: 1.3 $  $Date: 2010/06/18 00:15:23 $ 
  + *  $Revision: 1.2 $  $Date: 2010/04/28 20:04:47 $ 
    */
   
   import org.eclipse.draw2d.Figure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-trunk/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2010-06-17 20:15:23.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-trunk/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2011-06-14 10:24:15.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: OutlineBorder.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:23 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
    */
   
   import org.eclipse.draw2d.*;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-trunk/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2010-06-17 20:15:23.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-trunk/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2011-06-14 10:24:15.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: IImageListener.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:23 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.images;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-trunk/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2010-06-17 20:15:22.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-trunk/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2011-06-14 10:24:15.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: FreeformXYFlowLayout.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:22 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
    */
   
   import org.eclipse.draw2d.IFigure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-trunk/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2010-06-17 20:15:22.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-trunk/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2011-06-14 10:24:15.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: XYFlowLayout.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:22 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
    */
   
   import java.util.Iterator;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-trunk/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2010-06-17 20:15:22.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-trunk/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2011-06-14 10:24:15.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: XYLayoutUtility.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:22 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.layouts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-trunk/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2010-06-17 20:15:24.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-trunk/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2011-06-14 10:24:15.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: EditPartRunnable.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:24 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.parts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-trunk/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2010-06-17 20:15:24.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-trunk/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2011-06-14 10:24:15.000000000 -0400
  @@ -9,7 +9,7 @@
    *     Soyatec - initial API and implementation
    *******************************************************************************/
   /*
  - * $RCSfile: IVisualInfo.java,v $ $Revision: 1.4 $ $Date: 2010/06/18 00:15:24 $
  + * $RCSfile: IVisualInfo.java,v $ $Revision: 1.3 $ $Date: 2009/12/11 23:32:20 $
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.visuals;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-trunk/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-12-11 17:14:10.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-trunk/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2011-06-14 10:24:15.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.2 $  $Date: 2009/12/11 22:14:10 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:37:22 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.macosx;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-trunk/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-12-22 10:40:54.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-trunk/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2011-06-14 10:24:15.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.3 $  $Date: 2009/12/22 15:40:54 $ 
  + *  $Revision: 1.2 $  $Date: 2009/12/11 22:14:10 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-trunk/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-12-22 10:40:54.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-trunk/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2011-06-14 10:24:15.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.3 $  $Date: 2009/12/22 15:40:54 $ 
  + *  $Revision: 1.2 $  $Date: 2009/12/11 22:14:10 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix.bits64;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-trunk/bundles/org.eclipse.e4.xwt.tools.ui.palette/build.properties	2010-06-17 20:15:59.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-trunk/bundles/org.eclipse.e4.xwt.tools.ui.palette/build.properties	2011-06-14 10:24:15.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2010/06/18 00:15:59 yvyang Exp $
  +# $Id: build.properties,v 1.1 2009/12/03 20:38:23 yvyang Exp $
   
   bin.includes = .,\
                  META-INF/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-trunk/bundles/org.eclipse.e4.xwt.tools.ui.palette/plugin.properties	2010-06-17 20:15:59.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-trunk/bundles/org.eclipse.e4.xwt.tools.ui.palette/plugin.properties	2011-06-14 10:24:15.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.2 2010/06/18 00:15:59 yvyang Exp $
  +# $Id: plugin.properties,v 1.1 2009/12/03 20:38:23 yvyang Exp $
   
   pluginName = Palette Model (Incubation)
   providerName = Eclipse.org
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/CompoundInitializer.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-trunk/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/CompoundInitializer.java	2010-03-16 16:44:28.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-trunk/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/CompoundInitializer.java	2011-06-14 10:24:15.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: CompoundInitializer.java,v 1.2 2010/03/16 20:44:28 yvyang Exp $
  + * $Id: CompoundInitializer.java,v 1.1 2010/03/13 10:59:47 yvyang Exp $
    */
   package org.eclipse.e4.xwt.tools.ui.palette;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/Initializer.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-trunk/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/Initializer.java	2010-03-16 16:44:28.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-trunk/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/Initializer.java	2011-06-14 10:24:15.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: Initializer.java,v 1.4 2010/03/16 20:44:28 yvyang Exp $
  + * $Id$
    */
   package org.eclipse.e4.xwt.tools.ui.palette;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/CompoundInitializerImpl.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-trunk/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/CompoundInitializerImpl.java	2010-03-16 16:44:28.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-trunk/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/CompoundInitializerImpl.java	2011-06-14 10:24:15.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: CompoundInitializerImpl.java,v 1.2 2010/03/16 20:44:28 yvyang Exp $
  + * $Id: CompoundInitializerImpl.java,v 1.1 2010/03/13 10:59:47 yvyang Exp $
    */
   package org.eclipse.e4.xwt.tools.ui.palette.impl;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/InitializerImpl.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-trunk/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/InitializerImpl.java	2010-03-16 16:44:28.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-trunk/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/InitializerImpl.java	2011-06-14 10:24:15.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: InitializerImpl.java,v 1.4 2010/03/16 20:44:28 yvyang Exp $
  + * $Id$
    */
   package org.eclipse.e4.xwt.tools.ui.palette.impl;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.workbench/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-trunk/bundles/org.eclipse.e4.xwt.tools.ui.workbench/plugin.properties	2010-02-05 20:15:02.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-trunk/bundles/org.eclipse.e4.xwt.tools.ui.workbench/plugin.properties	2011-06-14 10:24:15.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.1 2010/02/06 01:15:02 yvyang Exp $
  +# $Id$
   
   pluginName = XWT Workbench
   providerName = Eclipse.org
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.workbench/src/org/eclipse/e4/xwt/tools/ui/model/workbench/XWTPartInitializer.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-trunk/bundles/org.eclipse.e4.xwt.tools.ui.workbench/src/org/eclipse/e4/xwt/tools/ui/model/workbench/XWTPartInitializer.java	2010-02-06 10:48:18.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-trunk/bundles/org.eclipse.e4.xwt.tools.ui.workbench/src/org/eclipse/e4/xwt/tools/ui/model/workbench/XWTPartInitializer.java	2011-06-14 10:24:15.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: XWTPartInitializer.java,v 1.1 2010/02/06 15:48:18 yvyang Exp $
  + * $Id$
    */
   package org.eclipse.e4.xwt.tools.ui.model.workbench;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.xaml/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-trunk/bundles/org.eclipse.e4.xwt.tools.ui.xaml/build.properties	2010-06-17 20:16:29.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-trunk/bundles/org.eclipse.e4.xwt.tools.ui.xaml/build.properties	2011-06-14 10:24:15.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2010/06/18 00:16:29 yvyang Exp $
  +# $Id: build.properties,v 1.1 2009/12/03 20:39:32 yvyang Exp $
   
   bin.includes = .,\
                  META-INF/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.xaml/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-trunk/bundles/org.eclipse.e4.xwt.tools.ui.xaml/plugin.properties	2010-06-17 20:16:29.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-trunk/bundles/org.eclipse.e4.xwt.tools.ui.xaml/plugin.properties	2011-06-14 10:24:15.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.2 2010/06/18 00:16:29 yvyang Exp $
  +# $Id: plugin.properties,v 1.1 2009/12/03 20:39:32 yvyang Exp $
   
   pluginName = XAML Model (Incubation)
   providerName = Eclipse.org
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.ui.workbench/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-trunk/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2010-06-17 20:15:13.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-trunk/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2011-06-14 10:24:15.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.3 2010/06/18 00:15:13 yvyang Exp $
  +# $Id: build.properties,v 1.2 2009/07/02 12:56:18 yvyang Exp $
   
   bin.includes = .,\
                  model/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-trunk/bundles/org.eclipse.e4.xwt.vex/build.properties	2010-06-22 09:55:41.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-trunk/bundles/org.eclipse.e4.xwt.vex/build.properties	2011-06-14 10:24:15.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.3 2010/06/22 13:55:41 obesedin Exp $
  +# $Id: build.properties,v 1.2 2010/06/18 00:17:02 yvyang Exp $
   
   bin.includes = .,\
                  src/model/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-trunk/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2009-07-01 15:48:11.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-trunk/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2011-06-14 10:24:15.000000000 -0400
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.2 2009/07/01 19:48:11 yvyang Exp $
  + $Id: plugin.xml,v 1.1 2009/01/07 00:15:47 yvyang Exp $
   -->
   
   <plugin>
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-trunk/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2010-06-17 20:17:01.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-trunk/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2011-06-14 10:24:15.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.3 $  $Date: 2010/06/18 00:17:01 $ 
  + *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-trunk/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2009-12-22 10:40:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-trunk/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2011-06-14 10:24:15.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.7 $  $Date: 2009/12/22 15:40:57 $ 
  + *  $Revision: 1.6 $  $Date: 2009/12/02 16:13:57 $ 
    */
   package org.eclipse.e4.xwt.vex.swt;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-trunk/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2010-06-17 20:17:02.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-trunk/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2011-06-14 10:24:15.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.6 $  $Date: 2010/06/18 00:17:02 $ 
  + *  $Revision: 1.5 $  $Date: 2009/12/02 15:57:42 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.macosx;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-trunk/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2010-06-17 20:17:02.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-trunk/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2011-06-14 10:24:15.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.8 $  $Date: 2010/06/18 00:17:02 $ 
  + *  $Revision: 1.7 $  $Date: 2009/12/22 15:40:57 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-trunk/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2010-06-17 20:17:02.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-trunk/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2011-06-14 10:24:15.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.6 $  $Date: 2010/06/18 00:17:02 $ 
  + *  $Revision: 1.5 $  $Date: 2009/12/22 15:40:57 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix.bits64;
   
  
 FAIL: File contents differ for examples/org.eclipse.e4.xwt.emf.demo/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-trunk/examples/org.eclipse.e4.xwt.emf.demo/build.properties	2009-12-07 21:19:53.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-trunk/examples/org.eclipse.e4.xwt.emf.demo/build.properties	2011-06-14 10:24:15.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2009/12/08 02:19:53 yvyang Exp $
  +# $Id: build.properties,v 1.1 2009/01/07 00:18:46 yvyang Exp $
   
   bin.includes = .,\
                  model/,\
  
 FAIL: File contents differ for examples/org.eclipse.e4.xwt.emf.demo/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-trunk/examples/org.eclipse.e4.xwt.emf.demo/plugin.xml	2009-01-06 19:18:46.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-trunk/examples/org.eclipse.e4.xwt.emf.demo/plugin.xml	2011-06-14 10:24:15.000000000 -0400
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.1 2009/01/07 00:18:46 yvyang Exp $
  + $Id$
   -->
   
   <plugin>
  
 FAIL: File contents differ for examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/Address.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-trunk/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/Address.java	2009-01-06 19:18:46.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-trunk/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/Address.java	2011-06-14 10:24:15.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: Address.java,v 1.1 2009/01/07 00:18:46 yvyang Exp $
  + * $Id$
    */
   package demo_model;
   
  
 FAIL: File contents differ for examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/Company.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-trunk/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/Company.java	2009-11-15 09:15:03.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-trunk/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/Company.java	2011-06-14 10:24:15.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: Company.java,v 1.2 2009/11/15 14:15:03 yvyang Exp $
  + * $Id: Company.java,v 1.1 2009/01/07 00:18:46 yvyang Exp $
    */
   package demo_model;
   
  
 FAIL: File contents differ for examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/Demo_modelFactory.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-trunk/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/Demo_modelFactory.java	2009-01-06 19:18:46.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-trunk/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/Demo_modelFactory.java	2011-06-14 10:24:15.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: Demo_modelFactory.java,v 1.1 2009/01/07 00:18:46 yvyang Exp $
  + * $Id$
    */
   package demo_model;
   
  
 FAIL: File contents differ for examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/Demo_modelPackage.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-trunk/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/Demo_modelPackage.java	2009-01-06 19:18:46.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-trunk/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/Demo_modelPackage.java	2011-06-14 10:24:15.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: Demo_modelPackage.java,v 1.1 2009/01/07 00:18:46 yvyang Exp $
  + * $Id$
    */
   package demo_model;
   
  
 FAIL: File contents differ for examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/Employee.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-trunk/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/Employee.java	2009-01-06 19:18:46.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-trunk/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/Employee.java	2011-06-14 10:24:15.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: Employee.java,v 1.1 2009/01/07 00:18:46 yvyang Exp $
  + * $Id$
    */
   package demo_model;
   
  
 FAIL: File contents differ for examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/impl/AddressImpl.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-trunk/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/impl/AddressImpl.java	2009-01-06 19:18:46.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-trunk/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/impl/AddressImpl.java	2011-06-14 10:24:15.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: AddressImpl.java,v 1.1 2009/01/07 00:18:46 yvyang Exp $
  + * $Id$
    */
   package demo_model.impl;
   
  
 FAIL: File contents differ for examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/impl/CompanyImpl.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-trunk/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/impl/CompanyImpl.java	2009-01-06 19:18:46.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-trunk/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/impl/CompanyImpl.java	2011-06-14 10:24:15.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: CompanyImpl.java,v 1.1 2009/01/07 00:18:46 yvyang Exp $
  + * $Id$
    */
   package demo_model.impl;
   
  
 FAIL: File contents differ for examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/impl/Demo_modelFactoryImpl.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-trunk/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/impl/Demo_modelFactoryImpl.java	2009-01-06 19:18:46.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-trunk/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/impl/Demo_modelFactoryImpl.java	2011-06-14 10:24:15.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: Demo_modelFactoryImpl.java,v 1.1 2009/01/07 00:18:46 yvyang Exp $
  + * $Id$
    */
   package demo_model.impl;
   
  
 FAIL: File contents differ for examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/impl/Demo_modelPackageImpl.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-trunk/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/impl/Demo_modelPackageImpl.java	2009-01-06 19:18:46.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-trunk/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/impl/Demo_modelPackageImpl.java	2011-06-14 10:24:15.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: Demo_modelPackageImpl.java,v 1.1 2009/01/07 00:18:46 yvyang Exp $
  + * $Id$
    */
   package demo_model.impl;
   
  
 FAIL: File contents differ for examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/impl/EmployeeImpl.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-trunk/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/impl/EmployeeImpl.java	2009-01-06 19:18:46.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-trunk/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/impl/EmployeeImpl.java	2011-06-14 10:24:15.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: EmployeeImpl.java,v 1.1 2009/01/07 00:18:46 yvyang Exp $
  + * $Id$
    */
   package demo_model.impl;
   
  
 FAIL: File contents differ for examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/util/Demo_modelAdapterFactory.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-trunk/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/util/Demo_modelAdapterFactory.java	2009-01-06 19:18:46.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-trunk/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/util/Demo_modelAdapterFactory.java	2011-06-14 10:24:15.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: Demo_modelAdapterFactory.java,v 1.1 2009/01/07 00:18:46 yvyang Exp $
  + * $Id$
    */
   package demo_model.util;
   
  
 FAIL: File contents differ for examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/util/Demo_modelSwitch.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-trunk/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/util/Demo_modelSwitch.java	2009-01-06 19:18:46.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-trunk/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/util/Demo_modelSwitch.java	2011-06-14 10:24:15.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: Demo_modelSwitch.java,v 1.1 2009/01/07 00:18:46 yvyang Exp $
  + * $Id$
    */
   package demo_model.util;
   
  
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-trunk/tests/org.eclipse.e4.xwt.emf.test/build.properties	2010-06-17 20:13:55.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-trunk/tests/org.eclipse.e4.xwt.emf.test/build.properties	2011-06-14 10:24:15.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.4 2010/06/18 00:13:55 yvyang Exp $
  +# $Id: build.properties,v 1.3 2010/02/27 06:28:18 yvyang Exp $
   
   bin.includes = .,\
                  src/model/,\
  
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-trunk/tests/org.eclipse.e4.xwt.emf.test/plugin.properties	2010-06-17 20:13:55.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-trunk/tests/org.eclipse.e4.xwt.emf.test/plugin.properties	2011-06-14 10:24:15.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.3 2010/06/18 00:13:55 yvyang Exp $
  +# $Id: plugin.properties,v 1.2 2009/06/24 17:38:38 pwebster Exp $
   
   pluginName = Books Model (Incubation)
   providerName = www.eclipse.org
  
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-trunk/tests/org.eclipse.e4.xwt.emf.test/plugin.xml	2010-02-27 01:28:19.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-trunk/tests/org.eclipse.e4.xwt.emf.test/plugin.xml	2011-06-14 10:24:15.000000000 -0400
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.2 2010/02/27 06:28:19 yvyang Exp $
  + $Id: plugin.xml,v 1.1 2009/06/15 09:15:31 yvyang Exp $
   -->
   
   <plugin>
  
Verifying tag I20100227-1500
Verifying tag I20100309
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-I20100309/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2009-12-26 19:01:32.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-I20100309/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2010-03-09 15:50:13.000000000 -0500
  @@ -11,7 +11,7 @@
   package org.eclipse.e4.xwt.tools.ui.designer.policies.layout;
   
   /*
  - * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.1 $ $Date: 2009/12/27 00:01:32 $
  + * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.1 $ $Date: 2009/12/03 20:32:22 $
    */
   
   import java.util.List;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-I20100309/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2009-12-03 15:34:28.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-I20100309/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2010-03-09 15:50:13.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: GridSpanHandle.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:34:28 $ 
  + *  $Revision: 1.6 $  $Date: 2005/08/24 23:52:54 $ 
    */
   
   import org.eclipse.draw2d.ColorConstants;
  
Verifying tag I20100309-1500
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-I20100309-1500/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2009-12-26 19:01:32.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-I20100309-1500/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2010-03-09 15:50:14.000000000 -0500
  @@ -11,7 +11,7 @@
   package org.eclipse.e4.xwt.tools.ui.designer.policies.layout;
   
   /*
  - * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.1 $ $Date: 2009/12/27 00:01:32 $
  + * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.1 $ $Date: 2009/12/03 20:32:22 $
    */
   
   import java.util.List;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-I20100309-1500/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2009-12-03 15:34:28.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-I20100309-1500/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2010-03-09 15:50:14.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: GridSpanHandle.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:34:28 $ 
  + *  $Revision: 1.6 $  $Date: 2005/08/24 23:52:54 $ 
    */
   
   import org.eclipse.draw2d.ColorConstants;
  
Verifying tag I20100310
Verifying tag I20100313
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-I20100313/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2009-12-26 19:01:32.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-I20100313/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2010-03-13 06:00:00.000000000 -0500
  @@ -11,7 +11,7 @@
   package org.eclipse.e4.xwt.tools.ui.designer.policies.layout;
   
   /*
  - * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.1 $ $Date: 2009/12/27 00:01:32 $
  + * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.1 $ $Date: 2009/12/03 20:32:22 $
    */
   
   import java.util.List;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-I20100313/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2009-12-03 15:34:28.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-I20100313/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2010-03-13 06:00:00.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: GridSpanHandle.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:34:28 $ 
  + *  $Revision: 1.6 $  $Date: 2005/08/24 23:52:54 $ 
    */
   
   import org.eclipse.draw2d.ColorConstants;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-I20100313/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2009-12-03 15:35:58.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-I20100313/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2010-03-13 06:00:00.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:58 $ 
  + *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-I20100313/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-I20100313/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2010-03-13 06:00:00.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: ImageFigure.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.3 $  $Date: 2005/08/24 23:12:50 $ 
    */
   
   import org.eclipse.draw2d.Figure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-I20100313/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-I20100313/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2010-03-13 06:00:00.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: OutlineBorder.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.7 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import org.eclipse.draw2d.*;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-I20100313/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-I20100313/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2010-03-13 06:00:00.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: IImageListener.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.4 $  $Date: 2005/08/24 23:12:49 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.images;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-I20100313/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-I20100313/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2010-03-13 06:00:00.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: FreeformXYFlowLayout.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.3 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import org.eclipse.draw2d.IFigure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-I20100313/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-I20100313/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2010-03-13 06:00:00.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: XYFlowLayout.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.4 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import java.util.Iterator;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-I20100313/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-I20100313/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2010-03-13 06:00:00.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: XYLayoutUtility.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.1 $  $Date: 2005/05/11 19:01:26 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.layouts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-I20100313/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-I20100313/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2010-03-13 06:00:00.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: EditPartRunnable.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.1 $  $Date: 2005/06/15 20:19:34 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.parts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-I20100313/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2009-12-11 18:32:20.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-I20100313/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2010-03-13 06:00:00.000000000 -0500
  @@ -9,7 +9,7 @@
    *     Soyatec - initial API and implementation
    *******************************************************************************/
   /*
  - * $RCSfile: IVisualInfo.java,v $ $Revision: 1.3 $ $Date: 2009/12/11 23:32:20 $
  + * $RCSfile: IVisualInfo.java,v $ $Revision: 1.2 $ $Date: 2009/12/11 22:14:35 $
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.visuals;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-I20100313/bundles/org.eclipse.e4.xwt.tools.ui.palette/build.properties	2009-12-03 15:38:23.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-I20100313/bundles/org.eclipse.e4.xwt.tools.ui.palette/build.properties	2010-03-13 06:00:00.000000000 -0500
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.1 2009/12/03 20:38:23 yvyang Exp $
  +# $Id$
   
   bin.includes = .,\
                  META-INF/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-I20100313/bundles/org.eclipse.e4.xwt.tools.ui.palette/plugin.properties	2009-12-03 15:38:23.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-I20100313/bundles/org.eclipse.e4.xwt.tools.ui.palette/plugin.properties	2010-03-13 06:00:00.000000000 -0500
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.1 2009/12/03 20:38:23 yvyang Exp $
  +# $Id$
   
   pluginName = Palette Model (Incubation)
   providerName = Eclipse.org
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/CompoundInitializer.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-I20100313/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/CompoundInitializer.java	2010-03-13 05:59:47.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-I20100313/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/CompoundInitializer.java	2010-03-13 06:00:00.000000000 -0500
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: CompoundInitializer.java,v 1.1 2010/03/13 10:59:47 yvyang Exp $
  + * $Id$
    */
   package org.eclipse.e4.xwt.tools.ui.palette;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/CompoundInitializerImpl.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-I20100313/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/CompoundInitializerImpl.java	2010-03-13 05:59:47.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-I20100313/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/CompoundInitializerImpl.java	2010-03-13 06:00:00.000000000 -0500
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: CompoundInitializerImpl.java,v 1.1 2010/03/13 10:59:47 yvyang Exp $
  + * $Id$
    */
   package org.eclipse.e4.xwt.tools.ui.palette.impl;
   
  
Verifying tag R0_10
 FAIL: File contents differ for bundles/org.eclipse.e4.tools.ui.designer/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_10/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-06-17 20:10:57.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_10/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-07-22 02:58:59.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.4 2010/06/18 00:10:57 yvyang Exp $
  +# $Id: plugin.properties,v 1.3 2010/05/22 20:53:49 yvyang Exp $
   
   pluginName = e4 Visual Design Editor (Incubation)
   providerName = Eclipse.org
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.categorynode/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_10/bundles/org.eclipse.e4.xwt.tools.categorynode/build.properties	2010-06-17 20:27:04.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_10/bundles/org.eclipse.e4.xwt.tools.categorynode/build.properties	2010-07-22 02:58:59.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2010/06/18 00:27:04 yvyang Exp $
  +# $Id: build.properties,v 1.1 2010/05/22 21:00:28 yvyang Exp $
   
   bin.includes = .,\
                  model/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.categorynode.edit/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_10/bundles/org.eclipse.e4.xwt.tools.categorynode.edit/build.properties	2010-06-17 20:27:02.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_10/bundles/org.eclipse.e4.xwt.tools.categorynode.edit/build.properties	2010-07-22 02:58:59.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2010/06/18 00:27:02 yvyang Exp $
  +# $Id: build.properties,v 1.1 2010/05/22 20:52:05 yvyang Exp $
   
   bin.includes = .,\
                  icons/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_10/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2010-06-17 20:15:49.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_10/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2010-07-22 02:58:59.000000000 -0400
  @@ -11,7 +11,7 @@
   package org.eclipse.e4.xwt.tools.ui.designer.policies.layout;
   
   /*
  - * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.3 $ $Date: 2010/06/18 00:15:49 $
  + * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.2 $ $Date: 2010/04/28 20:04:33 $
    */
   
   import java.util.List;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_10/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2010-06-17 20:15:48.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_10/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2010-07-22 02:58:59.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: GridSpanHandle.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:48 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:34:28 $ 
    */
   
   import org.eclipse.draw2d.ColorConstants;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_10/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2010-06-17 20:15:25.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_10/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2010-07-22 02:58:59.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.3 $  $Date: 2010/06/18 00:15:25 $ 
  + *  $Revision: 1.2 $  $Date: 2010/04/28 20:04:47 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_10/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2010-06-17 20:15:23.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_10/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2010-07-22 02:58:59.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: ImageFigure.java,v $
  - *  $Revision: 1.3 $  $Date: 2010/06/18 00:15:23 $ 
  + *  $Revision: 1.2 $  $Date: 2010/04/28 20:04:47 $ 
    */
   
   import org.eclipse.draw2d.Figure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_10/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2010-06-17 20:15:23.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_10/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2010-07-22 02:58:59.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: OutlineBorder.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:23 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
    */
   
   import org.eclipse.draw2d.*;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_10/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2010-06-17 20:15:23.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_10/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2010-07-22 02:58:59.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: IImageListener.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:23 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.images;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_10/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2010-06-17 20:15:22.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_10/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2010-07-22 02:58:59.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: FreeformXYFlowLayout.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:22 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
    */
   
   import org.eclipse.draw2d.IFigure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_10/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2010-06-17 20:15:22.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_10/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2010-07-22 02:58:59.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: XYFlowLayout.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:22 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
    */
   
   import java.util.Iterator;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_10/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2010-06-17 20:15:22.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_10/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2010-07-22 02:58:59.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: XYLayoutUtility.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:22 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.layouts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_10/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2010-06-17 20:15:24.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_10/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2010-07-22 02:58:59.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: EditPartRunnable.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:24 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.parts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_10/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2010-06-17 20:15:24.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_10/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2010-07-22 02:58:59.000000000 -0400
  @@ -9,7 +9,7 @@
    *     Soyatec - initial API and implementation
    *******************************************************************************/
   /*
  - * $RCSfile: IVisualInfo.java,v $ $Revision: 1.4 $ $Date: 2010/06/18 00:15:24 $
  + * $RCSfile: IVisualInfo.java,v $ $Revision: 1.3 $ $Date: 2009/12/11 23:32:20 $
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.visuals;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_10/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-12-11 17:14:10.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_10/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2010-07-22 02:58:59.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.2 $  $Date: 2009/12/11 22:14:10 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:37:22 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.macosx;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_10/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-12-22 10:40:54.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_10/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2010-07-22 02:58:59.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.3 $  $Date: 2009/12/22 15:40:54 $ 
  + *  $Revision: 1.2 $  $Date: 2009/12/11 22:14:10 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_10/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-12-22 10:40:54.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_10/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2010-07-22 02:58:59.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.3 $  $Date: 2009/12/22 15:40:54 $ 
  + *  $Revision: 1.2 $  $Date: 2009/12/11 22:14:10 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix.bits64;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_10/bundles/org.eclipse.e4.xwt.tools.ui.palette/build.properties	2010-06-17 20:15:59.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_10/bundles/org.eclipse.e4.xwt.tools.ui.palette/build.properties	2010-07-22 02:58:59.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2010/06/18 00:15:59 yvyang Exp $
  +# $Id: build.properties,v 1.1 2009/12/03 20:38:23 yvyang Exp $
   
   bin.includes = .,\
                  META-INF/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_10/bundles/org.eclipse.e4.xwt.tools.ui.palette/plugin.properties	2010-06-17 20:15:59.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_10/bundles/org.eclipse.e4.xwt.tools.ui.palette/plugin.properties	2010-07-22 02:58:59.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.2 2010/06/18 00:15:59 yvyang Exp $
  +# $Id: plugin.properties,v 1.1 2009/12/03 20:38:23 yvyang Exp $
   
   pluginName = Palette Model (Incubation)
   providerName = Eclipse.org
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/CompoundInitializer.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_10/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/CompoundInitializer.java	2010-03-16 16:44:28.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_10/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/CompoundInitializer.java	2010-07-22 02:58:59.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: CompoundInitializer.java,v 1.2 2010/03/16 20:44:28 yvyang Exp $
  + * $Id: CompoundInitializer.java,v 1.1 2010/03/13 10:59:47 yvyang Exp $
    */
   package org.eclipse.e4.xwt.tools.ui.palette;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/Initializer.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_10/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/Initializer.java	2010-03-16 16:44:28.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_10/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/Initializer.java	2010-07-22 02:58:59.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: Initializer.java,v 1.4 2010/03/16 20:44:28 yvyang Exp $
  + * $Id$
    */
   package org.eclipse.e4.xwt.tools.ui.palette;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/CompoundInitializerImpl.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_10/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/CompoundInitializerImpl.java	2010-03-16 16:44:28.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_10/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/CompoundInitializerImpl.java	2010-07-22 02:58:59.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: CompoundInitializerImpl.java,v 1.2 2010/03/16 20:44:28 yvyang Exp $
  + * $Id: CompoundInitializerImpl.java,v 1.1 2010/03/13 10:59:47 yvyang Exp $
    */
   package org.eclipse.e4.xwt.tools.ui.palette.impl;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/InitializerImpl.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_10/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/InitializerImpl.java	2010-03-16 16:44:28.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_10/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/InitializerImpl.java	2010-07-22 02:58:59.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: InitializerImpl.java,v 1.4 2010/03/16 20:44:28 yvyang Exp $
  + * $Id$
    */
   package org.eclipse.e4.xwt.tools.ui.palette.impl;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.workbench/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_10/bundles/org.eclipse.e4.xwt.tools.ui.workbench/plugin.properties	2010-02-05 20:15:02.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_10/bundles/org.eclipse.e4.xwt.tools.ui.workbench/plugin.properties	2010-07-22 02:58:59.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.1 2010/02/06 01:15:02 yvyang Exp $
  +# $Id$
   
   pluginName = XWT Workbench
   providerName = Eclipse.org
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.workbench/src/org/eclipse/e4/xwt/tools/ui/model/workbench/XWTPartInitializer.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_10/bundles/org.eclipse.e4.xwt.tools.ui.workbench/src/org/eclipse/e4/xwt/tools/ui/model/workbench/XWTPartInitializer.java	2010-02-06 10:48:18.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_10/bundles/org.eclipse.e4.xwt.tools.ui.workbench/src/org/eclipse/e4/xwt/tools/ui/model/workbench/XWTPartInitializer.java	2010-07-22 02:58:59.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: XWTPartInitializer.java,v 1.1 2010/02/06 15:48:18 yvyang Exp $
  + * $Id$
    */
   package org.eclipse.e4.xwt.tools.ui.model.workbench;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.xaml/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_10/bundles/org.eclipse.e4.xwt.tools.ui.xaml/build.properties	2010-06-17 20:16:29.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_10/bundles/org.eclipse.e4.xwt.tools.ui.xaml/build.properties	2010-07-22 02:58:59.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2010/06/18 00:16:29 yvyang Exp $
  +# $Id: build.properties,v 1.1 2009/12/03 20:39:32 yvyang Exp $
   
   bin.includes = .,\
                  META-INF/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.xaml/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_10/bundles/org.eclipse.e4.xwt.tools.ui.xaml/plugin.properties	2010-06-17 20:16:29.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_10/bundles/org.eclipse.e4.xwt.tools.ui.xaml/plugin.properties	2010-07-22 02:58:59.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.2 2010/06/18 00:16:29 yvyang Exp $
  +# $Id: plugin.properties,v 1.1 2009/12/03 20:39:32 yvyang Exp $
   
   pluginName = XAML Model (Incubation)
   providerName = Eclipse.org
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.ui.workbench/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_10/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2010-06-17 20:15:13.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_10/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2010-07-22 02:58:59.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.3 2010/06/18 00:15:13 yvyang Exp $
  +# $Id: build.properties,v 1.2 2009/07/02 12:56:18 yvyang Exp $
   
   bin.includes = .,\
                  model/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_10/bundles/org.eclipse.e4.xwt.vex/build.properties	2010-06-22 09:55:41.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_10/bundles/org.eclipse.e4.xwt.vex/build.properties	2010-07-22 02:58:59.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.3 2010/06/22 13:55:41 obesedin Exp $
  +# $Id: build.properties,v 1.2 2010/06/18 00:17:02 yvyang Exp $
   
   bin.includes = .,\
                  src/model/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_10/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2009-07-01 15:48:11.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_10/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2010-07-22 02:58:59.000000000 -0400
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.2 2009/07/01 19:48:11 yvyang Exp $
  + $Id: plugin.xml,v 1.1 2009/01/07 00:15:47 yvyang Exp $
   -->
   
   <plugin>
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_10/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2010-06-17 20:17:01.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_10/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2010-07-22 02:58:59.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.3 $  $Date: 2010/06/18 00:17:01 $ 
  + *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_10/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2009-12-22 10:40:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_10/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2010-07-22 02:58:59.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.7 $  $Date: 2009/12/22 15:40:57 $ 
  + *  $Revision: 1.6 $  $Date: 2009/12/02 16:13:57 $ 
    */
   package org.eclipse.e4.xwt.vex.swt;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_10/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2010-06-17 20:17:02.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_10/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2010-07-22 02:58:59.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.6 $  $Date: 2010/06/18 00:17:02 $ 
  + *  $Revision: 1.5 $  $Date: 2009/12/02 15:57:42 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.macosx;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_10/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2010-06-17 20:17:02.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_10/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2010-07-22 02:58:59.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.8 $  $Date: 2010/06/18 00:17:02 $ 
  + *  $Revision: 1.7 $  $Date: 2009/12/22 15:40:57 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_10/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2010-06-17 20:17:02.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_10/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2010-07-22 02:58:59.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.6 $  $Date: 2010/06/18 00:17:02 $ 
  + *  $Revision: 1.5 $  $Date: 2009/12/22 15:40:57 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix.bits64;
   
  
 FAIL: File contents differ for examples/org.eclipse.e4.xwt.emf.demo/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_10/examples/org.eclipse.e4.xwt.emf.demo/build.properties	2009-12-07 21:19:53.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_10/examples/org.eclipse.e4.xwt.emf.demo/build.properties	2010-07-22 02:58:59.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2009/12/08 02:19:53 yvyang Exp $
  +# $Id: build.properties,v 1.1 2009/01/07 00:18:46 yvyang Exp $
   
   bin.includes = .,\
                  model/,\
  
 FAIL: File contents differ for examples/org.eclipse.e4.xwt.emf.demo/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_10/examples/org.eclipse.e4.xwt.emf.demo/plugin.xml	2009-01-06 19:18:46.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_10/examples/org.eclipse.e4.xwt.emf.demo/plugin.xml	2010-07-22 02:58:59.000000000 -0400
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.1 2009/01/07 00:18:46 yvyang Exp $
  + $Id$
   -->
   
   <plugin>
  
 FAIL: File contents differ for examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/Address.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_10/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/Address.java	2009-01-06 19:18:46.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_10/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/Address.java	2010-07-22 02:58:59.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: Address.java,v 1.1 2009/01/07 00:18:46 yvyang Exp $
  + * $Id$
    */
   package demo_model;
   
  
 FAIL: File contents differ for examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/Company.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_10/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/Company.java	2009-11-15 09:15:03.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_10/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/Company.java	2010-07-22 02:58:59.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: Company.java,v 1.2 2009/11/15 14:15:03 yvyang Exp $
  + * $Id: Company.java,v 1.1 2009/01/07 00:18:46 yvyang Exp $
    */
   package demo_model;
   
  
 FAIL: File contents differ for examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/Demo_modelFactory.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_10/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/Demo_modelFactory.java	2009-01-06 19:18:46.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_10/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/Demo_modelFactory.java	2010-07-22 02:58:59.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: Demo_modelFactory.java,v 1.1 2009/01/07 00:18:46 yvyang Exp $
  + * $Id$
    */
   package demo_model;
   
  
 FAIL: File contents differ for examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/Demo_modelPackage.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_10/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/Demo_modelPackage.java	2009-01-06 19:18:46.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_10/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/Demo_modelPackage.java	2010-07-22 02:58:59.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: Demo_modelPackage.java,v 1.1 2009/01/07 00:18:46 yvyang Exp $
  + * $Id$
    */
   package demo_model;
   
  
 FAIL: File contents differ for examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/Employee.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_10/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/Employee.java	2009-01-06 19:18:46.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_10/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/Employee.java	2010-07-22 02:58:59.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: Employee.java,v 1.1 2009/01/07 00:18:46 yvyang Exp $
  + * $Id$
    */
   package demo_model;
   
  
 FAIL: File contents differ for examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/impl/AddressImpl.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_10/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/impl/AddressImpl.java	2009-01-06 19:18:46.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_10/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/impl/AddressImpl.java	2010-07-22 02:58:59.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: AddressImpl.java,v 1.1 2009/01/07 00:18:46 yvyang Exp $
  + * $Id$
    */
   package demo_model.impl;
   
  
 FAIL: File contents differ for examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/impl/CompanyImpl.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_10/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/impl/CompanyImpl.java	2009-01-06 19:18:46.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_10/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/impl/CompanyImpl.java	2010-07-22 02:58:59.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: CompanyImpl.java,v 1.1 2009/01/07 00:18:46 yvyang Exp $
  + * $Id$
    */
   package demo_model.impl;
   
  
 FAIL: File contents differ for examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/impl/Demo_modelFactoryImpl.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_10/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/impl/Demo_modelFactoryImpl.java	2009-01-06 19:18:46.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_10/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/impl/Demo_modelFactoryImpl.java	2010-07-22 02:58:59.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: Demo_modelFactoryImpl.java,v 1.1 2009/01/07 00:18:46 yvyang Exp $
  + * $Id$
    */
   package demo_model.impl;
   
  
 FAIL: File contents differ for examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/impl/Demo_modelPackageImpl.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_10/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/impl/Demo_modelPackageImpl.java	2009-01-06 19:18:46.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_10/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/impl/Demo_modelPackageImpl.java	2010-07-22 02:58:59.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: Demo_modelPackageImpl.java,v 1.1 2009/01/07 00:18:46 yvyang Exp $
  + * $Id$
    */
   package demo_model.impl;
   
  
 FAIL: File contents differ for examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/impl/EmployeeImpl.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_10/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/impl/EmployeeImpl.java	2009-01-06 19:18:46.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_10/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/impl/EmployeeImpl.java	2010-07-22 02:58:59.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: EmployeeImpl.java,v 1.1 2009/01/07 00:18:46 yvyang Exp $
  + * $Id$
    */
   package demo_model.impl;
   
  
 FAIL: File contents differ for examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/util/Demo_modelAdapterFactory.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_10/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/util/Demo_modelAdapterFactory.java	2009-01-06 19:18:46.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_10/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/util/Demo_modelAdapterFactory.java	2010-07-22 02:58:59.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: Demo_modelAdapterFactory.java,v 1.1 2009/01/07 00:18:46 yvyang Exp $
  + * $Id$
    */
   package demo_model.util;
   
  
 FAIL: File contents differ for examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/util/Demo_modelSwitch.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_10/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/util/Demo_modelSwitch.java	2009-01-06 19:18:46.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_10/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/util/Demo_modelSwitch.java	2010-07-22 02:58:59.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: Demo_modelSwitch.java,v 1.1 2009/01/07 00:18:46 yvyang Exp $
  + * $Id$
    */
   package demo_model.util;
   
  
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_10/tests/org.eclipse.e4.xwt.emf.test/build.properties	2010-06-17 20:13:55.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_10/tests/org.eclipse.e4.xwt.emf.test/build.properties	2010-07-22 02:58:59.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.4 2010/06/18 00:13:55 yvyang Exp $
  +# $Id: build.properties,v 1.3 2010/02/27 06:28:18 yvyang Exp $
   
   bin.includes = .,\
                  src/model/,\
  
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_10/tests/org.eclipse.e4.xwt.emf.test/plugin.properties	2010-06-17 20:13:55.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_10/tests/org.eclipse.e4.xwt.emf.test/plugin.properties	2010-07-22 02:58:59.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.3 2010/06/18 00:13:55 yvyang Exp $
  +# $Id: plugin.properties,v 1.2 2009/06/24 17:38:38 pwebster Exp $
   
   pluginName = Books Model (Incubation)
   providerName = www.eclipse.org
  
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_10/tests/org.eclipse.e4.xwt.emf.test/plugin.xml	2010-02-27 01:28:19.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_10/tests/org.eclipse.e4.xwt.emf.test/plugin.xml	2010-07-22 02:58:59.000000000 -0400
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.2 2010/02/27 06:28:19 yvyang Exp $
  + $Id: plugin.xml,v 1.1 2009/06/15 09:15:31 yvyang Exp $
   -->
   
   <plugin>
  
Verifying tag R0_11
 FAIL: File contents differ for bundles/org.eclipse.e4.tools.ui.designer/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_11/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-06-17 20:10:57.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_11/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2011-06-14 10:24:16.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.4 2010/06/18 00:10:57 yvyang Exp $
  +# $Id: plugin.properties,v 1.3 2010/05/22 20:53:49 yvyang Exp $
   
   pluginName = e4 Visual Design Editor (Incubation)
   providerName = Eclipse.org
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.categorynode/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_11/bundles/org.eclipse.e4.xwt.tools.categorynode/build.properties	2010-06-17 20:27:04.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_11/bundles/org.eclipse.e4.xwt.tools.categorynode/build.properties	2011-06-14 10:24:16.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2010/06/18 00:27:04 yvyang Exp $
  +# $Id: build.properties,v 1.1 2010/05/22 21:00:28 yvyang Exp $
   
   bin.includes = .,\
                  model/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.categorynode.edit/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_11/bundles/org.eclipse.e4.xwt.tools.categorynode.edit/build.properties	2010-06-17 20:27:02.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_11/bundles/org.eclipse.e4.xwt.tools.categorynode.edit/build.properties	2011-06-14 10:24:16.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2010/06/18 00:27:02 yvyang Exp $
  +# $Id: build.properties,v 1.1 2010/05/22 20:52:05 yvyang Exp $
   
   bin.includes = .,\
                  icons/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_11/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2010-06-17 20:15:49.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_11/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2011-06-14 10:24:16.000000000 -0400
  @@ -11,7 +11,7 @@
   package org.eclipse.e4.xwt.tools.ui.designer.policies.layout;
   
   /*
  - * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.3 $ $Date: 2010/06/18 00:15:49 $
  + * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.2 $ $Date: 2010/04/28 20:04:33 $
    */
   
   import java.util.List;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_11/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2010-06-17 20:15:48.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_11/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2011-06-14 10:24:16.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: GridSpanHandle.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:48 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:34:28 $ 
    */
   
   import org.eclipse.draw2d.ColorConstants;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_11/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2010-06-17 20:15:25.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_11/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2011-06-14 10:24:16.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.3 $  $Date: 2010/06/18 00:15:25 $ 
  + *  $Revision: 1.2 $  $Date: 2010/04/28 20:04:47 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_11/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2010-06-17 20:15:23.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_11/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2011-06-14 10:24:16.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: ImageFigure.java,v $
  - *  $Revision: 1.3 $  $Date: 2010/06/18 00:15:23 $ 
  + *  $Revision: 1.2 $  $Date: 2010/04/28 20:04:47 $ 
    */
   
   import org.eclipse.draw2d.Figure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_11/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2010-06-17 20:15:23.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_11/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2011-06-14 10:24:16.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: OutlineBorder.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:23 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
    */
   
   import org.eclipse.draw2d.*;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_11/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2010-06-17 20:15:23.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_11/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2011-06-14 10:24:16.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: IImageListener.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:23 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.images;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_11/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2010-06-17 20:15:22.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_11/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2011-06-14 10:24:16.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: FreeformXYFlowLayout.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:22 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
    */
   
   import org.eclipse.draw2d.IFigure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_11/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2010-06-17 20:15:22.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_11/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2011-06-14 10:24:16.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: XYFlowLayout.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:22 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
    */
   
   import java.util.Iterator;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_11/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2010-06-17 20:15:22.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_11/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2011-06-14 10:24:16.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: XYLayoutUtility.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:22 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.layouts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_11/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2010-06-17 20:15:24.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_11/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2011-06-14 10:24:16.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: EditPartRunnable.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:24 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.parts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_11/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2010-06-17 20:15:24.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_11/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2011-06-14 10:24:16.000000000 -0400
  @@ -9,7 +9,7 @@
    *     Soyatec - initial API and implementation
    *******************************************************************************/
   /*
  - * $RCSfile: IVisualInfo.java,v $ $Revision: 1.4 $ $Date: 2010/06/18 00:15:24 $
  + * $RCSfile: IVisualInfo.java,v $ $Revision: 1.3 $ $Date: 2009/12/11 23:32:20 $
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.visuals;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_11/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-12-11 17:14:10.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_11/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2011-06-14 10:24:16.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.2 $  $Date: 2009/12/11 22:14:10 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:37:22 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.macosx;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_11/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-12-22 10:40:54.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_11/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2011-06-14 10:24:16.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.3 $  $Date: 2009/12/22 15:40:54 $ 
  + *  $Revision: 1.2 $  $Date: 2009/12/11 22:14:10 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_11/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-12-22 10:40:54.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_11/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2011-06-14 10:24:16.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.3 $  $Date: 2009/12/22 15:40:54 $ 
  + *  $Revision: 1.2 $  $Date: 2009/12/11 22:14:10 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix.bits64;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_11/bundles/org.eclipse.e4.xwt.tools.ui.palette/build.properties	2010-06-17 20:15:59.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_11/bundles/org.eclipse.e4.xwt.tools.ui.palette/build.properties	2011-06-14 10:24:16.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2010/06/18 00:15:59 yvyang Exp $
  +# $Id: build.properties,v 1.1 2009/12/03 20:38:23 yvyang Exp $
   
   bin.includes = .,\
                  META-INF/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_11/bundles/org.eclipse.e4.xwt.tools.ui.palette/plugin.properties	2010-06-17 20:15:59.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_11/bundles/org.eclipse.e4.xwt.tools.ui.palette/plugin.properties	2011-06-14 10:24:16.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.2 2010/06/18 00:15:59 yvyang Exp $
  +# $Id: plugin.properties,v 1.1 2009/12/03 20:38:23 yvyang Exp $
   
   pluginName = Palette Model (Incubation)
   providerName = Eclipse.org
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/CompoundInitializer.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_11/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/CompoundInitializer.java	2010-03-16 16:44:28.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_11/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/CompoundInitializer.java	2011-06-14 10:24:16.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: CompoundInitializer.java,v 1.2 2010/03/16 20:44:28 yvyang Exp $
  + * $Id: CompoundInitializer.java,v 1.1 2010/03/13 10:59:47 yvyang Exp $
    */
   package org.eclipse.e4.xwt.tools.ui.palette;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/Initializer.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_11/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/Initializer.java	2010-03-16 16:44:28.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_11/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/Initializer.java	2011-06-14 10:24:16.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: Initializer.java,v 1.4 2010/03/16 20:44:28 yvyang Exp $
  + * $Id$
    */
   package org.eclipse.e4.xwt.tools.ui.palette;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/CompoundInitializerImpl.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_11/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/CompoundInitializerImpl.java	2010-03-16 16:44:28.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_11/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/CompoundInitializerImpl.java	2011-06-14 10:24:16.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: CompoundInitializerImpl.java,v 1.2 2010/03/16 20:44:28 yvyang Exp $
  + * $Id: CompoundInitializerImpl.java,v 1.1 2010/03/13 10:59:47 yvyang Exp $
    */
   package org.eclipse.e4.xwt.tools.ui.palette.impl;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/InitializerImpl.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_11/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/InitializerImpl.java	2010-03-16 16:44:28.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_11/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/InitializerImpl.java	2011-06-14 10:24:16.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: InitializerImpl.java,v 1.4 2010/03/16 20:44:28 yvyang Exp $
  + * $Id$
    */
   package org.eclipse.e4.xwt.tools.ui.palette.impl;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.workbench/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_11/bundles/org.eclipse.e4.xwt.tools.ui.workbench/plugin.properties	2010-02-05 20:15:02.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_11/bundles/org.eclipse.e4.xwt.tools.ui.workbench/plugin.properties	2011-06-14 10:24:16.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.1 2010/02/06 01:15:02 yvyang Exp $
  +# $Id$
   
   pluginName = XWT Workbench
   providerName = Eclipse.org
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.workbench/src/org/eclipse/e4/xwt/tools/ui/model/workbench/XWTPartInitializer.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_11/bundles/org.eclipse.e4.xwt.tools.ui.workbench/src/org/eclipse/e4/xwt/tools/ui/model/workbench/XWTPartInitializer.java	2010-02-06 10:48:18.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_11/bundles/org.eclipse.e4.xwt.tools.ui.workbench/src/org/eclipse/e4/xwt/tools/ui/model/workbench/XWTPartInitializer.java	2011-06-14 10:24:16.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: XWTPartInitializer.java,v 1.1 2010/02/06 15:48:18 yvyang Exp $
  + * $Id$
    */
   package org.eclipse.e4.xwt.tools.ui.model.workbench;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.xaml/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_11/bundles/org.eclipse.e4.xwt.tools.ui.xaml/build.properties	2010-06-17 20:16:29.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_11/bundles/org.eclipse.e4.xwt.tools.ui.xaml/build.properties	2011-06-14 10:24:16.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2010/06/18 00:16:29 yvyang Exp $
  +# $Id: build.properties,v 1.1 2009/12/03 20:39:32 yvyang Exp $
   
   bin.includes = .,\
                  META-INF/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.xaml/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_11/bundles/org.eclipse.e4.xwt.tools.ui.xaml/plugin.properties	2010-06-17 20:16:29.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_11/bundles/org.eclipse.e4.xwt.tools.ui.xaml/plugin.properties	2011-06-14 10:24:16.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.2 2010/06/18 00:16:29 yvyang Exp $
  +# $Id: plugin.properties,v 1.1 2009/12/03 20:39:32 yvyang Exp $
   
   pluginName = XAML Model (Incubation)
   providerName = Eclipse.org
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.ui.workbench/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_11/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2010-06-17 20:15:13.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_11/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2011-06-14 10:24:16.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.3 2010/06/18 00:15:13 yvyang Exp $
  +# $Id: build.properties,v 1.2 2009/07/02 12:56:18 yvyang Exp $
   
   bin.includes = .,\
                  model/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_11/bundles/org.eclipse.e4.xwt.vex/build.properties	2010-06-22 09:55:41.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_11/bundles/org.eclipse.e4.xwt.vex/build.properties	2011-06-14 10:24:16.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.3 2010/06/22 13:55:41 obesedin Exp $
  +# $Id: build.properties,v 1.2 2010/06/18 00:17:02 yvyang Exp $
   
   bin.includes = .,\
                  src/model/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_11/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2009-07-01 15:48:11.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_11/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2011-06-14 10:24:16.000000000 -0400
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.2 2009/07/01 19:48:11 yvyang Exp $
  + $Id: plugin.xml,v 1.1 2009/01/07 00:15:47 yvyang Exp $
   -->
   
   <plugin>
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_11/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2010-06-17 20:17:01.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_11/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2011-06-14 10:24:16.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.3 $  $Date: 2010/06/18 00:17:01 $ 
  + *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_11/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2009-12-22 10:40:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_11/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2011-06-14 10:24:16.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.7 $  $Date: 2009/12/22 15:40:57 $ 
  + *  $Revision: 1.6 $  $Date: 2009/12/02 16:13:57 $ 
    */
   package org.eclipse.e4.xwt.vex.swt;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_11/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2010-06-17 20:17:02.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_11/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2011-06-14 10:24:16.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.6 $  $Date: 2010/06/18 00:17:02 $ 
  + *  $Revision: 1.5 $  $Date: 2009/12/02 15:57:42 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.macosx;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_11/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2010-06-17 20:17:02.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_11/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2011-06-14 10:24:16.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.8 $  $Date: 2010/06/18 00:17:02 $ 
  + *  $Revision: 1.7 $  $Date: 2009/12/22 15:40:57 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_11/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2010-06-17 20:17:02.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_11/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2011-06-14 10:24:16.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.6 $  $Date: 2010/06/18 00:17:02 $ 
  + *  $Revision: 1.5 $  $Date: 2009/12/22 15:40:57 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix.bits64;
   
  
 FAIL: File contents differ for examples/org.eclipse.e4.xwt.emf.demo/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_11/examples/org.eclipse.e4.xwt.emf.demo/build.properties	2009-12-07 21:19:53.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_11/examples/org.eclipse.e4.xwt.emf.demo/build.properties	2011-06-14 10:24:16.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2009/12/08 02:19:53 yvyang Exp $
  +# $Id: build.properties,v 1.1 2009/01/07 00:18:46 yvyang Exp $
   
   bin.includes = .,\
                  model/,\
  
 FAIL: File contents differ for examples/org.eclipse.e4.xwt.emf.demo/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_11/examples/org.eclipse.e4.xwt.emf.demo/plugin.xml	2009-01-06 19:18:46.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_11/examples/org.eclipse.e4.xwt.emf.demo/plugin.xml	2011-06-14 10:24:16.000000000 -0400
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.1 2009/01/07 00:18:46 yvyang Exp $
  + $Id$
   -->
   
   <plugin>
  
 FAIL: File contents differ for examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/Address.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_11/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/Address.java	2009-01-06 19:18:46.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_11/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/Address.java	2011-06-14 10:24:16.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: Address.java,v 1.1 2009/01/07 00:18:46 yvyang Exp $
  + * $Id$
    */
   package demo_model;
   
  
 FAIL: File contents differ for examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/Company.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_11/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/Company.java	2009-11-15 09:15:03.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_11/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/Company.java	2011-06-14 10:24:16.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: Company.java,v 1.2 2009/11/15 14:15:03 yvyang Exp $
  + * $Id: Company.java,v 1.1 2009/01/07 00:18:46 yvyang Exp $
    */
   package demo_model;
   
  
 FAIL: File contents differ for examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/Demo_modelFactory.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_11/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/Demo_modelFactory.java	2009-01-06 19:18:46.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_11/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/Demo_modelFactory.java	2011-06-14 10:24:16.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: Demo_modelFactory.java,v 1.1 2009/01/07 00:18:46 yvyang Exp $
  + * $Id$
    */
   package demo_model;
   
  
 FAIL: File contents differ for examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/Demo_modelPackage.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_11/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/Demo_modelPackage.java	2009-01-06 19:18:46.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_11/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/Demo_modelPackage.java	2011-06-14 10:24:16.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: Demo_modelPackage.java,v 1.1 2009/01/07 00:18:46 yvyang Exp $
  + * $Id$
    */
   package demo_model;
   
  
 FAIL: File contents differ for examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/Employee.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_11/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/Employee.java	2009-01-06 19:18:46.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_11/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/Employee.java	2011-06-14 10:24:16.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: Employee.java,v 1.1 2009/01/07 00:18:46 yvyang Exp $
  + * $Id$
    */
   package demo_model;
   
  
 FAIL: File contents differ for examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/impl/AddressImpl.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_11/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/impl/AddressImpl.java	2009-01-06 19:18:46.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_11/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/impl/AddressImpl.java	2011-06-14 10:24:16.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: AddressImpl.java,v 1.1 2009/01/07 00:18:46 yvyang Exp $
  + * $Id$
    */
   package demo_model.impl;
   
  
 FAIL: File contents differ for examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/impl/CompanyImpl.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_11/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/impl/CompanyImpl.java	2009-01-06 19:18:46.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_11/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/impl/CompanyImpl.java	2011-06-14 10:24:16.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: CompanyImpl.java,v 1.1 2009/01/07 00:18:46 yvyang Exp $
  + * $Id$
    */
   package demo_model.impl;
   
  
 FAIL: File contents differ for examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/impl/Demo_modelFactoryImpl.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_11/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/impl/Demo_modelFactoryImpl.java	2009-01-06 19:18:46.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_11/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/impl/Demo_modelFactoryImpl.java	2011-06-14 10:24:16.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: Demo_modelFactoryImpl.java,v 1.1 2009/01/07 00:18:46 yvyang Exp $
  + * $Id$
    */
   package demo_model.impl;
   
  
 FAIL: File contents differ for examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/impl/Demo_modelPackageImpl.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_11/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/impl/Demo_modelPackageImpl.java	2009-01-06 19:18:46.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_11/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/impl/Demo_modelPackageImpl.java	2011-06-14 10:24:16.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: Demo_modelPackageImpl.java,v 1.1 2009/01/07 00:18:46 yvyang Exp $
  + * $Id$
    */
   package demo_model.impl;
   
  
 FAIL: File contents differ for examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/impl/EmployeeImpl.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_11/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/impl/EmployeeImpl.java	2009-01-06 19:18:46.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_11/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/impl/EmployeeImpl.java	2011-06-14 10:24:16.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: EmployeeImpl.java,v 1.1 2009/01/07 00:18:46 yvyang Exp $
  + * $Id$
    */
   package demo_model.impl;
   
  
 FAIL: File contents differ for examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/util/Demo_modelAdapterFactory.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_11/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/util/Demo_modelAdapterFactory.java	2009-01-06 19:18:46.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_11/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/util/Demo_modelAdapterFactory.java	2011-06-14 10:24:16.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: Demo_modelAdapterFactory.java,v 1.1 2009/01/07 00:18:46 yvyang Exp $
  + * $Id$
    */
   package demo_model.util;
   
  
 FAIL: File contents differ for examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/util/Demo_modelSwitch.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_11/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/util/Demo_modelSwitch.java	2009-01-06 19:18:46.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_11/examples/org.eclipse.e4.xwt.emf.demo/src/demo_model/util/Demo_modelSwitch.java	2011-06-14 10:24:16.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: Demo_modelSwitch.java,v 1.1 2009/01/07 00:18:46 yvyang Exp $
  + * $Id$
    */
   package demo_model.util;
   
  
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_11/tests/org.eclipse.e4.xwt.emf.test/build.properties	2010-06-17 20:13:55.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_11/tests/org.eclipse.e4.xwt.emf.test/build.properties	2011-06-14 10:24:16.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.4 2010/06/18 00:13:55 yvyang Exp $
  +# $Id: build.properties,v 1.3 2010/02/27 06:28:18 yvyang Exp $
   
   bin.includes = .,\
                  src/model/,\
  
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_11/tests/org.eclipse.e4.xwt.emf.test/plugin.properties	2010-06-17 20:13:55.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_11/tests/org.eclipse.e4.xwt.emf.test/plugin.properties	2011-06-14 10:24:16.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.3 2010/06/18 00:13:55 yvyang Exp $
  +# $Id: plugin.properties,v 1.2 2009/06/24 17:38:38 pwebster Exp $
   
   pluginName = Books Model (Incubation)
   providerName = www.eclipse.org
  
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_11/tests/org.eclipse.e4.xwt.emf.test/plugin.xml	2010-02-27 01:28:19.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_11/tests/org.eclipse.e4.xwt.emf.test/plugin.xml	2011-06-14 10:24:16.000000000 -0400
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.2 2010/02/27 06:28:19 yvyang Exp $
  + $Id: plugin.xml,v 1.1 2009/06/15 09:15:31 yvyang Exp $
   -->
   
   <plugin>
  
Verifying tag R0_9
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_9/bundles/org.eclipse.e4.xwt.vex/build.properties	2009-01-06 19:15:48.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_9/bundles/org.eclipse.e4.xwt.vex/build.properties	2009-07-21 16:50:33.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.1 2009/01/07 00:15:48 yvyang Exp $
  +# $Id: build.properties,v 1.2 2008/07/07 00:23:28 yyang Exp $
   
   bin.includes = .,\
                  src/model/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_9/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2009-07-01 15:48:11.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_9/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2009-07-21 16:50:33.000000000 -0400
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.2 2009/07/01 19:48:11 yvyang Exp $
  + $Id: plugin.xml,v 1.1 2009/01/07 00:15:47 yvyang Exp $
   -->
   
   <plugin>
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_9/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2009-02-02 19:32:19.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_9/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2009-07-21 16:50:33.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
  + *  $Revision: 1.9 $  $Date: 2005/12/05 22:10:14 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_9/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2009-05-31 20:05:01.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_9/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2009-07-21 16:50:33.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.4 $  $Date: 2009/06/01 00:05:01 $ 
  + *  $Revision: 1.3 $  $Date: 2009/05/03 13:44:46 $ 
    */
   package org.eclipse.e4.xwt.vex.swt;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_9/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-05-03 09:44:46.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_9/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-07-21 16:50:33.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.4 $  $Date: 2009/05/03 13:44:46 $ 
  + *  $Revision: 1.3 $  $Date: 2009/05/03 13:32:15 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.macosx;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_9/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-05-03 09:44:46.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_9/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-07-21 16:50:33.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.5 $  $Date: 2009/05/03 13:44:46 $ 
  + *  $Revision: 1.4 $  $Date: 2009/05/03 13:32:15 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_9/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-05-01 18:15:15.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_9/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-07-21 16:50:33.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.3 $  $Date: 2009/05/01 22:15:15 $ 
  + *  $Revision: 1.2 $  $Date: 2009/03/01 15:27:11 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix.bits64;
   
  
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_9/tests/org.eclipse.e4.xwt.emf.test/build.properties	2009-07-07 09:09:57.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_9/tests/org.eclipse.e4.xwt.emf.test/build.properties	2009-07-21 16:50:33.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2009/07/07 13:09:57 pwebster Exp $
  +# $Id: build.properties,v 1.1 2009/06/15 09:15:31 yvyang Exp $
   
   bin.includes = .,\
                  model/,\
  
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_9/tests/org.eclipse.e4.xwt.emf.test/plugin.properties	2009-06-24 13:38:38.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_9/tests/org.eclipse.e4.xwt.emf.test/plugin.properties	2009-07-21 16:50:33.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.2 2009/06/24 17:38:38 pwebster Exp $
  +# $Id: plugin.properties,v 1.1 2009/06/15 09:15:31 yvyang Exp $
   
   pluginName = Books Model (Incubation)
   providerName = www.eclipse.org
  
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R0_9/tests/org.eclipse.e4.xwt.emf.test/plugin.xml	2009-06-15 05:15:31.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R0_9/tests/org.eclipse.e4.xwt.emf.test/plugin.xml	2009-07-21 16:50:33.000000000 -0400
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.1 2009/06/15 09:15:31 yvyang Exp $
  + $Id$
   -->
   
   <plugin>
  
Verifying tag R1_0M4
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M4/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2009-12-26 19:01:32.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M4/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2010-02-26 23:06:31.000000000 -0500
  @@ -11,7 +11,7 @@
   package org.eclipse.e4.xwt.tools.ui.designer.policies.layout;
   
   /*
  - * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.1 $ $Date: 2009/12/27 00:01:32 $
  + * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.1 $ $Date: 2009/12/03 20:32:22 $
    */
   
   import java.util.List;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M4/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2009-12-03 15:34:28.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M4/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2010-02-26 23:06:31.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: GridSpanHandle.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:34:28 $ 
  + *  $Revision: 1.6 $  $Date: 2005/08/24 23:52:54 $ 
    */
   
   import org.eclipse.draw2d.ColorConstants;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M4/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2009-12-03 15:35:58.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M4/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2010-02-26 23:06:31.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:58 $ 
  + *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M4/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M4/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2010-02-26 23:06:31.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: ImageFigure.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.3 $  $Date: 2005/08/24 23:12:50 $ 
    */
   
   import org.eclipse.draw2d.Figure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M4/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M4/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2010-02-26 23:06:31.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: OutlineBorder.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.7 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import org.eclipse.draw2d.*;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M4/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M4/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2010-02-26 23:06:31.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: IImageListener.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.4 $  $Date: 2005/08/24 23:12:49 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.images;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M4/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M4/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2010-02-26 23:06:31.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: FreeformXYFlowLayout.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.3 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import org.eclipse.draw2d.IFigure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M4/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M4/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2010-02-26 23:06:31.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: XYFlowLayout.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.4 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import java.util.Iterator;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M4/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M4/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2010-02-26 23:06:31.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: XYLayoutUtility.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.1 $  $Date: 2005/05/11 19:01:26 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.layouts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M4/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M4/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2010-02-26 23:06:31.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: EditPartRunnable.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.1 $  $Date: 2005/06/15 20:19:34 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.parts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M4/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2009-12-11 18:32:20.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M4/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2010-02-26 23:06:31.000000000 -0500
  @@ -9,7 +9,7 @@
    *     Soyatec - initial API and implementation
    *******************************************************************************/
   /*
  - * $RCSfile: IVisualInfo.java,v $ $Revision: 1.3 $ $Date: 2009/12/11 23:32:20 $
  + * $RCSfile: IVisualInfo.java,v $ $Revision: 1.2 $ $Date: 2009/12/11 22:14:35 $
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.visuals;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M4/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-12-11 17:14:10.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M4/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2010-02-26 23:06:31.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.2 $  $Date: 2009/12/11 22:14:10 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:37:22 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.macosx;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M4/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-12-22 10:40:54.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M4/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2010-02-26 23:06:31.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.3 $  $Date: 2009/12/22 15:40:54 $ 
  + *  $Revision: 1.2 $  $Date: 2009/12/11 22:14:10 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M4/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-12-22 10:40:54.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M4/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2010-02-26 23:06:31.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.3 $  $Date: 2009/12/22 15:40:54 $ 
  + *  $Revision: 1.2 $  $Date: 2009/12/11 22:14:10 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix.bits64;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M4/bundles/org.eclipse.e4.xwt.tools.ui.palette/build.properties	2009-12-03 15:38:23.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M4/bundles/org.eclipse.e4.xwt.tools.ui.palette/build.properties	2010-02-26 23:06:31.000000000 -0500
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.1 2009/12/03 20:38:23 yvyang Exp $
  +# $Id$
   
   bin.includes = .,\
                  META-INF/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M4/bundles/org.eclipse.e4.xwt.tools.ui.palette/plugin.properties	2009-12-03 15:38:23.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M4/bundles/org.eclipse.e4.xwt.tools.ui.palette/plugin.properties	2010-02-26 23:06:31.000000000 -0500
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.1 2009/12/03 20:38:23 yvyang Exp $
  +# $Id$
   
   pluginName = Palette Model (Incubation)
   providerName = Eclipse.org
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.workbench/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M4/bundles/org.eclipse.e4.xwt.tools.ui.workbench/plugin.properties	2010-02-05 20:15:02.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M4/bundles/org.eclipse.e4.xwt.tools.ui.workbench/plugin.properties	2010-02-26 23:06:31.000000000 -0500
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.1 2010/02/06 01:15:02 yvyang Exp $
  +# $Id$
   
   pluginName = XWT Workbench
   providerName = Eclipse.org
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.workbench/src/org/eclipse/e4/xwt/tools/ui/model/workbench/XWTPartInitializer.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M4/bundles/org.eclipse.e4.xwt.tools.ui.workbench/src/org/eclipse/e4/xwt/tools/ui/model/workbench/XWTPartInitializer.java	2010-02-06 10:48:18.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M4/bundles/org.eclipse.e4.xwt.tools.ui.workbench/src/org/eclipse/e4/xwt/tools/ui/model/workbench/XWTPartInitializer.java	2010-02-26 23:06:31.000000000 -0500
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: XWTPartInitializer.java,v 1.1 2010/02/06 15:48:18 yvyang Exp $
  + * $Id$
    */
   package org.eclipse.e4.xwt.tools.ui.model.workbench;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.xaml/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M4/bundles/org.eclipse.e4.xwt.tools.ui.xaml/build.properties	2009-12-03 15:39:32.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M4/bundles/org.eclipse.e4.xwt.tools.ui.xaml/build.properties	2010-02-26 23:06:31.000000000 -0500
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.1 2009/12/03 20:39:32 yvyang Exp $
  +# $Id$
   
   bin.includes = .,\
                  META-INF/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.xaml/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M4/bundles/org.eclipse.e4.xwt.tools.ui.xaml/plugin.properties	2009-12-03 15:39:32.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M4/bundles/org.eclipse.e4.xwt.tools.ui.xaml/plugin.properties	2010-02-26 23:06:31.000000000 -0500
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.1 2009/12/03 20:39:32 yvyang Exp $
  +# $Id$
   
   pluginName = XAML Model (Incubation)
   providerName = Eclipse.org
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.ui.workbench/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M4/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2009-07-02 08:56:18.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M4/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2010-02-26 23:06:31.000000000 -0500
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2009/07/02 12:56:18 yvyang Exp $
  +# $Id$
   
   bin.includes = .,\
                  model/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M4/bundles/org.eclipse.e4.xwt.vex/build.properties	2009-01-06 19:15:48.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M4/bundles/org.eclipse.e4.xwt.vex/build.properties	2010-02-26 23:06:31.000000000 -0500
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.1 2009/01/07 00:15:48 yvyang Exp $
  +# $Id: build.properties,v 1.2 2008/07/07 00:23:28 yyang Exp $
   
   bin.includes = .,\
                  src/model/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M4/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2009-07-01 15:48:11.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M4/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2010-02-26 23:06:31.000000000 -0500
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.2 2009/07/01 19:48:11 yvyang Exp $
  + $Id: plugin.xml,v 1.1 2009/01/07 00:15:47 yvyang Exp $
   -->
   
   <plugin>
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M4/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2009-02-02 19:32:19.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M4/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2010-02-26 23:06:31.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
  + *  $Revision: 1.9 $  $Date: 2005/12/05 22:10:14 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M4/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2009-12-22 10:40:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M4/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2010-02-26 23:06:31.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.7 $  $Date: 2009/12/22 15:40:57 $ 
  + *  $Revision: 1.6 $  $Date: 2009/12/02 16:13:57 $ 
    */
   package org.eclipse.e4.xwt.vex.swt;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M4/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-12-02 10:57:42.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M4/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2010-02-26 23:06:31.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.5 $  $Date: 2009/12/02 15:57:42 $ 
  + *  $Revision: 1.4 $  $Date: 2009/05/03 13:44:46 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.macosx;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M4/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-12-22 10:40:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M4/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2010-02-26 23:06:31.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.7 $  $Date: 2009/12/22 15:40:57 $ 
  + *  $Revision: 1.6 $  $Date: 2009/12/02 15:57:42 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M4/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-12-22 10:40:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M4/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2010-02-26 23:06:31.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.5 $  $Date: 2009/12/22 15:40:57 $ 
  + *  $Revision: 1.4 $  $Date: 2009/12/02 15:57:42 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix.bits64;
   
  
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M4/tests/org.eclipse.e4.xwt.emf.test/build.properties	2009-07-07 09:09:57.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M4/tests/org.eclipse.e4.xwt.emf.test/build.properties	2010-02-26 23:06:31.000000000 -0500
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2009/07/07 13:09:57 pwebster Exp $
  +# $Id: build.properties,v 1.1 2009/06/15 09:15:31 yvyang Exp $
   
   bin.includes = .,\
                  model/,\
  
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M4/tests/org.eclipse.e4.xwt.emf.test/plugin.properties	2009-06-24 13:38:38.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M4/tests/org.eclipse.e4.xwt.emf.test/plugin.properties	2010-02-26 23:06:31.000000000 -0500
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.2 2009/06/24 17:38:38 pwebster Exp $
  +# $Id: plugin.properties,v 1.1 2009/06/15 09:15:31 yvyang Exp $
   
   pluginName = Books Model (Incubation)
   providerName = www.eclipse.org
  
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M4/tests/org.eclipse.e4.xwt.emf.test/plugin.xml	2009-06-15 05:15:31.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M4/tests/org.eclipse.e4.xwt.emf.test/plugin.xml	2010-02-26 23:06:31.000000000 -0500
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.1 2009/06/15 09:15:31 yvyang Exp $
  + $Id$
   -->
   
   <plugin>
  
Verifying tag R1_0M5
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2009-12-26 19:01:32.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2010-04-09 19:35:58.000000000 -0400
  @@ -11,7 +11,7 @@
   package org.eclipse.e4.xwt.tools.ui.designer.policies.layout;
   
   /*
  - * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.1 $ $Date: 2009/12/27 00:01:32 $
  + * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.1 $ $Date: 2009/12/03 20:32:22 $
    */
   
   import java.util.List;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2009-12-03 15:34:28.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2010-04-09 19:35:58.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: GridSpanHandle.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:34:28 $ 
  + *  $Revision: 1.6 $  $Date: 2005/08/24 23:52:54 $ 
    */
   
   import org.eclipse.draw2d.ColorConstants;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2009-12-03 15:35:58.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2010-04-09 19:35:58.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:58 $ 
  + *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2010-04-09 19:35:58.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: ImageFigure.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.3 $  $Date: 2005/08/24 23:12:50 $ 
    */
   
   import org.eclipse.draw2d.Figure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2010-04-09 19:35:58.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: OutlineBorder.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.7 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import org.eclipse.draw2d.*;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2010-04-09 19:35:58.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: IImageListener.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.4 $  $Date: 2005/08/24 23:12:49 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.images;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2010-04-09 19:35:58.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: FreeformXYFlowLayout.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.3 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import org.eclipse.draw2d.IFigure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2010-04-09 19:35:58.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: XYFlowLayout.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.4 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import java.util.Iterator;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2010-04-09 19:35:58.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: XYLayoutUtility.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.1 $  $Date: 2005/05/11 19:01:26 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.layouts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2010-04-09 19:35:58.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: EditPartRunnable.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.1 $  $Date: 2005/06/15 20:19:34 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.parts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2009-12-11 18:32:20.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2010-04-09 19:35:58.000000000 -0400
  @@ -9,7 +9,7 @@
    *     Soyatec - initial API and implementation
    *******************************************************************************/
   /*
  - * $RCSfile: IVisualInfo.java,v $ $Revision: 1.3 $ $Date: 2009/12/11 23:32:20 $
  + * $RCSfile: IVisualInfo.java,v $ $Revision: 1.2 $ $Date: 2009/12/11 22:14:35 $
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.visuals;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-12-11 17:14:10.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2010-04-09 19:35:58.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.2 $  $Date: 2009/12/11 22:14:10 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:37:22 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.macosx;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-12-22 10:40:54.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2010-04-09 19:35:58.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.3 $  $Date: 2009/12/22 15:40:54 $ 
  + *  $Revision: 1.2 $  $Date: 2009/12/11 22:14:10 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-12-22 10:40:54.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2010-04-09 19:35:58.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.3 $  $Date: 2009/12/22 15:40:54 $ 
  + *  $Revision: 1.2 $  $Date: 2009/12/11 22:14:10 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix.bits64;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.tools.ui.palette/build.properties	2009-12-03 15:38:23.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.tools.ui.palette/build.properties	2010-04-09 19:35:58.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.1 2009/12/03 20:38:23 yvyang Exp $
  +# $Id$
   
   bin.includes = .,\
                  META-INF/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.tools.ui.palette/plugin.properties	2009-12-03 15:38:23.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.tools.ui.palette/plugin.properties	2010-04-09 19:35:58.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.1 2009/12/03 20:38:23 yvyang Exp $
  +# $Id$
   
   pluginName = Palette Model (Incubation)
   providerName = Eclipse.org
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/CompoundInitializer.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/CompoundInitializer.java	2010-03-16 16:44:28.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/CompoundInitializer.java	2010-04-09 19:35:58.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: CompoundInitializer.java,v 1.2 2010/03/16 20:44:28 yvyang Exp $
  + * $Id: CompoundInitializer.java,v 1.1 2010/03/13 10:59:47 yvyang Exp $
    */
   package org.eclipse.e4.xwt.tools.ui.palette;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/Initializer.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/Initializer.java	2010-03-16 16:44:28.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/Initializer.java	2010-04-09 19:35:58.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: Initializer.java,v 1.4 2010/03/16 20:44:28 yvyang Exp $
  + * $Id$
    */
   package org.eclipse.e4.xwt.tools.ui.palette;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/CompoundInitializerImpl.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/CompoundInitializerImpl.java	2010-03-16 16:44:28.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/CompoundInitializerImpl.java	2010-04-09 19:35:58.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: CompoundInitializerImpl.java,v 1.2 2010/03/16 20:44:28 yvyang Exp $
  + * $Id: CompoundInitializerImpl.java,v 1.1 2010/03/13 10:59:47 yvyang Exp $
    */
   package org.eclipse.e4.xwt.tools.ui.palette.impl;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/InitializerImpl.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/InitializerImpl.java	2010-03-16 16:44:28.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/InitializerImpl.java	2010-04-09 19:35:58.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: InitializerImpl.java,v 1.4 2010/03/16 20:44:28 yvyang Exp $
  + * $Id$
    */
   package org.eclipse.e4.xwt.tools.ui.palette.impl;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.xaml/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.tools.ui.xaml/build.properties	2009-12-03 15:39:32.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.tools.ui.xaml/build.properties	2010-04-09 19:35:58.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.1 2009/12/03 20:39:32 yvyang Exp $
  +# $Id$
   
   bin.includes = .,\
                  META-INF/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.xaml/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.tools.ui.xaml/plugin.properties	2009-12-03 15:39:32.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.tools.ui.xaml/plugin.properties	2010-04-09 19:35:58.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.1 2009/12/03 20:39:32 yvyang Exp $
  +# $Id$
   
   pluginName = XAML Model (Incubation)
   providerName = Eclipse.org
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.ui.workbench/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2009-07-02 08:56:18.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2010-04-09 19:35:58.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2009/07/02 12:56:18 yvyang Exp $
  +# $Id$
   
   bin.includes = .,\
                  model/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.vex/build.properties	2009-01-06 19:15:48.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.vex/build.properties	2010-04-09 19:35:58.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.1 2009/01/07 00:15:48 yvyang Exp $
  +# $Id: build.properties,v 1.2 2008/07/07 00:23:28 yyang Exp $
   
   bin.includes = .,\
                  src/model/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2009-07-01 15:48:11.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2010-04-09 19:35:58.000000000 -0400
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.2 2009/07/01 19:48:11 yvyang Exp $
  + $Id: plugin.xml,v 1.1 2009/01/07 00:15:47 yvyang Exp $
   -->
   
   <plugin>
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2009-02-02 19:32:19.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2010-04-09 19:35:58.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
  + *  $Revision: 1.9 $  $Date: 2005/12/05 22:10:14 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2009-12-22 10:40:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2010-04-09 19:35:58.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.7 $  $Date: 2009/12/22 15:40:57 $ 
  + *  $Revision: 1.6 $  $Date: 2009/12/02 16:13:57 $ 
    */
   package org.eclipse.e4.xwt.vex.swt;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-12-02 10:57:42.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2010-04-09 19:35:58.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.5 $  $Date: 2009/12/02 15:57:42 $ 
  + *  $Revision: 1.4 $  $Date: 2009/05/03 13:44:46 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.macosx;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-12-22 10:40:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2010-04-09 19:35:58.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.7 $  $Date: 2009/12/22 15:40:57 $ 
  + *  $Revision: 1.6 $  $Date: 2009/12/02 15:57:42 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-12-22 10:40:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M5/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2010-04-09 19:35:58.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.5 $  $Date: 2009/12/22 15:40:57 $ 
  + *  $Revision: 1.4 $  $Date: 2009/12/02 15:57:42 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix.bits64;
   
  
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M5/tests/org.eclipse.e4.xwt.emf.test/build.properties	2010-02-27 01:28:18.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M5/tests/org.eclipse.e4.xwt.emf.test/build.properties	2010-04-09 19:35:58.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.3 2010/02/27 06:28:18 yvyang Exp $
  +# $Id: build.properties,v 1.2 2009/07/07 13:09:57 pwebster Exp $
   
   bin.includes = .,\
                  src/model/,\
  
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M5/tests/org.eclipse.e4.xwt.emf.test/plugin.properties	2009-06-24 13:38:38.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M5/tests/org.eclipse.e4.xwt.emf.test/plugin.properties	2010-04-09 19:35:58.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.2 2009/06/24 17:38:38 pwebster Exp $
  +# $Id: plugin.properties,v 1.1 2009/06/15 09:15:31 yvyang Exp $
   
   pluginName = Books Model (Incubation)
   providerName = www.eclipse.org
  
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-R1_0M5/tests/org.eclipse.e4.xwt.emf.test/plugin.xml	2010-02-27 01:28:19.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-R1_0M5/tests/org.eclipse.e4.xwt.emf.test/plugin.xml	2010-04-09 19:35:58.000000000 -0400
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.2 2010/02/27 06:28:19 yvyang Exp $
  + $Id: plugin.xml,v 1.1 2009/06/15 09:15:31 yvyang Exp $
   -->
   
   <plugin>
  
Verifying tag Root_model_tweaking_round3
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.ui.workbench/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-Root_model_tweaking_round3/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2009-07-02 08:56:18.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-Root_model_tweaking_round3/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2010-04-09 19:35:59.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2009/07/02 12:56:18 yvyang Exp $
  +# $Id$
   
   bin.includes = .,\
                  model/,\
  
Verifying tag v20090101-1930
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090101-1930/bundles/org.eclipse.e4.xwt.vex/build.properties	2009-01-06 19:15:48.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090101-1930/bundles/org.eclipse.e4.xwt.vex/build.properties	2009-01-07 12:09:11.000000000 -0500
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.1 2009/01/07 00:15:48 yvyang Exp $
  +# $Id: build.properties,v 1.2 2008/07/07 00:23:28 yyang Exp $
   
   bin.includes = .,\
                  src/model/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090101-1930/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2009-01-06 19:15:47.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090101-1930/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2009-01-07 12:09:11.000000000 -0500
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.1 2009/01/07 00:15:47 yvyang Exp $
  + $Id: plugin.xml,v 1.3 2008/07/06 02:11:51 yyang Exp $
   -->
   
   <plugin>
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090101-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2009-01-06 19:15:46.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090101-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2009-01-07 12:09:11.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/01/07 00:15:46 $ 
  + *  $Revision: 1.9 $  $Date: 2005/12/05 22:10:14 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090101-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2009-01-06 19:15:46.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090101-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2009-01-07 12:09:11.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/01/07 00:15:46 $ 
  + *  $Revision: 1.4 $  $Date: 2008/07/06 02:04:54 $ 
    */
   package org.eclipse.e4.xwt.vex.swt;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090101-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-01-06 19:15:49.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090101-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-01-07 12:09:11.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/01/07 00:15:49 $ 
  + *  $Revision: 1.2 $  $Date: 2008/07/06 02:04:54 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.macosx;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090101-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-01-06 19:15:49.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090101-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-01-07 12:09:11.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/01/07 00:15:49 $ 
  + *  $Revision: 1.6 $  $Date: 2008/07/06 02:04:54 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090101-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-01-06 19:15:47.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090101-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-01-07 12:09:11.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/01/07 00:15:47 $ 
  + *  $Revision: 1.3 $  $Date: 2008/07/06 02:04:54 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix.bits64;
   
  
Verifying tag v20090108-1930
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090108-1930/bundles/org.eclipse.e4.xwt.vex/build.properties	2009-01-06 19:15:48.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090108-1930/bundles/org.eclipse.e4.xwt.vex/build.properties	2009-01-08 14:29:03.000000000 -0500
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.1 2009/01/07 00:15:48 yvyang Exp $
  +# $Id: build.properties,v 1.2 2008/07/07 00:23:28 yyang Exp $
   
   bin.includes = .,\
                  src/model/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090108-1930/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2009-01-06 19:15:47.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090108-1930/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2009-01-08 14:29:03.000000000 -0500
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.1 2009/01/07 00:15:47 yvyang Exp $
  + $Id: plugin.xml,v 1.3 2008/07/06 02:11:51 yyang Exp $
   -->
   
   <plugin>
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090108-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2009-01-06 19:15:46.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090108-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2009-01-08 14:29:03.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/01/07 00:15:46 $ 
  + *  $Revision: 1.9 $  $Date: 2005/12/05 22:10:14 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090108-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2009-01-06 19:15:46.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090108-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2009-01-08 14:29:03.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/01/07 00:15:46 $ 
  + *  $Revision: 1.4 $  $Date: 2008/07/06 02:04:54 $ 
    */
   package org.eclipse.e4.xwt.vex.swt;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090108-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-01-06 19:15:49.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090108-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-01-08 14:29:03.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/01/07 00:15:49 $ 
  + *  $Revision: 1.2 $  $Date: 2008/07/06 02:04:54 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.macosx;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090108-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-01-06 19:15:49.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090108-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-01-08 14:29:03.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/01/07 00:15:49 $ 
  + *  $Revision: 1.6 $  $Date: 2008/07/06 02:04:54 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090108-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-01-06 19:15:47.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090108-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-01-08 14:29:03.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/01/07 00:15:47 $ 
  + *  $Revision: 1.3 $  $Date: 2008/07/06 02:04:54 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix.bits64;
   
  
Verifying tag v20090113-1430
Verifying tag v20090123-1000
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090123-1000/bundles/org.eclipse.e4.xwt.vex/build.properties	2009-01-06 19:15:48.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090123-1000/bundles/org.eclipse.e4.xwt.vex/build.properties	2009-01-23 08:57:51.000000000 -0500
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.1 2009/01/07 00:15:48 yvyang Exp $
  +# $Id: build.properties,v 1.2 2008/07/07 00:23:28 yyang Exp $
   
   bin.includes = .,\
                  src/model/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090123-1000/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2009-01-06 19:15:47.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090123-1000/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2009-01-23 08:57:51.000000000 -0500
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.1 2009/01/07 00:15:47 yvyang Exp $
  + $Id: plugin.xml,v 1.3 2008/07/06 02:11:51 yyang Exp $
   -->
   
   <plugin>
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090123-1000/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2009-01-06 19:15:46.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090123-1000/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2009-01-23 08:57:51.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/01/07 00:15:46 $ 
  + *  $Revision: 1.9 $  $Date: 2005/12/05 22:10:14 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090123-1000/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2009-01-06 19:15:46.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090123-1000/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2009-01-23 08:57:51.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/01/07 00:15:46 $ 
  + *  $Revision: 1.4 $  $Date: 2008/07/06 02:04:54 $ 
    */
   package org.eclipse.e4.xwt.vex.swt;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090123-1000/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-01-06 19:15:49.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090123-1000/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-01-23 08:57:51.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/01/07 00:15:49 $ 
  + *  $Revision: 1.2 $  $Date: 2008/07/06 02:04:54 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.macosx;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090123-1000/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-01-06 19:15:49.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090123-1000/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-01-23 08:57:51.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/01/07 00:15:49 $ 
  + *  $Revision: 1.6 $  $Date: 2008/07/06 02:04:54 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090123-1000/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-01-06 19:15:47.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090123-1000/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-01-23 08:57:51.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/01/07 00:15:47 $ 
  + *  $Revision: 1.3 $  $Date: 2008/07/06 02:04:54 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix.bits64;
   
  
Verifying tag v20090203-0830
Verifying tag v20090203-1930
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090203-1930/bundles/org.eclipse.e4.xwt.vex/build.properties	2009-01-06 19:15:48.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090203-1930/bundles/org.eclipse.e4.xwt.vex/build.properties	2009-02-02 19:57:24.000000000 -0500
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.1 2009/01/07 00:15:48 yvyang Exp $
  +# $Id: build.properties,v 1.2 2008/07/07 00:23:28 yyang Exp $
   
   bin.includes = .,\
                  src/model/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090203-1930/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2009-01-06 19:15:47.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090203-1930/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2009-02-02 19:57:24.000000000 -0500
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.1 2009/01/07 00:15:47 yvyang Exp $
  + $Id: plugin.xml,v 1.3 2008/07/06 02:11:51 yyang Exp $
   -->
   
   <plugin>
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090203-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2009-02-02 19:32:19.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090203-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2009-02-02 19:57:24.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
  + *  $Revision: 1.9 $  $Date: 2005/12/05 22:10:14 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090203-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2009-02-02 19:32:19.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090203-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2009-02-02 19:57:24.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
  + *  $Revision: 1.4 $  $Date: 2008/07/06 02:04:54 $ 
    */
   package org.eclipse.e4.xwt.vex.swt;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090203-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-02-02 19:32:19.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090203-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-02-02 19:57:24.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
  + *  $Revision: 1.2 $  $Date: 2008/07/06 02:04:54 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.macosx;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090203-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-02-02 19:32:19.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090203-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-02-02 19:57:24.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
  + *  $Revision: 1.6 $  $Date: 2008/07/06 02:04:54 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090203-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-01-06 19:15:47.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090203-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-02-02 19:57:24.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/01/07 00:15:47 $ 
  + *  $Revision: 1.3 $  $Date: 2008/07/06 02:04:54 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix.bits64;
   
  
Verifying tag v20090204-1930
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090204-1930/bundles/org.eclipse.e4.xwt.vex/build.properties	2009-01-06 19:15:48.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090204-1930/bundles/org.eclipse.e4.xwt.vex/build.properties	2009-02-04 10:44:11.000000000 -0500
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.1 2009/01/07 00:15:48 yvyang Exp $
  +# $Id: build.properties,v 1.2 2008/07/07 00:23:28 yyang Exp $
   
   bin.includes = .,\
                  src/model/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090204-1930/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2009-01-06 19:15:47.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090204-1930/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2009-02-04 10:44:11.000000000 -0500
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.1 2009/01/07 00:15:47 yvyang Exp $
  + $Id: plugin.xml,v 1.3 2008/07/06 02:11:51 yyang Exp $
   -->
   
   <plugin>
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090204-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2009-02-02 19:32:19.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090204-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2009-02-04 10:44:11.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
  + *  $Revision: 1.9 $  $Date: 2005/12/05 22:10:14 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090204-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2009-02-02 19:32:19.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090204-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2009-02-04 10:44:11.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
  + *  $Revision: 1.4 $  $Date: 2008/07/06 02:04:54 $ 
    */
   package org.eclipse.e4.xwt.vex.swt;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090204-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-02-02 19:32:19.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090204-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-02-04 10:44:11.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
  + *  $Revision: 1.2 $  $Date: 2008/07/06 02:04:54 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.macosx;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090204-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-02-02 19:32:19.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090204-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-02-04 10:44:11.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
  + *  $Revision: 1.6 $  $Date: 2008/07/06 02:04:54 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090204-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-01-06 19:15:47.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090204-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-02-04 10:44:11.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/01/07 00:15:47 $ 
  + *  $Revision: 1.3 $  $Date: 2008/07/06 02:04:54 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix.bits64;
   
  
Verifying tag v20090212-1930
Verifying tag v20090226-1500
Verifying tag v20090305-1930
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090305-1930/bundles/org.eclipse.e4.xwt.vex/build.properties	2009-01-06 19:15:48.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090305-1930/bundles/org.eclipse.e4.xwt.vex/build.properties	2009-03-03 19:51:06.000000000 -0500
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.1 2009/01/07 00:15:48 yvyang Exp $
  +# $Id: build.properties,v 1.2 2008/07/07 00:23:28 yyang Exp $
   
   bin.includes = .,\
                  src/model/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090305-1930/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2009-01-06 19:15:47.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090305-1930/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2009-03-03 19:51:06.000000000 -0500
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.1 2009/01/07 00:15:47 yvyang Exp $
  + $Id: plugin.xml,v 1.3 2008/07/06 02:11:51 yyang Exp $
   -->
   
   <plugin>
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090305-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2009-02-02 19:32:19.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090305-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2009-03-03 19:51:06.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
  + *  $Revision: 1.9 $  $Date: 2005/12/05 22:10:14 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090305-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2009-02-02 19:32:19.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090305-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2009-03-03 19:51:06.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
  + *  $Revision: 1.4 $  $Date: 2008/07/06 02:04:54 $ 
    */
   package org.eclipse.e4.xwt.vex.swt;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090305-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-02-02 19:32:19.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090305-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-03-03 19:51:06.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
  + *  $Revision: 1.2 $  $Date: 2008/07/06 02:04:54 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.macosx;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090305-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-02-02 19:32:19.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090305-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-03-03 19:51:06.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
  + *  $Revision: 1.6 $  $Date: 2008/07/06 02:04:54 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090305-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-03-01 10:27:11.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090305-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-03-03 19:51:06.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.2 $  $Date: 2009/03/01 15:27:11 $ 
  + *  $Revision: 1.3 $  $Date: 2008/07/06 02:04:54 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix.bits64;
   
  
Verifying tag v20090311-0900
Verifying tag v20090311-1000
Verifying tag v20090312-1930
Verifying tag v20090317-1930
Verifying tag v20090401-1130
Verifying tag v20090402-1930
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090402-1930/bundles/org.eclipse.e4.xwt.vex/build.properties	2009-01-06 19:15:48.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090402-1930/bundles/org.eclipse.e4.xwt.vex/build.properties	2009-04-01 12:49:55.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.1 2009/01/07 00:15:48 yvyang Exp $
  +# $Id: build.properties,v 1.2 2008/07/07 00:23:28 yyang Exp $
   
   bin.includes = .,\
                  src/model/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090402-1930/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2009-01-06 19:15:47.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090402-1930/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2009-04-01 12:49:55.000000000 -0400
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.1 2009/01/07 00:15:47 yvyang Exp $
  + $Id: plugin.xml,v 1.3 2008/07/06 02:11:51 yyang Exp $
   -->
   
   <plugin>
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090402-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2009-02-02 19:32:19.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090402-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2009-04-01 12:49:55.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
  + *  $Revision: 1.9 $  $Date: 2005/12/05 22:10:14 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090402-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2009-02-02 19:32:19.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090402-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2009-04-01 12:49:55.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
  + *  $Revision: 1.4 $  $Date: 2008/07/06 02:04:54 $ 
    */
   package org.eclipse.e4.xwt.vex.swt;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090402-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-02-02 19:32:19.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090402-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-04-01 12:49:55.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
  + *  $Revision: 1.2 $  $Date: 2008/07/06 02:04:54 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.macosx;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090402-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-02-02 19:32:19.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090402-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-04-01 12:49:55.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
  + *  $Revision: 1.6 $  $Date: 2008/07/06 02:04:54 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090402-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-03-01 10:27:11.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090402-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-04-01 12:49:55.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.2 $  $Date: 2009/03/01 15:27:11 $ 
  + *  $Revision: 1.3 $  $Date: 2008/07/06 02:04:54 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix.bits64;
   
  
Verifying tag v20090409-1930
Verifying tag v20090507-0845
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090507-0845/bundles/org.eclipse.e4.xwt.vex/build.properties	2009-01-06 19:15:48.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090507-0845/bundles/org.eclipse.e4.xwt.vex/build.properties	2009-05-06 11:00:08.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.1 2009/01/07 00:15:48 yvyang Exp $
  +# $Id: build.properties,v 1.2 2008/07/07 00:23:28 yyang Exp $
   
   bin.includes = .,\
                  src/model/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090507-0845/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2009-01-06 19:15:47.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090507-0845/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2009-05-06 11:00:08.000000000 -0400
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.1 2009/01/07 00:15:47 yvyang Exp $
  + $Id: plugin.xml,v 1.3 2008/07/06 02:11:51 yyang Exp $
   -->
   
   <plugin>
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090507-0845/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2009-02-02 19:32:19.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090507-0845/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2009-05-06 11:00:08.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
  + *  $Revision: 1.9 $  $Date: 2005/12/05 22:10:14 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090507-0845/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2009-05-03 09:44:46.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090507-0845/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2009-05-06 11:00:08.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.3 $  $Date: 2009/05/03 13:44:46 $ 
  + *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
    */
   package org.eclipse.e4.xwt.vex.swt;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090507-0845/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-05-03 09:44:46.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090507-0845/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-05-06 11:00:08.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.4 $  $Date: 2009/05/03 13:44:46 $ 
  + *  $Revision: 1.3 $  $Date: 2009/05/03 13:32:15 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.macosx;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090507-0845/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-05-03 09:44:46.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090507-0845/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-05-06 11:00:08.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.5 $  $Date: 2009/05/03 13:44:46 $ 
  + *  $Revision: 1.4 $  $Date: 2009/05/03 13:32:15 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090507-0845/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-05-01 18:15:15.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090507-0845/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-05-06 11:00:08.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.3 $  $Date: 2009/05/01 22:15:15 $ 
  + *  $Revision: 1.2 $  $Date: 2009/03/01 15:27:11 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix.bits64;
   
  
Verifying tag v20090521-1930
Verifying tag v20090528-1930
Verifying tag v20090605-1100
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090605-1100/bundles/org.eclipse.e4.xwt.vex/build.properties	2009-01-06 19:15:48.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090605-1100/bundles/org.eclipse.e4.xwt.vex/build.properties	2009-06-04 19:16:00.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.1 2009/01/07 00:15:48 yvyang Exp $
  +# $Id: build.properties,v 1.2 2008/07/07 00:23:28 yyang Exp $
   
   bin.includes = .,\
                  src/model/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090605-1100/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2009-01-06 19:15:47.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090605-1100/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2009-06-04 19:16:00.000000000 -0400
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.1 2009/01/07 00:15:47 yvyang Exp $
  + $Id: plugin.xml,v 1.3 2008/07/06 02:11:51 yyang Exp $
   -->
   
   <plugin>
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090605-1100/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2009-02-02 19:32:19.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090605-1100/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2009-06-04 19:16:00.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
  + *  $Revision: 1.9 $  $Date: 2005/12/05 22:10:14 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090605-1100/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2009-05-31 20:05:01.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090605-1100/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2009-06-04 19:16:00.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.4 $  $Date: 2009/06/01 00:05:01 $ 
  + *  $Revision: 1.3 $  $Date: 2009/05/03 13:44:46 $ 
    */
   package org.eclipse.e4.xwt.vex.swt;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090605-1100/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-05-03 09:44:46.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090605-1100/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-06-04 19:16:00.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.4 $  $Date: 2009/05/03 13:44:46 $ 
  + *  $Revision: 1.3 $  $Date: 2009/05/03 13:32:15 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.macosx;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090605-1100/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-05-03 09:44:46.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090605-1100/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-06-04 19:16:00.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.5 $  $Date: 2009/05/03 13:44:46 $ 
  + *  $Revision: 1.4 $  $Date: 2009/05/03 13:32:15 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090605-1100/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-05-01 18:15:15.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090605-1100/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-06-04 19:16:00.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.3 $  $Date: 2009/05/01 22:15:15 $ 
  + *  $Revision: 1.2 $  $Date: 2009/03/01 15:27:11 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix.bits64;
   
  
Verifying tag v20090609-1530
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090609-1530/bundles/org.eclipse.e4.xwt.vex/build.properties	2009-01-06 19:15:48.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090609-1530/bundles/org.eclipse.e4.xwt.vex/build.properties	2009-06-09 15:02:45.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.1 2009/01/07 00:15:48 yvyang Exp $
  +# $Id: build.properties,v 1.2 2008/07/07 00:23:28 yyang Exp $
   
   bin.includes = .,\
                  src/model/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090609-1530/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2009-01-06 19:15:47.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090609-1530/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2009-06-09 15:02:45.000000000 -0400
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.1 2009/01/07 00:15:47 yvyang Exp $
  + $Id: plugin.xml,v 1.3 2008/07/06 02:11:51 yyang Exp $
   -->
   
   <plugin>
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090609-1530/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2009-02-02 19:32:19.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090609-1530/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2009-06-09 15:02:45.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
  + *  $Revision: 1.9 $  $Date: 2005/12/05 22:10:14 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090609-1530/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2009-05-31 20:05:01.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090609-1530/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2009-06-09 15:02:45.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.4 $  $Date: 2009/06/01 00:05:01 $ 
  + *  $Revision: 1.3 $  $Date: 2009/05/03 13:44:46 $ 
    */
   package org.eclipse.e4.xwt.vex.swt;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090609-1530/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-05-03 09:44:46.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090609-1530/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-06-09 15:02:45.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.4 $  $Date: 2009/05/03 13:44:46 $ 
  + *  $Revision: 1.3 $  $Date: 2009/05/03 13:32:15 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.macosx;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090609-1530/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-05-03 09:44:46.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090609-1530/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-06-09 15:02:45.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.5 $  $Date: 2009/05/03 13:44:46 $ 
  + *  $Revision: 1.4 $  $Date: 2009/05/03 13:32:15 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090609-1530/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-05-01 18:15:15.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090609-1530/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-06-09 15:02:45.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.3 $  $Date: 2009/05/01 22:15:15 $ 
  + *  $Revision: 1.2 $  $Date: 2009/03/01 15:27:11 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix.bits64;
   
  
Verifying tag v20090610-0930
Verifying tag v20090612-1930
Verifying tag v20090615-1930
Verifying tag v20090616-1500
Verifying tag v20090619-1530
Verifying tag v20090622-1500
Verifying tag v20090624-1330
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090624-1330/tests/org.eclipse.e4.xwt.emf.test/build.properties	2009-06-15 05:15:31.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090624-1330/tests/org.eclipse.e4.xwt.emf.test/build.properties	2009-06-24 13:38:39.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.1 2009/06/15 09:15:31 yvyang Exp $
  +# $Id$
   
   bin.includes = .,\
                  model/,\
  
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090624-1330/tests/org.eclipse.e4.xwt.emf.test/plugin.properties	2009-06-24 13:38:38.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090624-1330/tests/org.eclipse.e4.xwt.emf.test/plugin.properties	2009-06-24 13:38:39.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.2 2009/06/24 17:38:38 pwebster Exp $
  +# $Id: plugin.properties,v 1.1 2009/06/15 09:15:31 yvyang Exp $
   
   pluginName = Books Model (Incubation)
   providerName = www.eclipse.org
  
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090624-1330/tests/org.eclipse.e4.xwt.emf.test/plugin.xml	2009-06-15 05:15:31.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090624-1330/tests/org.eclipse.e4.xwt.emf.test/plugin.xml	2009-06-24 13:38:39.000000000 -0400
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.1 2009/06/15 09:15:31 yvyang Exp $
  + $Id$
   -->
   
   <plugin>
  
Verifying tag v20090626-1330
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090626-1330/tests/org.eclipse.e4.xwt.emf.test/build.properties	2009-06-15 05:15:31.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090626-1330/tests/org.eclipse.e4.xwt.emf.test/build.properties	2009-06-26 10:36:00.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.1 2009/06/15 09:15:31 yvyang Exp $
  +# $Id$
   
   bin.includes = .,\
                  model/,\
  
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090626-1330/tests/org.eclipse.e4.xwt.emf.test/plugin.properties	2009-06-24 13:38:38.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090626-1330/tests/org.eclipse.e4.xwt.emf.test/plugin.properties	2009-06-26 10:36:00.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.2 2009/06/24 17:38:38 pwebster Exp $
  +# $Id: plugin.properties,v 1.1 2009/06/15 09:15:31 yvyang Exp $
   
   pluginName = Books Model (Incubation)
   providerName = www.eclipse.org
  
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090626-1330/tests/org.eclipse.e4.xwt.emf.test/plugin.xml	2009-06-15 05:15:31.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090626-1330/tests/org.eclipse.e4.xwt.emf.test/plugin.xml	2009-06-26 10:36:00.000000000 -0400
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.1 2009/06/15 09:15:31 yvyang Exp $
  + $Id$
   -->
   
   <plugin>
  
Verifying tag v20090629-1530
Verifying tag v20090630-1500
Verifying tag v20090706-1930
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090706-1930/bundles/org.eclipse.e4.xwt.vex/build.properties	2009-01-06 19:15:48.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090706-1930/bundles/org.eclipse.e4.xwt.vex/build.properties	2009-07-06 05:46:33.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.1 2009/01/07 00:15:48 yvyang Exp $
  +# $Id: build.properties,v 1.2 2008/07/07 00:23:28 yyang Exp $
   
   bin.includes = .,\
                  src/model/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090706-1930/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2009-07-01 15:48:11.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090706-1930/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2009-07-06 05:46:33.000000000 -0400
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.2 2009/07/01 19:48:11 yvyang Exp $
  + $Id: plugin.xml,v 1.1 2009/01/07 00:15:47 yvyang Exp $
   -->
   
   <plugin>
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090706-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2009-02-02 19:32:19.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090706-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2009-07-06 05:46:33.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
  + *  $Revision: 1.9 $  $Date: 2005/12/05 22:10:14 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090706-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2009-05-31 20:05:01.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090706-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2009-07-06 05:46:33.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.4 $  $Date: 2009/06/01 00:05:01 $ 
  + *  $Revision: 1.3 $  $Date: 2009/05/03 13:44:46 $ 
    */
   package org.eclipse.e4.xwt.vex.swt;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090706-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-05-03 09:44:46.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090706-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-07-06 05:46:33.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.4 $  $Date: 2009/05/03 13:44:46 $ 
  + *  $Revision: 1.3 $  $Date: 2009/05/03 13:32:15 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.macosx;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090706-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-05-03 09:44:46.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090706-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-07-06 05:46:33.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.5 $  $Date: 2009/05/03 13:44:46 $ 
  + *  $Revision: 1.4 $  $Date: 2009/05/03 13:32:15 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090706-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-05-01 18:15:15.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090706-1930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-07-06 05:46:33.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.3 $  $Date: 2009/05/01 22:15:15 $ 
  + *  $Revision: 1.2 $  $Date: 2009/03/01 15:27:11 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix.bits64;
   
  
Verifying tag v20090707-0830
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090707-0830/tests/org.eclipse.e4.xwt.emf.test/build.properties	2009-07-07 09:09:57.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090707-0830/tests/org.eclipse.e4.xwt.emf.test/build.properties	2009-07-07 09:10:27.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2009/07/07 13:09:57 pwebster Exp $
  +# $Id: build.properties,v 1.1 2009/06/15 09:15:31 yvyang Exp $
   
   bin.includes = .,\
                  model/,\
  
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090707-0830/tests/org.eclipse.e4.xwt.emf.test/plugin.properties	2009-06-24 13:38:38.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090707-0830/tests/org.eclipse.e4.xwt.emf.test/plugin.properties	2009-07-07 09:10:27.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.2 2009/06/24 17:38:38 pwebster Exp $
  +# $Id: plugin.properties,v 1.1 2009/06/15 09:15:31 yvyang Exp $
   
   pluginName = Books Model (Incubation)
   providerName = www.eclipse.org
  
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090707-0830/tests/org.eclipse.e4.xwt.emf.test/plugin.xml	2009-06-15 05:15:31.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090707-0830/tests/org.eclipse.e4.xwt.emf.test/plugin.xml	2009-07-07 09:10:27.000000000 -0400
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.1 2009/06/15 09:15:31 yvyang Exp $
  + $Id$
   -->
   
   <plugin>
  
Verifying tag v20090707-1500
Verifying tag v20090710-1500
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090710-1500/bundles/org.eclipse.e4.xwt.vex/build.properties	2009-01-06 19:15:48.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090710-1500/bundles/org.eclipse.e4.xwt.vex/build.properties	2009-07-10 09:26:06.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.1 2009/01/07 00:15:48 yvyang Exp $
  +# $Id: build.properties,v 1.2 2008/07/07 00:23:28 yyang Exp $
   
   bin.includes = .,\
                  src/model/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090710-1500/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2009-07-01 15:48:11.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090710-1500/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2009-07-10 09:26:06.000000000 -0400
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.2 2009/07/01 19:48:11 yvyang Exp $
  + $Id: plugin.xml,v 1.1 2009/01/07 00:15:47 yvyang Exp $
   -->
   
   <plugin>
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090710-1500/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2009-02-02 19:32:19.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090710-1500/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2009-07-10 09:26:06.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
  + *  $Revision: 1.9 $  $Date: 2005/12/05 22:10:14 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090710-1500/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2009-05-31 20:05:01.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090710-1500/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2009-07-10 09:26:06.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.4 $  $Date: 2009/06/01 00:05:01 $ 
  + *  $Revision: 1.3 $  $Date: 2009/05/03 13:44:46 $ 
    */
   package org.eclipse.e4.xwt.vex.swt;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090710-1500/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-05-03 09:44:46.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090710-1500/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-07-10 09:26:06.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.4 $  $Date: 2009/05/03 13:44:46 $ 
  + *  $Revision: 1.3 $  $Date: 2009/05/03 13:32:15 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.macosx;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090710-1500/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-05-03 09:44:46.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090710-1500/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-07-10 09:26:06.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.5 $  $Date: 2009/05/03 13:44:46 $ 
  + *  $Revision: 1.4 $  $Date: 2009/05/03 13:32:15 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090710-1500/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-05-01 18:15:15.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090710-1500/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-07-10 09:26:06.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.3 $  $Date: 2009/05/01 22:15:15 $ 
  + *  $Revision: 1.2 $  $Date: 2009/03/01 15:27:11 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix.bits64;
   
  
Verifying tag v20090712-2130
Verifying tag v20090714-1930
Verifying tag v20090716-1930
Verifying tag v20090717-1400
Verifying tag v20090722-2100
Verifying tag v20090724-1500
Verifying tag v20090726-1130
Verifying tag v20090728-1430
Verifying tag v20090903-1500
Verifying tag v20090909-0900
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.ui.workbench/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090909-0900/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2009-07-02 08:56:18.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090909-0900/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2009-09-09 08:49:36.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2009/07/02 12:56:18 yvyang Exp $
  +# $Id$
   
   bin.includes = .,\
                  model/,\
  
Verifying tag v20090923-0800
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090923-0800/bundles/org.eclipse.e4.xwt.vex/build.properties	2009-01-06 19:15:48.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090923-0800/bundles/org.eclipse.e4.xwt.vex/build.properties	2009-09-23 08:03:13.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.1 2009/01/07 00:15:48 yvyang Exp $
  +# $Id: build.properties,v 1.2 2008/07/07 00:23:28 yyang Exp $
   
   bin.includes = .,\
                  src/model/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090923-0800/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2009-07-01 15:48:11.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090923-0800/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2009-09-23 08:03:13.000000000 -0400
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.2 2009/07/01 19:48:11 yvyang Exp $
  + $Id: plugin.xml,v 1.1 2009/01/07 00:15:47 yvyang Exp $
   -->
   
   <plugin>
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090923-0800/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2009-02-02 19:32:19.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090923-0800/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2009-09-23 08:03:13.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
  + *  $Revision: 1.9 $  $Date: 2005/12/05 22:10:14 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090923-0800/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2009-05-31 20:05:01.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090923-0800/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2009-09-23 08:03:13.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.4 $  $Date: 2009/06/01 00:05:01 $ 
  + *  $Revision: 1.3 $  $Date: 2009/05/03 13:44:46 $ 
    */
   package org.eclipse.e4.xwt.vex.swt;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090923-0800/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-05-03 09:44:46.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090923-0800/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-09-23 08:03:13.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.4 $  $Date: 2009/05/03 13:44:46 $ 
  + *  $Revision: 1.3 $  $Date: 2009/05/03 13:32:15 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.macosx;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090923-0800/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-05-03 09:44:46.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090923-0800/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-09-23 08:03:13.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.5 $  $Date: 2009/05/03 13:44:46 $ 
  + *  $Revision: 1.4 $  $Date: 2009/05/03 13:32:15 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090923-0800/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-05-01 18:15:15.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090923-0800/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-09-23 08:03:13.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.3 $  $Date: 2009/05/01 22:15:15 $ 
  + *  $Revision: 1.2 $  $Date: 2009/03/01 15:27:11 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix.bits64;
   
  
Verifying tag v20090923-0830
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090923-0830/bundles/org.eclipse.e4.xwt.vex/build.properties	2009-01-06 19:15:48.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090923-0830/bundles/org.eclipse.e4.xwt.vex/build.properties	2009-09-23 09:06:35.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.1 2009/01/07 00:15:48 yvyang Exp $
  +# $Id: build.properties,v 1.2 2008/07/07 00:23:28 yyang Exp $
   
   bin.includes = .,\
                  src/model/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090923-0830/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2009-07-01 15:48:11.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090923-0830/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2009-09-23 09:06:35.000000000 -0400
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.2 2009/07/01 19:48:11 yvyang Exp $
  + $Id: plugin.xml,v 1.1 2009/01/07 00:15:47 yvyang Exp $
   -->
   
   <plugin>
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090923-0830/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2009-02-02 19:32:19.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090923-0830/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2009-09-23 09:06:35.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
  + *  $Revision: 1.9 $  $Date: 2005/12/05 22:10:14 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090923-0830/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2009-05-31 20:05:01.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090923-0830/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2009-09-23 09:06:35.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.4 $  $Date: 2009/06/01 00:05:01 $ 
  + *  $Revision: 1.3 $  $Date: 2009/05/03 13:44:46 $ 
    */
   package org.eclipse.e4.xwt.vex.swt;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090923-0830/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-05-03 09:44:46.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090923-0830/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-09-23 09:06:35.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.4 $  $Date: 2009/05/03 13:44:46 $ 
  + *  $Revision: 1.3 $  $Date: 2009/05/03 13:32:15 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.macosx;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090923-0830/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-05-03 09:44:46.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090923-0830/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-09-23 09:06:35.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.5 $  $Date: 2009/05/03 13:44:46 $ 
  + *  $Revision: 1.4 $  $Date: 2009/05/03 13:32:15 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090923-0830/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-05-01 18:15:15.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090923-0830/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-09-23 09:06:35.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.3 $  $Date: 2009/05/01 22:15:15 $ 
  + *  $Revision: 1.2 $  $Date: 2009/03/01 15:27:11 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix.bits64;
   
  
Verifying tag v20090923-0930
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090923-0930/bundles/org.eclipse.e4.xwt.vex/build.properties	2009-01-06 19:15:48.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090923-0930/bundles/org.eclipse.e4.xwt.vex/build.properties	2009-09-23 09:25:33.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.1 2009/01/07 00:15:48 yvyang Exp $
  +# $Id: build.properties,v 1.2 2008/07/07 00:23:28 yyang Exp $
   
   bin.includes = .,\
                  src/model/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090923-0930/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2009-07-01 15:48:11.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090923-0930/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2009-09-23 09:25:33.000000000 -0400
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.2 2009/07/01 19:48:11 yvyang Exp $
  + $Id: plugin.xml,v 1.1 2009/01/07 00:15:47 yvyang Exp $
   -->
   
   <plugin>
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090923-0930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2009-02-02 19:32:19.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090923-0930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2009-09-23 09:25:33.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
  + *  $Revision: 1.9 $  $Date: 2005/12/05 22:10:14 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090923-0930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2009-05-31 20:05:01.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090923-0930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2009-09-23 09:25:33.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.4 $  $Date: 2009/06/01 00:05:01 $ 
  + *  $Revision: 1.3 $  $Date: 2009/05/03 13:44:46 $ 
    */
   package org.eclipse.e4.xwt.vex.swt;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090923-0930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-05-03 09:44:46.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090923-0930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-09-23 09:25:33.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.4 $  $Date: 2009/05/03 13:44:46 $ 
  + *  $Revision: 1.3 $  $Date: 2009/05/03 13:32:15 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.macosx;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090923-0930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-05-03 09:44:46.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090923-0930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-09-23 09:25:33.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.5 $  $Date: 2009/05/03 13:44:46 $ 
  + *  $Revision: 1.4 $  $Date: 2009/05/03 13:32:15 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20090923-0930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-05-01 18:15:15.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20090923-0930/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-09-23 09:25:33.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.3 $  $Date: 2009/05/01 22:15:15 $ 
  + *  $Revision: 1.2 $  $Date: 2009/03/01 15:27:11 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix.bits64;
   
  
Verifying tag v20091009-1130
Verifying tag v20091009-1415
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091009-1415/bundles/org.eclipse.e4.xwt.vex/build.properties	2009-01-06 19:15:48.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091009-1415/bundles/org.eclipse.e4.xwt.vex/build.properties	2009-10-09 13:57:53.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.1 2009/01/07 00:15:48 yvyang Exp $
  +# $Id: build.properties,v 1.2 2008/07/07 00:23:28 yyang Exp $
   
   bin.includes = .,\
                  src/model/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091009-1415/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2009-07-01 15:48:11.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091009-1415/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2009-10-09 13:57:53.000000000 -0400
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.2 2009/07/01 19:48:11 yvyang Exp $
  + $Id: plugin.xml,v 1.1 2009/01/07 00:15:47 yvyang Exp $
   -->
   
   <plugin>
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091009-1415/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2009-02-02 19:32:19.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091009-1415/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2009-10-09 13:57:53.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
  + *  $Revision: 1.9 $  $Date: 2005/12/05 22:10:14 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091009-1415/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2009-05-31 20:05:01.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091009-1415/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2009-10-09 13:57:53.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.4 $  $Date: 2009/06/01 00:05:01 $ 
  + *  $Revision: 1.3 $  $Date: 2009/05/03 13:44:46 $ 
    */
   package org.eclipse.e4.xwt.vex.swt;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091009-1415/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-05-03 09:44:46.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091009-1415/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-10-09 13:57:53.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.4 $  $Date: 2009/05/03 13:44:46 $ 
  + *  $Revision: 1.3 $  $Date: 2009/05/03 13:32:15 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.macosx;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091009-1415/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-05-03 09:44:46.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091009-1415/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-10-09 13:57:53.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.5 $  $Date: 2009/05/03 13:44:46 $ 
  + *  $Revision: 1.4 $  $Date: 2009/05/03 13:32:15 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091009-1415/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-05-01 18:15:15.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091009-1415/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-10-09 13:57:53.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.3 $  $Date: 2009/05/01 22:15:15 $ 
  + *  $Revision: 1.2 $  $Date: 2009/03/01 15:27:11 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix.bits64;
   
  
Verifying tag v20091015-1330
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.ui.workbench/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091015-1330/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2009-07-02 08:56:18.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091015-1330/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2009-10-13 22:30:21.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2009/07/02 12:56:18 yvyang Exp $
  +# $Id$
   
   bin.includes = .,\
                  model/,\
  
Verifying tag v20091016-1430
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091016-1430/tests/org.eclipse.e4.xwt.emf.test/build.properties	2009-07-07 09:09:57.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091016-1430/tests/org.eclipse.e4.xwt.emf.test/build.properties	2009-10-16 12:06:30.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2009/07/07 13:09:57 pwebster Exp $
  +# $Id: build.properties,v 1.1 2009/06/15 09:15:31 yvyang Exp $
   
   bin.includes = .,\
                  model/,\
  
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091016-1430/tests/org.eclipse.e4.xwt.emf.test/plugin.properties	2009-06-24 13:38:38.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091016-1430/tests/org.eclipse.e4.xwt.emf.test/plugin.properties	2009-10-16 12:06:30.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.2 2009/06/24 17:38:38 pwebster Exp $
  +# $Id: plugin.properties,v 1.1 2009/06/15 09:15:31 yvyang Exp $
   
   pluginName = Books Model (Incubation)
   providerName = www.eclipse.org
  
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091016-1430/tests/org.eclipse.e4.xwt.emf.test/plugin.xml	2009-06-15 05:15:31.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091016-1430/tests/org.eclipse.e4.xwt.emf.test/plugin.xml	2009-10-16 12:06:30.000000000 -0400
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.1 2009/06/15 09:15:31 yvyang Exp $
  + $Id$
   -->
   
   <plugin>
  
Verifying tag v20091022-1300
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.ui.workbench/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091022-1300/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2009-07-02 08:56:18.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091022-1300/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2009-10-19 15:37:02.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2009/07/02 12:56:18 yvyang Exp $
  +# $Id$
   
   bin.includes = .,\
                  model/,\
  
Verifying tag v20091029-1230
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.ui.workbench/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091029-1230/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2009-07-02 08:56:18.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091029-1230/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2009-10-29 12:22:37.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2009/07/02 12:56:18 yvyang Exp $
  +# $Id$
   
   bin.includes = .,\
                  model/,\
  
Verifying tag v20091105-1400
Verifying tag v20091110-1400
Verifying tag v20091112-1600
Verifying tag v20091115-2130
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091115-2130/bundles/org.eclipse.e4.xwt.vex/build.properties	2009-01-06 19:15:48.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091115-2130/bundles/org.eclipse.e4.xwt.vex/build.properties	2009-11-15 20:32:52.000000000 -0500
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.1 2009/01/07 00:15:48 yvyang Exp $
  +# $Id: build.properties,v 1.2 2008/07/07 00:23:28 yyang Exp $
   
   bin.includes = .,\
                  src/model/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091115-2130/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2009-07-01 15:48:11.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091115-2130/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2009-11-15 20:32:52.000000000 -0500
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.2 2009/07/01 19:48:11 yvyang Exp $
  + $Id: plugin.xml,v 1.1 2009/01/07 00:15:47 yvyang Exp $
   -->
   
   <plugin>
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091115-2130/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2009-02-02 19:32:19.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091115-2130/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2009-11-15 20:32:52.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
  + *  $Revision: 1.9 $  $Date: 2005/12/05 22:10:14 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091115-2130/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2009-05-31 20:05:01.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091115-2130/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2009-11-15 20:32:52.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.4 $  $Date: 2009/06/01 00:05:01 $ 
  + *  $Revision: 1.3 $  $Date: 2009/05/03 13:44:46 $ 
    */
   package org.eclipse.e4.xwt.vex.swt;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091115-2130/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-05-03 09:44:46.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091115-2130/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-11-15 20:32:52.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.4 $  $Date: 2009/05/03 13:44:46 $ 
  + *  $Revision: 1.3 $  $Date: 2009/05/03 13:32:15 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.macosx;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091115-2130/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-05-03 09:44:46.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091115-2130/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-11-15 20:32:52.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.5 $  $Date: 2009/05/03 13:44:46 $ 
  + *  $Revision: 1.4 $  $Date: 2009/05/03 13:32:15 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091115-2130/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-05-01 18:15:15.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091115-2130/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-11-15 20:32:52.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.3 $  $Date: 2009/05/01 22:15:15 $ 
  + *  $Revision: 1.2 $  $Date: 2009/03/01 15:27:11 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix.bits64;
   
  
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091115-2130/tests/org.eclipse.e4.xwt.emf.test/build.properties	2009-07-07 09:09:57.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091115-2130/tests/org.eclipse.e4.xwt.emf.test/build.properties	2009-11-15 20:32:52.000000000 -0500
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2009/07/07 13:09:57 pwebster Exp $
  +# $Id: build.properties,v 1.1 2009/06/15 09:15:31 yvyang Exp $
   
   bin.includes = .,\
                  model/,\
  
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091115-2130/tests/org.eclipse.e4.xwt.emf.test/plugin.properties	2009-06-24 13:38:38.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091115-2130/tests/org.eclipse.e4.xwt.emf.test/plugin.properties	2009-11-15 20:32:52.000000000 -0500
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.2 2009/06/24 17:38:38 pwebster Exp $
  +# $Id: plugin.properties,v 1.1 2009/06/15 09:15:31 yvyang Exp $
   
   pluginName = Books Model (Incubation)
   providerName = www.eclipse.org
  
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091115-2130/tests/org.eclipse.e4.xwt.emf.test/plugin.xml	2009-06-15 05:15:31.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091115-2130/tests/org.eclipse.e4.xwt.emf.test/plugin.xml	2009-11-15 20:32:52.000000000 -0500
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.1 2009/06/15 09:15:31 yvyang Exp $
  + $Id$
   -->
   
   <plugin>
  
Verifying tag v20091116-2030
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091116-2030/bundles/org.eclipse.e4.xwt.vex/build.properties	2009-01-06 19:15:48.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091116-2030/bundles/org.eclipse.e4.xwt.vex/build.properties	2009-11-16 19:23:32.000000000 -0500
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.1 2009/01/07 00:15:48 yvyang Exp $
  +# $Id: build.properties,v 1.2 2008/07/07 00:23:28 yyang Exp $
   
   bin.includes = .,\
                  src/model/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091116-2030/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2009-07-01 15:48:11.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091116-2030/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2009-11-16 19:23:32.000000000 -0500
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.2 2009/07/01 19:48:11 yvyang Exp $
  + $Id: plugin.xml,v 1.1 2009/01/07 00:15:47 yvyang Exp $
   -->
   
   <plugin>
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091116-2030/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2009-02-02 19:32:19.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091116-2030/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2009-11-16 19:23:32.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
  + *  $Revision: 1.9 $  $Date: 2005/12/05 22:10:14 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091116-2030/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2009-05-31 20:05:01.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091116-2030/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2009-11-16 19:23:32.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.4 $  $Date: 2009/06/01 00:05:01 $ 
  + *  $Revision: 1.3 $  $Date: 2009/05/03 13:44:46 $ 
    */
   package org.eclipse.e4.xwt.vex.swt;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091116-2030/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-05-03 09:44:46.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091116-2030/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-11-16 19:23:32.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.4 $  $Date: 2009/05/03 13:44:46 $ 
  + *  $Revision: 1.3 $  $Date: 2009/05/03 13:32:15 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.macosx;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091116-2030/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-05-03 09:44:46.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091116-2030/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-11-16 19:23:32.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.5 $  $Date: 2009/05/03 13:44:46 $ 
  + *  $Revision: 1.4 $  $Date: 2009/05/03 13:32:15 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091116-2030/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-05-01 18:15:15.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091116-2030/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-11-16 19:23:32.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.3 $  $Date: 2009/05/01 22:15:15 $ 
  + *  $Revision: 1.2 $  $Date: 2009/03/01 15:27:11 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix.bits64;
   
  
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091116-2030/tests/org.eclipse.e4.xwt.emf.test/build.properties	2009-07-07 09:09:57.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091116-2030/tests/org.eclipse.e4.xwt.emf.test/build.properties	2009-11-16 19:23:32.000000000 -0500
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2009/07/07 13:09:57 pwebster Exp $
  +# $Id: build.properties,v 1.1 2009/06/15 09:15:31 yvyang Exp $
   
   bin.includes = .,\
                  model/,\
  
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091116-2030/tests/org.eclipse.e4.xwt.emf.test/plugin.properties	2009-06-24 13:38:38.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091116-2030/tests/org.eclipse.e4.xwt.emf.test/plugin.properties	2009-11-16 19:23:32.000000000 -0500
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.2 2009/06/24 17:38:38 pwebster Exp $
  +# $Id: plugin.properties,v 1.1 2009/06/15 09:15:31 yvyang Exp $
   
   pluginName = Books Model (Incubation)
   providerName = www.eclipse.org
  
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091116-2030/tests/org.eclipse.e4.xwt.emf.test/plugin.xml	2009-06-15 05:15:31.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091116-2030/tests/org.eclipse.e4.xwt.emf.test/plugin.xml	2009-11-16 19:23:32.000000000 -0500
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.1 2009/06/15 09:15:31 yvyang Exp $
  + $Id$
   -->
   
   <plugin>
  
Verifying tag v20091116-2130
Verifying tag v20091118-0830
Verifying tag v20091118-1900
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091118-1900/tests/org.eclipse.e4.xwt.emf.test/build.properties	2009-07-07 09:09:57.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091118-1900/tests/org.eclipse.e4.xwt.emf.test/build.properties	2009-11-18 16:11:04.000000000 -0500
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2009/07/07 13:09:57 pwebster Exp $
  +# $Id: build.properties,v 1.1 2009/06/15 09:15:31 yvyang Exp $
   
   bin.includes = .,\
                  model/,\
  
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091118-1900/tests/org.eclipse.e4.xwt.emf.test/plugin.properties	2009-06-24 13:38:38.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091118-1900/tests/org.eclipse.e4.xwt.emf.test/plugin.properties	2009-11-18 16:11:04.000000000 -0500
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.2 2009/06/24 17:38:38 pwebster Exp $
  +# $Id: plugin.properties,v 1.1 2009/06/15 09:15:31 yvyang Exp $
   
   pluginName = Books Model (Incubation)
   providerName = www.eclipse.org
  
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091118-1900/tests/org.eclipse.e4.xwt.emf.test/plugin.xml	2009-06-15 05:15:31.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091118-1900/tests/org.eclipse.e4.xwt.emf.test/plugin.xml	2009-11-18 16:11:04.000000000 -0500
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.1 2009/06/15 09:15:31 yvyang Exp $
  + $Id$
   -->
   
   <plugin>
  
Verifying tag v20091119-0800
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.ui.workbench/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091119-0800/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2009-07-02 08:56:18.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091119-0800/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2009-11-18 20:10:49.000000000 -0500
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2009/07/02 12:56:18 yvyang Exp $
  +# $Id$
   
   bin.includes = .,\
                  model/,\
  
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091119-0800/tests/org.eclipse.e4.xwt.emf.test/build.properties	2009-07-07 09:09:57.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091119-0800/tests/org.eclipse.e4.xwt.emf.test/build.properties	2009-11-18 20:10:49.000000000 -0500
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2009/07/07 13:09:57 pwebster Exp $
  +# $Id: build.properties,v 1.1 2009/06/15 09:15:31 yvyang Exp $
   
   bin.includes = .,\
                  model/,\
  
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091119-0800/tests/org.eclipse.e4.xwt.emf.test/plugin.properties	2009-06-24 13:38:38.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091119-0800/tests/org.eclipse.e4.xwt.emf.test/plugin.properties	2009-11-18 20:10:49.000000000 -0500
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.2 2009/06/24 17:38:38 pwebster Exp $
  +# $Id: plugin.properties,v 1.1 2009/06/15 09:15:31 yvyang Exp $
   
   pluginName = Books Model (Incubation)
   providerName = www.eclipse.org
  
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091119-0800/tests/org.eclipse.e4.xwt.emf.test/plugin.xml	2009-06-15 05:15:31.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091119-0800/tests/org.eclipse.e4.xwt.emf.test/plugin.xml	2009-11-18 20:10:49.000000000 -0500
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.1 2009/06/15 09:15:31 yvyang Exp $
  + $Id$
   -->
   
   <plugin>
  
Verifying tag v20091119-1730
Verifying tag v20091126-1430
Verifying tag v20091126-1500
Verifying tag v20091203-1000
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091203-1000/bundles/org.eclipse.e4.xwt.vex/build.properties	2009-01-06 19:15:48.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091203-1000/bundles/org.eclipse.e4.xwt.vex/build.properties	2009-12-02 15:28:50.000000000 -0500
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.1 2009/01/07 00:15:48 yvyang Exp $
  +# $Id: build.properties,v 1.2 2008/07/07 00:23:28 yyang Exp $
   
   bin.includes = .,\
                  src/model/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091203-1000/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2009-07-01 15:48:11.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091203-1000/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2009-12-02 15:28:50.000000000 -0500
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.2 2009/07/01 19:48:11 yvyang Exp $
  + $Id: plugin.xml,v 1.1 2009/01/07 00:15:47 yvyang Exp $
   -->
   
   <plugin>
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091203-1000/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2009-02-02 19:32:19.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091203-1000/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2009-12-02 15:28:50.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
  + *  $Revision: 1.9 $  $Date: 2005/12/05 22:10:14 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091203-1000/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2009-12-02 11:13:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091203-1000/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2009-12-02 15:28:50.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.6 $  $Date: 2009/12/02 16:13:57 $ 
  + *  $Revision: 1.5 $  $Date: 2009/12/02 16:13:35 $ 
    */
   package org.eclipse.e4.xwt.vex.swt;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091203-1000/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-12-02 10:57:42.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091203-1000/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-12-02 15:28:50.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.5 $  $Date: 2009/12/02 15:57:42 $ 
  + *  $Revision: 1.4 $  $Date: 2009/05/03 13:44:46 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.macosx;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091203-1000/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-12-02 10:57:42.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091203-1000/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-12-02 15:28:50.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.6 $  $Date: 2009/12/02 15:57:42 $ 
  + *  $Revision: 1.5 $  $Date: 2009/05/03 13:44:46 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091203-1000/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-12-02 10:57:42.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091203-1000/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-12-02 15:28:50.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.4 $  $Date: 2009/12/02 15:57:42 $ 
  + *  $Revision: 1.3 $  $Date: 2009/05/01 22:15:15 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix.bits64;
   
  
Verifying tag v20091204-0830
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/NonResizableSpannableEditPolicy.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091204-0830/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/NonResizableSpannableEditPolicy.java	2009-12-03 15:32:22.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091204-0830/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/NonResizableSpannableEditPolicy.java	2009-12-04 06:31:46.000000000 -0500
  @@ -11,7 +11,7 @@
   package org.eclipse.e4.xwt.tools.ui.designer.policies;
   
   /*
  - * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.1 $ $Date: 2009/12/03 20:32:22 $
  + * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.7 $ $Date: 2005/11/11 15:57:16 $
    */
   
   import java.util.List;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091204-0830/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2009-12-03 15:34:28.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091204-0830/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2009-12-04 06:31:46.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: GridSpanHandle.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:34:28 $ 
  + *  $Revision: 1.6 $  $Date: 2005/08/24 23:52:54 $ 
    */
   
   import org.eclipse.draw2d.ColorConstants;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091204-0830/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2009-12-03 15:35:58.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091204-0830/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2009-12-04 06:31:46.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:58 $ 
  + *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091204-0830/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091204-0830/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2009-12-04 06:31:46.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: ImageFigure.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.3 $  $Date: 2005/08/24 23:12:50 $ 
    */
   
   import org.eclipse.draw2d.Figure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091204-0830/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091204-0830/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2009-12-04 06:31:46.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: OutlineBorder.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.7 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import org.eclipse.draw2d.*;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091204-0830/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091204-0830/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2009-12-04 06:31:46.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: IImageListener.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.4 $  $Date: 2005/08/24 23:12:49 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.images;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091204-0830/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091204-0830/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2009-12-04 06:31:46.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: FreeformXYFlowLayout.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.3 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import org.eclipse.draw2d.IFigure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091204-0830/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091204-0830/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2009-12-04 06:31:46.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: XYFlowLayout.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.4 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import java.util.Iterator;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091204-0830/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091204-0830/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2009-12-04 06:31:46.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: XYLayoutUtility.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.1 $  $Date: 2005/05/11 19:01:26 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.layouts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091204-0830/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091204-0830/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2009-12-04 06:31:46.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: EditPartRunnable.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.1 $  $Date: 2005/06/15 20:19:34 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.parts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091204-0830/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091204-0830/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2009-12-04 06:31:46.000000000 -0500
  @@ -9,8 +9,8 @@
    *     Soyatec - initial API and implementation
    *******************************************************************************/
   /*
  - *  $RCSfile: IVisualInfo.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $RCSfile: IVisualComponent.java,v $
  + *  $Revision: 1.5 $  $Date: 2005/08/24 23:12:50 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.visuals;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091204-0830/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-12-03 15:37:22.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091204-0830/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-12-04 06:31:46.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:37:22 $ 
  + *  $Revision: 1.4 $  $Date: 2009/05/03 13:44:46 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.macosx;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091204-0830/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-12-03 15:37:22.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091204-0830/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-12-04 06:31:46.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:37:22 $ 
  + *  $Revision: 1.5 $  $Date: 2009/05/03 13:44:46 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091204-0830/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-12-03 15:37:25.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091204-0830/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-12-04 06:31:46.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:37:25 $ 
  + *  $Revision: 1.3 $  $Date: 2009/05/01 22:15:15 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix.bits64;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091204-0830/bundles/org.eclipse.e4.xwt.tools.ui.palette/build.properties	2009-12-03 15:38:23.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091204-0830/bundles/org.eclipse.e4.xwt.tools.ui.palette/build.properties	2009-12-04 06:31:46.000000000 -0500
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.1 2009/12/03 20:38:23 yvyang Exp $
  +# $Id$
   
   bin.includes = .,\
                  META-INF/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091204-0830/bundles/org.eclipse.e4.xwt.tools.ui.palette/plugin.properties	2009-12-03 15:38:23.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091204-0830/bundles/org.eclipse.e4.xwt.tools.ui.palette/plugin.properties	2009-12-04 06:31:46.000000000 -0500
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.1 2009/12/03 20:38:23 yvyang Exp $
  +# $Id$
   
   pluginName = Palette Model (Incubation)
   providerName = Eclipse.org
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.xaml/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091204-0830/bundles/org.eclipse.e4.xwt.tools.ui.xaml/build.properties	2009-12-03 15:39:32.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091204-0830/bundles/org.eclipse.e4.xwt.tools.ui.xaml/build.properties	2009-12-04 06:31:46.000000000 -0500
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.1 2009/12/03 20:39:32 yvyang Exp $
  +# $Id$
   
   bin.includes = .,\
                  META-INF/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.xaml/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091204-0830/bundles/org.eclipse.e4.xwt.tools.ui.xaml/plugin.properties	2009-12-03 15:39:32.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091204-0830/bundles/org.eclipse.e4.xwt.tools.ui.xaml/plugin.properties	2009-12-04 06:31:46.000000000 -0500
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.1 2009/12/03 20:39:32 yvyang Exp $
  +# $Id$
   
   pluginName = XAML Model (Incubation)
   providerName = Eclipse.org
  
Verifying tag v20091210-1630
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/NonResizableSpannableEditPolicy.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091210-1630/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/NonResizableSpannableEditPolicy.java	2009-12-03 15:32:22.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091210-1630/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/NonResizableSpannableEditPolicy.java	2009-12-08 17:22:24.000000000 -0500
  @@ -11,7 +11,7 @@
   package org.eclipse.e4.xwt.tools.ui.designer.policies;
   
   /*
  - * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.1 $ $Date: 2009/12/03 20:32:22 $
  + * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.7 $ $Date: 2005/11/11 15:57:16 $
    */
   
   import java.util.List;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091210-1630/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2009-12-03 15:34:28.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091210-1630/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2009-12-08 17:22:24.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: GridSpanHandle.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:34:28 $ 
  + *  $Revision: 1.6 $  $Date: 2005/08/24 23:52:54 $ 
    */
   
   import org.eclipse.draw2d.ColorConstants;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091210-1630/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2009-12-03 15:35:58.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091210-1630/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2009-12-08 17:22:24.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:58 $ 
  + *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091210-1630/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091210-1630/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2009-12-08 17:22:24.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: ImageFigure.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.3 $  $Date: 2005/08/24 23:12:50 $ 
    */
   
   import org.eclipse.draw2d.Figure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091210-1630/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091210-1630/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2009-12-08 17:22:24.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: OutlineBorder.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.7 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import org.eclipse.draw2d.*;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091210-1630/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091210-1630/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2009-12-08 17:22:24.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: IImageListener.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.4 $  $Date: 2005/08/24 23:12:49 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.images;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091210-1630/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091210-1630/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2009-12-08 17:22:24.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: FreeformXYFlowLayout.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.3 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import org.eclipse.draw2d.IFigure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091210-1630/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091210-1630/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2009-12-08 17:22:24.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: XYFlowLayout.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.4 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import java.util.Iterator;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091210-1630/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091210-1630/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2009-12-08 17:22:24.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: XYLayoutUtility.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.1 $  $Date: 2005/05/11 19:01:26 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.layouts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091210-1630/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091210-1630/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2009-12-08 17:22:24.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: EditPartRunnable.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.1 $  $Date: 2005/06/15 20:19:34 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.parts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091210-1630/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091210-1630/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2009-12-08 17:22:24.000000000 -0500
  @@ -9,8 +9,8 @@
    *     Soyatec - initial API and implementation
    *******************************************************************************/
   /*
  - *  $RCSfile: IVisualInfo.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $RCSfile: IVisualComponent.java,v $
  + *  $Revision: 1.5 $  $Date: 2005/08/24 23:12:50 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.visuals;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091210-1630/bundles/org.eclipse.e4.xwt.vex/build.properties	2009-01-06 19:15:48.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091210-1630/bundles/org.eclipse.e4.xwt.vex/build.properties	2009-12-08 17:22:24.000000000 -0500
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.1 2009/01/07 00:15:48 yvyang Exp $
  +# $Id: build.properties,v 1.2 2008/07/07 00:23:28 yyang Exp $
   
   bin.includes = .,\
                  src/model/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091210-1630/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2009-07-01 15:48:11.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091210-1630/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2009-12-08 17:22:24.000000000 -0500
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.2 2009/07/01 19:48:11 yvyang Exp $
  + $Id: plugin.xml,v 1.1 2009/01/07 00:15:47 yvyang Exp $
   -->
   
   <plugin>
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091210-1630/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2009-02-02 19:32:19.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091210-1630/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2009-12-08 17:22:24.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
  + *  $Revision: 1.9 $  $Date: 2005/12/05 22:10:14 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091210-1630/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2009-12-02 11:13:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091210-1630/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2009-12-08 17:22:24.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.6 $  $Date: 2009/12/02 16:13:57 $ 
  + *  $Revision: 1.5 $  $Date: 2009/12/02 16:13:35 $ 
    */
   package org.eclipse.e4.xwt.vex.swt;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091210-1630/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-12-02 10:57:42.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091210-1630/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-12-08 17:22:24.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.5 $  $Date: 2009/12/02 15:57:42 $ 
  + *  $Revision: 1.4 $  $Date: 2009/05/03 13:44:46 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.macosx;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091210-1630/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-12-02 10:57:42.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091210-1630/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-12-08 17:22:24.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.6 $  $Date: 2009/12/02 15:57:42 $ 
  + *  $Revision: 1.5 $  $Date: 2009/05/03 13:44:46 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091210-1630/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-12-02 10:57:42.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091210-1630/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-12-08 17:22:24.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.4 $  $Date: 2009/12/02 15:57:42 $ 
  + *  $Revision: 1.3 $  $Date: 2009/05/01 22:15:15 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix.bits64;
   
  
Verifying tag v20091217-1900
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/NonResizableSpannableEditPolicy.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091217-1900/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/NonResizableSpannableEditPolicy.java	2009-12-03 15:32:22.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091217-1900/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/NonResizableSpannableEditPolicy.java	2009-12-17 17:23:53.000000000 -0500
  @@ -11,7 +11,7 @@
   package org.eclipse.e4.xwt.tools.ui.designer.policies;
   
   /*
  - * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.1 $ $Date: 2009/12/03 20:32:22 $
  + * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.7 $ $Date: 2005/11/11 15:57:16 $
    */
   
   import java.util.List;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091217-1900/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2009-12-03 15:34:28.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091217-1900/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2009-12-17 17:23:53.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: GridSpanHandle.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:34:28 $ 
  + *  $Revision: 1.6 $  $Date: 2005/08/24 23:52:54 $ 
    */
   
   import org.eclipse.draw2d.ColorConstants;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091217-1900/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2009-12-03 15:35:58.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091217-1900/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2009-12-17 17:23:53.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:58 $ 
  + *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091217-1900/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091217-1900/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2009-12-17 17:23:53.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: ImageFigure.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.3 $  $Date: 2005/08/24 23:12:50 $ 
    */
   
   import org.eclipse.draw2d.Figure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091217-1900/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091217-1900/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2009-12-17 17:23:53.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: OutlineBorder.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.7 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import org.eclipse.draw2d.*;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091217-1900/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091217-1900/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2009-12-17 17:23:53.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: IImageListener.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.4 $  $Date: 2005/08/24 23:12:49 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.images;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091217-1900/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091217-1900/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2009-12-17 17:23:53.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: FreeformXYFlowLayout.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.3 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import org.eclipse.draw2d.IFigure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091217-1900/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091217-1900/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2009-12-17 17:23:53.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: XYFlowLayout.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.4 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import java.util.Iterator;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091217-1900/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091217-1900/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2009-12-17 17:23:53.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: XYLayoutUtility.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.1 $  $Date: 2005/05/11 19:01:26 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.layouts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091217-1900/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091217-1900/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2009-12-17 17:23:53.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: EditPartRunnable.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.1 $  $Date: 2005/06/15 20:19:34 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.parts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091217-1900/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2009-12-11 18:32:20.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091217-1900/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2009-12-17 17:23:53.000000000 -0500
  @@ -9,7 +9,7 @@
    *     Soyatec - initial API and implementation
    *******************************************************************************/
   /*
  - * $RCSfile: IVisualInfo.java,v $ $Revision: 1.3 $ $Date: 2009/12/11 23:32:20 $
  + * $RCSfile: IVisualInfo.java,v $ $Revision: 1.2 $ $Date: 2009/12/11 22:14:35 $
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.visuals;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091217-1900/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-12-11 17:14:10.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091217-1900/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-12-17 17:23:53.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.2 $  $Date: 2009/12/11 22:14:10 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:37:22 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.macosx;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091217-1900/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-12-11 17:14:10.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091217-1900/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-12-17 17:23:53.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.2 $  $Date: 2009/12/11 22:14:10 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:37:22 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091217-1900/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-12-11 17:14:10.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091217-1900/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-12-17 17:23:53.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.2 $  $Date: 2009/12/11 22:14:10 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:37:25 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix.bits64;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091217-1900/bundles/org.eclipse.e4.xwt.tools.ui.palette/build.properties	2009-12-03 15:38:23.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091217-1900/bundles/org.eclipse.e4.xwt.tools.ui.palette/build.properties	2009-12-17 17:23:53.000000000 -0500
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.1 2009/12/03 20:38:23 yvyang Exp $
  +# $Id$
   
   bin.includes = .,\
                  META-INF/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091217-1900/bundles/org.eclipse.e4.xwt.tools.ui.palette/plugin.properties	2009-12-03 15:38:23.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091217-1900/bundles/org.eclipse.e4.xwt.tools.ui.palette/plugin.properties	2009-12-17 17:23:53.000000000 -0500
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.1 2009/12/03 20:38:23 yvyang Exp $
  +# $Id$
   
   pluginName = Palette Model (Incubation)
   providerName = Eclipse.org
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.xaml/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091217-1900/bundles/org.eclipse.e4.xwt.tools.ui.xaml/build.properties	2009-12-03 15:39:32.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091217-1900/bundles/org.eclipse.e4.xwt.tools.ui.xaml/build.properties	2009-12-17 17:23:53.000000000 -0500
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.1 2009/12/03 20:39:32 yvyang Exp $
  +# $Id$
   
   bin.includes = .,\
                  META-INF/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.xaml/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091217-1900/bundles/org.eclipse.e4.xwt.tools.ui.xaml/plugin.properties	2009-12-03 15:39:32.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091217-1900/bundles/org.eclipse.e4.xwt.tools.ui.xaml/plugin.properties	2009-12-17 17:23:53.000000000 -0500
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.1 2009/12/03 20:39:32 yvyang Exp $
  +# $Id$
   
   pluginName = XAML Model (Incubation)
   providerName = Eclipse.org
  
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091217-1900/tests/org.eclipse.e4.xwt.emf.test/build.properties	2009-07-07 09:09:57.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091217-1900/tests/org.eclipse.e4.xwt.emf.test/build.properties	2009-12-17 17:23:53.000000000 -0500
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2009/07/07 13:09:57 pwebster Exp $
  +# $Id: build.properties,v 1.1 2009/06/15 09:15:31 yvyang Exp $
   
   bin.includes = .,\
                  model/,\
  
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091217-1900/tests/org.eclipse.e4.xwt.emf.test/plugin.properties	2009-06-24 13:38:38.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091217-1900/tests/org.eclipse.e4.xwt.emf.test/plugin.properties	2009-12-17 17:23:53.000000000 -0500
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.2 2009/06/24 17:38:38 pwebster Exp $
  +# $Id: plugin.properties,v 1.1 2009/06/15 09:15:31 yvyang Exp $
   
   pluginName = Books Model (Incubation)
   providerName = www.eclipse.org
  
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20091217-1900/tests/org.eclipse.e4.xwt.emf.test/plugin.xml	2009-06-15 05:15:31.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20091217-1900/tests/org.eclipse.e4.xwt.emf.test/plugin.xml	2009-12-17 17:23:53.000000000 -0500
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.1 2009/06/15 09:15:31 yvyang Exp $
  + $Id$
   -->
   
   <plugin>
  
Verifying tag v20100104-1430
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100104-1430/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2009-12-26 19:01:32.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100104-1430/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2009-12-28 22:32:40.000000000 -0500
  @@ -11,7 +11,7 @@
   package org.eclipse.e4.xwt.tools.ui.designer.policies.layout;
   
   /*
  - * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.1 $ $Date: 2009/12/27 00:01:32 $
  + * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.1 $ $Date: 2009/12/03 20:32:22 $
    */
   
   import java.util.List;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100104-1430/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2009-12-03 15:34:28.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100104-1430/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2009-12-28 22:32:40.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: GridSpanHandle.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:34:28 $ 
  + *  $Revision: 1.6 $  $Date: 2005/08/24 23:52:54 $ 
    */
   
   import org.eclipse.draw2d.ColorConstants;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100104-1430/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2009-12-03 15:35:58.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100104-1430/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2009-12-28 22:32:40.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:58 $ 
  + *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100104-1430/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100104-1430/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2009-12-28 22:32:40.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: ImageFigure.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.3 $  $Date: 2005/08/24 23:12:50 $ 
    */
   
   import org.eclipse.draw2d.Figure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100104-1430/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100104-1430/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2009-12-28 22:32:40.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: OutlineBorder.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.7 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import org.eclipse.draw2d.*;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100104-1430/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100104-1430/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2009-12-28 22:32:40.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: IImageListener.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.4 $  $Date: 2005/08/24 23:12:49 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.images;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100104-1430/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100104-1430/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2009-12-28 22:32:40.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: FreeformXYFlowLayout.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.3 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import org.eclipse.draw2d.IFigure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100104-1430/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100104-1430/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2009-12-28 22:32:40.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: XYFlowLayout.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.4 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import java.util.Iterator;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100104-1430/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100104-1430/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2009-12-28 22:32:40.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: XYLayoutUtility.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.1 $  $Date: 2005/05/11 19:01:26 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.layouts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100104-1430/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100104-1430/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2009-12-28 22:32:40.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: EditPartRunnable.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.1 $  $Date: 2005/06/15 20:19:34 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.parts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100104-1430/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2009-12-11 18:32:20.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100104-1430/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2009-12-28 22:32:40.000000000 -0500
  @@ -9,7 +9,7 @@
    *     Soyatec - initial API and implementation
    *******************************************************************************/
   /*
  - * $RCSfile: IVisualInfo.java,v $ $Revision: 1.3 $ $Date: 2009/12/11 23:32:20 $
  + * $RCSfile: IVisualInfo.java,v $ $Revision: 1.2 $ $Date: 2009/12/11 22:14:35 $
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.visuals;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100104-1430/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-12-11 17:14:10.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100104-1430/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-12-28 22:32:40.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.2 $  $Date: 2009/12/11 22:14:10 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:37:22 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.macosx;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100104-1430/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-12-22 10:40:54.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100104-1430/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-12-28 22:32:40.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.3 $  $Date: 2009/12/22 15:40:54 $ 
  + *  $Revision: 1.2 $  $Date: 2009/12/11 22:14:10 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100104-1430/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-12-22 10:40:54.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100104-1430/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-12-28 22:32:40.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.3 $  $Date: 2009/12/22 15:40:54 $ 
  + *  $Revision: 1.2 $  $Date: 2009/12/11 22:14:10 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix.bits64;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100104-1430/bundles/org.eclipse.e4.xwt.tools.ui.palette/build.properties	2009-12-03 15:38:23.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100104-1430/bundles/org.eclipse.e4.xwt.tools.ui.palette/build.properties	2009-12-28 22:32:40.000000000 -0500
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.1 2009/12/03 20:38:23 yvyang Exp $
  +# $Id$
   
   bin.includes = .,\
                  META-INF/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100104-1430/bundles/org.eclipse.e4.xwt.tools.ui.palette/plugin.properties	2009-12-03 15:38:23.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100104-1430/bundles/org.eclipse.e4.xwt.tools.ui.palette/plugin.properties	2009-12-28 22:32:40.000000000 -0500
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.1 2009/12/03 20:38:23 yvyang Exp $
  +# $Id$
   
   pluginName = Palette Model (Incubation)
   providerName = Eclipse.org
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.xaml/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100104-1430/bundles/org.eclipse.e4.xwt.tools.ui.xaml/build.properties	2009-12-03 15:39:32.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100104-1430/bundles/org.eclipse.e4.xwt.tools.ui.xaml/build.properties	2009-12-28 22:32:40.000000000 -0500
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.1 2009/12/03 20:39:32 yvyang Exp $
  +# $Id$
   
   bin.includes = .,\
                  META-INF/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.xaml/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100104-1430/bundles/org.eclipse.e4.xwt.tools.ui.xaml/plugin.properties	2009-12-03 15:39:32.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100104-1430/bundles/org.eclipse.e4.xwt.tools.ui.xaml/plugin.properties	2009-12-28 22:32:40.000000000 -0500
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.1 2009/12/03 20:39:32 yvyang Exp $
  +# $Id$
   
   pluginName = XAML Model (Incubation)
   providerName = Eclipse.org
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.ui.workbench/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100104-1430/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2009-07-02 08:56:18.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100104-1430/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2009-12-28 22:32:40.000000000 -0500
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2009/07/02 12:56:18 yvyang Exp $
  +# $Id$
   
   bin.includes = .,\
                  model/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100104-1430/bundles/org.eclipse.e4.xwt.vex/build.properties	2009-01-06 19:15:48.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100104-1430/bundles/org.eclipse.e4.xwt.vex/build.properties	2009-12-28 22:32:40.000000000 -0500
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.1 2009/01/07 00:15:48 yvyang Exp $
  +# $Id: build.properties,v 1.2 2008/07/07 00:23:28 yyang Exp $
   
   bin.includes = .,\
                  src/model/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100104-1430/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2009-07-01 15:48:11.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100104-1430/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2009-12-28 22:32:40.000000000 -0500
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.2 2009/07/01 19:48:11 yvyang Exp $
  + $Id: plugin.xml,v 1.1 2009/01/07 00:15:47 yvyang Exp $
   -->
   
   <plugin>
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100104-1430/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2009-02-02 19:32:19.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100104-1430/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2009-12-28 22:32:40.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
  + *  $Revision: 1.9 $  $Date: 2005/12/05 22:10:14 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100104-1430/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2009-12-22 10:40:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100104-1430/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2009-12-28 22:32:40.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.7 $  $Date: 2009/12/22 15:40:57 $ 
  + *  $Revision: 1.6 $  $Date: 2009/12/02 16:13:57 $ 
    */
   package org.eclipse.e4.xwt.vex.swt;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100104-1430/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-12-02 10:57:42.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100104-1430/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-12-28 22:32:40.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.5 $  $Date: 2009/12/02 15:57:42 $ 
  + *  $Revision: 1.4 $  $Date: 2009/05/03 13:44:46 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.macosx;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100104-1430/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-12-22 10:40:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100104-1430/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-12-28 22:32:40.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.7 $  $Date: 2009/12/22 15:40:57 $ 
  + *  $Revision: 1.6 $  $Date: 2009/12/02 15:57:42 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100104-1430/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-12-22 10:40:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100104-1430/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-12-28 22:32:40.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.5 $  $Date: 2009/12/22 15:40:57 $ 
  + *  $Revision: 1.4 $  $Date: 2009/12/02 15:57:42 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix.bits64;
   
  
Verifying tag v20100106-0930
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100106-0930/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2009-12-26 19:01:32.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100106-0930/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2010-01-06 09:22:12.000000000 -0500
  @@ -11,7 +11,7 @@
   package org.eclipse.e4.xwt.tools.ui.designer.policies.layout;
   
   /*
  - * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.1 $ $Date: 2009/12/27 00:01:32 $
  + * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.1 $ $Date: 2009/12/03 20:32:22 $
    */
   
   import java.util.List;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100106-0930/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2009-12-03 15:34:28.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100106-0930/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2010-01-06 09:22:12.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: GridSpanHandle.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:34:28 $ 
  + *  $Revision: 1.6 $  $Date: 2005/08/24 23:52:54 $ 
    */
   
   import org.eclipse.draw2d.ColorConstants;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100106-0930/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2009-12-03 15:35:58.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100106-0930/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2010-01-06 09:22:12.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:58 $ 
  + *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100106-0930/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100106-0930/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2010-01-06 09:22:12.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: ImageFigure.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.3 $  $Date: 2005/08/24 23:12:50 $ 
    */
   
   import org.eclipse.draw2d.Figure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100106-0930/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100106-0930/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2010-01-06 09:22:12.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: OutlineBorder.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.7 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import org.eclipse.draw2d.*;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100106-0930/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100106-0930/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2010-01-06 09:22:12.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: IImageListener.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.4 $  $Date: 2005/08/24 23:12:49 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.images;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100106-0930/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100106-0930/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2010-01-06 09:22:12.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: FreeformXYFlowLayout.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.3 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import org.eclipse.draw2d.IFigure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100106-0930/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100106-0930/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2010-01-06 09:22:12.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: XYFlowLayout.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.4 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import java.util.Iterator;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100106-0930/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100106-0930/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2010-01-06 09:22:12.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: XYLayoutUtility.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.1 $  $Date: 2005/05/11 19:01:26 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.layouts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100106-0930/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100106-0930/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2010-01-06 09:22:12.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: EditPartRunnable.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.1 $  $Date: 2005/06/15 20:19:34 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.parts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100106-0930/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2009-12-11 18:32:20.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100106-0930/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2010-01-06 09:22:12.000000000 -0500
  @@ -9,7 +9,7 @@
    *     Soyatec - initial API and implementation
    *******************************************************************************/
   /*
  - * $RCSfile: IVisualInfo.java,v $ $Revision: 1.3 $ $Date: 2009/12/11 23:32:20 $
  + * $RCSfile: IVisualInfo.java,v $ $Revision: 1.2 $ $Date: 2009/12/11 22:14:35 $
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.visuals;
   
  
Verifying tag v20100106-1400
Verifying tag v20100108-1630
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100108-1630/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2009-12-03 15:35:58.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100108-1630/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2010-01-08 15:59:11.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:58 $ 
  + *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100108-1630/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100108-1630/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2010-01-08 15:59:11.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: ImageFigure.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.3 $  $Date: 2005/08/24 23:12:50 $ 
    */
   
   import org.eclipse.draw2d.Figure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100108-1630/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100108-1630/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2010-01-08 15:59:11.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: OutlineBorder.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.7 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import org.eclipse.draw2d.*;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100108-1630/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100108-1630/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2010-01-08 15:59:11.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: IImageListener.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.4 $  $Date: 2005/08/24 23:12:49 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.images;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100108-1630/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100108-1630/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2010-01-08 15:59:11.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: FreeformXYFlowLayout.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.3 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import org.eclipse.draw2d.IFigure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100108-1630/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100108-1630/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2010-01-08 15:59:11.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: XYFlowLayout.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.4 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import java.util.Iterator;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100108-1630/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100108-1630/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2010-01-08 15:59:11.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: XYLayoutUtility.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.1 $  $Date: 2005/05/11 19:01:26 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.layouts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100108-1630/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100108-1630/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2010-01-08 15:59:11.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: EditPartRunnable.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.1 $  $Date: 2005/06/15 20:19:34 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.parts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100108-1630/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2009-12-11 18:32:20.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100108-1630/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2010-01-08 15:59:11.000000000 -0500
  @@ -9,7 +9,7 @@
    *     Soyatec - initial API and implementation
    *******************************************************************************/
   /*
  - * $RCSfile: IVisualInfo.java,v $ $Revision: 1.3 $ $Date: 2009/12/11 23:32:20 $
  + * $RCSfile: IVisualInfo.java,v $ $Revision: 1.2 $ $Date: 2009/12/11 22:14:35 $
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.visuals;
   
  
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100108-1630/tests/org.eclipse.e4.xwt.emf.test/build.properties	2009-07-07 09:09:57.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100108-1630/tests/org.eclipse.e4.xwt.emf.test/build.properties	2010-01-08 15:59:11.000000000 -0500
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2009/07/07 13:09:57 pwebster Exp $
  +# $Id: build.properties,v 1.1 2009/06/15 09:15:31 yvyang Exp $
   
   bin.includes = .,\
                  model/,\
  
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100108-1630/tests/org.eclipse.e4.xwt.emf.test/plugin.properties	2009-06-24 13:38:38.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100108-1630/tests/org.eclipse.e4.xwt.emf.test/plugin.properties	2010-01-08 15:59:11.000000000 -0500
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.2 2009/06/24 17:38:38 pwebster Exp $
  +# $Id: plugin.properties,v 1.1 2009/06/15 09:15:31 yvyang Exp $
   
   pluginName = Books Model (Incubation)
   providerName = www.eclipse.org
  
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100108-1630/tests/org.eclipse.e4.xwt.emf.test/plugin.xml	2009-06-15 05:15:31.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100108-1630/tests/org.eclipse.e4.xwt.emf.test/plugin.xml	2010-01-08 15:59:11.000000000 -0500
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.1 2009/06/15 09:15:31 yvyang Exp $
  + $Id$
   -->
   
   <plugin>
  
Verifying tag v20100111-1500
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.ui.workbench/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100111-1500/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2009-07-02 08:56:18.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100111-1500/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2010-01-11 11:05:19.000000000 -0500
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2009/07/02 12:56:18 yvyang Exp $
  +# $Id$
   
   bin.includes = .,\
                  model/,\
  
Verifying tag v20100112-1800
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100112-1800/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2009-12-26 19:01:32.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100112-1800/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2010-01-12 16:24:14.000000000 -0500
  @@ -11,7 +11,7 @@
   package org.eclipse.e4.xwt.tools.ui.designer.policies.layout;
   
   /*
  - * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.1 $ $Date: 2009/12/27 00:01:32 $
  + * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.1 $ $Date: 2009/12/03 20:32:22 $
    */
   
   import java.util.List;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100112-1800/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2009-12-03 15:34:28.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100112-1800/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2010-01-12 16:24:14.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: GridSpanHandle.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:34:28 $ 
  + *  $Revision: 1.6 $  $Date: 2005/08/24 23:52:54 $ 
    */
   
   import org.eclipse.draw2d.ColorConstants;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100112-1800/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2009-12-03 15:35:58.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100112-1800/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2010-01-12 16:24:14.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:58 $ 
  + *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100112-1800/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100112-1800/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2010-01-12 16:24:14.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: ImageFigure.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.3 $  $Date: 2005/08/24 23:12:50 $ 
    */
   
   import org.eclipse.draw2d.Figure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100112-1800/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100112-1800/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2010-01-12 16:24:14.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: OutlineBorder.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.7 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import org.eclipse.draw2d.*;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100112-1800/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100112-1800/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2010-01-12 16:24:14.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: IImageListener.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.4 $  $Date: 2005/08/24 23:12:49 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.images;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100112-1800/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100112-1800/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2010-01-12 16:24:14.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: FreeformXYFlowLayout.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.3 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import org.eclipse.draw2d.IFigure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100112-1800/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100112-1800/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2010-01-12 16:24:14.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: XYFlowLayout.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.4 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import java.util.Iterator;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100112-1800/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100112-1800/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2010-01-12 16:24:14.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: XYLayoutUtility.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.1 $  $Date: 2005/05/11 19:01:26 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.layouts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100112-1800/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100112-1800/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2010-01-12 16:24:14.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: EditPartRunnable.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.1 $  $Date: 2005/06/15 20:19:34 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.parts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100112-1800/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2009-12-11 18:32:20.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100112-1800/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2010-01-12 16:24:14.000000000 -0500
  @@ -9,7 +9,7 @@
    *     Soyatec - initial API and implementation
    *******************************************************************************/
   /*
  - * $RCSfile: IVisualInfo.java,v $ $Revision: 1.3 $ $Date: 2009/12/11 23:32:20 $
  + * $RCSfile: IVisualInfo.java,v $ $Revision: 1.2 $ $Date: 2009/12/11 22:14:35 $
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.visuals;
   
  
Verifying tag v20100113-1500
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100113-1500/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2009-12-26 19:01:32.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100113-1500/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2010-01-12 19:55:00.000000000 -0500
  @@ -11,7 +11,7 @@
   package org.eclipse.e4.xwt.tools.ui.designer.policies.layout;
   
   /*
  - * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.1 $ $Date: 2009/12/27 00:01:32 $
  + * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.1 $ $Date: 2009/12/03 20:32:22 $
    */
   
   import java.util.List;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100113-1500/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2009-12-03 15:34:28.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100113-1500/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2010-01-12 19:55:00.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: GridSpanHandle.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:34:28 $ 
  + *  $Revision: 1.6 $  $Date: 2005/08/24 23:52:54 $ 
    */
   
   import org.eclipse.draw2d.ColorConstants;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100113-1500/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2009-12-03 15:35:58.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100113-1500/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2010-01-12 19:55:00.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:58 $ 
  + *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100113-1500/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100113-1500/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2010-01-12 19:55:00.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: ImageFigure.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.3 $  $Date: 2005/08/24 23:12:50 $ 
    */
   
   import org.eclipse.draw2d.Figure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100113-1500/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100113-1500/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2010-01-12 19:55:00.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: OutlineBorder.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.7 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import org.eclipse.draw2d.*;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100113-1500/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100113-1500/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2010-01-12 19:55:00.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: IImageListener.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.4 $  $Date: 2005/08/24 23:12:49 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.images;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100113-1500/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100113-1500/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2010-01-12 19:55:00.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: FreeformXYFlowLayout.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.3 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import org.eclipse.draw2d.IFigure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100113-1500/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100113-1500/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2010-01-12 19:55:00.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: XYFlowLayout.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.4 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import java.util.Iterator;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100113-1500/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100113-1500/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2010-01-12 19:55:00.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: XYLayoutUtility.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.1 $  $Date: 2005/05/11 19:01:26 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.layouts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100113-1500/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100113-1500/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2010-01-12 19:55:00.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: EditPartRunnable.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.1 $  $Date: 2005/06/15 20:19:34 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.parts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100113-1500/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2009-12-11 18:32:20.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100113-1500/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2010-01-12 19:55:00.000000000 -0500
  @@ -9,7 +9,7 @@
    *     Soyatec - initial API and implementation
    *******************************************************************************/
   /*
  - * $RCSfile: IVisualInfo.java,v $ $Revision: 1.3 $ $Date: 2009/12/11 23:32:20 $
  + * $RCSfile: IVisualInfo.java,v $ $Revision: 1.2 $ $Date: 2009/12/11 22:14:35 $
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.visuals;
   
  
Verifying tag v20100113-1830
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100113-1830/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2009-12-26 19:01:32.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100113-1830/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2010-01-13 17:02:39.000000000 -0500
  @@ -11,7 +11,7 @@
   package org.eclipse.e4.xwt.tools.ui.designer.policies.layout;
   
   /*
  - * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.1 $ $Date: 2009/12/27 00:01:32 $
  + * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.1 $ $Date: 2009/12/03 20:32:22 $
    */
   
   import java.util.List;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100113-1830/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2009-12-03 15:34:28.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100113-1830/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2010-01-13 17:02:39.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: GridSpanHandle.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:34:28 $ 
  + *  $Revision: 1.6 $  $Date: 2005/08/24 23:52:54 $ 
    */
   
   import org.eclipse.draw2d.ColorConstants;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100113-1830/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2009-12-03 15:35:58.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100113-1830/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2010-01-13 17:02:39.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:58 $ 
  + *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100113-1830/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100113-1830/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2010-01-13 17:02:39.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: ImageFigure.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.3 $  $Date: 2005/08/24 23:12:50 $ 
    */
   
   import org.eclipse.draw2d.Figure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100113-1830/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100113-1830/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2010-01-13 17:02:39.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: OutlineBorder.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.7 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import org.eclipse.draw2d.*;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100113-1830/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100113-1830/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2010-01-13 17:02:39.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: IImageListener.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.4 $  $Date: 2005/08/24 23:12:49 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.images;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100113-1830/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100113-1830/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2010-01-13 17:02:39.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: FreeformXYFlowLayout.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.3 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import org.eclipse.draw2d.IFigure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100113-1830/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100113-1830/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2010-01-13 17:02:39.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: XYFlowLayout.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.4 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import java.util.Iterator;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100113-1830/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100113-1830/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2010-01-13 17:02:39.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: XYLayoutUtility.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.1 $  $Date: 2005/05/11 19:01:26 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.layouts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100113-1830/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100113-1830/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2010-01-13 17:02:39.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: EditPartRunnable.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.1 $  $Date: 2005/06/15 20:19:34 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.parts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100113-1830/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2009-12-11 18:32:20.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100113-1830/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2010-01-13 17:02:39.000000000 -0500
  @@ -9,7 +9,7 @@
    *     Soyatec - initial API and implementation
    *******************************************************************************/
   /*
  - * $RCSfile: IVisualInfo.java,v $ $Revision: 1.3 $ $Date: 2009/12/11 23:32:20 $
  + * $RCSfile: IVisualInfo.java,v $ $Revision: 1.2 $ $Date: 2009/12/11 22:14:35 $
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.visuals;
   
  
Verifying tag v20100114-1200
Verifying tag v20100114-1430
Verifying tag v20100114-1800
Verifying tag v20100114-2100
Verifying tag v20100121-2130
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100121-2130/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2009-12-26 19:01:32.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100121-2130/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2010-01-21 21:31:17.000000000 -0500
  @@ -11,7 +11,7 @@
   package org.eclipse.e4.xwt.tools.ui.designer.policies.layout;
   
   /*
  - * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.1 $ $Date: 2009/12/27 00:01:32 $
  + * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.1 $ $Date: 2009/12/03 20:32:22 $
    */
   
   import java.util.List;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100121-2130/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2009-12-03 15:34:28.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100121-2130/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2010-01-21 21:31:17.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: GridSpanHandle.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:34:28 $ 
  + *  $Revision: 1.6 $  $Date: 2005/08/24 23:52:54 $ 
    */
   
   import org.eclipse.draw2d.ColorConstants;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100121-2130/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2009-12-03 15:35:58.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100121-2130/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2010-01-21 21:31:17.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:58 $ 
  + *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100121-2130/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100121-2130/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2010-01-21 21:31:17.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: ImageFigure.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.3 $  $Date: 2005/08/24 23:12:50 $ 
    */
   
   import org.eclipse.draw2d.Figure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100121-2130/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100121-2130/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2010-01-21 21:31:17.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: OutlineBorder.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.7 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import org.eclipse.draw2d.*;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100121-2130/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100121-2130/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2010-01-21 21:31:17.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: IImageListener.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.4 $  $Date: 2005/08/24 23:12:49 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.images;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100121-2130/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100121-2130/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2010-01-21 21:31:17.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: FreeformXYFlowLayout.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.3 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import org.eclipse.draw2d.IFigure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100121-2130/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100121-2130/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2010-01-21 21:31:17.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: XYFlowLayout.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.4 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import java.util.Iterator;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100121-2130/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100121-2130/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2010-01-21 21:31:17.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: XYLayoutUtility.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.1 $  $Date: 2005/05/11 19:01:26 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.layouts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100121-2130/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100121-2130/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2010-01-21 21:31:17.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: EditPartRunnable.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.1 $  $Date: 2005/06/15 20:19:34 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.parts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100121-2130/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2009-12-11 18:32:20.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100121-2130/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2010-01-21 21:31:17.000000000 -0500
  @@ -9,7 +9,7 @@
    *     Soyatec - initial API and implementation
    *******************************************************************************/
   /*
  - * $RCSfile: IVisualInfo.java,v $ $Revision: 1.3 $ $Date: 2009/12/11 23:32:20 $
  + * $RCSfile: IVisualInfo.java,v $ $Revision: 1.2 $ $Date: 2009/12/11 22:14:35 $
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.visuals;
   
  
Verifying tag v20100129-0930
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100129-0930/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2009-12-03 15:35:58.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100129-0930/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2010-01-28 18:25:51.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:58 $ 
  + *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100129-0930/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100129-0930/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2010-01-28 18:25:51.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: ImageFigure.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.3 $  $Date: 2005/08/24 23:12:50 $ 
    */
   
   import org.eclipse.draw2d.Figure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100129-0930/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100129-0930/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2010-01-28 18:25:51.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: OutlineBorder.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.7 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import org.eclipse.draw2d.*;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100129-0930/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100129-0930/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2010-01-28 18:25:51.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: IImageListener.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.4 $  $Date: 2005/08/24 23:12:49 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.images;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100129-0930/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100129-0930/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2010-01-28 18:25:51.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: FreeformXYFlowLayout.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.3 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import org.eclipse.draw2d.IFigure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100129-0930/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100129-0930/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2010-01-28 18:25:51.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: XYFlowLayout.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.4 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import java.util.Iterator;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100129-0930/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100129-0930/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2010-01-28 18:25:51.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: XYLayoutUtility.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.1 $  $Date: 2005/05/11 19:01:26 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.layouts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100129-0930/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100129-0930/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2010-01-28 18:25:51.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: EditPartRunnable.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.1 $  $Date: 2005/06/15 20:19:34 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.parts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100129-0930/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2009-12-11 18:32:20.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100129-0930/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2010-01-28 18:25:51.000000000 -0500
  @@ -9,7 +9,7 @@
    *     Soyatec - initial API and implementation
    *******************************************************************************/
   /*
  - * $RCSfile: IVisualInfo.java,v $ $Revision: 1.3 $ $Date: 2009/12/11 23:32:20 $
  + * $RCSfile: IVisualInfo.java,v $ $Revision: 1.2 $ $Date: 2009/12/11 22:14:35 $
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.visuals;
   
  
Verifying tag v20100204-1500
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100204-1500/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2009-12-26 19:01:32.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100204-1500/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2010-02-04 14:23:13.000000000 -0500
  @@ -11,7 +11,7 @@
   package org.eclipse.e4.xwt.tools.ui.designer.policies.layout;
   
   /*
  - * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.1 $ $Date: 2009/12/27 00:01:32 $
  + * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.1 $ $Date: 2009/12/03 20:32:22 $
    */
   
   import java.util.List;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100204-1500/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2009-12-03 15:34:28.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100204-1500/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2010-02-04 14:23:13.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: GridSpanHandle.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:34:28 $ 
  + *  $Revision: 1.6 $  $Date: 2005/08/24 23:52:54 $ 
    */
   
   import org.eclipse.draw2d.ColorConstants;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100204-1500/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2009-12-03 15:35:58.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100204-1500/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2010-02-04 14:23:13.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:58 $ 
  + *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100204-1500/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100204-1500/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2010-02-04 14:23:13.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: ImageFigure.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.3 $  $Date: 2005/08/24 23:12:50 $ 
    */
   
   import org.eclipse.draw2d.Figure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100204-1500/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100204-1500/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2010-02-04 14:23:13.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: OutlineBorder.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.7 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import org.eclipse.draw2d.*;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100204-1500/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100204-1500/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2010-02-04 14:23:13.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: IImageListener.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.4 $  $Date: 2005/08/24 23:12:49 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.images;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100204-1500/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100204-1500/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2010-02-04 14:23:13.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: FreeformXYFlowLayout.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.3 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import org.eclipse.draw2d.IFigure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100204-1500/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100204-1500/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2010-02-04 14:23:13.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: XYFlowLayout.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.4 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import java.util.Iterator;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100204-1500/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100204-1500/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2010-02-04 14:23:13.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: XYLayoutUtility.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.1 $  $Date: 2005/05/11 19:01:26 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.layouts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100204-1500/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100204-1500/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2010-02-04 14:23:13.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: EditPartRunnable.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.1 $  $Date: 2005/06/15 20:19:34 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.parts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100204-1500/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2009-12-11 18:32:20.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100204-1500/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2010-02-04 14:23:13.000000000 -0500
  @@ -9,7 +9,7 @@
    *     Soyatec - initial API and implementation
    *******************************************************************************/
   /*
  - * $RCSfile: IVisualInfo.java,v $ $Revision: 1.3 $ $Date: 2009/12/11 23:32:20 $
  + * $RCSfile: IVisualInfo.java,v $ $Revision: 1.2 $ $Date: 2009/12/11 22:14:35 $
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.visuals;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100204-1500/bundles/org.eclipse.e4.xwt.tools.ui.palette/build.properties	2009-12-03 15:38:23.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100204-1500/bundles/org.eclipse.e4.xwt.tools.ui.palette/build.properties	2010-02-04 14:23:13.000000000 -0500
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.1 2009/12/03 20:38:23 yvyang Exp $
  +# $Id$
   
   bin.includes = .,\
                  META-INF/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100204-1500/bundles/org.eclipse.e4.xwt.tools.ui.palette/plugin.properties	2009-12-03 15:38:23.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100204-1500/bundles/org.eclipse.e4.xwt.tools.ui.palette/plugin.properties	2010-02-04 14:23:13.000000000 -0500
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.1 2009/12/03 20:38:23 yvyang Exp $
  +# $Id$
   
   pluginName = Palette Model (Incubation)
   providerName = Eclipse.org
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.xaml/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100204-1500/bundles/org.eclipse.e4.xwt.tools.ui.xaml/build.properties	2009-12-03 15:39:32.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100204-1500/bundles/org.eclipse.e4.xwt.tools.ui.xaml/build.properties	2010-02-04 14:23:13.000000000 -0500
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.1 2009/12/03 20:39:32 yvyang Exp $
  +# $Id$
   
   bin.includes = .,\
                  META-INF/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.xaml/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100204-1500/bundles/org.eclipse.e4.xwt.tools.ui.xaml/plugin.properties	2009-12-03 15:39:32.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100204-1500/bundles/org.eclipse.e4.xwt.tools.ui.xaml/plugin.properties	2010-02-04 14:23:13.000000000 -0500
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.1 2009/12/03 20:39:32 yvyang Exp $
  +# $Id$
   
   pluginName = XAML Model (Incubation)
   providerName = Eclipse.org
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.ui.workbench/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100204-1500/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2009-07-02 08:56:18.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100204-1500/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2010-02-04 14:23:13.000000000 -0500
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2009/07/02 12:56:18 yvyang Exp $
  +# $Id$
   
   bin.includes = .,\
                  model/,\
  
Verifying tag v20100205-0830
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100205-0830/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-12-11 17:14:10.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100205-0830/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2010-02-04 20:50:27.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.2 $  $Date: 2009/12/11 22:14:10 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:37:22 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.macosx;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100205-0830/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-12-22 10:40:54.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100205-0830/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2010-02-04 20:50:27.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.3 $  $Date: 2009/12/22 15:40:54 $ 
  + *  $Revision: 1.2 $  $Date: 2009/12/11 22:14:10 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100205-0830/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-12-22 10:40:54.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100205-0830/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2010-02-04 20:50:27.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.3 $  $Date: 2009/12/22 15:40:54 $ 
  + *  $Revision: 1.2 $  $Date: 2009/12/11 22:14:10 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix.bits64;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100205-0830/bundles/org.eclipse.e4.xwt.tools.ui.palette/build.properties	2009-12-03 15:38:23.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100205-0830/bundles/org.eclipse.e4.xwt.tools.ui.palette/build.properties	2010-02-04 20:50:27.000000000 -0500
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.1 2009/12/03 20:38:23 yvyang Exp $
  +# $Id$
   
   bin.includes = .,\
                  META-INF/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100205-0830/bundles/org.eclipse.e4.xwt.tools.ui.palette/plugin.properties	2009-12-03 15:38:23.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100205-0830/bundles/org.eclipse.e4.xwt.tools.ui.palette/plugin.properties	2010-02-04 20:50:27.000000000 -0500
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.1 2009/12/03 20:38:23 yvyang Exp $
  +# $Id$
   
   pluginName = Palette Model (Incubation)
   providerName = Eclipse.org
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.ui.workbench/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100205-0830/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2009-07-02 08:56:18.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100205-0830/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2010-02-04 20:50:27.000000000 -0500
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2009/07/02 12:56:18 yvyang Exp $
  +# $Id$
   
   bin.includes = .,\
                  model/,\
  
Verifying tag v20100211-0930
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100211-0930/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2009-12-26 19:01:32.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100211-0930/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2010-02-09 20:58:44.000000000 -0500
  @@ -11,7 +11,7 @@
   package org.eclipse.e4.xwt.tools.ui.designer.policies.layout;
   
   /*
  - * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.1 $ $Date: 2009/12/27 00:01:32 $
  + * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.1 $ $Date: 2009/12/03 20:32:22 $
    */
   
   import java.util.List;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100211-0930/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2009-12-03 15:34:28.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100211-0930/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2010-02-09 20:58:44.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: GridSpanHandle.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:34:28 $ 
  + *  $Revision: 1.6 $  $Date: 2005/08/24 23:52:54 $ 
    */
   
   import org.eclipse.draw2d.ColorConstants;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100211-0930/bundles/org.eclipse.e4.xwt.tools.ui.palette/build.properties	2009-12-03 15:38:23.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100211-0930/bundles/org.eclipse.e4.xwt.tools.ui.palette/build.properties	2010-02-09 20:58:44.000000000 -0500
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.1 2009/12/03 20:38:23 yvyang Exp $
  +# $Id$
   
   bin.includes = .,\
                  META-INF/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100211-0930/bundles/org.eclipse.e4.xwt.tools.ui.palette/plugin.properties	2009-12-03 15:38:23.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100211-0930/bundles/org.eclipse.e4.xwt.tools.ui.palette/plugin.properties	2010-02-09 20:58:44.000000000 -0500
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.1 2009/12/03 20:38:23 yvyang Exp $
  +# $Id$
   
   pluginName = Palette Model (Incubation)
   providerName = Eclipse.org
  
Verifying tag v20100218-1430
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100218-1430/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-12-11 17:14:10.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100218-1430/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2010-02-17 19:51:07.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.2 $  $Date: 2009/12/11 22:14:10 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:37:22 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.macosx;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100218-1430/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-12-22 10:40:54.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100218-1430/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2010-02-17 19:51:07.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.3 $  $Date: 2009/12/22 15:40:54 $ 
  + *  $Revision: 1.2 $  $Date: 2009/12/11 22:14:10 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100218-1430/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-12-22 10:40:54.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100218-1430/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2010-02-17 19:51:07.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.3 $  $Date: 2009/12/22 15:40:54 $ 
  + *  $Revision: 1.2 $  $Date: 2009/12/11 22:14:10 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix.bits64;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100218-1430/bundles/org.eclipse.e4.xwt.vex/build.properties	2009-01-06 19:15:48.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100218-1430/bundles/org.eclipse.e4.xwt.vex/build.properties	2010-02-17 19:51:07.000000000 -0500
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.1 2009/01/07 00:15:48 yvyang Exp $
  +# $Id: build.properties,v 1.2 2008/07/07 00:23:28 yyang Exp $
   
   bin.includes = .,\
                  src/model/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100218-1430/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2009-07-01 15:48:11.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100218-1430/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2010-02-17 19:51:07.000000000 -0500
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.2 2009/07/01 19:48:11 yvyang Exp $
  + $Id: plugin.xml,v 1.1 2009/01/07 00:15:47 yvyang Exp $
   -->
   
   <plugin>
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100218-1430/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2009-02-02 19:32:19.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100218-1430/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2010-02-17 19:51:07.000000000 -0500
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
  + *  $Revision: 1.9 $  $Date: 2005/12/05 22:10:14 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100218-1430/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2009-12-22 10:40:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100218-1430/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2010-02-17 19:51:07.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.7 $  $Date: 2009/12/22 15:40:57 $ 
  + *  $Revision: 1.6 $  $Date: 2009/12/02 16:13:57 $ 
    */
   package org.eclipse.e4.xwt.vex.swt;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100218-1430/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-12-02 10:57:42.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100218-1430/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2010-02-17 19:51:07.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.5 $  $Date: 2009/12/02 15:57:42 $ 
  + *  $Revision: 1.4 $  $Date: 2009/05/03 13:44:46 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.macosx;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100218-1430/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-12-22 10:40:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100218-1430/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2010-02-17 19:51:07.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.7 $  $Date: 2009/12/22 15:40:57 $ 
  + *  $Revision: 1.6 $  $Date: 2009/12/02 15:57:42 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100218-1430/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-12-22 10:40:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100218-1430/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2010-02-17 19:51:07.000000000 -0500
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.5 $  $Date: 2009/12/22 15:40:57 $ 
  + *  $Revision: 1.4 $  $Date: 2009/12/02 15:57:42 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix.bits64;
   
  
Verifying tag v20100304-0800
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100304-0800/tests/org.eclipse.e4.xwt.emf.test/build.properties	2010-02-27 01:28:18.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100304-0800/tests/org.eclipse.e4.xwt.emf.test/build.properties	2010-03-03 21:49:32.000000000 -0500
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.3 2010/02/27 06:28:18 yvyang Exp $
  +# $Id: build.properties,v 1.2 2009/07/07 13:09:57 pwebster Exp $
   
   bin.includes = .,\
                  src/model/,\
  
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100304-0800/tests/org.eclipse.e4.xwt.emf.test/plugin.properties	2009-06-24 13:38:38.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100304-0800/tests/org.eclipse.e4.xwt.emf.test/plugin.properties	2010-03-03 21:49:32.000000000 -0500
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.2 2009/06/24 17:38:38 pwebster Exp $
  +# $Id: plugin.properties,v 1.1 2009/06/15 09:15:31 yvyang Exp $
   
   pluginName = Books Model (Incubation)
   providerName = www.eclipse.org
  
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100304-0800/tests/org.eclipse.e4.xwt.emf.test/plugin.xml	2010-02-27 01:28:19.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100304-0800/tests/org.eclipse.e4.xwt.emf.test/plugin.xml	2010-03-03 21:49:32.000000000 -0500
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.2 2010/02/27 06:28:19 yvyang Exp $
  + $Id: plugin.xml,v 1.1 2009/06/15 09:15:31 yvyang Exp $
   -->
   
   <plugin>
  
Verifying tag v20100304-1530
Verifying tag v20100308-1000
Verifying tag v20100315-1230
Verifying tag v20100316-1730
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100316-1730/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2009-12-26 19:01:32.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100316-1730/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2010-03-16 17:11:27.000000000 -0400
  @@ -11,7 +11,7 @@
   package org.eclipse.e4.xwt.tools.ui.designer.policies.layout;
   
   /*
  - * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.1 $ $Date: 2009/12/27 00:01:32 $
  + * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.1 $ $Date: 2009/12/03 20:32:22 $
    */
   
   import java.util.List;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100316-1730/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2009-12-03 15:34:28.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100316-1730/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2010-03-16 17:11:27.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: GridSpanHandle.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:34:28 $ 
  + *  $Revision: 1.6 $  $Date: 2005/08/24 23:52:54 $ 
    */
   
   import org.eclipse.draw2d.ColorConstants;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100316-1730/bundles/org.eclipse.e4.xwt.tools.ui.palette/build.properties	2009-12-03 15:38:23.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100316-1730/bundles/org.eclipse.e4.xwt.tools.ui.palette/build.properties	2010-03-16 17:11:27.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.1 2009/12/03 20:38:23 yvyang Exp $
  +# $Id$
   
   bin.includes = .,\
                  META-INF/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100316-1730/bundles/org.eclipse.e4.xwt.tools.ui.palette/plugin.properties	2009-12-03 15:38:23.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100316-1730/bundles/org.eclipse.e4.xwt.tools.ui.palette/plugin.properties	2010-03-16 17:11:27.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.1 2009/12/03 20:38:23 yvyang Exp $
  +# $Id$
   
   pluginName = Palette Model (Incubation)
   providerName = Eclipse.org
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/CompoundInitializer.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100316-1730/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/CompoundInitializer.java	2010-03-16 16:44:28.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100316-1730/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/CompoundInitializer.java	2010-03-16 17:11:27.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: CompoundInitializer.java,v 1.2 2010/03/16 20:44:28 yvyang Exp $
  + * $Id: CompoundInitializer.java,v 1.1 2010/03/13 10:59:47 yvyang Exp $
    */
   package org.eclipse.e4.xwt.tools.ui.palette;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/Initializer.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100316-1730/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/Initializer.java	2010-03-16 16:44:28.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100316-1730/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/Initializer.java	2010-03-16 17:11:27.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: Initializer.java,v 1.4 2010/03/16 20:44:28 yvyang Exp $
  + * $Id$
    */
   package org.eclipse.e4.xwt.tools.ui.palette;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/CompoundInitializerImpl.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100316-1730/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/CompoundInitializerImpl.java	2010-03-16 16:44:28.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100316-1730/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/CompoundInitializerImpl.java	2010-03-16 17:11:27.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: CompoundInitializerImpl.java,v 1.2 2010/03/16 20:44:28 yvyang Exp $
  + * $Id: CompoundInitializerImpl.java,v 1.1 2010/03/13 10:59:47 yvyang Exp $
    */
   package org.eclipse.e4.xwt.tools.ui.palette.impl;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/InitializerImpl.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100316-1730/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/InitializerImpl.java	2010-03-16 16:44:28.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100316-1730/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/InitializerImpl.java	2010-03-16 17:11:27.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: InitializerImpl.java,v 1.4 2010/03/16 20:44:28 yvyang Exp $
  + * $Id$
    */
   package org.eclipse.e4.xwt.tools.ui.palette.impl;
   
  
Verifying tag v20100317
Verifying tag v20100318
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100318/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2009-12-03 15:35:58.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100318/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2010-03-18 18:10:59.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:58 $ 
  + *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100318/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100318/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2010-03-18 18:10:59.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: ImageFigure.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.3 $  $Date: 2005/08/24 23:12:50 $ 
    */
   
   import org.eclipse.draw2d.Figure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100318/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100318/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2010-03-18 18:10:59.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: OutlineBorder.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.7 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import org.eclipse.draw2d.*;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100318/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100318/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2010-03-18 18:10:59.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: IImageListener.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.4 $  $Date: 2005/08/24 23:12:49 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.images;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100318/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100318/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2010-03-18 18:10:59.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: FreeformXYFlowLayout.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.3 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import org.eclipse.draw2d.IFigure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100318/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100318/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2010-03-18 18:10:59.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: XYFlowLayout.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.4 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import java.util.Iterator;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100318/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100318/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2010-03-18 18:10:59.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: XYLayoutUtility.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.1 $  $Date: 2005/05/11 19:01:26 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.layouts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100318/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100318/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2010-03-18 18:10:59.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: EditPartRunnable.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.1 $  $Date: 2005/06/15 20:19:34 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.parts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100318/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2009-12-11 18:32:20.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100318/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2010-03-18 18:10:59.000000000 -0400
  @@ -9,7 +9,7 @@
    *     Soyatec - initial API and implementation
    *******************************************************************************/
   /*
  - * $RCSfile: IVisualInfo.java,v $ $Revision: 1.3 $ $Date: 2009/12/11 23:32:20 $
  + * $RCSfile: IVisualInfo.java,v $ $Revision: 1.2 $ $Date: 2009/12/11 22:14:35 $
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.visuals;
   
  
Verifying tag v20100318-1700
Verifying tag v20100319
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100319/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2009-12-03 15:35:58.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100319/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2010-03-19 16:31:47.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:58 $ 
  + *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100319/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100319/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2010-03-19 16:31:47.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: ImageFigure.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.3 $  $Date: 2005/08/24 23:12:50 $ 
    */
   
   import org.eclipse.draw2d.Figure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100319/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100319/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2010-03-19 16:31:47.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: OutlineBorder.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.7 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import org.eclipse.draw2d.*;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100319/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100319/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2010-03-19 16:31:47.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: IImageListener.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.4 $  $Date: 2005/08/24 23:12:49 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.images;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100319/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100319/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2010-03-19 16:31:47.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: FreeformXYFlowLayout.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.3 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import org.eclipse.draw2d.IFigure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100319/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100319/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2010-03-19 16:31:47.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: XYFlowLayout.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.4 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import java.util.Iterator;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100319/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100319/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2010-03-19 16:31:47.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: XYLayoutUtility.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.1 $  $Date: 2005/05/11 19:01:26 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.layouts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100319/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100319/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2010-03-19 16:31:47.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: EditPartRunnable.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.1 $  $Date: 2005/06/15 20:19:34 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.parts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100319/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2009-12-11 18:32:20.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100319/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2010-03-19 16:31:47.000000000 -0400
  @@ -9,7 +9,7 @@
    *     Soyatec - initial API and implementation
    *******************************************************************************/
   /*
  - * $RCSfile: IVisualInfo.java,v $ $Revision: 1.3 $ $Date: 2009/12/11 23:32:20 $
  + * $RCSfile: IVisualInfo.java,v $ $Revision: 1.2 $ $Date: 2009/12/11 22:14:35 $
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.visuals;
   
  
Verifying tag v20100319b
Verifying tag v20100319b1
Verifying tag v20100321
Verifying tag v20100406
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100406/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2009-12-26 19:01:32.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100406/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2010-04-05 15:58:21.000000000 -0400
  @@ -11,7 +11,7 @@
   package org.eclipse.e4.xwt.tools.ui.designer.policies.layout;
   
   /*
  - * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.1 $ $Date: 2009/12/27 00:01:32 $
  + * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.1 $ $Date: 2009/12/03 20:32:22 $
    */
   
   import java.util.List;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100406/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2009-12-03 15:34:28.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100406/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2010-04-05 15:58:21.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: GridSpanHandle.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:34:28 $ 
  + *  $Revision: 1.6 $  $Date: 2005/08/24 23:52:54 $ 
    */
   
   import org.eclipse.draw2d.ColorConstants;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.ui.workbench/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100406/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2009-07-02 08:56:18.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100406/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2010-04-05 15:58:21.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2009/07/02 12:56:18 yvyang Exp $
  +# $Id$
   
   bin.includes = .,\
                  model/,\
  
Verifying tag v20100406-0930
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100406-0930/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2009-12-26 19:01:32.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100406-0930/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2010-04-05 15:58:21.000000000 -0400
  @@ -11,7 +11,7 @@
   package org.eclipse.e4.xwt.tools.ui.designer.policies.layout;
   
   /*
  - * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.1 $ $Date: 2009/12/27 00:01:32 $
  + * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.1 $ $Date: 2009/12/03 20:32:22 $
    */
   
   import java.util.List;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100406-0930/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2009-12-03 15:34:28.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100406-0930/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2010-04-05 15:58:21.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: GridSpanHandle.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:34:28 $ 
  + *  $Revision: 1.6 $  $Date: 2005/08/24 23:52:54 $ 
    */
   
   import org.eclipse.draw2d.ColorConstants;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.ui.workbench/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100406-0930/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2009-07-02 08:56:18.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100406-0930/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2010-04-05 15:58:21.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2009/07/02 12:56:18 yvyang Exp $
  +# $Id$
   
   bin.includes = .,\
                  model/,\
  
Verifying tag v20100406bis
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100406bis/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2009-12-26 19:01:32.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100406bis/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2010-04-05 15:58:21.000000000 -0400
  @@ -11,7 +11,7 @@
   package org.eclipse.e4.xwt.tools.ui.designer.policies.layout;
   
   /*
  - * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.1 $ $Date: 2009/12/27 00:01:32 $
  + * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.1 $ $Date: 2009/12/03 20:32:22 $
    */
   
   import java.util.List;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100406bis/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2009-12-03 15:34:28.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100406bis/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2010-04-05 15:58:21.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: GridSpanHandle.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:34:28 $ 
  + *  $Revision: 1.6 $  $Date: 2005/08/24 23:52:54 $ 
    */
   
   import org.eclipse.draw2d.ColorConstants;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.ui.workbench/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100406bis/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2009-07-02 08:56:18.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100406bis/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2010-04-05 15:58:21.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2009/07/02 12:56:18 yvyang Exp $
  +# $Id$
   
   bin.includes = .,\
                  model/,\
  
Verifying tag v20100407
Verifying tag v20100407-2130
Verifying tag v20100408
Verifying tag v20100410
Verifying tag v20100416-1400
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.ui.workbench/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100416-1400/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2009-07-02 08:56:18.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100416-1400/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2010-04-16 13:28:56.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2009/07/02 12:56:18 yvyang Exp $
  +# $Id$
   
   bin.includes = .,\
                  model/,\
  
Verifying tag v20100417
Verifying tag v20100417bis
Verifying tag v20100422
Verifying tag v20100428
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100428/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2010-04-28 16:04:33.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100428/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2010-04-28 16:04:48.000000000 -0400
  @@ -11,7 +11,7 @@
   package org.eclipse.e4.xwt.tools.ui.designer.policies.layout;
   
   /*
  - * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.2 $ $Date: 2010/04/28 20:04:33 $
  + * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.1 $ $Date: 2009/12/27 00:01:32 $
    */
   
   import java.util.List;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100428/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2009-12-03 15:34:28.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100428/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2010-04-28 16:04:48.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: GridSpanHandle.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:34:28 $ 
  + *  $Revision: 1.6 $  $Date: 2005/08/24 23:52:54 $ 
    */
   
   import org.eclipse.draw2d.ColorConstants;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100428/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2010-04-28 16:04:47.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100428/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2010-04-28 16:04:48.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/04/28 20:04:47 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:58 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100428/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2010-04-28 16:04:47.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100428/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2010-04-28 16:04:48.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: ImageFigure.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/04/28 20:04:47 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
    */
   
   import org.eclipse.draw2d.Figure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100428/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100428/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2010-04-28 16:04:48.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: OutlineBorder.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.7 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import org.eclipse.draw2d.*;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100428/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100428/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2010-04-28 16:04:48.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: IImageListener.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.4 $  $Date: 2005/08/24 23:12:49 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.images;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100428/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100428/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2010-04-28 16:04:48.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: FreeformXYFlowLayout.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.3 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import org.eclipse.draw2d.IFigure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100428/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100428/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2010-04-28 16:04:48.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: XYFlowLayout.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.4 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import java.util.Iterator;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100428/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100428/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2010-04-28 16:04:48.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: XYLayoutUtility.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.1 $  $Date: 2005/05/11 19:01:26 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.layouts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100428/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100428/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2010-04-28 16:04:48.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: EditPartRunnable.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.1 $  $Date: 2005/06/15 20:19:34 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.parts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100428/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2009-12-11 18:32:20.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100428/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2010-04-28 16:04:48.000000000 -0400
  @@ -9,7 +9,7 @@
    *     Soyatec - initial API and implementation
    *******************************************************************************/
   /*
  - * $RCSfile: IVisualInfo.java,v $ $Revision: 1.3 $ $Date: 2009/12/11 23:32:20 $
  + * $RCSfile: IVisualInfo.java,v $ $Revision: 1.2 $ $Date: 2009/12/11 22:14:35 $
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.visuals;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100428/bundles/org.eclipse.e4.xwt.tools.ui.palette/build.properties	2009-12-03 15:38:23.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100428/bundles/org.eclipse.e4.xwt.tools.ui.palette/build.properties	2010-04-28 16:04:48.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.1 2009/12/03 20:38:23 yvyang Exp $
  +# $Id$
   
   bin.includes = .,\
                  META-INF/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100428/bundles/org.eclipse.e4.xwt.tools.ui.palette/plugin.properties	2009-12-03 15:38:23.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100428/bundles/org.eclipse.e4.xwt.tools.ui.palette/plugin.properties	2010-04-28 16:04:48.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.1 2009/12/03 20:38:23 yvyang Exp $
  +# $Id$
   
   pluginName = Palette Model (Incubation)
   providerName = Eclipse.org
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/CompoundInitializer.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100428/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/CompoundInitializer.java	2010-03-16 16:44:28.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100428/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/CompoundInitializer.java	2010-04-28 16:04:48.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: CompoundInitializer.java,v 1.2 2010/03/16 20:44:28 yvyang Exp $
  + * $Id: CompoundInitializer.java,v 1.1 2010/03/13 10:59:47 yvyang Exp $
    */
   package org.eclipse.e4.xwt.tools.ui.palette;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/Initializer.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100428/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/Initializer.java	2010-03-16 16:44:28.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100428/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/Initializer.java	2010-04-28 16:04:48.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: Initializer.java,v 1.4 2010/03/16 20:44:28 yvyang Exp $
  + * $Id$
    */
   package org.eclipse.e4.xwt.tools.ui.palette;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/CompoundInitializerImpl.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100428/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/CompoundInitializerImpl.java	2010-03-16 16:44:28.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100428/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/CompoundInitializerImpl.java	2010-04-28 16:04:48.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: CompoundInitializerImpl.java,v 1.2 2010/03/16 20:44:28 yvyang Exp $
  + * $Id: CompoundInitializerImpl.java,v 1.1 2010/03/13 10:59:47 yvyang Exp $
    */
   package org.eclipse.e4.xwt.tools.ui.palette.impl;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/InitializerImpl.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100428/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/InitializerImpl.java	2010-03-16 16:44:28.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100428/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/InitializerImpl.java	2010-04-28 16:04:48.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: InitializerImpl.java,v 1.4 2010/03/16 20:44:28 yvyang Exp $
  + * $Id$
    */
   package org.eclipse.e4.xwt.tools.ui.palette.impl;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.xaml/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100428/bundles/org.eclipse.e4.xwt.tools.ui.xaml/build.properties	2009-12-03 15:39:32.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100428/bundles/org.eclipse.e4.xwt.tools.ui.xaml/build.properties	2010-04-28 16:04:48.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.1 2009/12/03 20:39:32 yvyang Exp $
  +# $Id$
   
   bin.includes = .,\
                  META-INF/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.xaml/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100428/bundles/org.eclipse.e4.xwt.tools.ui.xaml/plugin.properties	2009-12-03 15:39:32.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100428/bundles/org.eclipse.e4.xwt.tools.ui.xaml/plugin.properties	2010-04-28 16:04:48.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.1 2009/12/03 20:39:32 yvyang Exp $
  +# $Id$
   
   pluginName = XAML Model (Incubation)
   providerName = Eclipse.org
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.ui.workbench/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100428/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2009-07-02 08:56:18.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100428/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2010-04-28 16:04:48.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2009/07/02 12:56:18 yvyang Exp $
  +# $Id$
   
   bin.includes = .,\
                  model/,\
  
Verifying tag v20100428-1730
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100428-1730/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2010-04-28 16:04:33.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100428-1730/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2010-04-28 16:04:49.000000000 -0400
  @@ -11,7 +11,7 @@
   package org.eclipse.e4.xwt.tools.ui.designer.policies.layout;
   
   /*
  - * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.2 $ $Date: 2010/04/28 20:04:33 $
  + * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.1 $ $Date: 2009/12/27 00:01:32 $
    */
   
   import java.util.List;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100428-1730/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2009-12-03 15:34:28.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100428-1730/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2010-04-28 16:04:49.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: GridSpanHandle.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:34:28 $ 
  + *  $Revision: 1.6 $  $Date: 2005/08/24 23:52:54 $ 
    */
   
   import org.eclipse.draw2d.ColorConstants;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100428-1730/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2010-04-28 16:04:47.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100428-1730/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2010-04-28 16:04:49.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/04/28 20:04:47 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:58 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100428-1730/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2010-04-28 16:04:47.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100428-1730/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2010-04-28 16:04:49.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: ImageFigure.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/04/28 20:04:47 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
    */
   
   import org.eclipse.draw2d.Figure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100428-1730/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100428-1730/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2010-04-28 16:04:49.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: OutlineBorder.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.7 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import org.eclipse.draw2d.*;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100428-1730/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100428-1730/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2010-04-28 16:04:49.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: IImageListener.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.4 $  $Date: 2005/08/24 23:12:49 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.images;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100428-1730/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100428-1730/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2010-04-28 16:04:49.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: FreeformXYFlowLayout.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.3 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import org.eclipse.draw2d.IFigure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100428-1730/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100428-1730/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2010-04-28 16:04:49.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: XYFlowLayout.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.4 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import java.util.Iterator;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100428-1730/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100428-1730/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2010-04-28 16:04:49.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: XYLayoutUtility.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.1 $  $Date: 2005/05/11 19:01:26 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.layouts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100428-1730/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100428-1730/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2010-04-28 16:04:49.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: EditPartRunnable.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.1 $  $Date: 2005/06/15 20:19:34 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.parts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100428-1730/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2009-12-11 18:32:20.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100428-1730/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2010-04-28 16:04:49.000000000 -0400
  @@ -9,7 +9,7 @@
    *     Soyatec - initial API and implementation
    *******************************************************************************/
   /*
  - * $RCSfile: IVisualInfo.java,v $ $Revision: 1.3 $ $Date: 2009/12/11 23:32:20 $
  + * $RCSfile: IVisualInfo.java,v $ $Revision: 1.2 $ $Date: 2009/12/11 22:14:35 $
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.visuals;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100428-1730/bundles/org.eclipse.e4.xwt.tools.ui.palette/build.properties	2009-12-03 15:38:23.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100428-1730/bundles/org.eclipse.e4.xwt.tools.ui.palette/build.properties	2010-04-28 16:04:49.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.1 2009/12/03 20:38:23 yvyang Exp $
  +# $Id$
   
   bin.includes = .,\
                  META-INF/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100428-1730/bundles/org.eclipse.e4.xwt.tools.ui.palette/plugin.properties	2009-12-03 15:38:23.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100428-1730/bundles/org.eclipse.e4.xwt.tools.ui.palette/plugin.properties	2010-04-28 16:04:49.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.1 2009/12/03 20:38:23 yvyang Exp $
  +# $Id$
   
   pluginName = Palette Model (Incubation)
   providerName = Eclipse.org
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/CompoundInitializer.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100428-1730/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/CompoundInitializer.java	2010-03-16 16:44:28.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100428-1730/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/CompoundInitializer.java	2010-04-28 16:04:49.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: CompoundInitializer.java,v 1.2 2010/03/16 20:44:28 yvyang Exp $
  + * $Id: CompoundInitializer.java,v 1.1 2010/03/13 10:59:47 yvyang Exp $
    */
   package org.eclipse.e4.xwt.tools.ui.palette;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/Initializer.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100428-1730/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/Initializer.java	2010-03-16 16:44:28.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100428-1730/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/Initializer.java	2010-04-28 16:04:49.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: Initializer.java,v 1.4 2010/03/16 20:44:28 yvyang Exp $
  + * $Id$
    */
   package org.eclipse.e4.xwt.tools.ui.palette;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/CompoundInitializerImpl.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100428-1730/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/CompoundInitializerImpl.java	2010-03-16 16:44:28.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100428-1730/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/CompoundInitializerImpl.java	2010-04-28 16:04:49.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: CompoundInitializerImpl.java,v 1.2 2010/03/16 20:44:28 yvyang Exp $
  + * $Id: CompoundInitializerImpl.java,v 1.1 2010/03/13 10:59:47 yvyang Exp $
    */
   package org.eclipse.e4.xwt.tools.ui.palette.impl;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/InitializerImpl.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100428-1730/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/InitializerImpl.java	2010-03-16 16:44:28.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100428-1730/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/InitializerImpl.java	2010-04-28 16:04:49.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: InitializerImpl.java,v 1.4 2010/03/16 20:44:28 yvyang Exp $
  + * $Id$
    */
   package org.eclipse.e4.xwt.tools.ui.palette.impl;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.xaml/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100428-1730/bundles/org.eclipse.e4.xwt.tools.ui.xaml/build.properties	2009-12-03 15:39:32.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100428-1730/bundles/org.eclipse.e4.xwt.tools.ui.xaml/build.properties	2010-04-28 16:04:49.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.1 2009/12/03 20:39:32 yvyang Exp $
  +# $Id$
   
   bin.includes = .,\
                  META-INF/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.xaml/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100428-1730/bundles/org.eclipse.e4.xwt.tools.ui.xaml/plugin.properties	2009-12-03 15:39:32.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100428-1730/bundles/org.eclipse.e4.xwt.tools.ui.xaml/plugin.properties	2010-04-28 16:04:49.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.1 2009/12/03 20:39:32 yvyang Exp $
  +# $Id$
   
   pluginName = XAML Model (Incubation)
   providerName = Eclipse.org
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.ui.workbench/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100428-1730/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2009-07-02 08:56:18.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100428-1730/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2010-04-28 16:04:49.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2009/07/02 12:56:18 yvyang Exp $
  +# $Id$
   
   bin.includes = .,\
                  model/,\
  
Verifying tag v20100428-2200
Verifying tag v20100504
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100504/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2010-04-28 16:04:33.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100504/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2010-05-03 18:01:52.000000000 -0400
  @@ -11,7 +11,7 @@
   package org.eclipse.e4.xwt.tools.ui.designer.policies.layout;
   
   /*
  - * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.2 $ $Date: 2010/04/28 20:04:33 $
  + * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.1 $ $Date: 2009/12/27 00:01:32 $
    */
   
   import java.util.List;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100504/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2009-12-03 15:34:28.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100504/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2010-05-03 18:01:52.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: GridSpanHandle.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:34:28 $ 
  + *  $Revision: 1.6 $  $Date: 2005/08/24 23:52:54 $ 
    */
   
   import org.eclipse.draw2d.ColorConstants;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.ui.workbench/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100504/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2009-07-02 08:56:18.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100504/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2010-05-03 18:01:52.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2009/07/02 12:56:18 yvyang Exp $
  +# $Id$
   
   bin.includes = .,\
                  model/,\
  
Verifying tag v20100505-0730
Verifying tag v20100514-0830
 FAIL: File contents differ for bundles/org.eclipse.e4.tools.ui.designer/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100514-0830/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-05-10 15:45:14.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100514-0830/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-05-13 19:14:27.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.1 2010/05/10 19:45:14 yvyang Exp $
  +# $Id$
   
   pluginName = Node Edit Support
   providerName = www.example.org
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100514-0830/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2010-04-28 16:04:33.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100514-0830/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2010-05-13 19:14:27.000000000 -0400
  @@ -11,7 +11,7 @@
   package org.eclipse.e4.xwt.tools.ui.designer.policies.layout;
   
   /*
  - * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.2 $ $Date: 2010/04/28 20:04:33 $
  + * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.1 $ $Date: 2009/12/27 00:01:32 $
    */
   
   import java.util.List;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100514-0830/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2009-12-03 15:34:28.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100514-0830/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2010-05-13 19:14:27.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: GridSpanHandle.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:34:28 $ 
  + *  $Revision: 1.6 $  $Date: 2005/08/24 23:52:54 $ 
    */
   
   import org.eclipse.draw2d.ColorConstants;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100514-0830/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2010-04-28 16:04:47.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100514-0830/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2010-05-13 19:14:27.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/04/28 20:04:47 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:58 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100514-0830/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2010-04-28 16:04:47.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100514-0830/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2010-05-13 19:14:27.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: ImageFigure.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/04/28 20:04:47 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
    */
   
   import org.eclipse.draw2d.Figure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100514-0830/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100514-0830/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2010-05-13 19:14:27.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: OutlineBorder.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.7 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import org.eclipse.draw2d.*;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100514-0830/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100514-0830/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2010-05-13 19:14:27.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: IImageListener.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.4 $  $Date: 2005/08/24 23:12:49 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.images;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100514-0830/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100514-0830/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2010-05-13 19:14:27.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: FreeformXYFlowLayout.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.3 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import org.eclipse.draw2d.IFigure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100514-0830/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100514-0830/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2010-05-13 19:14:27.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: XYFlowLayout.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.4 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import java.util.Iterator;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100514-0830/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100514-0830/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2010-05-13 19:14:27.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: XYLayoutUtility.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.1 $  $Date: 2005/05/11 19:01:26 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.layouts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100514-0830/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100514-0830/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2010-05-13 19:14:27.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: EditPartRunnable.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.1 $  $Date: 2005/06/15 20:19:34 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.parts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100514-0830/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2009-12-11 18:32:20.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100514-0830/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2010-05-13 19:14:27.000000000 -0400
  @@ -9,7 +9,7 @@
    *     Soyatec - initial API and implementation
    *******************************************************************************/
   /*
  - * $RCSfile: IVisualInfo.java,v $ $Revision: 1.3 $ $Date: 2009/12/11 23:32:20 $
  + * $RCSfile: IVisualInfo.java,v $ $Revision: 1.2 $ $Date: 2009/12/11 22:14:35 $
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.visuals;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.xaml/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100514-0830/bundles/org.eclipse.e4.xwt.tools.ui.xaml/build.properties	2009-12-03 15:39:32.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100514-0830/bundles/org.eclipse.e4.xwt.tools.ui.xaml/build.properties	2010-05-13 19:14:27.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.1 2009/12/03 20:39:32 yvyang Exp $
  +# $Id$
   
   bin.includes = .,\
                  META-INF/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.xaml/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100514-0830/bundles/org.eclipse.e4.xwt.tools.ui.xaml/plugin.properties	2009-12-03 15:39:32.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100514-0830/bundles/org.eclipse.e4.xwt.tools.ui.xaml/plugin.properties	2010-05-13 19:14:27.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.1 2009/12/03 20:39:32 yvyang Exp $
  +# $Id$
   
   pluginName = XAML Model (Incubation)
   providerName = Eclipse.org
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.ui.workbench/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100514-0830/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2009-07-02 08:56:18.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100514-0830/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2010-05-13 19:14:27.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2009/07/02 12:56:18 yvyang Exp $
  +# $Id$
   
   bin.includes = .,\
                  model/,\
  
Verifying tag v20100520-1200
 FAIL: File contents differ for bundles/org.eclipse.e4.tools.ui.designer/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100520-1200/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-05-10 15:45:14.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100520-1200/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-05-19 17:05:42.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.1 2010/05/10 19:45:14 yvyang Exp $
  +# $Id$
   
   pluginName = Node Edit Support
   providerName = www.example.org
  
Verifying tag v20100521
 FAIL: File contents differ for bundles/org.eclipse.e4.tools.ui.designer/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100521/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-05-10 15:45:14.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100521/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-05-20 18:19:49.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.1 2010/05/10 19:45:14 yvyang Exp $
  +# $Id$
   
   pluginName = Node Edit Support
   providerName = www.example.org
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100521/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2010-04-28 16:04:33.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100521/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2010-05-20 18:19:49.000000000 -0400
  @@ -11,7 +11,7 @@
   package org.eclipse.e4.xwt.tools.ui.designer.policies.layout;
   
   /*
  - * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.2 $ $Date: 2010/04/28 20:04:33 $
  + * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.1 $ $Date: 2009/12/27 00:01:32 $
    */
   
   import java.util.List;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100521/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2009-12-03 15:34:28.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100521/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2010-05-20 18:19:49.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: GridSpanHandle.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:34:28 $ 
  + *  $Revision: 1.6 $  $Date: 2005/08/24 23:52:54 $ 
    */
   
   import org.eclipse.draw2d.ColorConstants;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100521/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2010-04-28 16:04:47.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100521/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2010-05-20 18:19:49.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/04/28 20:04:47 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:58 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100521/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2010-04-28 16:04:47.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100521/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2010-05-20 18:19:49.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: ImageFigure.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/04/28 20:04:47 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
    */
   
   import org.eclipse.draw2d.Figure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100521/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100521/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2010-05-20 18:19:49.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: OutlineBorder.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.7 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import org.eclipse.draw2d.*;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100521/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100521/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2010-05-20 18:19:49.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: IImageListener.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.4 $  $Date: 2005/08/24 23:12:49 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.images;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100521/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100521/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2010-05-20 18:19:49.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: FreeformXYFlowLayout.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.3 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import org.eclipse.draw2d.IFigure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100521/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100521/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2010-05-20 18:19:49.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: XYFlowLayout.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.4 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import java.util.Iterator;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100521/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100521/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2010-05-20 18:19:49.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: XYLayoutUtility.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.1 $  $Date: 2005/05/11 19:01:26 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.layouts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100521/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100521/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2010-05-20 18:19:49.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: EditPartRunnable.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.1 $  $Date: 2005/06/15 20:19:34 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.parts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100521/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2009-12-11 18:32:20.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100521/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2010-05-20 18:19:49.000000000 -0400
  @@ -9,7 +9,7 @@
    *     Soyatec - initial API and implementation
    *******************************************************************************/
   /*
  - * $RCSfile: IVisualInfo.java,v $ $Revision: 1.3 $ $Date: 2009/12/11 23:32:20 $
  + * $RCSfile: IVisualInfo.java,v $ $Revision: 1.2 $ $Date: 2009/12/11 22:14:35 $
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.visuals;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.ui.workbench/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100521/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2009-07-02 08:56:18.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100521/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2010-05-20 18:19:49.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2009/07/02 12:56:18 yvyang Exp $
  +# $Id$
   
   bin.includes = .,\
                  model/,\
  
Verifying tag v20100521-0900
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.ui.workbench/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100521-0900/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2009-07-02 08:56:18.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100521-0900/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2010-05-13 10:24:10.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2009/07/02 12:56:18 yvyang Exp $
  +# $Id$
   
   bin.includes = .,\
                  model/,\
  
Verifying tag v20100522
 FAIL: File contents differ for bundles/org.eclipse.e4.tools.ui.designer/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100522/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-05-22 08:34:17.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100522/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-05-22 12:20:14.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.2 2010/05/22 12:34:17 yvyang Exp $
  +# $Id: plugin.properties,v 1.1 2010/05/10 19:45:14 yvyang Exp $
   
   pluginName = e4 Visual Design Editor
   providerName = Eclipse.org
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100522/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2010-04-28 16:04:33.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100522/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2010-05-22 12:20:14.000000000 -0400
  @@ -11,7 +11,7 @@
   package org.eclipse.e4.xwt.tools.ui.designer.policies.layout;
   
   /*
  - * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.2 $ $Date: 2010/04/28 20:04:33 $
  + * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.1 $ $Date: 2009/12/27 00:01:32 $
    */
   
   import java.util.List;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100522/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2009-12-03 15:34:28.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100522/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2010-05-22 12:20:14.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: GridSpanHandle.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:34:28 $ 
  + *  $Revision: 1.6 $  $Date: 2005/08/24 23:52:54 $ 
    */
   
   import org.eclipse.draw2d.ColorConstants;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100522/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2010-04-28 16:04:47.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100522/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2010-05-22 12:20:14.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/04/28 20:04:47 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:58 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100522/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2010-04-28 16:04:47.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100522/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2010-05-22 12:20:14.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: ImageFigure.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/04/28 20:04:47 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
    */
   
   import org.eclipse.draw2d.Figure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100522/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100522/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2010-05-22 12:20:14.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: OutlineBorder.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.7 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import org.eclipse.draw2d.*;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100522/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100522/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2010-05-22 12:20:14.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: IImageListener.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.4 $  $Date: 2005/08/24 23:12:49 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.images;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100522/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100522/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2010-05-22 12:20:14.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: FreeformXYFlowLayout.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.3 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import org.eclipse.draw2d.IFigure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100522/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100522/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2010-05-22 12:20:14.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: XYFlowLayout.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.4 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import java.util.Iterator;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100522/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100522/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2010-05-22 12:20:14.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: XYLayoutUtility.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.1 $  $Date: 2005/05/11 19:01:26 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.layouts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100522/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100522/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2010-05-22 12:20:14.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: EditPartRunnable.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.1 $  $Date: 2005/06/15 20:19:34 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.parts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100522/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2009-12-11 18:32:20.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100522/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2010-05-22 12:20:14.000000000 -0400
  @@ -9,7 +9,7 @@
    *     Soyatec - initial API and implementation
    *******************************************************************************/
   /*
  - * $RCSfile: IVisualInfo.java,v $ $Revision: 1.3 $ $Date: 2009/12/11 23:32:20 $
  + * $RCSfile: IVisualInfo.java,v $ $Revision: 1.2 $ $Date: 2009/12/11 22:14:35 $
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.visuals;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.ui.workbench/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100522/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2009-07-02 08:56:18.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100522/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2010-05-22 12:20:14.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2009/07/02 12:56:18 yvyang Exp $
  +# $Id$
   
   bin.includes = .,\
                  model/,\
  
Verifying tag v20100522-1900
 FAIL: File contents differ for bundles/org.eclipse.e4.tools.ui.designer/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100522-1900/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-05-22 16:53:49.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100522-1900/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-05-22 19:00:13.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.3 2010/05/22 20:53:49 yvyang Exp $
  +# $Id: plugin.properties,v 1.2 2010/05/22 12:34:17 yvyang Exp $
   
   pluginName = e4 Visual Design Editor (Incubation)
   providerName = Eclipse.org
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.categorynode/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100522-1900/bundles/org.eclipse.e4.xwt.tools.categorynode/build.properties	2010-05-22 17:00:28.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100522-1900/bundles/org.eclipse.e4.xwt.tools.categorynode/build.properties	2010-05-22 19:00:13.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.1 2010/05/22 21:00:28 yvyang Exp $
  +# $Id: build.properties,v 1.1 2010/05/22 20:54:41 yvyang Exp $
   
   bin.includes = .,\
                  model/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.categorynode/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100522-1900/bundles/org.eclipse.e4.xwt.tools.categorynode/plugin.xml	2010-05-22 17:00:28.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100522-1900/bundles/org.eclipse.e4.xwt.tools.categorynode/plugin.xml	2010-05-22 19:00:13.000000000 -0400
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.1 2010/05/22 21:00:28 yvyang Exp $
  + $Id: plugin.xml,v 1.1 2010/05/22 20:54:41 yvyang Exp $
   -->
   
   <plugin>
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.categorynode.edit/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100522-1900/bundles/org.eclipse.e4.xwt.tools.categorynode.edit/build.properties	2010-05-22 16:52:05.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100522-1900/bundles/org.eclipse.e4.xwt.tools.categorynode.edit/build.properties	2010-05-22 19:00:13.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.1 2010/05/22 20:52:05 yvyang Exp $
  +# $Id$
   
   bin.includes = .,\
                  icons/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.categorynode.edit/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100522-1900/bundles/org.eclipse.e4.xwt.tools.categorynode.edit/plugin.xml	2010-05-22 16:52:05.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100522-1900/bundles/org.eclipse.e4.xwt.tools.categorynode.edit/plugin.xml	2010-05-22 19:00:13.000000000 -0400
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.1 2010/05/22 20:52:05 yvyang Exp $
  + $Id$
   -->
   
   <plugin>
  
Verifying tag v20100523bis
 FAIL: File contents differ for bundles/org.eclipse.e4.tools.ui.designer/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100523bis/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-05-22 16:53:49.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100523bis/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-05-23 07:16:18.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.3 2010/05/22 20:53:49 yvyang Exp $
  +# $Id: plugin.properties,v 1.2 2010/05/22 12:34:17 yvyang Exp $
   
   pluginName = e4 Visual Design Editor (Incubation)
   providerName = Eclipse.org
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.ui.workbench/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100523bis/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2009-07-02 08:56:18.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100523bis/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2010-05-23 07:16:18.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2009/07/02 12:56:18 yvyang Exp $
  +# $Id$
   
   bin.includes = .,\
                  model/,\
  
Verifying tag v20100525-1600
 FAIL: File contents differ for bundles/org.eclipse.e4.tools.ui.designer/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100525-1600/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-05-22 16:53:49.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100525-1600/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-05-25 15:50:46.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.3 2010/05/22 20:53:49 yvyang Exp $
  +# $Id: plugin.properties,v 1.2 2010/05/22 12:34:17 yvyang Exp $
   
   pluginName = e4 Visual Design Editor (Incubation)
   providerName = Eclipse.org
  
Verifying tag v20100526
 FAIL: File contents differ for bundles/org.eclipse.e4.tools.ui.designer/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100526/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-05-22 16:53:49.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100526/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-05-25 22:52:48.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.3 2010/05/22 20:53:49 yvyang Exp $
  +# $Id: plugin.properties,v 1.2 2010/05/22 12:34:17 yvyang Exp $
   
   pluginName = e4 Visual Design Editor (Incubation)
   providerName = Eclipse.org
  
Verifying tag v20100603
 FAIL: File contents differ for bundles/org.eclipse.e4.tools.ui.designer/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100603/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-05-22 16:53:49.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100603/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-06-01 18:01:03.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.3 2010/05/22 20:53:49 yvyang Exp $
  +# $Id: plugin.properties,v 1.2 2010/05/22 12:34:17 yvyang Exp $
   
   pluginName = e4 Visual Design Editor (Incubation)
   providerName = Eclipse.org
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100603/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2010-04-28 16:04:33.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100603/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2010-06-01 18:01:03.000000000 -0400
  @@ -11,7 +11,7 @@
   package org.eclipse.e4.xwt.tools.ui.designer.policies.layout;
   
   /*
  - * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.2 $ $Date: 2010/04/28 20:04:33 $
  + * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.1 $ $Date: 2009/12/27 00:01:32 $
    */
   
   import java.util.List;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100603/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2009-12-03 15:34:28.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100603/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2010-06-01 18:01:03.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: GridSpanHandle.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:34:28 $ 
  + *  $Revision: 1.6 $  $Date: 2005/08/24 23:52:54 $ 
    */
   
   import org.eclipse.draw2d.ColorConstants;
  
Verifying tag v20100603-1900
 FAIL: File contents differ for bundles/org.eclipse.e4.tools.ui.designer/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100603-1900/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-05-22 16:53:49.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100603-1900/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-06-03 15:34:34.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.3 2010/05/22 20:53:49 yvyang Exp $
  +# $Id: plugin.properties,v 1.2 2010/05/22 12:34:17 yvyang Exp $
   
   pluginName = e4 Visual Design Editor (Incubation)
   providerName = Eclipse.org
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.ui.workbench/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100603-1900/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2009-07-02 08:56:18.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100603-1900/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2010-06-03 15:34:34.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2009/07/02 12:56:18 yvyang Exp $
  +# $Id$
   
   bin.includes = .,\
                  model/,\
  
Verifying tag v20100604-1515
 FAIL: File contents differ for bundles/org.eclipse.e4.tools.ui.designer/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100604-1515/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-05-22 16:53:49.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100604-1515/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-06-03 15:34:35.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.3 2010/05/22 20:53:49 yvyang Exp $
  +# $Id: plugin.properties,v 1.2 2010/05/22 12:34:17 yvyang Exp $
   
   pluginName = e4 Visual Design Editor (Incubation)
   providerName = Eclipse.org
  
Verifying tag v20100606-1500
 FAIL: File contents differ for bundles/org.eclipse.e4.tools.ui.designer/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100606-1500/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-05-22 16:53:49.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100606-1500/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-06-04 16:22:12.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.3 2010/05/22 20:53:49 yvyang Exp $
  +# $Id: plugin.properties,v 1.2 2010/05/22 12:34:17 yvyang Exp $
   
   pluginName = e4 Visual Design Editor (Incubation)
   providerName = Eclipse.org
  
Verifying tag v20100609-2000
 FAIL: File contents differ for bundles/org.eclipse.e4.tools.ui.designer/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100609-2000/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-05-22 16:53:49.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100609-2000/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-06-09 09:59:28.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.3 2010/05/22 20:53:49 yvyang Exp $
  +# $Id: plugin.properties,v 1.2 2010/05/22 12:34:17 yvyang Exp $
   
   pluginName = e4 Visual Design Editor (Incubation)
   providerName = Eclipse.org
  
Verifying tag v20100613-1900
 FAIL: File contents differ for bundles/org.eclipse.e4.tools.ui.designer/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100613-1900/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-05-22 16:53:49.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100613-1900/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-06-13 19:18:37.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.3 2010/05/22 20:53:49 yvyang Exp $
  +# $Id: plugin.properties,v 1.2 2010/05/22 12:34:17 yvyang Exp $
   
   pluginName = e4 Visual Design Editor (Incubation)
   providerName = Eclipse.org
  
Verifying tag v20100614-1830
 FAIL: File contents differ for bundles/org.eclipse.e4.tools.ui.designer/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100614-1830/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-05-22 16:53:49.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100614-1830/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-06-14 15:00:17.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.3 2010/05/22 20:53:49 yvyang Exp $
  +# $Id: plugin.properties,v 1.2 2010/05/22 12:34:17 yvyang Exp $
   
   pluginName = e4 Visual Design Editor (Incubation)
   providerName = Eclipse.org
  
Verifying tag v20100615-2100
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100615-2100/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2010-04-28 16:04:47.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100615-2100/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2010-06-15 18:10:07.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/04/28 20:04:47 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:58 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100615-2100/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2010-04-28 16:04:47.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100615-2100/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2010-06-15 18:10:07.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: ImageFigure.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/04/28 20:04:47 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
    */
   
   import org.eclipse.draw2d.Figure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100615-2100/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100615-2100/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2010-06-15 18:10:07.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: OutlineBorder.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.7 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import org.eclipse.draw2d.*;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100615-2100/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100615-2100/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2010-06-15 18:10:07.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: IImageListener.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.4 $  $Date: 2005/08/24 23:12:49 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.images;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100615-2100/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100615-2100/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2010-06-15 18:10:07.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: FreeformXYFlowLayout.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.3 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import org.eclipse.draw2d.IFigure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100615-2100/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2009-12-03 15:35:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100615-2100/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2010-06-15 18:10:07.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: XYFlowLayout.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
  + *  $Revision: 1.4 $  $Date: 2005/08/24 23:12:49 $ 
    */
   
   import java.util.Iterator;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100615-2100/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100615-2100/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2010-06-15 18:10:07.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: XYLayoutUtility.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.1 $  $Date: 2005/05/11 19:01:26 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.layouts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100615-2100/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2009-12-03 15:35:56.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100615-2100/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2010-06-15 18:10:07.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: EditPartRunnable.java,v $
  - *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
  + *  $Revision: 1.1 $  $Date: 2005/06/15 20:19:34 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.parts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100615-2100/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2009-12-11 18:32:20.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100615-2100/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2010-06-15 18:10:07.000000000 -0400
  @@ -9,7 +9,7 @@
    *     Soyatec - initial API and implementation
    *******************************************************************************/
   /*
  - * $RCSfile: IVisualInfo.java,v $ $Revision: 1.3 $ $Date: 2009/12/11 23:32:20 $
  + * $RCSfile: IVisualInfo.java,v $ $Revision: 1.2 $ $Date: 2009/12/11 22:14:35 $
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.visuals;
   
  
Verifying tag v20100616-1900
 FAIL: File contents differ for bundles/org.eclipse.e4.tools.ui.designer/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100616-1900/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-05-22 16:53:49.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100616-1900/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-06-16 09:05:38.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.3 2010/05/22 20:53:49 yvyang Exp $
  +# $Id: plugin.properties,v 1.2 2010/05/22 12:34:17 yvyang Exp $
   
   pluginName = e4 Visual Design Editor (Incubation)
   providerName = Eclipse.org
  
Verifying tag v20100617-2100
 FAIL: File contents differ for bundles/org.eclipse.e4.tools.ui.designer/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100617-2100/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-06-17 20:10:57.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100617-2100/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-06-17 20:28:29.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.4 2010/06/18 00:10:57 yvyang Exp $
  +# $Id: plugin.properties,v 1.3 2010/05/22 20:53:49 yvyang Exp $
   
   pluginName = e4 Visual Design Editor (Incubation)
   providerName = Eclipse.org
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.categorynode/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.tools.categorynode/build.properties	2010-06-17 20:27:04.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.tools.categorynode/build.properties	2010-06-17 20:28:29.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2010/06/18 00:27:04 yvyang Exp $
  +# $Id: build.properties,v 1.1 2010/05/22 21:00:28 yvyang Exp $
   
   bin.includes = .,\
                  model/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.categorynode.edit/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.tools.categorynode.edit/build.properties	2010-06-17 20:27:02.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.tools.categorynode.edit/build.properties	2010-06-17 20:28:29.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2010/06/18 00:27:02 yvyang Exp $
  +# $Id: build.properties,v 1.1 2010/05/22 20:52:05 yvyang Exp $
   
   bin.includes = .,\
                  icons/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2010-06-17 20:15:49.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2010-06-17 20:28:29.000000000 -0400
  @@ -11,7 +11,7 @@
   package org.eclipse.e4.xwt.tools.ui.designer.policies.layout;
   
   /*
  - * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.3 $ $Date: 2010/06/18 00:15:49 $
  + * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.2 $ $Date: 2010/04/28 20:04:33 $
    */
   
   import java.util.List;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2010-06-17 20:15:48.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2010-06-17 20:28:29.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: GridSpanHandle.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:48 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:34:28 $ 
    */
   
   import org.eclipse.draw2d.ColorConstants;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2010-06-17 20:15:25.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2010-06-17 20:28:29.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.3 $  $Date: 2010/06/18 00:15:25 $ 
  + *  $Revision: 1.2 $  $Date: 2010/04/28 20:04:47 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2010-06-17 20:15:23.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2010-06-17 20:28:29.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: ImageFigure.java,v $
  - *  $Revision: 1.3 $  $Date: 2010/06/18 00:15:23 $ 
  + *  $Revision: 1.2 $  $Date: 2010/04/28 20:04:47 $ 
    */
   
   import org.eclipse.draw2d.Figure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2010-06-17 20:15:23.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2010-06-17 20:28:29.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: OutlineBorder.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:23 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
    */
   
   import org.eclipse.draw2d.*;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2010-06-17 20:15:23.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2010-06-17 20:28:29.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: IImageListener.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:23 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.images;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2010-06-17 20:15:22.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2010-06-17 20:28:29.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: FreeformXYFlowLayout.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:22 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
    */
   
   import org.eclipse.draw2d.IFigure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2010-06-17 20:15:22.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2010-06-17 20:28:29.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: XYFlowLayout.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:22 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
    */
   
   import java.util.Iterator;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2010-06-17 20:15:22.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2010-06-17 20:28:29.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: XYLayoutUtility.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:22 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.layouts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2010-06-17 20:15:24.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2010-06-17 20:28:29.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: EditPartRunnable.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:24 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.parts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2010-06-17 20:15:24.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2010-06-17 20:28:29.000000000 -0400
  @@ -9,7 +9,7 @@
    *     Soyatec - initial API and implementation
    *******************************************************************************/
   /*
  - * $RCSfile: IVisualInfo.java,v $ $Revision: 1.4 $ $Date: 2010/06/18 00:15:24 $
  + * $RCSfile: IVisualInfo.java,v $ $Revision: 1.3 $ $Date: 2009/12/11 23:32:20 $
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.visuals;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-12-11 17:14:10.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2010-06-17 20:28:29.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.2 $  $Date: 2009/12/11 22:14:10 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:37:22 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.macosx;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-12-22 10:40:54.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2010-06-17 20:28:29.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.3 $  $Date: 2009/12/22 15:40:54 $ 
  + *  $Revision: 1.2 $  $Date: 2009/12/11 22:14:10 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-12-22 10:40:54.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2010-06-17 20:28:29.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.3 $  $Date: 2009/12/22 15:40:54 $ 
  + *  $Revision: 1.2 $  $Date: 2009/12/11 22:14:10 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix.bits64;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.tools.ui.palette/build.properties	2010-06-17 20:15:59.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.tools.ui.palette/build.properties	2010-06-17 20:28:29.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2010/06/18 00:15:59 yvyang Exp $
  +# $Id: build.properties,v 1.1 2009/12/03 20:38:23 yvyang Exp $
   
   bin.includes = .,\
                  META-INF/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.tools.ui.palette/plugin.properties	2010-06-17 20:15:59.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.tools.ui.palette/plugin.properties	2010-06-17 20:28:29.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.2 2010/06/18 00:15:59 yvyang Exp $
  +# $Id: plugin.properties,v 1.1 2009/12/03 20:38:23 yvyang Exp $
   
   pluginName = Palette Model (Incubation)
   providerName = Eclipse.org
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/CompoundInitializer.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/CompoundInitializer.java	2010-03-16 16:44:28.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/CompoundInitializer.java	2010-06-17 20:28:29.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: CompoundInitializer.java,v 1.2 2010/03/16 20:44:28 yvyang Exp $
  + * $Id: CompoundInitializer.java,v 1.1 2010/03/13 10:59:47 yvyang Exp $
    */
   package org.eclipse.e4.xwt.tools.ui.palette;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/Initializer.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/Initializer.java	2010-03-16 16:44:28.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/Initializer.java	2010-06-17 20:28:29.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: Initializer.java,v 1.4 2010/03/16 20:44:28 yvyang Exp $
  + * $Id$
    */
   package org.eclipse.e4.xwt.tools.ui.palette;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/CompoundInitializerImpl.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/CompoundInitializerImpl.java	2010-03-16 16:44:28.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/CompoundInitializerImpl.java	2010-06-17 20:28:29.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: CompoundInitializerImpl.java,v 1.2 2010/03/16 20:44:28 yvyang Exp $
  + * $Id: CompoundInitializerImpl.java,v 1.1 2010/03/13 10:59:47 yvyang Exp $
    */
   package org.eclipse.e4.xwt.tools.ui.palette.impl;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/InitializerImpl.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/InitializerImpl.java	2010-03-16 16:44:28.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/InitializerImpl.java	2010-06-17 20:28:29.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: InitializerImpl.java,v 1.4 2010/03/16 20:44:28 yvyang Exp $
  + * $Id$
    */
   package org.eclipse.e4.xwt.tools.ui.palette.impl;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.xaml/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.tools.ui.xaml/build.properties	2010-06-17 20:16:29.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.tools.ui.xaml/build.properties	2010-06-17 20:28:29.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2010/06/18 00:16:29 yvyang Exp $
  +# $Id: build.properties,v 1.1 2009/12/03 20:39:32 yvyang Exp $
   
   bin.includes = .,\
                  META-INF/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.xaml/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.tools.ui.xaml/plugin.properties	2010-06-17 20:16:29.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.tools.ui.xaml/plugin.properties	2010-06-17 20:28:29.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.2 2010/06/18 00:16:29 yvyang Exp $
  +# $Id: plugin.properties,v 1.1 2009/12/03 20:39:32 yvyang Exp $
   
   pluginName = XAML Model (Incubation)
   providerName = Eclipse.org
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.vex/build.properties	2010-06-17 20:17:02.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.vex/build.properties	2010-06-17 20:28:29.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2010/06/18 00:17:02 yvyang Exp $
  +# $Id: build.properties,v 1.1 2009/01/07 00:15:48 yvyang Exp $
   
   bin.includes = .,\
                  src/model/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2009-07-01 15:48:11.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2010-06-17 20:28:29.000000000 -0400
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.2 2009/07/01 19:48:11 yvyang Exp $
  + $Id: plugin.xml,v 1.1 2009/01/07 00:15:47 yvyang Exp $
   -->
   
   <plugin>
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2010-06-17 20:17:01.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2010-06-17 20:28:29.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.3 $  $Date: 2010/06/18 00:17:01 $ 
  + *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2009-12-22 10:40:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2010-06-17 20:28:29.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.7 $  $Date: 2009/12/22 15:40:57 $ 
  + *  $Revision: 1.6 $  $Date: 2009/12/02 16:13:57 $ 
    */
   package org.eclipse.e4.xwt.vex.swt;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2010-06-17 20:17:02.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2010-06-17 20:28:29.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.6 $  $Date: 2010/06/18 00:17:02 $ 
  + *  $Revision: 1.5 $  $Date: 2009/12/02 15:57:42 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.macosx;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2010-06-17 20:17:02.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2010-06-17 20:28:29.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.8 $  $Date: 2010/06/18 00:17:02 $ 
  + *  $Revision: 1.7 $  $Date: 2009/12/22 15:40:57 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2010-06-17 20:17:02.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100617-2100/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2010-06-17 20:28:29.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.6 $  $Date: 2010/06/18 00:17:02 $ 
  + *  $Revision: 1.5 $  $Date: 2009/12/22 15:40:57 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix.bits64;
   
  
Verifying tag v20100618
 FAIL: File contents differ for bundles/org.eclipse.e4.tools.ui.designer/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100618/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-05-22 16:53:49.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100618/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-06-17 20:17:05.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.3 2010/05/22 20:53:49 yvyang Exp $
  +# $Id: plugin.properties,v 1.2 2010/05/22 12:34:17 yvyang Exp $
   
   pluginName = e4 Visual Design Editor (Incubation)
   providerName = Eclipse.org
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.ui.workbench/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100618/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2010-06-17 20:15:13.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100618/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2010-06-17 20:17:05.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.3 2010/06/18 00:15:13 yvyang Exp $
  +# $Id: build.properties,v 1.2 2009/07/02 12:56:18 yvyang Exp $
   
   bin.includes = .,\
                  model/,\
  
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100618/tests/org.eclipse.e4.xwt.emf.test/build.properties	2010-06-17 20:13:55.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100618/tests/org.eclipse.e4.xwt.emf.test/build.properties	2010-06-17 20:17:05.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.4 2010/06/18 00:13:55 yvyang Exp $
  +# $Id: build.properties,v 1.3 2010/02/27 06:28:18 yvyang Exp $
   
   bin.includes = .,\
                  src/model/,\
  
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100618/tests/org.eclipse.e4.xwt.emf.test/plugin.properties	2010-06-17 20:13:55.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100618/tests/org.eclipse.e4.xwt.emf.test/plugin.properties	2010-06-17 20:17:05.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.3 2010/06/18 00:13:55 yvyang Exp $
  +# $Id: plugin.properties,v 1.2 2009/06/24 17:38:38 pwebster Exp $
   
   pluginName = Books Model (Incubation)
   providerName = www.eclipse.org
  
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100618/tests/org.eclipse.e4.xwt.emf.test/plugin.xml	2010-02-27 01:28:19.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100618/tests/org.eclipse.e4.xwt.emf.test/plugin.xml	2010-06-17 20:17:05.000000000 -0400
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.2 2010/02/27 06:28:19 yvyang Exp $
  + $Id: plugin.xml,v 1.1 2009/06/15 09:15:31 yvyang Exp $
   -->
   
   <plugin>
  
Verifying tag v20100618bis
 FAIL: File contents differ for bundles/org.eclipse.e4.tools.ui.designer/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100618bis/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-06-17 20:10:57.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100618bis/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-06-17 20:28:30.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.4 2010/06/18 00:10:57 yvyang Exp $
  +# $Id: plugin.properties,v 1.3 2010/05/22 20:53:49 yvyang Exp $
   
   pluginName = e4 Visual Design Editor (Incubation)
   providerName = Eclipse.org
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.categorynode/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.tools.categorynode/build.properties	2010-06-17 20:27:04.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.tools.categorynode/build.properties	2010-06-17 20:28:30.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2010/06/18 00:27:04 yvyang Exp $
  +# $Id: build.properties,v 1.1 2010/05/22 21:00:28 yvyang Exp $
   
   bin.includes = .,\
                  model/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.categorynode.edit/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.tools.categorynode.edit/build.properties	2010-06-17 20:27:02.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.tools.categorynode.edit/build.properties	2010-06-17 20:28:30.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2010/06/18 00:27:02 yvyang Exp $
  +# $Id: build.properties,v 1.1 2010/05/22 20:52:05 yvyang Exp $
   
   bin.includes = .,\
                  icons/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2010-06-17 20:15:49.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2010-06-17 20:28:30.000000000 -0400
  @@ -11,7 +11,7 @@
   package org.eclipse.e4.xwt.tools.ui.designer.policies.layout;
   
   /*
  - * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.3 $ $Date: 2010/06/18 00:15:49 $
  + * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.2 $ $Date: 2010/04/28 20:04:33 $
    */
   
   import java.util.List;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2010-06-17 20:15:48.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2010-06-17 20:28:30.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: GridSpanHandle.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:48 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:34:28 $ 
    */
   
   import org.eclipse.draw2d.ColorConstants;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2010-06-17 20:15:25.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2010-06-17 20:28:30.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.3 $  $Date: 2010/06/18 00:15:25 $ 
  + *  $Revision: 1.2 $  $Date: 2010/04/28 20:04:47 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2010-06-17 20:15:23.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2010-06-17 20:28:30.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: ImageFigure.java,v $
  - *  $Revision: 1.3 $  $Date: 2010/06/18 00:15:23 $ 
  + *  $Revision: 1.2 $  $Date: 2010/04/28 20:04:47 $ 
    */
   
   import org.eclipse.draw2d.Figure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2010-06-17 20:15:23.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2010-06-17 20:28:30.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: OutlineBorder.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:23 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
    */
   
   import org.eclipse.draw2d.*;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2010-06-17 20:15:23.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2010-06-17 20:28:30.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: IImageListener.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:23 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.images;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2010-06-17 20:15:22.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2010-06-17 20:28:30.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: FreeformXYFlowLayout.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:22 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
    */
   
   import org.eclipse.draw2d.IFigure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2010-06-17 20:15:22.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2010-06-17 20:28:30.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: XYFlowLayout.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:22 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
    */
   
   import java.util.Iterator;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2010-06-17 20:15:22.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2010-06-17 20:28:30.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: XYLayoutUtility.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:22 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.layouts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2010-06-17 20:15:24.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2010-06-17 20:28:30.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: EditPartRunnable.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:24 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.parts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2010-06-17 20:15:24.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2010-06-17 20:28:30.000000000 -0400
  @@ -9,7 +9,7 @@
    *     Soyatec - initial API and implementation
    *******************************************************************************/
   /*
  - * $RCSfile: IVisualInfo.java,v $ $Revision: 1.4 $ $Date: 2010/06/18 00:15:24 $
  + * $RCSfile: IVisualInfo.java,v $ $Revision: 1.3 $ $Date: 2009/12/11 23:32:20 $
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.visuals;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2009-12-11 17:14:10.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2010-06-17 20:28:30.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.2 $  $Date: 2009/12/11 22:14:10 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:37:22 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.macosx;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2009-12-22 10:40:54.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2010-06-17 20:28:30.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.3 $  $Date: 2009/12/22 15:40:54 $ 
  + *  $Revision: 1.2 $  $Date: 2009/12/11 22:14:10 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2009-12-22 10:40:54.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2010-06-17 20:28:30.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.3 $  $Date: 2009/12/22 15:40:54 $ 
  + *  $Revision: 1.2 $  $Date: 2009/12/11 22:14:10 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix.bits64;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.tools.ui.palette/build.properties	2010-06-17 20:15:59.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.tools.ui.palette/build.properties	2010-06-17 20:28:30.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2010/06/18 00:15:59 yvyang Exp $
  +# $Id: build.properties,v 1.1 2009/12/03 20:38:23 yvyang Exp $
   
   bin.includes = .,\
                  META-INF/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.tools.ui.palette/plugin.properties	2010-06-17 20:15:59.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.tools.ui.palette/plugin.properties	2010-06-17 20:28:30.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.2 2010/06/18 00:15:59 yvyang Exp $
  +# $Id: plugin.properties,v 1.1 2009/12/03 20:38:23 yvyang Exp $
   
   pluginName = Palette Model (Incubation)
   providerName = Eclipse.org
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/CompoundInitializer.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/CompoundInitializer.java	2010-03-16 16:44:28.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/CompoundInitializer.java	2010-06-17 20:28:30.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: CompoundInitializer.java,v 1.2 2010/03/16 20:44:28 yvyang Exp $
  + * $Id: CompoundInitializer.java,v 1.1 2010/03/13 10:59:47 yvyang Exp $
    */
   package org.eclipse.e4.xwt.tools.ui.palette;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/Initializer.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/Initializer.java	2010-03-16 16:44:28.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/Initializer.java	2010-06-17 20:28:30.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: Initializer.java,v 1.4 2010/03/16 20:44:28 yvyang Exp $
  + * $Id$
    */
   package org.eclipse.e4.xwt.tools.ui.palette;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/CompoundInitializerImpl.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/CompoundInitializerImpl.java	2010-03-16 16:44:28.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/CompoundInitializerImpl.java	2010-06-17 20:28:30.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: CompoundInitializerImpl.java,v 1.2 2010/03/16 20:44:28 yvyang Exp $
  + * $Id: CompoundInitializerImpl.java,v 1.1 2010/03/13 10:59:47 yvyang Exp $
    */
   package org.eclipse.e4.xwt.tools.ui.palette.impl;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/InitializerImpl.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/InitializerImpl.java	2010-03-16 16:44:28.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.tools.ui.palette/src/org/eclipse/e4/xwt/tools/ui/palette/impl/InitializerImpl.java	2010-06-17 20:28:30.000000000 -0400
  @@ -2,7 +2,7 @@
    * <copyright>
    * </copyright>
    *
  - * $Id: InitializerImpl.java,v 1.4 2010/03/16 20:44:28 yvyang Exp $
  + * $Id$
    */
   package org.eclipse.e4.xwt.tools.ui.palette.impl;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.xaml/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.tools.ui.xaml/build.properties	2010-06-17 20:16:29.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.tools.ui.xaml/build.properties	2010-06-17 20:28:30.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2010/06/18 00:16:29 yvyang Exp $
  +# $Id: build.properties,v 1.1 2009/12/03 20:39:32 yvyang Exp $
   
   bin.includes = .,\
                  META-INF/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.xaml/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.tools.ui.xaml/plugin.properties	2010-06-17 20:16:29.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.tools.ui.xaml/plugin.properties	2010-06-17 20:28:30.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.2 2010/06/18 00:16:29 yvyang Exp $
  +# $Id: plugin.properties,v 1.1 2009/12/03 20:39:32 yvyang Exp $
   
   pluginName = XAML Model (Incubation)
   providerName = Eclipse.org
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.ui.workbench/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2010-06-17 20:15:13.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2010-06-17 20:28:30.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.3 2010/06/18 00:15:13 yvyang Exp $
  +# $Id: build.properties,v 1.2 2009/07/02 12:56:18 yvyang Exp $
   
   bin.includes = .,\
                  model/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.vex/build.properties	2010-06-17 20:17:02.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.vex/build.properties	2010-06-17 20:28:30.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2010/06/18 00:17:02 yvyang Exp $
  +# $Id: build.properties,v 1.1 2009/01/07 00:15:48 yvyang Exp $
   
   bin.includes = .,\
                  src/model/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2009-07-01 15:48:11.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2010-06-17 20:28:30.000000000 -0400
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.2 2009/07/01 19:48:11 yvyang Exp $
  + $Id: plugin.xml,v 1.1 2009/01/07 00:15:47 yvyang Exp $
   -->
   
   <plugin>
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2010-06-17 20:17:01.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2010-06-17 20:28:30.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.3 $  $Date: 2010/06/18 00:17:01 $ 
  + *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2009-12-22 10:40:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2010-06-17 20:28:30.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.7 $  $Date: 2009/12/22 15:40:57 $ 
  + *  $Revision: 1.6 $  $Date: 2009/12/02 16:13:57 $ 
    */
   package org.eclipse.e4.xwt.vex.swt;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2010-06-17 20:17:02.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2010-06-17 20:28:30.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.6 $  $Date: 2010/06/18 00:17:02 $ 
  + *  $Revision: 1.5 $  $Date: 2009/12/02 15:57:42 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.macosx;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2010-06-17 20:17:02.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2010-06-17 20:28:30.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.8 $  $Date: 2010/06/18 00:17:02 $ 
  + *  $Revision: 1.7 $  $Date: 2009/12/22 15:40:57 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2010-06-17 20:17:02.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100618bis/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2010-06-17 20:28:30.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.6 $  $Date: 2010/06/18 00:17:02 $ 
  + *  $Revision: 1.5 $  $Date: 2009/12/22 15:40:57 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix.bits64;
   
  
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100618bis/tests/org.eclipse.e4.xwt.emf.test/build.properties	2010-06-17 20:13:55.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100618bis/tests/org.eclipse.e4.xwt.emf.test/build.properties	2010-06-17 20:28:30.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.4 2010/06/18 00:13:55 yvyang Exp $
  +# $Id: build.properties,v 1.3 2010/02/27 06:28:18 yvyang Exp $
   
   bin.includes = .,\
                  src/model/,\
  
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100618bis/tests/org.eclipse.e4.xwt.emf.test/plugin.properties	2010-06-17 20:13:55.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100618bis/tests/org.eclipse.e4.xwt.emf.test/plugin.properties	2010-06-17 20:28:30.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.3 2010/06/18 00:13:55 yvyang Exp $
  +# $Id: plugin.properties,v 1.2 2009/06/24 17:38:38 pwebster Exp $
   
   pluginName = Books Model (Incubation)
   providerName = www.eclipse.org
  
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100618bis/tests/org.eclipse.e4.xwt.emf.test/plugin.xml	2010-02-27 01:28:19.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100618bis/tests/org.eclipse.e4.xwt.emf.test/plugin.xml	2010-06-17 20:28:30.000000000 -0400
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.2 2010/02/27 06:28:19 yvyang Exp $
  + $Id: plugin.xml,v 1.1 2009/06/15 09:15:31 yvyang Exp $
   -->
   
   <plugin>
  
Verifying tag v20100626
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100626/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2010-06-17 20:15:49.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100626/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2010-06-25 20:19:59.000000000 -0400
  @@ -11,7 +11,7 @@
   package org.eclipse.e4.xwt.tools.ui.designer.policies.layout;
   
   /*
  - * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.3 $ $Date: 2010/06/18 00:15:49 $
  + * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.2 $ $Date: 2010/04/28 20:04:33 $
    */
   
   import java.util.List;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100626/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2010-06-17 20:15:48.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100626/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2010-06-25 20:19:59.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: GridSpanHandle.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:48 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:34:28 $ 
    */
   
   import org.eclipse.draw2d.ColorConstants;
  
Verifying tag v20100627-1530
 FAIL: File contents differ for bundles/org.eclipse.e4.tools.ui.designer/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100627-1530/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-06-17 20:10:57.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100627-1530/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-06-27 15:45:18.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.4 2010/06/18 00:10:57 yvyang Exp $
  +# $Id: plugin.properties,v 1.3 2010/05/22 20:53:49 yvyang Exp $
   
   pluginName = e4 Visual Design Editor (Incubation)
   providerName = Eclipse.org
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100627-1530/bundles/org.eclipse.e4.xwt.vex/build.properties	2010-06-22 09:55:41.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100627-1530/bundles/org.eclipse.e4.xwt.vex/build.properties	2010-06-27 15:45:18.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.3 2010/06/22 13:55:41 obesedin Exp $
  +# $Id: build.properties,v 1.2 2010/06/18 00:17:02 yvyang Exp $
   
   bin.includes = .,\
                  src/model/,\
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100627-1530/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2009-07-01 15:48:11.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100627-1530/bundles/org.eclipse.e4.xwt.vex/plugin.xml	2010-06-27 15:45:18.000000000 -0400
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.2 2009/07/01 19:48:11 yvyang Exp $
  + $Id: plugin.xml,v 1.1 2009/01/07 00:15:47 yvyang Exp $
   -->
   
   <plugin>
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100627-1530/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2010-06-17 20:17:01.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100627-1530/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/CustomSashForm.java	2010-06-27 15:45:18.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.3 $  $Date: 2010/06/18 00:17:01 $ 
  + *  $Revision: 1.2 $  $Date: 2009/02/03 00:32:19 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100627-1530/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2009-12-22 10:40:57.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100627-1530/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/e4/xwt/vex/swt/ImageCapture.java	2010-06-27 15:45:18.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.7 $  $Date: 2009/12/22 15:40:57 $ 
  + *  $Revision: 1.6 $  $Date: 2009/12/02 16:13:57 $ 
    */
   package org.eclipse.e4.xwt.vex.swt;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100627-1530/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2010-06-17 20:17:02.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100627-1530/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java	2010-06-27 15:45:18.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.6 $  $Date: 2010/06/18 00:17:02 $ 
  + *  $Revision: 1.5 $  $Date: 2009/12/02 15:57:42 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.macosx;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100627-1530/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2010-06-17 20:17:02.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100627-1530/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java	2010-06-27 15:45:18.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.8 $  $Date: 2010/06/18 00:17:02 $ 
  + *  $Revision: 1.7 $  $Date: 2009/12/22 15:40:57 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100627-1530/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2010-06-17 20:17:02.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100627-1530/bundles/org.eclipse.e4.xwt.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java	2010-06-27 15:45:18.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: ImageCapture.java,v $
  - *  $Revision: 1.6 $  $Date: 2010/06/18 00:17:02 $ 
  + *  $Revision: 1.5 $  $Date: 2009/12/22 15:40:57 $ 
    */
   package org.eclipse.ve.internal.swt.targetvm.unix.bits64;
   
  
Verifying tag v20100628-2030
 FAIL: File contents differ for bundles/org.eclipse.e4.tools.ui.designer/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100628-2030/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-06-17 20:10:57.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100628-2030/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-06-28 16:08:19.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.4 2010/06/18 00:10:57 yvyang Exp $
  +# $Id: plugin.properties,v 1.3 2010/05/22 20:53:49 yvyang Exp $
   
   pluginName = e4 Visual Design Editor (Incubation)
   providerName = Eclipse.org
  
Verifying tag v20100705-0830
 FAIL: File contents differ for bundles/org.eclipse.e4.tools.ui.designer/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100705-0830/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-06-17 20:10:57.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100705-0830/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-07-05 08:32:46.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.4 2010/06/18 00:10:57 yvyang Exp $
  +# $Id: plugin.properties,v 1.3 2010/05/22 20:53:49 yvyang Exp $
   
   pluginName = e4 Visual Design Editor (Incubation)
   providerName = Eclipse.org
  
Verifying tag v20100705-2130
 FAIL: File contents differ for bundles/org.eclipse.e4.tools.ui.designer/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100705-2130/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-06-17 20:10:57.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100705-2130/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-07-05 09:08:55.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.4 2010/06/18 00:10:57 yvyang Exp $
  +# $Id: plugin.properties,v 1.3 2010/05/22 20:53:49 yvyang Exp $
   
   pluginName = e4 Visual Design Editor (Incubation)
   providerName = Eclipse.org
  
Verifying tag v20100715-1830
 FAIL: File contents differ for bundles/org.eclipse.e4.tools.ui.designer/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100715-1830/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-06-17 20:10:57.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100715-1830/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-07-15 13:24:02.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.4 2010/06/18 00:10:57 yvyang Exp $
  +# $Id: plugin.properties,v 1.3 2010/05/22 20:53:49 yvyang Exp $
   
   pluginName = e4 Visual Design Editor (Incubation)
   providerName = Eclipse.org
  
Verifying tag v20100716-1200
 FAIL: File contents differ for bundles/org.eclipse.e4.tools.ui.designer/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100716-1200/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-06-17 20:10:57.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100716-1200/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-07-16 10:23:59.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.4 2010/06/18 00:10:57 yvyang Exp $
  +# $Id: plugin.properties,v 1.3 2010/05/22 20:53:49 yvyang Exp $
   
   pluginName = e4 Visual Design Editor (Incubation)
   providerName = Eclipse.org
  
Verifying tag v20100720-1930
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100720-1930/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2010-06-17 20:15:49.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100720-1930/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2010-07-18 01:52:54.000000000 -0400
  @@ -11,7 +11,7 @@
   package org.eclipse.e4.xwt.tools.ui.designer.policies.layout;
   
   /*
  - * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.3 $ $Date: 2010/06/18 00:15:49 $
  + * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.2 $ $Date: 2010/04/28 20:04:33 $
    */
   
   import java.util.List;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100720-1930/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2010-06-17 20:15:48.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100720-1930/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2010-07-18 01:52:54.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: GridSpanHandle.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:48 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:34:28 $ 
    */
   
   import org.eclipse.draw2d.ColorConstants;
  
Verifying tag v20100721-1130
 FAIL: File contents differ for bundles/org.eclipse.e4.tools.ui.designer/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100721-1130/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-06-17 20:10:57.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100721-1130/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-07-21 05:32:37.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.4 2010/06/18 00:10:57 yvyang Exp $
  +# $Id: plugin.properties,v 1.3 2010/05/22 20:53:49 yvyang Exp $
   
   pluginName = e4 Visual Design Editor (Incubation)
   providerName = Eclipse.org
  
Verifying tag v20100722
 FAIL: File contents differ for bundles/org.eclipse.e4.tools.ui.designer/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100722/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-06-17 20:10:57.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100722/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-07-22 02:59:00.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.4 2010/06/18 00:10:57 yvyang Exp $
  +# $Id: plugin.properties,v 1.3 2010/05/22 20:53:49 yvyang Exp $
   
   pluginName = e4 Visual Design Editor (Incubation)
   providerName = Eclipse.org
  
Verifying tag v20100722-1200
 FAIL: File contents differ for bundles/org.eclipse.e4.tools.ui.designer/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100722-1200/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-06-17 20:10:57.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100722-1200/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-07-22 02:59:01.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.4 2010/06/18 00:10:57 yvyang Exp $
  +# $Id: plugin.properties,v 1.3 2010/05/22 20:53:49 yvyang Exp $
   
   pluginName = e4 Visual Design Editor (Incubation)
   providerName = Eclipse.org
  
Verifying tag v20100722bis
 FAIL: File contents differ for bundles/org.eclipse.e4.tools.ui.designer/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100722bis/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-06-17 20:10:57.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100722bis/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-07-22 02:59:00.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.4 2010/06/18 00:10:57 yvyang Exp $
  +# $Id: plugin.properties,v 1.3 2010/05/22 20:53:49 yvyang Exp $
   
   pluginName = e4 Visual Design Editor (Incubation)
   providerName = Eclipse.org
  
Verifying tag v20100816-1230
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.ui.workbench/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100816-1230/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2010-06-17 20:15:13.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100816-1230/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2010-08-12 06:36:49.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.3 2010/06/18 00:15:13 yvyang Exp $
  +# $Id: build.properties,v 1.2 2009/07/02 12:56:18 yvyang Exp $
   
   bin.includes = .,\
                  model/,\
  
Verifying tag v20100817-0930
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100817-0930/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2010-06-17 20:15:49.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100817-0930/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2010-08-09 06:42:14.000000000 -0400
  @@ -11,7 +11,7 @@
   package org.eclipse.e4.xwt.tools.ui.designer.policies.layout;
   
   /*
  - * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.3 $ $Date: 2010/06/18 00:15:49 $
  + * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.2 $ $Date: 2010/04/28 20:04:33 $
    */
   
   import java.util.List;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100817-0930/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2010-06-17 20:15:48.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100817-0930/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2010-08-09 06:42:14.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: GridSpanHandle.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:48 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:34:28 $ 
    */
   
   import org.eclipse.draw2d.ColorConstants;
  
Verifying tag v20100905
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100905/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2010-06-17 20:15:49.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100905/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2010-09-05 11:31:16.000000000 -0400
  @@ -11,7 +11,7 @@
   package org.eclipse.e4.xwt.tools.ui.designer.policies.layout;
   
   /*
  - * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.3 $ $Date: 2010/06/18 00:15:49 $
  + * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.2 $ $Date: 2010/04/28 20:04:33 $
    */
   
   import java.util.List;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20100905/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2010-06-17 20:15:48.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20100905/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2010-09-05 11:31:16.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: GridSpanHandle.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:48 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:34:28 $ 
    */
   
   import org.eclipse.draw2d.ColorConstants;
  
Verifying tag v20101021
 FAIL: File contents differ for bundles/org.eclipse.e4.tools.ui.designer/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20101021/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-06-17 20:10:57.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20101021/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-10-21 17:01:17.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.4 2010/06/18 00:10:57 yvyang Exp $
  +# $Id: plugin.properties,v 1.3 2010/05/22 20:53:49 yvyang Exp $
   
   pluginName = e4 Visual Design Editor (Incubation)
   providerName = Eclipse.org
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20101021/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2010-06-17 20:15:49.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20101021/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java	2010-10-21 17:01:17.000000000 -0400
  @@ -11,7 +11,7 @@
   package org.eclipse.e4.xwt.tools.ui.designer.policies.layout;
   
   /*
  - * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.3 $ $Date: 2010/06/18 00:15:49 $
  + * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.2 $ $Date: 2010/04/28 20:04:33 $
    */
   
   import java.util.List;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20101021/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2010-06-17 20:15:48.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20101021/bundles/org.eclipse.e4.xwt.tools.ui.designer/src/org/eclipse/e4/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java	2010-10-21 17:01:17.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: GridSpanHandle.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:48 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:34:28 $ 
    */
   
   import org.eclipse.draw2d.ColorConstants;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20101021/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2010-06-17 20:15:25.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20101021/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/component/CustomSashForm.java	2010-10-21 17:01:17.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: CustomSashForm.java,v $
  - *  $Revision: 1.3 $  $Date: 2010/06/18 00:15:25 $ 
  + *  $Revision: 1.2 $  $Date: 2010/04/28 20:04:47 $ 
    */
   
   import java.util.ArrayList;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20101021/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2010-06-17 20:15:23.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20101021/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/ImageFigure.java	2010-10-21 17:01:17.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: ImageFigure.java,v $
  - *  $Revision: 1.3 $  $Date: 2010/06/18 00:15:23 $ 
  + *  $Revision: 1.2 $  $Date: 2010/04/28 20:04:47 $ 
    */
   
   import org.eclipse.draw2d.Figure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20101021/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2010-06-17 20:15:23.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20101021/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/figures/OutlineBorder.java	2010-10-21 17:01:17.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: OutlineBorder.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:23 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
    */
   
   import org.eclipse.draw2d.*;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20101021/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2010-06-17 20:15:23.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20101021/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/images/IImageListener.java	2010-10-21 17:01:17.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: IImageListener.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:23 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.images;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20101021/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2010-06-17 20:15:22.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20101021/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java	2010-10-21 17:01:17.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: FreeformXYFlowLayout.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:22 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
    */
   
   import org.eclipse.draw2d.IFigure;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20101021/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2010-06-17 20:15:22.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20101021/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java	2010-10-21 17:01:17.000000000 -0400
  @@ -12,7 +12,7 @@
   
   /*
    *  $RCSfile: XYFlowLayout.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:22 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:57 $ 
    */
   
   import java.util.Iterator;
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20101021/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2010-06-17 20:15:22.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20101021/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java	2010-10-21 17:01:17.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: XYLayoutUtility.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:22 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.layouts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20101021/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2010-06-17 20:15:24.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20101021/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/parts/EditPartRunnable.java	2010-10-21 17:01:17.000000000 -0400
  @@ -10,7 +10,7 @@
    *******************************************************************************/
   /*
    *  $RCSfile: EditPartRunnable.java,v $
  - *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:24 $ 
  + *  $Revision: 1.1 $  $Date: 2009/12/03 20:35:56 $ 
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.parts;
   
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20101021/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2010-06-17 20:15:24.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20101021/bundles/org.eclipse.e4.xwt.tools.ui.designer.core/src/org/eclipse/e4/xwt/tools/ui/designer/core/visuals/IVisualInfo.java	2010-10-21 17:01:17.000000000 -0400
  @@ -9,7 +9,7 @@
    *     Soyatec - initial API and implementation
    *******************************************************************************/
   /*
  - * $RCSfile: IVisualInfo.java,v $ $Revision: 1.4 $ $Date: 2010/06/18 00:15:24 $
  + * $RCSfile: IVisualInfo.java,v $ $Revision: 1.3 $ $Date: 2009/12/11 23:32:20 $
    */
   package org.eclipse.e4.xwt.tools.ui.designer.core.visuals;
   
  
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20101021/tests/org.eclipse.e4.xwt.emf.test/build.properties	2010-06-17 20:13:55.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20101021/tests/org.eclipse.e4.xwt.emf.test/build.properties	2010-10-21 17:01:17.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.4 2010/06/18 00:13:55 yvyang Exp $
  +# $Id: build.properties,v 1.3 2010/02/27 06:28:18 yvyang Exp $
   
   bin.includes = .,\
                  src/model/,\
  
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20101021/tests/org.eclipse.e4.xwt.emf.test/plugin.properties	2010-06-17 20:13:55.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20101021/tests/org.eclipse.e4.xwt.emf.test/plugin.properties	2010-10-21 17:01:17.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.3 2010/06/18 00:13:55 yvyang Exp $
  +# $Id: plugin.properties,v 1.2 2009/06/24 17:38:38 pwebster Exp $
   
   pluginName = Books Model (Incubation)
   providerName = www.eclipse.org
  
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20101021/tests/org.eclipse.e4.xwt.emf.test/plugin.xml	2010-02-27 01:28:19.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20101021/tests/org.eclipse.e4.xwt.emf.test/plugin.xml	2010-10-21 17:01:17.000000000 -0400
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.2 2010/02/27 06:28:19 yvyang Exp $
  + $Id: plugin.xml,v 1.1 2009/06/15 09:15:31 yvyang Exp $
   -->
   
   <plugin>
  
Verifying tag v20101025
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20101025/tests/org.eclipse.e4.xwt.emf.test/build.properties	2010-06-17 20:13:55.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20101025/tests/org.eclipse.e4.xwt.emf.test/build.properties	2010-10-22 07:39:37.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.4 2010/06/18 00:13:55 yvyang Exp $
  +# $Id: build.properties,v 1.3 2010/02/27 06:28:18 yvyang Exp $
   
   bin.includes = .,\
                  src/model/,\
  
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20101025/tests/org.eclipse.e4.xwt.emf.test/plugin.properties	2010-06-17 20:13:55.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20101025/tests/org.eclipse.e4.xwt.emf.test/plugin.properties	2010-10-22 07:39:37.000000000 -0400
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.3 2010/06/18 00:13:55 yvyang Exp $
  +# $Id: plugin.properties,v 1.2 2009/06/24 17:38:38 pwebster Exp $
   
   pluginName = Books Model (Incubation)
   providerName = www.eclipse.org
  
 FAIL: File contents differ for tests/org.eclipse.e4.xwt.emf.test/plugin.xml
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20101025/tests/org.eclipse.e4.xwt.emf.test/plugin.xml	2010-02-27 01:28:19.000000000 -0500
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20101025/tests/org.eclipse.e4.xwt.emf.test/plugin.xml	2010-10-22 07:39:37.000000000 -0400
  @@ -5,7 +5,7 @@
    <copyright>
    </copyright>
   
  - $Id: plugin.xml,v 1.2 2010/02/27 06:28:19 yvyang Exp $
  + $Id: plugin.xml,v 1.1 2009/06/15 09:15:31 yvyang Exp $
   -->
   
   <plugin>
  
Verifying tag v20101119-0800
 FAIL: File contents differ for bundles/org.eclipse.e4.tools.ui.designer/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20101119-0800/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-06-17 20:10:57.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20101119-0800/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-11-19 08:14:52.000000000 -0500
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.4 2010/06/18 00:10:57 yvyang Exp $
  +# $Id: plugin.properties,v 1.3 2010/05/22 20:53:49 yvyang Exp $
   
   pluginName = e4 Visual Design Editor (Incubation)
   providerName = Eclipse.org
  
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.ui.workbench/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20101119-0800/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2010-06-17 20:15:13.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20101119-0800/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2010-11-19 08:14:52.000000000 -0500
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.3 2010/06/18 00:15:13 yvyang Exp $
  +# $Id: build.properties,v 1.2 2009/07/02 12:56:18 yvyang Exp $
   
   bin.includes = .,\
                  model/,\
  
Verifying tag v20101126-1035
 FAIL: File contents differ for bundles/org.eclipse.e4.tools.ui.designer/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20101126-1035/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-06-17 20:10:57.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20101126-1035/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-11-26 10:32:56.000000000 -0500
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.4 2010/06/18 00:10:57 yvyang Exp $
  +# $Id: plugin.properties,v 1.3 2010/05/22 20:53:49 yvyang Exp $
   
   pluginName = e4 Visual Design Editor (Incubation)
   providerName = Eclipse.org
  
Verifying tag v20101201-1530
 FAIL: File contents differ for bundles/org.eclipse.e4.tools.ui.designer/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20101201-1530/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-06-17 20:10:57.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20101201-1530/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-12-01 15:24:36.000000000 -0500
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.4 2010/06/18 00:10:57 yvyang Exp $
  +# $Id: plugin.properties,v 1.3 2010/05/22 20:53:49 yvyang Exp $
   
   pluginName = e4 Visual Design Editor (Incubation)
   providerName = Eclipse.org
  
Verifying tag v20110218-0800
 FAIL: File contents differ for bundles/org.eclipse.e4.tools.ui.designer/plugin.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-tag-v20110218-0800/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2010-06-17 20:10:57.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-tag-v20110218-0800/bundles/org.eclipse.e4.tools.ui.designer/plugin.properties	2011-02-18 08:09:17.000000000 -0500
  @@ -12,7 +12,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: plugin.properties,v 1.4 2010/06/18 00:10:57 yvyang Exp $
  +# $Id: plugin.properties,v 1.3 2010/05/22 20:53:49 yvyang Exp $
   
   pluginName = e4 Visual Design Editor (Incubation)
   providerName = Eclipse.org
  
Verifying tag v20110603
Verifying tag v20110609-1700
Verifying branch model_tweaking_round3
 FAIL: File contents differ for bundles/org.eclipse.e4.xwt.ui.workbench/build.properties
  --- /shared/eclipse/e4/git/cvs/compare-tmp/cvs-export-branch-model_tweaking_round3/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2009-07-02 08:56:18.000000000 -0400
  +++ /shared/eclipse/e4/git/cvs/compare-tmp/git-export-branch-model_tweaking_round3/bundles/org.eclipse.e4.xwt.ui.workbench/build.properties	2010-04-16 12:47:09.000000000 -0400
  @@ -2,7 +2,7 @@
   # <copyright>
   # </copyright>
   #
  -# $Id: build.properties,v 1.2 2009/07/02 12:56:18 yvyang Exp $
  +# $Id$
   
   bin.includes = .,\
                  model/,\
  
FAIL: cvsroot.org.eclipse.e4.xwt != verify.org.eclipse.e4.xwt: 885 failure(s) in:
  trunk
  tag:I20100309
  tag:I20100309-1500
  tag:I20100313
  tag:R0_10
  tag:R0_11
  tag:R0_9
  tag:R1_0M4
  tag:R1_0M5
  tag:Root_model_tweaking_round3
  tag:v20090101-1930
  tag:v20090108-1930
  tag:v20090123-1000
  tag:v20090203-1930
  tag:v20090204-1930
  tag:v20090305-1930
  tag:v20090402-1930
  tag:v20090507-0845
  tag:v20090605-1100
  tag:v20090609-1530
  tag:v20090624-1330
  tag:v20090626-1330
  tag:v20090706-1930
  tag:v20090707-0830
  tag:v20090710-1500
  tag:v20090909-0900
  tag:v20090923-0800
  tag:v20090923-0830
  tag:v20090923-0930
  tag:v20091009-1415
  tag:v20091015-1330
  tag:v20091016-1430
  tag:v20091022-1300
  tag:v20091029-1230
  tag:v20091115-2130
  tag:v20091116-2030
  tag:v20091118-1900
  tag:v20091119-0800
  tag:v20091203-1000
  tag:v20091204-0830
  tag:v20091210-1630
  tag:v20091217-1900
  tag:v20100104-1430
  tag:v20100106-0930
  tag:v20100108-1630
  tag:v20100111-1500
  tag:v20100112-1800
  tag:v20100113-1500
  tag:v20100113-1830
  tag:v20100121-2130
  tag:v20100129-0930
  tag:v20100204-1500
  tag:v20100205-0830
  tag:v20100211-0930
  tag:v20100218-1430
  tag:v20100304-0800
  tag:v20100316-1730
  tag:v20100318
  tag:v20100319
  tag:v20100406
  tag:v20100406-0930
  tag:v20100406bis
  tag:v20100416-1400
  tag:v20100428
  tag:v20100428-1730
  tag:v20100504
  tag:v20100514-0830
  tag:v20100520-1200
  tag:v20100521
  tag:v20100521-0900
  tag:v20100522
  tag:v20100522-1900
  tag:v20100523bis
  tag:v20100525-1600
  tag:v20100526
  tag:v20100603
  tag:v20100603-1900
  tag:v20100604-1515
  tag:v20100606-1500
  tag:v20100609-2000
  tag:v20100613-1900
  tag:v20100614-1830
  tag:v20100615-2100
  tag:v20100616-1900
  tag:v20100617-2100
  tag:v20100618
  tag:v20100618bis
  tag:v20100626
  tag:v20100627-1530
  tag:v20100628-2030
  tag:v20100705-0830
  tag:v20100705-2130
  tag:v20100715-1830
  tag:v20100716-1200
  tag:v20100720-1930
  tag:v20100721-1130
  tag:v20100722
  tag:v20100722-1200
  tag:v20100722bis
  tag:v20100816-1230
  tag:v20100817-0930
  tag:v20100905
  tag:v20101021
  tag:v20101025
  tag:v20101119-0800
  tag:v20101126-1035
  tag:v20101201-1530
  tag:v20110218-0800
  branch:model_tweaking_round3
