<?xml version="1.0" encoding="UTF-8"?>
<!-- Search for CHANGEME in this document when copying and using it: -->
<!--

    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.

-->
<?xml-stylesheet type="text/xml" href="../../nbbuild/javadoctools/apichanges.xsl"?>
<!DOCTYPE apichanges PUBLIC "-//NetBeans//DTD API changes list 1.0//EN" "../../nbbuild/javadoctools/apichanges.dtd">

<!--

INFO FOR PEOPLE ADDING CHANGES:

Check the DTD (apichanges.dtd) for details on the syntax. You do not
need to regenerate the HTML, as this is part of Javadoc generation; just
change the XML. Rough syntax of a change (several parts optional):

<change>
    <api name="compiler"/>
    <summary>Some brief description here, can use <b>XHTML</b></summary>
    <version major="1" minor="99"/>
    <date day="13" month="6" year="2001"/>
    <author login="jrhacker"/>
    <compatibility addition="yes"/>
    <description>
        The main description of the change here.
        Again can use full <b>XHTML</b> as needed.
    </description>
    <class package="org.openide.compiler" name="DoWhatIWantCompiler"/>
    <issue number="14309"/>
</change>

Also permitted elements: <package>, <branch>. <version> is API spec
version, recommended for all new changes. <compatibility> should say
if things were added/modified/deprecated/etc. and give all information
related to upgrading old code. List affected top-level classes and
link to issue numbers if applicable. See the DTD for more details.

Changes need not be in any particular order, they are sorted in various
ways by the stylesheet anyway.

Dates are assumed to mean "on the trunk". If you *also* make the same
change on a stabilization branch, use the <branch> tag to indicate this
and explain why the change was made on a branch in the <description>.

Please only change this file on the trunk! Rather: you can change it
on branches if you want, but these changes will be ignored; only the
trunk version of this file is important.

Deprecations do not count as incompatible, assuming that code using the
deprecated calls continues to see their documented behavior. But do
specify deprecation="yes" in <compatibility>.

This file is not a replacement for Javadoc: it is intended to list changes,
not describe the complete current behavior, for which ordinary documentation
is the proper place.

-->

