mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-86863 Subversion: "file is changed on server" marker is shown for all locally changed files in 1.6 working copy
This commit is contained in:
@@ -162,7 +162,7 @@ public class SvnDiffProvider implements DiffProvider, DiffMixin {
|
||||
final SVNStatusClient client = myVcs.createStatusClient();
|
||||
try {
|
||||
final SVNStatus svnStatus = client.doStatus(file, true);
|
||||
if (svnStatus == null) {
|
||||
if (svnStatus == null || itemExists(svnStatus) && SVNRevision.UNDEFINED.equals(svnStatus.getRemoteRevision())) {
|
||||
// IDEADEV-21785 (no idea why this can happen)
|
||||
final SVNInfo info = myVcs.createWCClient().doInfo(file, SVNRevision.HEAD);
|
||||
if (info == null || info.getURL() == null) {
|
||||
@@ -171,8 +171,7 @@ public class SvnDiffProvider implements DiffProvider, DiffMixin {
|
||||
}
|
||||
return createResult(info.getCommittedRevision(), true, false);
|
||||
}
|
||||
final boolean exists = ! SVNStatusType.STATUS_DELETED.equals(svnStatus.getRemoteContentsStatus()) &&
|
||||
! SVNStatusType.STATUS_DELETED.equals(svnStatus.getRemoteNodeStatus());
|
||||
final boolean exists = itemExists(svnStatus);
|
||||
if (! exists) {
|
||||
// get really latest revision
|
||||
final LatestExistentSearcher searcher = new LatestExistentSearcher(myVcs, svnStatus.getURL());
|
||||
@@ -191,4 +190,9 @@ public class SvnDiffProvider implements DiffProvider, DiffMixin {
|
||||
return defaultResult();
|
||||
}
|
||||
}
|
||||
|
||||
private boolean itemExists(SVNStatus svnStatus) {
|
||||
return ! SVNStatusType.STATUS_DELETED.equals(svnStatus.getRemoteContentsStatus()) &&
|
||||
! SVNStatusType.STATUS_DELETED.equals(svnStatus.getRemoteNodeStatus());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user