code: @Deprecated
      public boolean pollChanges(AbstractProject<?,?> project, Launcher launcher, FilePath workspace, TaskListener listener) throws IOException, InterruptedException {
          // up until 1.336, this method was abstract, so everyone should have overridden this method
          // without calling super.pollChanges. So the compatibility implementation is purely for
          // new implementations that doesn't override this method.
          throw new AbstractMethodError("you must override compareRemoteRevisionWith");
      }
docs: Checks if there has been any changes to this module in the repository.
  
  TODO: we need to figure out a better way to communicate an error back,
  so that we won't keep retrying the same node (for example an agent might be down.)
  
  <p>
  If the SCM doesn't implement polling, have the {@link #supportsPolling()} method
  return false.
  
  @param project
  The project to check for updates
  @param launcher
  Abstraction of the machine where the polling will take place. If SCM declares
  that {@linkplain #requiresWorkspaceForPolling() the polling doesn't require a workspace}, this parameter is null.
  @param workspace
  The workspace directory that contains baseline files. If SCM declares
  that {@linkplain #requiresWorkspaceForPolling() the polling doesn't require a workspace}, this parameter is null.
  @param listener
  Logs during the polling should be sent here.
  
  @return true
  if the change is detected.
  
  @throws InterruptedException
  interruption is usually caused by the user aborting the computation.
  this exception should be simply propagated all the way up.
  
  @see #supportsPolling()
  
  @deprecated as of 1.345
  Override {@link #calcRevisionsFromBuild(AbstractBuild, Launcher, TaskListener)} and
  {@link #compareRemoteRevisionWith(AbstractProject, Launcher, FilePath, TaskListener, SCMRevisionState)} for implementation.
  
  The implementation is now separated in two pieces, one that computes the revision of the current workspace,
  and the other that computes the revision of the remote repository.
  
  Call {@link #poll(AbstractProject, Launcher, FilePath, TaskListener, SCMRevisionState)} for use instead.