Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Valenta2006-11-14 15:42:59 +0000
committerMichael Valenta2006-11-14 15:42:59 +0000
commit45144ff52e4c1fdf718d104d01994a0e2b04b999 (patch)
tree06a4e057a978b273facf5986cbf0ed1ead10c4b7
parent33a389f62d6b8e1c0fe028263db5e4b0c4df44c1 (diff)
downloadeclipse.platform.team-45144ff52e4c1fdf718d104d01994a0e2b04b999.tar.gz
eclipse.platform.team-45144ff52e4c1fdf718d104d01994a0e2b04b999.tar.xz
eclipse.platform.team-45144ff52e4c1fdf718d104d01994a0e2b04b999.zip
Bug 145013 [History View] Compare with local history is broken due to merged history
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/filehistory/CVSFileHistory.java8
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSHistoryPage.java103
2 files changed, 68 insertions, 43 deletions
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/filehistory/CVSFileHistory.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/filehistory/CVSFileHistory.java
index 9d4ab1a07..b92f0bd5c 100644
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/filehistory/CVSFileHistory.java
+++ b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/filehistory/CVSFileHistory.java
@@ -320,5 +320,13 @@ public class CVSFileHistory extends FileHistory {
} finally {
monitor.done();
}
+ }
+
+ public boolean isInitialized() {
+ return revisions != null;
+ }
+
+ public boolean isIncludeLocal() {
+ return includeLocalRevisions;
}
}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSHistoryPage.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSHistoryPage.java
index 7b1b8648f..077a8aa73 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSHistoryPage.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSHistoryPage.java
@@ -1106,53 +1106,78 @@ public class CVSHistoryPage extends HistoryPage implements IAdaptable, IHistoryC
IStatus status = Status.OK_STATUS;
if (fileHistory != null && !shutdown) {
- //If fileHistory termintates in a bad way, try to fetch the local
+ //If fileHistory terminates in a bad way, try to fetch the local
//revisions only
+ boolean localFetched = false;
+ boolean needsUpdate = true;
+ if (!fileHistory.isInitialized() && fileHistory.isIncludeLocal()) {
+ // If this is the first refresh, show the local history before hitting the server
+ fileHistory.fetchLocalOnly(monitor);
+ updateTable();
+ localFetched = true;
+ needsUpdate = false;
+ }
try {
fileHistory.refresh(monitor);
+ needsUpdate = true;
} catch (TeamException ex) {
- fileHistory.fetchLocalOnly(monitor);
+ if (!localFetched) {
+ fileHistory.fetchLocalOnly(monitor);
+ needsUpdate = true;
+ }
status = new CVSStatus(ex.getStatus().getSeverity(), ex.getStatus().getCode(), ex.getMessage(), ex);
}
+ if (needsUpdate)
+ updateTable();
+ }
- if (grouping)
- revisionsFound = sortRevisions();
+ if (status != Status.OK_STATUS ) {
+ this.setProperty(IProgressConstants.KEEP_PROPERTY, Boolean.TRUE);
+ this.setProperty(IProgressConstants.NO_IMMEDIATE_ERROR_PROMPT_PROPERTY, Boolean.TRUE);
+ }
+
+ return status;
+ }
- Utils.asyncExec(new Runnable() {
- public void run() {
- historyTableProvider.setLocalRevisionsDisplayed(fileHistory.getIncludesExists());
- historyTableProvider.setFile(fileHistory, workspaceFile);
- //historyTableProvider.setWorkspaceFile(workspaceFile);
- if (!selectOnly){
- if (grouping) {
- mapExpandedElements(treeViewer.getExpandedElements());
- treeViewer.getTree().setLinesVisible(revisionsFound);
- treeViewer.getTree().setRedraw(false);
- treeViewer.setInput(categories);
- //if user is switching modes and already has expanded elements
- //selected try to expand those, else expand all
- if (elementsToExpand.length > 0)
- treeViewer.setExpandedElements(elementsToExpand);
- else {
- treeViewer.expandAll();
- Object[] el = treeViewer.getExpandedElements();
- if (el != null && el.length > 0) {
- treeViewer.setSelection(new StructuredSelection(el[0]));
- treeViewer.getTree().deselectAll();
- }
+ private void updateTable() {
+ if (grouping)
+ revisionsFound = sortRevisions();
+
+ Utils.asyncExec(new Runnable() {
+ public void run() {
+ historyTableProvider.setLocalRevisionsDisplayed(fileHistory.getIncludesExists());
+ historyTableProvider.setFile(fileHistory, workspaceFile);
+ //historyTableProvider.setWorkspaceFile(workspaceFile);
+ if (!selectOnly){
+ if (grouping) {
+ mapExpandedElements(treeViewer.getExpandedElements());
+ treeViewer.getTree().setLinesVisible(revisionsFound);
+ treeViewer.getTree().setRedraw(false);
+ treeViewer.setInput(categories);
+ //if user is switching modes and already has expanded elements
+ //selected try to expand those, else expand all
+ if (elementsToExpand.length > 0)
+ treeViewer.setExpandedElements(elementsToExpand);
+ else {
+ treeViewer.expandAll();
+ Object[] el = treeViewer.getExpandedElements();
+ if (el != null && el.length > 0) {
+ treeViewer.setSelection(new StructuredSelection(el[0]));
+ treeViewer.getTree().deselectAll();
}
- treeViewer.getTree().setRedraw(true);
+ }
+ treeViewer.getTree().setRedraw(true);
+ } else {
+ if (fileHistory.getFileRevisions().length > 0) {
+ treeViewer.getTree().setLinesVisible(true);
+ treeViewer.setInput(fileHistory);
} else {
- if (fileHistory.getFileRevisions().length > 0) {
- treeViewer.getTree().setLinesVisible(true);
- treeViewer.setInput(fileHistory);
- } else {
- categories = new AbstractHistoryCategory[] {getErrorMessage()};
- treeViewer.getTree().setLinesVisible(false);
- treeViewer.setInput(categories);
- }
+ categories = new AbstractHistoryCategory[] {getErrorMessage()};
+ treeViewer.getTree().setLinesVisible(false);
+ treeViewer.setInput(categories);
}
}
+ }
//Update the history (if it exists) to reflect the new
//counts
if (historyFilter != null){
@@ -1179,14 +1204,6 @@ public class CVSHistoryPage extends HistoryPage implements IAdaptable, IHistoryC
}, treeViewer);
}
- if (status != Status.OK_STATUS ) {
- this.setProperty(IProgressConstants.KEEP_PROPERTY, Boolean.TRUE);
- this.setProperty(IProgressConstants.NO_IMMEDIATE_ERROR_PROMPT_PROPERTY, Boolean.TRUE);
- }
-
- return status;
- }
-
private void mapExpandedElements(Object[] expandedElements) {
//store the names of the currently expanded categories in a map
HashMap elementMap = new HashMap();

Back to the top