<apichanges>

    <!-- First, a list of API names you may use: -->
    <apidefs>
        <apidef name="versioning_spi">Versioning SPI</apidef>
        <!-- etc. -->
    </apidefs>

    <!-- ACTUAL CHANGES BEGIN HERE: -->

    <changes>
        
        <change>
            <api name="versioning_spi"/>
            <summary>Support ContextAwareActions</summary>
            <version major="1" minor="37"/>
            <date day="16" month="11" year="2012"/>
            <author login="tstupka"/>
            <compatibility addition="yes"/>
            <description>
                make it possible for Versioning Systems to fire visibility changes for a list of files
                instead of one unspecific change event.
            </description>
            <class package="org.netbeans.modules.versioning.spi" name="VCSVisibilityQuery"/>
            <issue number="221831"/>
        </change>                
        <change>
            <api name="versioning_spi"/>
            <summary>Support ContextAwareActions</summary>
            <version major="1" minor="31"/>
            <date day="12" month="4" year="2012"/>
            <author login="tstupka"/>
            <compatibility addition="yes"/>
            <description>
                Ensure that <code>ContextAwareAction</code>-s provided via <code>VCSHistoryProvider.HistoryEntry.getActions()</code> 
                are created with a context containing the selected nodes in a files editor history tab. Those nodes than will have 
                the relevant <code>HistoryEntry</code> and files in their lookup.
            </description>
            <class package="org.netbeans.modules.versioning.spi" name="VCSHistoryProvider"/>
            <issue number="210691"/>
        </change>                
        <change>
            <api name="versioning_spi"/>
            <summary>Added VCSHistoryProvider.HistoryEntry.getParent()</summary>
            <version major="1" minor="30"/>
            <date day="12" month="4" year="2012"/>
            <author login="tstupka"/>
            <compatibility addition="yes"/>
            <description>
                New method <code>VCSHistoryProvider.HistoryEntry.getParent()</code> to provide the 
                <code>VCSHistoryProvider.HistoryEntry</code> representing the parent of the given revision.
            </description>
            <class package="org.netbeans.modules.versioning.spi" name="VCSHistoryProvider"/>
            <issue number="209673"/>
        </change>                
        <change>
            <api name="versioning_spi"/>
            <summary>Added VCSHistoryProvider</summary>
            <version major="1" minor="29"/>
            <date day="30" month="1" year="2012"/>
            <author login="tstupka"/>
            <compatibility addition="yes"/>
            <description>
                New type <code>VCSHistoryProvider</code> makes it possible for versionig systems to 
                provide information about a files history which is then used in that files editor history tab.
            </description>
            <class package="org.netbeans.modules.versioning.spi" name="VersioningSupport"/>
            <issue number="207126"/>
        </change>
        <change>
            <api name="versioning_spi"/>
            <summary>isExcluded() added to VersioningSupport</summary>
            <version major="1" minor="25"/>
            <date day="19" month="7" year="2011"/>
            <author login="ovrabec"/>
            <compatibility addition="yes"/>
            <description>
                Method <code>isExcluded</code> 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.
            </description>
            <class package="org.netbeans.modules.versioning.spi" name="VersioningSupport"/>
            <issue number="199986"/>
        </change>
        <change>
            <api name="versioning_spi"/>
            <summary>New @VersioningSystem.Registration annotation</summary>
            <version major="1" minor="24"/>
            <date day="23" month="5" year="2011"/>
            <author login="tstupka"/>
            <compatibility addition="yes"/>
            <description>
                Register a VCS System via the <code>@VersioningSystem.Registration</code> 
                instead of <code>@ServiceProvider</code>.
            </description>
            <class package="org.netbeans.modules.versioning.spi" name="VersioningSystem"/>
            <issue number="196290"/>
        </change>
        <change>
            <api name="versioning_spi"/>
            <summary>beforeCopy(), doCopy() and afterCopy() methods added to VCSInterceptor</summary>
            <version major="1" minor="18"/>
            <date day="27" month="8" year="2010"/>
            <author login="tstupka"/>
            <compatibility addition="yes"/>
            <description>
                <code>VCSInterceptor.beforeCopy</code>, <code>VCSInterceptor.doCopy</code>,
                and <code>VCSInterceptor.afterCopy</code> allow a version control system
                to better control a copy operation on a file.
            </description>
            <class package="org.netbeans.modules.versioning.spi" name="VCSInterceptor"/>
            <issue number="189921"/>
        </change>
        <change>
            <api name="versioning_spi"/>
            <summary>refreshRecursively() method added to VCSInterceptor</summary>
            <version major="1" minor="17"/>
            <date day="19" month="4" year="2010"/>
            <author login="ovrabec"/>
            <compatibility addition="yes"/>
            <description>
                <code>VCSInterceptor.refreshRecursively</code> 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.
            </description>
            <class package="org.netbeans.modules.versioning.spi" name="VCSInterceptor"/>
            <issue number="181684"/>
        </change>
        <change>
            <api name="versioning_spi"/>
            <summary>Added getVisibilityQueryImplementation() method to VersioningSystem</summary>
            <version major="1" minor="10"/>
            <date day="8" month="12" year="2009"/>
            <author login="tstupka"/>
            <compatibility addition="yes"/>
            <description>
                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.
            </description>
            <class package="org.netbeans.modules.versioning.spi" name="VersioningSystem"/>
            <issue number="146634"/>
        </change>

        <change>
            <api name="versioning_spi"/>
            <summary>Added getCollocationQueryImplementation() method to VersioningSystem</summary>
            <version major="1" minor="9"/>
            <date day="12" month="5" year="2009"/>
            <author login="tstupka"/>
            <compatibility addition="yes"/>
            <description>
                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).
            </description>
            <class package="org.netbeans.modules.versioning.spi" name="VCSInterceptor"/>
            <issue number="158681"/>
        </change>

        <change>
            <api name="versioning_spi"/>
            <summary>Added getCollocationQueryImplementation() method to VersioningSystem</summary>
            <version major="1" minor="8"/>
            <date day="27" month="6" year="2008"/>
            <author login="msandor"/>
            <compatibility addition="yes"/>
            <description>
                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.
            </description>
            <class package="org.netbeans.modules.versioning.spi" name="VersioningSystem"/>
            <issue number="137822"/>
        </change>

        <change>
            <api name="versioning_spi"/>
            <summary>Added isMutable() method to VCSInterceptor</summary>
            <version major="1" minor="7"/>
            <date day="30" month="3" year="2008"/>
            <author login="msandor"/>
            <compatibility addition="yes"/>
            <description>
                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()).
            </description>
            <class package="org.netbeans.modules.versioning.spi" name="VCSInterceptor"/>
            <issue number="130044"/>
        </change>

        <change>
            <api name="versioning_spi"/>
            <summary>Added getFiles() method to VCSContext</summary>
            <version major="1" minor="6"/>
            <date day="25" month="1" year="2008"/>
            <author login="msandor"/>
            <compatibility addition="yes"/>
            <description>
                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.
            </description>
            <class package="org.netbeans.modules.versioning.spi" name="VCSContext"/>
            <issue number="125853"/>
        </change>

        <change>
            <api name="versioning_spi"/>
            <summary>Added beforeEdit method to VCSInterceptor</summary>
            <version major="1" minor="5"/>
            <date day="15" month="6" year="2007"/>
            <author login="msandor"/>
            <compatibility addition="yes"/>
            <description>
                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.
            </description>
        </change>
        
        <change>
            <api name="versioning_spi"/>
            <summary>Initial version of SPI released</summary>
            <version major="1" minor="4"/>
            <date day="18" month="4" year="2007"/>
            <author login="msandor"/>
            <compatibility addition="yes"/>
            <description>
                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 <code>VersioningSystem</code> implementation
                in their lookups.
            </description>
        </change>
    </changes>

    <!-- Now the surrounding HTML text and document structure: -->

    <htmlcontents>
<!--

                            NO NO NO NO NO!

         ==============>    DO NOT EDIT ME!  <==============

          AUTOMATICALLY GENERATED FROM APICHANGES.XML, DO NOT EDIT

                SEE CHANGEME/apichanges.xml

-->
    <head>
      <title>Change History for the Versioning SPI</title>
    </head>
    <body>

<p class="overviewlink"><a href="overview-summary.html">Overview</a></p>

<h1>Introduction</h1>

<p>This document lists changes made to the Versioning SPI.</p>

<!-- The actual lists of changes, as summaries and details: -->

      <hr/><standard-changelists module-code-name="org.netbeans.modules.versioning"/>

      <hr/><p>@FOOTER@</p>

    </body>
  </htmlcontents>

</apichanges>
