Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 96838 Details for
Bug 224588
[Patch] Provide an information how many lines does the patch change
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
Patch 2
patch_224588_20080421_2.txt (text/plain), 18.23 KB, created by
Tomasz Zarna
on 2008-04-21 09:11:06 EDT
(
hide
)
Description:
Patch 2
Filename:
MIME Type:
Creator:
Tomasz Zarna
Created:
2008-04-21 09:11:06 EDT
Size:
18.23 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.compare >Index: compare/org/eclipse/compare/internal/patch/Patcher.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/Patcher.java,v >retrieving revision 1.62 >diff -u -r1.62 Patcher.java >--- compare/org/eclipse/compare/internal/patch/Patcher.java 18 Apr 2008 20:01:13 -0000 1.62 >+++ compare/org/eclipse/compare/internal/patch/Patcher.java 21 Apr 2008 12:11:49 -0000 >@@ -1,5 +1,5 @@ > /******************************************************************************* >- * Copyright (c) 2000, 2007 IBM Corporation and others. >+ * Copyright (c) 2000, 2008 IBM Corporation and others. > * All rights reserved. This program and the accompanying materials > * are made available under the terms of the Eclipse Public License v1.0 > * which accompanies this distribution, and is available at >@@ -179,6 +179,32 @@ > fDiffs = patchReader.getDiffs(); > } > >+ public void countLines() { >+ FileDiff[] fileDiffs = getDiffs(); >+ for (int i = 0; i < fileDiffs.length; i++) { >+ int addedLines = 0; >+ int removedLines = 0; >+ FileDiff fileDiff = fileDiffs[i]; >+ for (int j = 0; j < fileDiff.getHunkCount(); j++) { >+ Hunk hunk = fileDiff.getHunks()[j]; >+ String[] lines = hunk.getLines(); >+ for (int k = 0; k < lines.length; k++) { >+ char c = lines[k].charAt(0); >+ switch (c) { >+ case '+': >+ addedLines++; >+ continue; >+ case '-': >+ removedLines++; >+ continue; >+ } >+ } >+ } >+ fileDiff.setAddedLines(addedLines); >+ fileDiff.setRemovedLines(removedLines); >+ } >+ } >+ > //---- applying a patch file > > public void applyAll(IProgressMonitor pm, Shell shell, String title) throws CoreException { >Index: compare/org/eclipse/compare/internal/patch/PatchMessages.properties >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchMessages.properties,v >retrieving revision 1.47 >diff -u -r1.47 PatchMessages.properties >--- compare/org/eclipse/compare/internal/patch/PatchMessages.properties 3 Mar 2008 13:30:41 -0000 1.47 >+++ compare/org/eclipse/compare/internal/patch/PatchMessages.properties 21 Apr 2008 12:11:49 -0000 >@@ -102,6 +102,7 @@ > PreviewPatchPage_FuzzUsed=(fuzz factor used: {0}) > PreviewPatchPage_AllContextIgnored=(fuzz factor used: {0}, all context lines ignored) > PreviewPatchPage2_ShowMatched=Show &matched hunks >+PreviewPatchPage2_AddedRemovedLines=Patch contains {0} added and {1} removed line(s). > PreviewPatchLabelDecorator_ProjectDoesNotExist=(Project does not exist in workspace) > > # >Index: compare/org/eclipse/compare/internal/patch/PatchMessages.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchMessages.java,v >retrieving revision 1.25 >diff -u -r1.25 PatchMessages.java >--- compare/org/eclipse/compare/internal/patch/PatchMessages.java 3 Mar 2008 13:30:41 -0000 1.25 >+++ compare/org/eclipse/compare/internal/patch/PatchMessages.java 21 Apr 2008 12:11:49 -0000 >@@ -105,6 +105,7 @@ > public static String PreviewPatchPage2_RetargetAction; > public static String PreviewPatchPage2_RetargetTooltip; > public static String PreviewPatchPage2_ShowMatched; >+ public static String PreviewPatchPage2_AddedRemovedLines; > public static String RetargetPatchElementDialog_0; > public static String RetargetPatchElementDialog_1; > } >Index: compare/org/eclipse/compare/internal/patch/PreviewPatchPage2.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PreviewPatchPage2.java,v >retrieving revision 1.34 >diff -u -r1.34 PreviewPatchPage2.java >--- compare/org/eclipse/compare/internal/patch/PreviewPatchPage2.java 28 Feb 2008 16:47:01 -0000 1.34 >+++ compare/org/eclipse/compare/internal/patch/PreviewPatchPage2.java 21 Apr 2008 12:11:49 -0000 >@@ -12,9 +12,11 @@ > > import java.lang.reflect.InvocationTargetException; > import java.util.Iterator; >+import java.util.regex.Pattern; > > import org.eclipse.compare.CompareConfiguration; > import org.eclipse.compare.CompareUI; >+import org.eclipse.compare.internal.ComparePreferencePage; > import org.eclipse.compare.internal.CompareUIPlugin; > import org.eclipse.compare.internal.ICompareUIConstants; > import org.eclipse.core.runtime.Assert; >@@ -27,6 +29,7 @@ > import org.eclipse.jface.dialogs.IDialogConstants; > import org.eclipse.jface.dialogs.IDialogSettings; > import org.eclipse.jface.operation.IRunnableWithProgress; >+import org.eclipse.jface.preference.IPreferenceStore; > import org.eclipse.jface.resource.JFaceResources; > import org.eclipse.jface.util.IPropertyChangeListener; > import org.eclipse.jface.util.PropertyChangeEvent; >@@ -37,6 +40,7 @@ > import org.eclipse.jface.viewers.TreeSelection; > import org.eclipse.jface.window.Window; > import org.eclipse.jface.wizard.WizardPage; >+import org.eclipse.osgi.util.NLS; > import org.eclipse.swt.SWT; > import org.eclipse.swt.events.ModifyEvent; > import org.eclipse.swt.events.ModifyListener; >@@ -73,6 +77,7 @@ > > private Combo fStripPrefixSegments; > private Text fFuzzField; >+ private Label addedRemovedLines; > > private Action fExcludeAction; > private Action fIncludeAction; >@@ -148,7 +153,12 @@ > }}); > > c.setLayoutData(new GridData(GridData.FILL_BOTH)); >- >+ >+ addedRemovedLines = new Label(composite, SWT.NONE); >+ addedRemovedLines.setText(countLines()); >+ GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.GRAB_HORIZONTAL); >+ addedRemovedLines.setLayoutData(gd); >+ > setControl(composite); > > restoreWidgetValues(); >@@ -332,6 +342,7 @@ > // TODO: We should only do this if the tree needs to be rebuilt > rebuildTree(); > updateEnablements(); >+ addedRemovedLines.setText(countLines()); > } > } > >@@ -670,6 +681,47 @@ > void saveWidgetValues() { > settings.put(EXPAND_PATCH_OPTIONS, patchOptions.isExpanded()); > } >+ >+ private String countLines() { >+ int added = 0, removed = 0; >+ >+ IPreferenceStore store = CompareUIPlugin.getDefault().getPreferenceStore(); >+ String addedLinesRegex = store.getString(ComparePreferencePage.ADDED_LINES_REGEX); >+ String removedLinesRegex = store.getString(ComparePreferencePage.REMOVED_LINES_REGEX); >+ >+ if ((addedLinesRegex == null || "".equals(addedLinesRegex)) //$NON-NLS-1$ >+ && (removedLinesRegex == null || "".equals(removedLinesRegex))) { //$NON-NLS-1$ >+ >+ fPatcher.countLines(); >+ FileDiff[] fileDiffs = fPatcher.getDiffs(); >+ for (int i = 0; i < fileDiffs.length; i++) { >+ added += fileDiffs[i].getAddedLines(); >+ removed += fileDiffs[i].getRemovedLines(); >+ } >+ >+ } else { >+ >+ Pattern addedPattern = Pattern.compile(addedLinesRegex); >+ Pattern removedPattern = Pattern.compile(removedLinesRegex); >+ >+ FileDiff[] fileDiffs = fPatcher.getDiffs(); >+ for (int i = 0; i < fileDiffs.length; i++) { >+ Hunk[] hunks = fileDiffs[i].getHunks(); >+ for (int j = 0; j < hunks.length; j++) { >+ String[] lines = hunks[j].getLines(); >+ for (int k = 0; k < lines.length; k++) { >+ String line = lines[k]; >+ if (addedPattern.matcher(line).find()) >+ added++; >+ if (removedPattern.matcher(line).find()) >+ removed++; >+ } >+ } >+ } >+ } >+ return NLS.bind(PatchMessages.PreviewPatchPage2_AddedRemovedLines, >+ new String[] { added + "", removed + "" }); //$NON-NLS-1$ //$NON-NLS-2$ >+ } > > > } >Index: compare/org/eclipse/compare/internal/patch/FileDiff.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/FileDiff.java,v >retrieving revision 1.6 >diff -u -r1.6 FileDiff.java >--- compare/org/eclipse/compare/internal/patch/FileDiff.java 21 Jan 2008 14:37:15 -0000 1.6 >+++ compare/org/eclipse/compare/internal/patch/FileDiff.java 21 Apr 2008 12:11:49 -0000 >@@ -1,5 +1,5 @@ > /******************************************************************************* >- * Copyright (c) 2006, 2007 IBM Corporation and others. >+ * Copyright (c) 2006, 2008 IBM Corporation and others. > * All rights reserved. This program and the accompanying materials > * are made available under the terms of the Eclipse Public License v1.0 > * which accompanies this distribution, and is available at >@@ -10,12 +10,18 @@ > *******************************************************************************/ > package org.eclipse.compare.internal.patch; > >-import java.util.*; >- >-import org.eclipse.compare.patch.*; >+import java.util.ArrayList; >+import java.util.Iterator; >+import java.util.List; >+ >+import org.eclipse.compare.patch.IFilePatch; >+import org.eclipse.compare.patch.IFilePatchResult; >+import org.eclipse.compare.patch.PatchConfiguration; > import org.eclipse.compare.structuremergeviewer.Differencer; > import org.eclipse.core.resources.IStorage; >-import org.eclipse.core.runtime.*; >+import org.eclipse.core.runtime.IPath; >+import org.eclipse.core.runtime.IProgressMonitor; >+import org.eclipse.core.runtime.Path; > > /** > * A file diff represents a set of hunks that were associated with the >@@ -28,6 +34,7 @@ > private List fHunks= new ArrayList(); > private DiffProject fProject; //the project that contains this diff > private String header; >+ private int addedLines, removedLines; > > /** > * Create a file diff for the given path and date information. >@@ -222,4 +229,20 @@ > return newDate; > } > >+ public void setAddedLines(int addedLines) { >+ this.addedLines = addedLines; >+ } >+ >+ public void setRemovedLines(int removedLines) { >+ this.removedLines = removedLines; >+ } >+ >+ public int getAddedLines() { >+ return addedLines; >+ } >+ >+ public int getRemovedLines() { >+ return removedLines; >+ } >+ > } >Index: compare/org/eclipse/compare/internal/ComparePreferencePage.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.compare/compare/org/eclipse/compare/internal/ComparePreferencePage.java,v >retrieving revision 1.54 >diff -u -r1.54 ComparePreferencePage.java >--- compare/org/eclipse/compare/internal/ComparePreferencePage.java 4 Apr 2007 17:54:21 -0000 1.54 >+++ compare/org/eclipse/compare/internal/ComparePreferencePage.java 21 Apr 2008 12:11:48 -0000 >@@ -10,30 +10,49 @@ > *******************************************************************************/ > package org.eclipse.compare.internal; > >-import java.io.*; >+import java.io.ByteArrayInputStream; >+import java.io.InputStream; > import java.util.HashMap; > import java.util.Iterator; > import java.util.Map; > >-import org.eclipse.ui.*; >+import org.eclipse.compare.CompareConfiguration; >+import org.eclipse.compare.IEncodedStreamContentAccessor; >+import org.eclipse.compare.ITypedElement; >+import org.eclipse.compare.contentmergeviewer.TextMergeViewer; >+import org.eclipse.compare.structuremergeviewer.DiffNode; >+import org.eclipse.compare.structuremergeviewer.Differencer; >+import org.eclipse.jface.dialogs.Dialog; >+import org.eclipse.jface.preference.IPreferenceStore; >+import org.eclipse.jface.preference.PreferencePage; >+import org.eclipse.jface.preference.RadioGroupFieldEditor; >+import org.eclipse.jface.util.IPropertyChangeListener; >+import org.eclipse.jface.util.PropertyChangeEvent; >+import org.eclipse.swt.SWT; >+import org.eclipse.swt.events.DisposeEvent; >+import org.eclipse.swt.events.DisposeListener; >+import org.eclipse.swt.events.ModifyEvent; >+import org.eclipse.swt.events.ModifyListener; >+import org.eclipse.swt.events.SelectionAdapter; >+import org.eclipse.swt.events.SelectionEvent; >+import org.eclipse.swt.events.SelectionListener; >+import org.eclipse.swt.graphics.Image; >+import org.eclipse.swt.layout.GridData; >+import org.eclipse.swt.layout.GridLayout; >+import org.eclipse.swt.widgets.Button; >+import org.eclipse.swt.widgets.Composite; >+import org.eclipse.swt.widgets.Control; >+import org.eclipse.swt.widgets.Label; >+import org.eclipse.swt.widgets.TabFolder; >+import org.eclipse.swt.widgets.TabItem; >+import org.eclipse.swt.widgets.Text; >+import org.eclipse.ui.IWorkbench; >+import org.eclipse.ui.IWorkbenchPreferencePage; >+import org.eclipse.ui.PlatformUI; > import org.eclipse.ui.dialogs.PreferenceLinkArea; > import org.eclipse.ui.preferences.IWorkbenchPreferenceContainer; > import org.eclipse.ui.texteditor.AbstractTextEditor; > >-import org.eclipse.swt.SWT; >-import org.eclipse.swt.events.*; >-import org.eclipse.swt.graphics.Image; >-import org.eclipse.swt.layout.*; >-import org.eclipse.swt.widgets.*; >- >-import org.eclipse.jface.dialogs.Dialog; >-import org.eclipse.jface.preference.*; >-import org.eclipse.jface.util.*; >- >-import org.eclipse.compare.*; >-import org.eclipse.compare.contentmergeviewer.TextMergeViewer; >-import org.eclipse.compare.structuremergeviewer.*; >- > > public class ComparePreferencePage extends PreferencePage implements IWorkbenchPreferencePage { > >@@ -76,6 +95,8 @@ > public static final String HIGHLIGHT_TOKEN_CHANGES= PREFIX + "HighlightTokenChanges"; //$NON-NLS-1$ > //public static final String USE_RESOLVE_UI= PREFIX + "UseResolveUI"; //$NON-NLS-1$ > public static final String PATH_FILTER= PREFIX + "PathFilter"; //$NON-NLS-1$ >+ public static final String ADDED_LINES_REGEX= PREFIX + "AddedLinesRegex"; //$NON-NLS-1$ >+ public static final String REMOVED_LINES_REGEX= PREFIX + "RemovedLinesRegex"; //$NON-NLS-1$ > > > private TextMergeViewer fPreviewViewer; >@@ -84,6 +105,8 @@ > private OverlayPreferenceStore fOverlayStore; > private Map fCheckBoxes= new HashMap(); > private Text fFilters; >+ private Text addedLinesRegex; >+ private Text removeLinesRegex; > private SelectionListener fCheckBoxListener; > > >@@ -96,6 +119,8 @@ > new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, SHOW_MORE_INFO), > new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, IGNORE_WHITESPACE), > new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PREF_SAVE_ALL_EDITORS), >+ new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, ADDED_LINES_REGEX), >+ new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, REMOVED_LINES_REGEX), > > new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, AbstractTextEditor.PREFERENCE_COLOR_BACKGROUND), > new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, AbstractTextEditor.PREFERENCE_COLOR_BACKGROUND_SYSTEM_DEFAULT), >@@ -118,6 +143,8 @@ > store.setDefault(SHOW_MORE_INFO, false); > store.setDefault(IGNORE_WHITESPACE, false); > store.setDefault(PREF_SAVE_ALL_EDITORS, false); >+ store.setDefault(ADDED_LINES_REGEX, ""); //$NON-NLS-1$ >+ store.setDefault(REMOVED_LINES_REGEX, ""); //$NON-NLS-1$ > //store.setDefault(USE_SPLINES, false); > store.setDefault(USE_SINGLE_LINE, true); > store.setDefault(HIGHLIGHT_TOKEN_CHANGES, true); >@@ -158,6 +185,9 @@ > * @see PreferencePage#performOk() > */ > public boolean performOk() { >+ fOverlayStore.setValue(ADDED_LINES_REGEX, addedLinesRegex.getText()); >+ fOverlayStore.setValue(REMOVED_LINES_REGEX, removeLinesRegex.getText()); >+ > fOverlayStore.propagate(); > editor.store(); > return true; >@@ -250,7 +280,7 @@ > new Label(composite, SWT.NONE); > > Label l= new Label(composite, SWT.WRAP); >- l.setText(Utilities.getString("ComparePreferencePage.filter.description")); //$NON-NLS-1$ >+ l.setText(Utilities.getString("ComparePreferencePage.regex.description")); //$NON-NLS-1$ > > Composite c2= new Composite(composite, SWT.NONE); > c2.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); >@@ -259,9 +289,33 @@ > c2.setLayout(layout); > > l= new Label(c2, SWT.NONE); >+ l.setText(Utilities.getString("ComparePreferencePage.regexAdded.label")); //$NON-NLS-1$ >+ addedLinesRegex = new Text(c2, SWT.BORDER); >+ addedLinesRegex.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); >+ addedLinesRegex.setText(fOverlayStore.getString(ADDED_LINES_REGEX)); >+ >+ l= new Label(c2, SWT.NONE); >+ l.setText(Utilities.getString("ComparePreferencePage.regexRemoved.label")); //$NON-NLS-1$ >+ removeLinesRegex = new Text(c2, SWT.BORDER); >+ removeLinesRegex.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); >+ removeLinesRegex.setText(fOverlayStore.getString(REMOVED_LINES_REGEX)); >+ >+ // a spacer >+ new Label(composite, SWT.NONE); >+ >+ l= new Label(composite, SWT.WRAP); >+ l.setText(Utilities.getString("ComparePreferencePage.filter.description")); //$NON-NLS-1$ >+ >+ Composite c3= new Composite(composite, SWT.NONE); >+ c3.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); >+ layout= new GridLayout(2, false); >+ layout.marginWidth= 0; >+ c3.setLayout(layout); >+ >+ l= new Label(c3, SWT.NONE); > l.setText(Utilities.getString("ComparePreferencePage.filter.label")); //$NON-NLS-1$ > >- fFilters= new Text(c2, SWT.BORDER); >+ fFilters= new Text(c3, SWT.BORDER); > fFilters.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); > fFilters.setText(fOverlayStore.getString(PATH_FILTER)); > fFilters.addModifyListener( >Index: plugin.properties >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.compare/plugin.properties,v >retrieving revision 1.90 >diff -u -r1.90 plugin.properties >--- plugin.properties 23 Jan 2008 13:39:25 -0000 1.90 >+++ plugin.properties 21 Apr 2008 12:11:48 -0000 >@@ -110,6 +110,10 @@ > ComparePreferencePage.ignoreWhitespace.label= Ignore &white space > ComparePreferencePage.saveBeforePatching.label= A&utomatically save dirty editors before browsing patches > >+ComparePreferencePage.regex.description=Enter regular expressions used to identify an added or removed line in a patch\n(e.g. '^\\+\\s*\\S' for an added line with at least one word character). >+ComparePreferencePage.regexAdded.label=Added lines >+ComparePreferencePage.regexRemoved.label=Removed lines >+ > ComparePreferencePage.filter.description= Enter member names that should be excluded from 'Compare With Each Other'.\nList is comma separated (e.g. '*.class, .project, bin/') > ComparePreferencePage.filter.label= &Filtered Members: > ComparePreferencePage.filter.invalidsegment.error= Filter is invalid: {0}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 224588
:
94358
|
94360
|
96838
|
96839
|
96993
|
97398