# HG changeset patch # User jrice@netbeans.org # Date 1207752627 -3600 # Node ID 8b4760a4f7c2772283e82bd05204649d76fdc1bf # Parent fae0133cb699edf1865c38fead435241ac6b0c3d #132258: File added Show History Diff incorrect, fixed to handle added, del and copied files correctly diff -r fae0133cb699 -r 8b4760a4f7c2 mercurial/src/org/netbeans/modules/mercurial/ui/log/DiffResultsView.java --- a/mercurial/src/org/netbeans/modules/mercurial/ui/log/DiffResultsView.java Wed Apr 09 11:55:18 2008 +0100 +++ b/mercurial/src/org/netbeans/modules/mercurial/ui/log/DiffResultsView.java Wed Apr 09 15:50:27 2008 +0100 @@ -84,6 +84,8 @@ class DiffResultsView implements Ancesto private List results; private static final RequestProcessor rp = new RequestProcessor("MercurialDiff", 1, true); // NOI18N + private static String HgNoRev = "-1"; // NOI18N + public DiffResultsView(SearchHistoryPanel parent, List results) { this.parent = parent; this.results = results; @@ -203,7 +205,16 @@ class DiffResultsView implements Ancesto private void showDiff(RepositoryRevision.Event header, String revision1, String revision2, boolean showLastDifference) { synchronized(this) { cancelBackgroundTasks(); - currentTask = new ShowDiffTask(header, revision1, revision2, showLastDifference); + char action = header.getChangedPath().getAction(); + if(action == HgLogMessage.HgModStatus){ + currentTask = new ShowDiffTask(header, revision1, revision2, showLastDifference); + }else if(action == HgLogMessage.HgAddStatus){ + currentTask = new ShowDiffTask(header, HgNoRev, revision2, showLastDifference); + }else if(action == HgLogMessage.HgDelStatus){ + currentTask = new ShowDiffTask(header, revision1, HgNoRev, showLastDifference); + }else if(action == HgLogMessage.HgCopyStatus){ + currentTask = new ShowDiffTask(header, HgNoRev, revision2, showLastDifference); + } currentShowDiffTask = rp.create(currentTask); currentShowDiffTask.schedule(0); } diff -r fae0133cb699 -r 8b4760a4f7c2 mercurial/src/org/netbeans/modules/mercurial/ui/log/HgLogMessage.java --- a/mercurial/src/org/netbeans/modules/mercurial/ui/log/HgLogMessage.java Wed Apr 09 11:55:18 2008 +0100 +++ b/mercurial/src/org/netbeans/modules/mercurial/ui/log/HgLogMessage.java Wed Apr 09 15:50:27 2008 +0100 @@ -54,10 +54,10 @@ import org.netbeans.modules.mercurial.ut * @author jr140578 */ public class HgLogMessage { - private char mod = 'M'; - private char add = 'A'; - private char del = 'R'; - private char copy = 'C'; + public static char HgModStatus = 'M'; + public static char HgAddStatus = 'A'; + public static char HgDelStatus = 'R'; + public static char HgCopyStatus = 'C'; private List mpaths; private List apaths; @@ -91,28 +91,28 @@ public class HgLogMessage { if( fm != null && !fm.equals("")){ splits = fm.split(" "); for(String s: splits){ - this.mpaths.add(new HgLogMessageChangedPath(s, mod)); + this.mpaths.add(new HgLogMessageChangedPath(s, HgModStatus)); logCopied(s); } } if( fa != null && !fa.equals("")){ splits = fa.split(" "); for(String s: splits){ - this.apaths.add(new HgLogMessageChangedPath(s, add)); + this.apaths.add(new HgLogMessageChangedPath(s, HgAddStatus)); logCopied(s); } } if( fd != null && !fd.equals("")){ splits = fd.split(" "); for(String s: splits){ - this.dpaths.add(new HgLogMessageChangedPath(s, del)); + this.dpaths.add(new HgLogMessageChangedPath(s, HgDelStatus)); logCopied(s); } } if( fc != null && !fc.equals("")){ splits = fc.split(" "); for(String s: splits){ - this.cpaths.add(new HgLogMessageChangedPath(s, copy)); + this.cpaths.add(new HgLogMessageChangedPath(s, HgCopyStatus)); logCopied(s); } }