Skip to content

Commit 6ce3246

Browse files
BananeweizenCalixte
authored andcommitted
Refresh SCM filter info correctly
* refresh SCM change info for every file when filtering * remove markers from files which don't pass the filter (because those markers are stale)
1 parent 68e6d6c commit 6ce3246

File tree

4 files changed

+65
-30
lines changed

4 files changed

+65
-30
lines changed

net.sf.eclipsecs.core/src/net/sf/eclipsecs/core/builder/CheckstyleBuilder.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -364,6 +364,9 @@ private Collection<IResource> getResources(final IResourceDelta delta, final IFi
364364
// add to the resources to check
365365
resources.add(child);
366366
}
367+
else {
368+
child.deleteMarkers(CheckstyleMarker.MARKER_ID, true, IResource.DEPTH_ZERO);
369+
}
367370

368371
// recurse over containers
369372
if (child instanceof IContainer) {

net.sf.eclipsecs.core/src/net/sf/eclipsecs/core/projectconfig/filters/FilesInSyncFilter.java

Lines changed: 21 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222

2323
import org.eclipse.core.resources.IFile;
2424
import org.eclipse.core.resources.IProject;
25+
import org.eclipse.core.resources.IResource;
26+
import org.eclipse.core.runtime.NullProgressMonitor;
2527
import org.eclipse.team.core.RepositoryProvider;
2628
import org.eclipse.team.core.TeamException;
2729
import org.eclipse.team.core.subscribers.Subscriber;
@@ -38,44 +40,40 @@ public class FilesInSyncFilter extends AbstractFilter {
3840

3941
@Override
4042
public boolean accept(Object element) {
41-
boolean passes = true;
42-
43-
if (element instanceof IFile) {
44-
45-
IFile file = (IFile) element;
46-
IProject project = file.getProject();
47-
48-
if (RepositoryProvider.isShared(project)) {
49-
50-
RepositoryProvider provider = RepositoryProvider.getProvider(project);
43+
if (!(element instanceof IFile)) {
44+
return true;
45+
}
5146

52-
if (provider != null) {
47+
IFile file = (IFile) element;
48+
IProject project = file.getProject();
49+
if (!RepositoryProvider.isShared(project)) {
50+
return true;
51+
}
5352

54-
Subscriber subscriber = provider.getSubscriber();
53+
RepositoryProvider provider = RepositoryProvider.getProvider(project);
54+
if (provider == null) {
55+
return true;
56+
}
5557

56-
if (subscriber != null) {
57-
passes = hasChanges(file, subscriber);
58-
}
59-
}
60-
}
58+
Subscriber subscriber = provider.getSubscriber();
59+
if (subscriber == null) {
60+
return true;
6161
}
62-
return passes;
62+
return hasChanges(file, subscriber);
6363
}
6464

6565
private boolean hasChanges(IFile file, Subscriber subscriber) {
66-
67-
boolean hasChanges = false;
68-
6966
try {
67+
subscriber.refresh(new IResource[] { file }, IResource.DEPTH_ZERO, new NullProgressMonitor());
7068
SyncInfo synchInfo = subscriber.getSyncInfo(file);
7169

7270
if (synchInfo != null) {
7371
int kind = synchInfo.getKind();
74-
hasChanges = (SyncInfo.getDirection(kind) & SyncInfo.OUTGOING) == SyncInfo.OUTGOING;
72+
return (SyncInfo.getDirection(kind) & SyncInfo.OUTGOING) == SyncInfo.OUTGOING;
7573
}
7674
} catch (TeamException ex) {
7775
CheckstyleLog.log(ex);
7876
}
79-
return hasChanges;
77+
return false;
8078
}
8179
}

net.sf.eclipsecs.target/net.sf.eclipsecs.target.target

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
22
<?pde?>
33
<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
4-
<target name="Eclipse Checkstyle" sequenceNumber="1717393787">
4+
<target name="Eclipse Checkstyle" sequenceNumber="1721491250">
55
<locations>
66
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
77
<unit id="org.eclipse.jdt.feature.group" version="3.18.1300.v20220831-1800"/>
@@ -40,6 +40,22 @@
4040
<unit id="com.github.sevntu.checkstyle.checks.feature.feature.group" version="1.44.1"/>
4141
<repository location="https://sevntu-checkstyle.github.io/sevntu.checkstyle/update-site/"/>
4242
</location>
43+
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
44+
<unit id="org.eclipse.egit.feature.group" version="6.5.0.202303070854-r"/>
45+
<unit id="org.eclipse.jgit.feature.group" version="6.5.0.202303070854-r"/>
46+
<unit id="org.eclipse.jgit.gpg.bc.feature.group" version="6.5.0.202303070854-r"/>
47+
<unit id="org.eclipse.jgit.ssh.apache.feature.group" version="6.5.0.202303070854-r"/>
48+
<unit id="org.eclipse.jgit.http.apache.feature.group" version="6.5.0.202303070854-r"/>
49+
<unit id="org.apache.commons.codec" version="1.14.0.v20221112-0806"/>
50+
<unit id="org.apache.commons.compress" version="1.22.0.v20221207-1049"/>
51+
<unit id="org.apache.httpcomponents.httpclient" version="4.5.14.v20221207-1049"/>
52+
<unit id="org.apache.httpcomponents.httpcore" version="4.4.16.v20221207-1049"/>
53+
<unit id="org.apache.sshd.osgi" version="2.9.2.v20221117-1942"/>
54+
<unit id="org.apache.sshd.sftp" version="2.9.2.v20221117-1942"/>
55+
<unit id="javaewah" version="1.1.13.v20211029-0839"/>
56+
<unit id="net.i2p.crypto.eddsa" version="0.3.0.v20220506-1020"/>
57+
<repository location="https://download.eclipse.org/egit/updates-6.5"/>
58+
</location>
4359
<location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="generate" type="Maven" label="SnakeYaml">
4460
<dependencies>
4561
<dependency>
@@ -75,7 +91,7 @@
7591
<dependency>
7692
<groupId>io.github.classgraph</groupId>
7793
<artifactId>classgraph</artifactId>
78-
<version>4.8.172</version>
94+
<version>4.8.174</version>
7995
<type>jar</type>
8096
</dependency>
8197
</dependencies>
@@ -85,7 +101,7 @@
85101
<dependency>
86102
<groupId>org.assertj</groupId>
87103
<artifactId>assertj-core</artifactId>
88-
<version>3.26.0</version>
104+
<version>3.26.3</version>
89105
<type>jar</type>
90106
</dependency>
91107
</dependencies>
@@ -95,7 +111,7 @@
95111
<dependency>
96112
<groupId>org.apache.commons</groupId>
97113
<artifactId>commons-lang3</artifactId>
98-
<version>3.14.0</version>
114+
<version>3.15.0</version>
99115
<type>jar</type>
100116
</dependency>
101117
</dependencies>

net.sf.eclipsecs.target/net.sf.eclipsecs.target.tpd

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,24 @@ location "https://sevntu-checkstyle.github.io/sevntu.checkstyle/update-site/" {
5050
com.github.sevntu.checkstyle.checks.feature.feature.group
5151
}
5252

53+
location "https://download.eclipse.org/egit/updates-6.5" {
54+
// for testing the SCM filter
55+
// have to use an old version of egit, as most recent requires a more recent eclipse core version
56+
org.eclipse.egit.feature.group
57+
org.eclipse.jgit.feature.group
58+
org.eclipse.jgit.gpg.bc.feature.group
59+
org.eclipse.jgit.ssh.apache.feature.group
60+
org.eclipse.jgit.http.apache.feature.group
61+
org.apache.commons.codec
62+
org.apache.commons.compress
63+
org.apache.httpcomponents.httpclient
64+
org.apache.httpcomponents.httpcore
65+
org.apache.sshd.osgi
66+
org.apache.sshd.sftp
67+
javaewah
68+
net.i2p.crypto.eddsa
69+
}
70+
5371
// If the following part has errors and no syntax highlighting, then please use Help>About>Installation>Installed Software>Target Platform DSL>Uninstall.
5472
// After restarting please install the current version from the URL in line 1.
5573
maven ApacheCommons
@@ -61,7 +79,7 @@ maven ApacheCommons
6179
dependency {
6280
groupId="org.apache.commons"
6381
artifactId="commons-lang3"
64-
version="3.14.0"
82+
version="3.15.0"
6583
}
6684
}
6785
maven AssertJ
@@ -73,7 +91,7 @@ maven AssertJ
7391
dependency {
7492
groupId="org.assertj"
7593
artifactId="assertj-core"
76-
version="3.26.0"
94+
version="3.26.3"
7795
}
7896
}
7997
maven Classgraph
@@ -85,7 +103,7 @@ maven Classgraph
85103
dependency {
86104
groupId="io.github.classgraph"
87105
artifactId="classgraph"
88-
version="4.8.172"
106+
version="4.8.174"
89107
}
90108
}
91109
maven DOM4J

0 commit comments

Comments
 (0)