Login | Register
My pages Projects Community openCollabNet

Description

This document describes the file selectors offered in svnAnt. All selectors share the same attributes listed below:

Parameters

The following list of attributes is shared among all selector implementations:

AttributeDescriptionRequired
username

username that will be used for all nested svn commands.
Deprecated. This attribute won't work with SVNANT 1.3.2+ . Use refid for svnSetting instead.

No
password

password that will be used for all nested svn commands.
Deprecated. This attribute won't work with SVNANT 1.3.2+ . Use refid for svnSetting instead.

No
javahl

Set to "false" to use command line client interface instead of JNI JavaHL binding.
Deprecated. This attribute won't work with SVNANT 1.3.2+ . Use refid for svnSetting instead.


Default: true
No
svnkit

Set to "false" to use command line client interface instead of SVNKit binding.
Deprecated. This attribute won't work with SVNANT 1.3.2+ . Use refid for svnSetting instead.


Default: false
No
failonerror

Controls whether an error stops the build or is merely reported to the screen.
Deprecated. This attribute won't work with SVNANT 1.3.2+ . Use refid for svnSetting instead.


Default: true
No
refid

If set the configuration for this task is taken from a svnSetting object. Such a settings instance simply provides default values, so they will be overridden in case the corresponding attribute on this task has been set.

No

Supported selector types

svnAddedsvnConflictedsvnDeletedsvnIgnoredsvnLocked
svnMissingsvnModifiedsvnNormalsvnReplacedsvnUnversioned

svnAdded

This file selector is used to discriminate files within a fileset based on a Subversion status. In particular, this selector keeps files that are recognized as 'added'.

An 'added' file or directory is one that has been added to the repository, but not yet commited. In general, svn status displays those items with the letter A preceeding the name.

Example:

to copy a number of files with the status 'added' from their location in workingcopy to a new directory called test, the following ant task can be used:

    <copy todir="test">
        <fileset dir="workingcopy">
            <svnAdded/>
        </fileset>
    </copy>
  

svnConflicted

This file selector is used to discriminate files within a fileset based on a Subversion status. In particular, this selector keeps files that are recognized as 'conflicted'.

When updating a subversion item (file or directory), it is possible to have two sets of changes merged into the working item. This happens when the item was modified locally as well as remotely during the period since the last update. If the two sets of changes conflict (same lines of a file changes, same directory entries modified), then the item is marked as 'conflicted'. In general, svn status displays 'conflicted' items with the letter C preceeding the name. Note that 'conflicted' items are also considered 'modified'.

Example:

to copy a number of files with the status 'conflicted' from their location in workingcopy to a new directory called test, the following ant task can be used:

    <copy todir="test">
        <fileset dir="workingcopy">
            <svnConflicted/>
        </fileset>
    </copy>
  

svnDeleted

This file selector is used to discriminate files within a fileset based on a Subversion status. In particular, this selector keeps files that are recognized as 'deleted'.

A 'deleted' file or directory is one that has been erased using Subversion's 'remove' command. In general, svn status displays those items with the letter D preceeding the name.

It is important to note that a regular FileSet (the one supplied by ANT) can not detect a deleted item, since it does not exist on the file system. To detect Subversion deleted items, use the FileSet provided by svn-ant (svnFileSet).

Example:

to revert deleted files from a workingcopy:

    <svn>
        <revert>
            <svnFileSet dir="workingcopy">
                <svnDeleted/>
            </svnFileSet>
        </revert>
    </svn>
  

svnIgnored

This file selector is used to discriminate files within a fileset based on a Subversion status. In particular, this selector keeps files that are recognized as 'ignored'.

An 'ignored' file or directory is one which name match the patterns found in the parent directory's svn:ignore property. In general, svn status --no-ignore display those items with the letter I preceeding the name.

Example:

