Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Valenta2002-11-20 18:41:55 +0000
committerMichael Valenta2002-11-20 18:41:55 +0000
commit4043809c2cb1ada32d8e493d18f37e6e12461f1f (patch)
tree8caaf7eb9822cf784d3b1838d815ad61e733b50f /bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/EclipseFile.java
parent4652f36bfd9333df028190408aaaf1d7766dba3a (diff)
downloadeclipse.platform.team-4043809c2cb1ada32d8e493d18f37e6e12461f1f.tar.gz
eclipse.platform.team-4043809c2cb1ada32d8e493d18f37e6e12461f1f.tar.xz
eclipse.platform.team-4043809c2cb1ada32d8e493d18f37e6e12461f1f.zip
21577: [CVS Watch/Edit] Readonly/Edit/Unedit Support
Diffstat (limited to 'bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/EclipseFile.java')
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/EclipseFile.java22
1 files changed, 19 insertions, 3 deletions
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/EclipseFile.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/EclipseFile.java
index c3a15d487..69bfd868a 100644
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/EclipseFile.java
+++ b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/EclipseFile.java
@@ -32,6 +32,7 @@ import org.eclipse.team.internal.ccvs.core.ICVSResourceVisitor;
import org.eclipse.team.internal.ccvs.core.ILogEntry;
import org.eclipse.team.internal.ccvs.core.Policy;
import org.eclipse.team.internal.ccvs.core.syncinfo.BaserevInfo;
+import org.eclipse.team.internal.ccvs.core.syncinfo.MutableResourceSyncInfo;
import org.eclipse.team.internal.ccvs.core.syncinfo.NotifyInfo;
import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo;
@@ -314,8 +315,11 @@ public class EclipseFile extends EclipseResource implements ICVSFile {
NotifyInfo notifyInfo = new NotifyInfo(getName(), NotifyInfo.EDIT, new Date(), internalFormat);
setNotifyInfo(notifyInfo);
- EclipseSynchronizer.getInstance().copyFileToBaseDirectory(getIFile(), monitor);
- setBaserevInfo(new BaserevInfo(getName(), info.getRevision()));
+ // Only record the base if the file is not modified
+ if (!isModified()) {
+ EclipseSynchronizer.getInstance().copyFileToBaseDirectory(getIFile(), monitor);
+ setBaserevInfo(new BaserevInfo(getName(), info.getRevision()));
+ }
// allow editing
setReadOnly(false);
@@ -336,7 +340,19 @@ public class EclipseFile extends EclipseResource implements ICVSFile {
}
setNotifyInfo(info);
- EclipseSynchronizer.getInstance().restoreFileFromBaseDirectory(getIFile(), monitor);
+ if (isModified()) {
+ ResourceSyncInfo syncInfo = getSyncInfo();
+ BaserevInfo baserevInfo = getBaserevInfo();
+ EclipseSynchronizer.getInstance().restoreFileFromBaseDirectory(getIFile(), monitor);
+ // reset any changes that may have been merged from the server
+ if (!syncInfo.getRevision().equals(baserevInfo.getRevision())) {
+ MutableResourceSyncInfo newInfo = syncInfo.cloneMutable();
+ newInfo.setRevision(baserevInfo.getRevision());
+ newInfo.setTimeStamp(getTimeStamp());
+ newInfo.setDeleted(false);
+ setSyncInfo(newInfo);
+ }
+ }
setBaserevInfo(null);
// prevent editing

Back to the top