Skip navigation links

Introduction

This document lists changes made to the Versioning SPI.


Index of APIs

Incompatible changes by date

Fuller descriptions of all changes can be found below (follow links).

Not all deprecations are listed here, assuming that the deprecated APIs continue to essentially work. For a full deprecation list, please consult the Javadoc.

All changes by date

Changes by version

These API specification versions may be used to indicate that a module requires a certain API feature in order to function. For example, if you see here a feature you need which is labelled 1.20, your manifest should contain in its main attributes the line:

OpenIDE-Module-Module-Dependencies: org.netbeans.modules.versioning > 1.20

Changes by affected class

org.netbeans.modules.versioning.spi.VCSContext

org.netbeans.modules.versioning.spi.VCSHistoryProvider

org.netbeans.modules.versioning.spi.VCSInterceptor

org.netbeans.modules.versioning.spi.VCSVisibilityQuery

org.netbeans.modules.versioning.spi.VersioningSupport

org.netbeans.modules.versioning.spi.VersioningSystem


Details of all changes by API and date


Versioning SPI

Support ContextAwareActions

Nov 16 '12; API spec. version: 1.37; affected top-level classes: VCSVisibilityQuery; made by: tstupka; issues: #221831
make it possible for Versioning Systems to fire visibility changes for a list of files instead of one unspecific change event.

Support ContextAwareActions

Apr 12 '12; API spec. version: 1.31; affected top-level classes: VCSHistoryProvider; made by: tstupka; issues: #210691
Ensure that ContextAwareAction-s provided via VCSHistoryProvider.HistoryEntry.getActions() are created with a context containing the selected nodes in a files editor history tab. Those nodes than will have the relevant HistoryEntry and files in their lookup.

Added VCSHistoryProvider.HistoryEntry.getParent()

Apr 12 '12; API spec. version: 1.30; affected top-level classes: VCSHistoryProvider; made by: tstupka; issues: #209673
New method VCSHistoryProvider.HistoryEntry.getParent() to provide the VCSHistoryProvider.HistoryEntry representing the parent of the given revision.

Added VCSHistoryProvider

Jan 30 '12; API spec. version: 1.29; affected top-level classes: VersioningSupport; made by: tstupka; issues: #207126
New type VCSHistoryProvider makes it possible for versionig systems to provide information about a files history which is then used in that files editor history tab.

isExcluded() added to VersioningSupport

Jul 19 '11; API spec. version: 1.25; affected top-level classes: VersioningSupport; made by: ovrabec; issues: #199986
Method isExcluded states that a given folder is excluded from version control completely. All version control systems should respect the return value and consider such folders to be unversioned.

New @VersioningSystem.Registration annotation

May 23 '11; API spec. version: 1.24; affected top-level classes: VersioningSystem; made by: tstupka; issues: #196290
Register a VCS System via the @VersioningSystem.Registration instead of @ServiceProvider.

beforeCopy(), doCopy() and afterCopy() methods added to VCSInterceptor

Aug 27 '10; API spec. version: 1.18; affected top-level classes: VCSInterceptor; made by: tstupka; issues: #189921
VCSInterceptor.beforeCopy, VCSInterceptor.doCopy, and VCSInterceptor.afterCopy allow a version control system to better control a copy operation on a file.

refreshRecursively() method added to VCSInterceptor

Apr 19 '10; API spec. version: 1.17; affected top-level classes: VCSInterceptor; made by: ovrabec; issues: #181684
VCSInterceptor.refreshRecursively allows a version control system to get better control on behavior of recursive listener. With this method a versioning system can disable recursive listening on specific folders (e.g. versioning system metadata) and on the other hand learn about and handle external changes inside the folder in its own way.

Added getVisibilityQueryImplementation() method to VersioningSystem

Dec 8 '09; API spec. version: 1.10; affected top-level classes: VersioningSystem; made by: tstupka; issues: #146634
Some Versioning systems provide a VisibilityQueryImplementation. This API change has two purposes: 1. There will be only one registered VQI (Versioning manager) that will delegate the query to the appropriate versioning system which will speed things up. 2. It makes it clear and explicit that implementors of a VersioningSystem might want to provide the query. It would be possible for them to just implement and register their own VisibilityQueryImplementation but they could easily forget to do that.

Added getCollocationQueryImplementation() method to VersioningSystem

May 12 '09; API spec. version: 1.9; affected top-level classes: VCSInterceptor; made by: tstupka; issues: #158681
New method getAttribute(File file, String attrName). Provides additional VCS specific information about versioned files. The only supported attribute at this moment is "ProvidedExtensions.RemoteLocation" for which VCS systems overrinding getAttribute should return the files remote repository, resp. remote origin. (e.g. Repository URL in case of SVN or default pull in case of Mercurial).

Added getCollocationQueryImplementation() method to VersioningSystem

Jun 27 '08; API spec. version: 1.8; affected top-level classes: VersioningSystem; made by: msandor; issues: #137822
Every Versioning system should provide a CollocationQueryImplementation. This API change has two purposes: 1. It makes it clear and explicit that implementors of a VersioningSystem should provide the query. It would be possible for them to just implement and register their own CollocationQueryImplementation but they could easily forget to do that. 2. There will be only one registered CQI (Versioning manager) that will delegate the query to the appropriate versioning system which will speed things up.

Added isMutable() method to VCSInterceptor

Mar 30 '08; API spec. version: 1.7; affected top-level classes: VCSInterceptor; made by: msandor; issues: #130044
This new method provides ability to override default File.canWrite() query for versioning systems that keep files read-only on disk and are able to make them read-write on demand in the interceptor (eg. in doDelete()).

Added getFiles() method to VCSContext

Jan 25 '08; API spec. version: 1.6; affected top-level classes: VCSContext; made by: msandor; issues: #125853
This new method provides access to all files and folders that the user originally selected in the IDE. Current getRootFiles() method removes files from the context if their ancestors are already in the context.

Added beforeEdit method to VCSInterceptor

Jun 15 '07; API spec. version: 1.5; made by: msandor
This is to properly support versioning systems that write-protect their files on local filesystem. They need a way to make a file r/w automatically once something tries to write to it. This is especially needed for refactoring to work. Now they have a chance to check-out a file in the beforeEdit() callback.

Initial version of SPI released

Apr 18 '07; API spec. version: 1.4; made by: msandor
First initial release of the Versioning SPI. Level of stability is development. Allows external modules to plug into IDE's Versioning infrastructure. Such modules should register VersioningSystem implementation in their lookups.