to copy a number of files with the status 'ignored' from their location in workingcopy to a new directory called test, the following ant task can be used:

    <copy todir="test">
        <fileset dir="workingcopy">
            <svnIgnored/>
        </fileset>
    </copy>
  

svnLocked

This file selector is used to discriminate files within a fileset based on a Subversion status. In particular, this selector keeps files that are recognized as 'locked'.

A 'locked' file or directory is one where the repository has been informed of the intent of a user to prevent others from modifying the file. For a working copy to be aware of this fact, it must have been 'updated' since the lock status was changed. In general, svn status displays those items with one of the letters K, O or B in the sixth column. The 'lock' status is independent of most other conditions such as 'modified', 'conflicted', etc.

Example:

to copy a number of files with the status 'locked' from their location in workingcopy to a new directory called test, the following ant task can be used:

    <copy todir="test">
        <fileset dir="workingcopy">
            <svnLocked/>
        </fileset>
    </copy>
  

svnMissing

This file selector is used to discriminate files within a fileset based on a Subversion status. In particular, this selector keeps files that are recognized as 'missing'.

A 'missing' file or directory is one that is managed by Subversion and has been deleted without using the remove command. In general, svn status displays those items with the exclamation point (!) preceeding the name.

It is important to note that a regular FileSet (the one supplied by ANT) can not detect a missing item, since it does not exist on the file system. To detect Subversion missing items, use the FileSet provided by svn-ant (svnFileSet).

Example:

to delete missing files from the repository associated with a workingcopy:

    <svn>
        <delete>
            <svnFileSet dir="workingcopy">
                <svnMissing/>
            </svnFileSet>
        </delete>
    </svn>
  

svnModified

This file selector is used to discriminate files within a fileset based on a Subversion status. In particular, this selector keeps files that are recognized as 'modified'.

A 'modified' file or directory is one that has been changed since the last update and where the changes have not yet been commited to the repository. In general, svn status display those items with the letter M preceeding the name. It is important to note that other items can also be considered modified, such as conflicted ones.

Example:

to copy a number of files with the status 'modified' from their location in workingcopy to a new directory called test, the following ant task can be used:

    <copy todir="test">
        <fileset dir="workingcopy">
            <svnModified/>
        </fileset>
    </copy>
  

svnNormal

This file selector is used to discriminate files within a fileset based on a Subversion status. In particular, this selector keeps files that are recognized as 'normal'.

A 'normal' file or directory is one that has not undergone any changes since the last update. In general, this is the great majority of the files in a working copy. svn status returns no special character for those items (a space in the first column).

Example:

to copy a number of files with the status 'normal' from their location in workingcopy to a new directory called test, the following ant task can be used:

    <copy todir="test">
        <fileset dir="workingcopy">
            <svnNormal/>
        </fileset>
    </copy>
  

svnReplaced

This file selector is used to discriminate files within a fileset based on a Subversion status. In particular, this selector keeps files that are recognized as 'replaced'.

A 'replaced' file or directory is one that has been deleted, then created anew and finally added back to the repository. Also, those changes must not have been comitted. In general, svn status displays those items with the letter R preceeding the name.

Example:

to copy a number of files with the status 'replaced' from their location in workingcopy to a new directory called test, the following ant task can be used:

    <copy todir="test">
        <fileset dir="workingcopy">
            <svnReplaced/>
        </fileset>
    </copy>
  

svnUnversioned

This file selector is used to discriminate files within a fileset based on a Subversion status. In particular, this selector keeps files that are recognized as 'unversioned'.

An 'unversioned' file or directory is one that is present in a working copy but is not yet known to the repository. In general, svn status display those items with a question mark (?) preceeding the name. Note that 'ignored' items are not considered 'unversioned'.

Example:

to copy a number of files with the status 'unversioned' from their location in workingcopy to a new directory called test, the following ant task can be used:

    <copy todir="test">
        <fileset dir="workingcopy">
            <svnUnversioned/>
        </fileset>
    </copy>