diff options
author | Michael Valenta | 2002-11-20 18:41:55 +0000 |
---|---|---|
committer | Michael Valenta | 2002-11-20 18:41:55 +0000 |
commit | 4043809c2cb1ada32d8e493d18f37e6e12461f1f (patch) | |
tree | 8caaf7eb9822cf784d3b1838d815ad61e733b50f /bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/EclipseFile.java | |
parent | 4652f36bfd9333df028190408aaaf1d7766dba3a (diff) | |
download | eclipse.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.java | 22 |
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 |