Class SVNClientImpl

  • All Implemented Interfaces:
    ISVNClient

    public class SVNClientImpl
    extends java.lang.Object
    implements ISVNClient
    • Constructor Detail

      • SVNClientImpl

        protected SVNClientImpl()
    • Method Detail

      • dispose

        public void dispose()
        Description copied from interface: ISVNClient
        release the native peer (should not depend on finalize)
        Specified by:
        dispose in interface ISVNClient
      • getVersion

        public Version getVersion()
        Specified by:
        getVersion in interface ISVNClient
        Returns:
        Version information about the underlying native libraries.
      • isAdminDirectory

        public boolean isAdminDirectory​(java.lang.String name)
        Specified by:
        isAdminDirectory in interface ISVNClient
        Parameters:
        name - The name of the directory to compare.
        Returns:
        Whether name is that of a working copy administrative directory.
      • status

        public void status​(java.lang.String path,
                           Depth depth,
                           boolean onServer,
                           boolean getAll,
                           boolean noIgnore,
                           boolean ignoreExternals,
                           java.util.Collection<java.lang.String> changelists,
                           StatusCallback callback)
                    throws ClientException
        Description copied from interface: ISVNClient
        List a directory or file of the working copy.
        Specified by:
        status in interface ISVNClient
        Parameters:
        path - Path to explore.
        depth - How deep to recurse into subdirectories.
        onServer - Request status information from server.
        getAll - get status for uninteresting (unchanged) files.
        noIgnore - get status for normaly ignored files and directories.
        ignoreExternals - if externals are ignored during status
        changelists - changelists to filter by
        Throws:
        ClientException
      • list

        public void list​(java.lang.String url,
                         Revision revision,
                         Revision pegRevision,
                         Depth depth,
                         int direntFields,
                         boolean fetchLocks,
                         ListCallback callback)
                  throws ClientException
        Description copied from interface: ISVNClient
        Lists the directory entries of a url on the server.
        Specified by:
        list in interface ISVNClient
        Parameters:
        url - the url to list
        revision - the revision to list
        pegRevision - the revision to interpret url
        depth - the depth to recurse into subdirectories
        direntFields - the fields to retrieve
        fetchLocks - whether to fetch lock information
        callback - the callback to receive the directory entries
        Throws:
        ClientException
      • username

        public void username​(java.lang.String username)
        Description copied from interface: ISVNClient
        Sets the username used for authentication.
        Specified by:
        username in interface ISVNClient
        Parameters:
        username - The username, ignored if the empty string. Set to the empty string to clear it.
        See Also:
        ISVNClient.password(String)
      • password

        public void password​(java.lang.String password)
        Description copied from interface: ISVNClient
        Sets the password used for authentication.
        Specified by:
        password in interface ISVNClient
        Parameters:
        password - The password, ignored if the empty string. Set to the empty string to clear it.
        See Also:
        ISVNClient.username(String)
      • setPrompt

        public void setPrompt​(UserPasswordCallback prompt)
        Description copied from interface: ISVNClient
        Register callback interface to supply username and password on demand. This callback can also be used to provide theequivalent of the --no-auth-cache and --non-interactive arguments accepted by the command-line client.
        Specified by:
        setPrompt in interface ISVNClient
        Parameters:
        prompt - the callback interface
      • logMessages

        public void logMessages​(java.lang.String path,
                                Revision pegRevision,
                                java.util.List<RevisionRange> ranges,
                                boolean stopOnCopy,
                                boolean discoverPath,
                                boolean includeMergedRevisions,
                                java.util.Set<java.lang.String> revProps,
                                long limit,
                                LogMessageCallback callback)
                         throws ClientException
        Description copied from interface: ISVNClient
        Retrieve the log messages for an item.
        Specified by:
        logMessages in interface ISVNClient
        Parameters:
        path - path or url to get the log message for.
        pegRevision - revision to interpret path
        ranges - an array of revision ranges to show
        stopOnCopy - do not continue on copy operations
        discoverPath - returns the paths of the changed items in the returned objects
        includeMergedRevisions - include log messages for revisions which were merged.
        revProps - the revprops to retrieve
        limit - limit the number of log messages (if 0 or less no limit)
        callback - the object to receive the log messages
        Throws:
        ClientException
      • checkout

        public long checkout​(java.lang.String moduleName,
                             java.lang.String destPath,
                             Revision revision,
                             Revision pegRevision,
                             Depth depth,
                             boolean ignoreExternals,
                             boolean allowUnverObstructions)
                      throws ClientException
        Description copied from interface: ISVNClient
        Executes a revision checkout.
        Specified by:
        checkout in interface ISVNClient
        Parameters:
        moduleName - name of the module to checkout.
        destPath - destination directory for checkout.
        revision - the revision to checkout.
        pegRevision - the peg revision to interpret the path
        depth - how deep to checkout files recursively.
        ignoreExternals - if externals are ignored during checkout
        allowUnverObstructions - allow unversioned paths that obstruct adds
        Throws:
        ClientException
      • notification2

        public void notification2​(ClientNotifyCallback notifyCallback)
        Description copied from interface: ISVNClient
        Sets the notification callback used to send processing information back to the calling program.
        Specified by:
        notification2 in interface ISVNClient
        Parameters:
        notifyCallback - listener that the SVN library should call on many file operations.
      • remove

        public void remove​(java.util.Set<java.lang.String> path,
                           boolean force,
                           boolean keepLocal,
                           java.util.Map<java.lang.String,​java.lang.String> revpropTable,
                           CommitMessageCallback handler,
                           CommitCallback callback)
                    throws ClientException
        Description copied from interface: ISVNClient
        Sets a file for deletion.
        Specified by:
        remove in interface ISVNClient
        Parameters:
        path - path or url to be deleted
        force - delete even when there are local modifications.
        keepLocal - only remove the paths from the repository.
        revpropTable - A string-to-string mapping of revision properties to values which will be set if this operation results in a commit.
        handler - the commit message callback
        Throws:
        ClientException
      • revert

        public void revert​(java.lang.String path,
                           Depth depth,
                           java.util.Collection<java.lang.String> changelists)
                    throws ClientException
        Description copied from interface: ISVNClient
        Reverts a file to a pristine state.
        Specified by:
        revert in interface ISVNClient
        Parameters:
        path - path of the file.
        depth - the depth to recurse into subdirectories
        changelists - changelists to filter by
        Throws:
        ClientException
      • add

        public void add​(java.lang.String path,
                        Depth depth,
                        boolean force,
                        boolean noIgnores,
                        boolean addParents)
                 throws ClientException
        Description copied from interface: ISVNClient
        Adds a file to the repository.
        Specified by:
        add in interface ISVNClient
        Parameters:
        path - path to be added.
        depth - the depth to recurse into subdirectories
        force - if adding a directory and recurse true and path is a directory, all not already managed files are added.
        noIgnores - if false, don't add files or directories matching ignore patterns
        addParents - add any intermediate parents to the working copy
        Throws:
        ClientException
      • add

        public void add​(java.lang.String path,
                        Depth depth,
                        boolean force,
                        boolean noIgnores,
                        boolean noAutoProps,
                        boolean addParents)
                 throws ClientException
        Description copied from interface: ISVNClient
        Adds a file to the repository.
        Specified by:
        add in interface ISVNClient
        Parameters:
        path - path to be added.
        depth - the depth to recurse into subdirectories
        force - if adding a directory and recurse true and path is a directory, all not already managed files are added.
        noIgnores - if false, don't add files or directories matching ignore patterns
        noAutoProps - if true, ignore any auto-props configuration
        addParents - add any intermediate parents to the working copy
        Throws:
        ClientException
      • update

        public long[] update​(java.util.Set<java.lang.String> path,
                             Revision revision,
                             Depth depth,
                             boolean depthIsSticky,
                             boolean makeParents,
                             boolean ignoreExternals,
                             boolean allowUnverObstructions)
                      throws ClientException
        Description copied from interface: ISVNClient
        Updates the directories or files from repository
        Specified by:
        update in interface ISVNClient
        Parameters:
        path - array of target files.
        revision - the revision number to update. Revision.HEAD will update to the latest revision.
        depth - the depth to recursively update.
        depthIsSticky - if set, and depth is not Depth.unknown, then also set the ambient depth value to depth.
        ignoreExternals - if externals are ignored during update
        allowUnverObstructions - allow unversioned paths that obstruct adds
        Throws:
        ClientException
      • commit

        public void commit​(java.util.Set<java.lang.String> path,
                           Depth depth,
                           boolean noUnlock,
                           boolean keepChangelist,
                           java.util.Collection<java.lang.String> changelists,
                           java.util.Map<java.lang.String,​java.lang.String> revpropTable,
                           CommitMessageCallback handler,
                           CommitCallback callback)
                    throws ClientException
        Description copied from interface: ISVNClient
        Commits changes to the repository.
        Specified by:
        commit in interface ISVNClient
        Parameters:
        path - files to commit.
        depth - how deep to recurse in subdirectories
        noUnlock - do remove any locks
        keepChangelist - keep changelist associations after the commit.
        changelists - if non-null, filter paths using changelists
        revpropTable - A string-to-string mapping of revision properties to values which will be set if this operation results in a commit.
        handler - the commit message callback
        Throws:
        ClientException
      • copy

        public void copy​(java.util.List<CopySource> sources,
                         java.lang.String destPath,
                         boolean copyAsChild,
                         boolean makeParents,
                         boolean ignoreExternals,
                         java.util.Map<java.lang.String,​java.lang.String> revpropTable,
                         CommitMessageCallback handler,
                         CommitCallback callback)
                  throws ClientException
        Description copied from interface: ISVNClient
        Copy versioned paths with the history preserved.
        Specified by:
        copy in interface ISVNClient
        Parameters:
        sources - A list of CopySource objects.
        destPath - Destination path or URL.
        copyAsChild - Whether to copy srcPaths as children of destPath.
        makeParents - Whether to create intermediate parents
        ignoreExternals - Whether or not to process external definitions as part of this operation.
        revpropTable - A string-to-string mapping of revision properties to values which will be set if this operation results in a commit.
        handler - the commit message callback, may be null if destPath is not a URL
        Throws:
        ClientException - If the copy operation fails.
      • move

        public void move​(java.util.Set<java.lang.String> srcPaths,
                         java.lang.String destPath,
                         boolean force,
                         boolean moveAsChild,
                         boolean makeParents,
                         boolean metadataOnly,
                         boolean allowMixRev,
                         java.util.Map<java.lang.String,​java.lang.String> revpropTable,
                         CommitMessageCallback handler,
                         CommitCallback callback)
                  throws ClientException
        Description copied from interface: ISVNClient
        Move or rename versioned paths.
        Specified by:
        move in interface ISVNClient
        Parameters:
        srcPaths - Source paths or URLs.
        destPath - Destination path or URL.
        force - Whether to perform the move even if local modifications exist.
        moveAsChild - Whether to move srcPaths as children of destPath.
        makeParents - Whether to create intermediate parents.
        metadataOnly - Move just the metadata and not the working files/dirs
        allowMixRev - If true use copy and delete without move tracking when a srcPath is mixed-revision, if false return an error when a srcPath is mixed-revision.
        revpropTable - A string-to-string mapping of revision properties to values which will be set if this operation results in a commit.
        handler - the commit message callback, may be null if destPath is not a URL
        Throws:
        ClientException - If the move operation fails.
      • mkdir

        public void mkdir​(java.util.Set<java.lang.String> path,
                          boolean makeParents,
                          java.util.Map<java.lang.String,​java.lang.String> revpropTable,
                          CommitMessageCallback handler,
                          CommitCallback callback)
                   throws ClientException
        Description copied from interface: ISVNClient
        Creates a directory directly in a repository or creates a directory on disk and schedules it for addition.
        Specified by:
        mkdir in interface ISVNClient
        Parameters:
        path - directories to be created
        makeParents - Whether to create intermediate parents
        revpropTable - A string-to-string mapping of revision properties to values which will be set if this operation results in a commit.
        handler - the handler to use if paths contains URLs
        Throws:
        ClientException
      • cleanup

        public void cleanup​(java.lang.String path)
                     throws ClientException
        Description copied from interface: ISVNClient
        Recursively cleans up a local directory, finishing any incomplete operations, removing lockfiles, etc.
        Specified by:
        cleanup in interface ISVNClient
        Parameters:
        path - a local directory.
        Throws:
        ClientException
      • resolve

        public void resolve​(java.lang.String path,
                            Depth depth,
                            ConflictResult.Choice conflictResult)
                     throws SubversionException
        Description copied from interface: ISVNClient
        Resolves the conflicted state on a WC path (or tree).
        Specified by:
        resolve in interface ISVNClient
        Parameters:
        path - The path to resolve.
        depth - How deep to recurse into child paths.
        conflictResult - Which version to choose in the event of a conflict.
        Throws:
        SubversionException - If an error occurs.
      • doExport

        public long doExport​(java.lang.String srcPath,
                             java.lang.String destPath,
                             Revision revision,
                             Revision pegRevision,
                             boolean force,
                             boolean ignoreExternals,
                             Depth depth,
                             java.lang.String nativeEOL)
                      throws ClientException
        Description copied from interface: ISVNClient
        Exports the contents of either a subversion repository into a 'clean' directory (meaning a directory with no administrative directories).
        Specified by:
        doExport in interface ISVNClient
        Parameters:
        srcPath - the url of the repository path to be exported
        destPath - a destination path that must not already exist.
        revision - the revsion to be exported
        pegRevision - the revision to interpret srcPath
        force - set if it is ok to overwrite local files
        ignoreExternals - ignore external during export
        depth - how deep to recurse in subdirectories
        nativeEOL - which EOL characters to use during export
        Throws:
        ClientException
      • doSwitch

        public long doSwitch​(java.lang.String path,
                             java.lang.String url,
                             Revision revision,
                             Revision pegRevision,
                             Depth depth,
                             boolean depthIsSticky,
                             boolean ignoreExternals,
                             boolean allowUnverObstructions,
                             boolean ignoreAncestry)
                      throws ClientException
        Description copied from interface: ISVNClient
        Update local copy to mirror a new url.
        Specified by:
        doSwitch in interface ISVNClient
        Parameters:
        path - the working copy path
        url - the new url for the working copy
        revision - the new base revision of working copy
        pegRevision - the revision at which to interpret path
        depth - how deep to traverse into subdirectories
        depthIsSticky - if set, and depth is not Depth.unknown, then also set the ambient depth value to depth.
        ignoreExternals - whether to process externals definitions
        allowUnverObstructions - allow unversioned paths that obstruct adds
        ignoreAncestry - whether to skip common ancestry sanity check between path and url
        Throws:
        ClientException
      • doImport

        public void doImport​(java.lang.String path,
                             java.lang.String url,
                             Depth depth,
                             boolean noIgnore,
                             boolean ignoreUnknownNodeTypes,
                             java.util.Map<java.lang.String,​java.lang.String> revpropTable,
                             CommitMessageCallback handler,
                             CommitCallback callback)
                      throws ClientException
        Description copied from interface: ISVNClient
        Import a file or directory into a repository directory at head.
        Specified by:
        doImport in interface ISVNClient
        Parameters:
        path - the local path
        url - the target url
        depth - depth to traverse into subdirectories
        noIgnore - whether to add files matched by ignore patterns
        ignoreUnknownNodeTypes - whether to ignore files which the node type is not konwn, just as pipes
        revpropTable - A string-to-string mapping of revision properties to values which will be set if this operation results in a commit.
        handler - the commit message callback
        callback - the commit status callback
        Throws:
        ClientException
      • doImport

        public void doImport​(java.lang.String path,
                             java.lang.String url,
                             Depth depth,
                             boolean noIgnore,
                             boolean noAutoProps,
                             boolean ignoreUnknownNodeTypes,
                             java.util.Map<java.lang.String,​java.lang.String> revpropTable,
                             ImportFilterCallback importFilterCallback,
                             CommitMessageCallback handler,
                             CommitCallback callback)
                      throws ClientException
        Description copied from interface: ISVNClient
        Import a file or directory into a repository directory at head.
        Specified by:
        doImport in interface ISVNClient
        Parameters:
        path - the local path
        url - the target url
        depth - depth to traverse into subdirectories
        noIgnore - whether to add files matched by ignore patterns
        noAutoProps - if true, ignore any auto-props configuration
        ignoreUnknownNodeTypes - whether to ignore files which the node type is not konwn, just as pipes
        revpropTable - A string-to-string mapping of revision properties to values which will be set if this operation results in a commit.
        handler - the commit message callback
        callback - the commit status callback
        Throws:
        ClientException
      • suggestMergeSources

        public java.util.Set<java.lang.String> suggestMergeSources​(java.lang.String path,
                                                                   Revision pegRevision)
                                                            throws SubversionException
        Description copied from interface: ISVNClient
        Return an ordered list of suggested merge source URLs.
        Specified by:
        suggestMergeSources in interface ISVNClient
        Parameters:
        path - The merge target path for which to suggest sources.
        pegRevision - Peg revision used to interpret path.
        Returns:
        The list of URLs, empty if there are no suggestions.
        Throws:
        ClientException - If an error occurs.
        SubversionException
      • merge

        public void merge​(java.lang.String path1,
                          Revision revision1,
                          java.lang.String path2,
                          Revision revision2,
                          java.lang.String localPath,
                          boolean force,
                          Depth depth,
                          boolean ignoreAncestry,
                          boolean dryRun,
                          boolean recordOnly)
                   throws ClientException
        Description copied from interface: ISVNClient
        Merge changes from two paths into a new local path.
        Specified by:
        merge in interface ISVNClient
        Parameters:
        path1 - first path or url
        revision1 - first revision
        path2 - second path or url
        revision2 - second revision
        localPath - target local path
        force - overwrite local changes
        depth - how deep to traverse into subdirectories
        ignoreAncestry - ignore if files are not related
        dryRun - do not change anything
        recordOnly - record mergeinfo but do not run merge
        Throws:
        ClientException
      • merge

        public void merge​(java.lang.String path,
                          Revision pegRevision,
                          java.util.List<RevisionRange> revisions,
                          java.lang.String localPath,
                          boolean force,
                          Depth depth,
                          boolean ignoreAncestry,
                          boolean dryRun,
                          boolean recordOnly)
                   throws ClientException
        Description copied from interface: ISVNClient
        Merge set of revisions into a new local path.
        Specified by:
        merge in interface ISVNClient
        Parameters:
        path - path or url
        pegRevision - revision to interpret path
        revisions - revisions to merge; may be null, indicating that the optimal range should be determined automatcially (new in 1.8)
        localPath - target local path
        force - overwrite local changes
        depth - how deep to traverse into subdirectories
        ignoreAncestry - ignore if files are not related
        dryRun - do not change anything
        recordOnly - record mergeinfo but do not run merge
        Throws:
        ClientException
      • merge

        public void merge​(java.lang.String path1,
                          Revision revision1,
                          java.lang.String path2,
                          Revision revision2,
                          java.lang.String localPath,
                          boolean force,
                          Depth depth,
                          boolean ignoreMergeinfo,
                          boolean diffIgnoreAncestry,
                          boolean dryRun,
                          boolean recordOnly)
                   throws ClientException
        Description copied from interface: ISVNClient
        Merge changes from two paths into a new local path.
        Specified by:
        merge in interface ISVNClient
        Parameters:
        path1 - first path or url
        revision1 - first revision
        path2 - second path or url
        revision2 - second revision
        localPath - target local path
        force - overwrite local changes
        depth - how deep to traverse into subdirectories
        ignoreMergeinfo - ignore merge history, treat sources as unrelated
        diffIgnoreAncestry - always treat source files as related
        dryRun - do not change anything
        recordOnly - record mergeinfo but do not run merge
        Throws:
        ClientException
      • merge

        public void merge​(java.lang.String path,
                          Revision pegRevision,
                          java.util.List<RevisionRange> revisions,
                          java.lang.String localPath,
                          boolean force,
                          Depth depth,
                          boolean ignoreMergeinfo,
                          boolean ignoreAncestry,
                          boolean dryRun,
                          boolean recordOnly)
                   throws ClientException
        Description copied from interface: ISVNClient
        Merge set of revisions into a new local path.
        Specified by:
        merge in interface ISVNClient
        Parameters:
        path - path or url
        pegRevision - revision to interpret path
        revisions - revisions to merge; may be null, indicating that the optimal range should be determined automatcially
        localPath - target local path
        force - overwrite local changes
        depth - how deep to traverse into subdirectories
        ignoreMergeinfo - ignore merge history, treat sources as unrelated
        ignoreAncestry - always treat source files as related
        dryRun - do not change anything
        recordOnly - record mergeinfo but do not run merge
        Throws:
        ClientException
      • mergeReintegrate

        public void mergeReintegrate​(java.lang.String path,
                                     Revision pegRevision,
                                     java.lang.String localPath,
                                     boolean dryRun)
                              throws ClientException
        Description copied from interface: ISVNClient
        Perform a reintegration merge of path into localPath. localPath must be a single-revision, infinite depth, pristine, unswitched working copy -- in other words, it must reflect a single revision tree, the "target". The mergeinfo on path must reflect that all of the target has been merged into it. Then this behaves like a merge from the target's URL to the localPath. The depth of the merge is always infinity.
        Specified by:
        mergeReintegrate in interface ISVNClient
        Parameters:
        path - path or url
        pegRevision - revision to interpret path
        localPath - target local path
        dryRun - do not change anything
        Throws:
        ClientException
      • getMergeinfoLog

        public void getMergeinfoLog​(Mergeinfo.LogKind kind,
                                    java.lang.String pathOrUrl,
                                    Revision pegRevision,
                                    java.lang.String mergeSourceUrl,
                                    Revision srcPegRevision,
                                    boolean discoverChangedPaths,
                                    Depth depth,
                                    java.util.Set<java.lang.String> revProps,
                                    LogMessageCallback callback)
                             throws ClientException
        Description copied from interface: ISVNClient
        Retrieve either merged or eligible-to-be-merged revisions.
        Specified by:
        getMergeinfoLog in interface ISVNClient
        Parameters:
        kind - kind of revisions to receive
        pathOrUrl - target of merge
        pegRevision - peg rev for pathOrUrl
        mergeSourceUrl - the source of the merge
        srcPegRevision - peg rev for mergeSourceUrl
        discoverChangedPaths - return paths of changed items
        depth - the depth to recurse to
        revProps - the revprops to retrieve
        callback - the object to receive the log messages
        Throws:
        ClientException
      • getMergeinfoLog

        public void getMergeinfoLog​(Mergeinfo.LogKind kind,
                                    java.lang.String pathOrUrl,
                                    Revision pegRevision,
                                    java.lang.String mergeSourceUrl,
                                    Revision srcPegRevision,
                                    Revision srcStartRevision,
                                    Revision srcEndRevision,
                                    boolean discoverChangedPaths,
                                    Depth depth,
                                    java.util.Set<java.lang.String> revProps,
                                    LogMessageCallback callback)
                             throws ClientException
        Description copied from interface: ISVNClient
        Retrieve either merged or eligible-to-be-merged revisions.
        Specified by:
        getMergeinfoLog in interface ISVNClient
        Parameters:
        kind - kind of revisions to receive
        pathOrUrl - target of merge
        pegRevision - peg rev for pathOrUrl
        mergeSourceUrl - the source of the merge
        srcPegRevision - peg rev for mergeSourceUrl
        srcEndRevision - upper bound of the source revision range
        discoverChangedPaths - return paths of changed items
        depth - the depth to recurse to
        revProps - the revprops to retrieve
        callback - the object to receive the log messages
        Throws:
        ClientException
      • diff

        public void diff​(java.lang.String target1,
                         Revision revision1,
                         java.lang.String target2,
                         Revision revision2,
                         java.lang.String relativeToDir,
                         java.lang.String outFileName,
                         Depth depth,
                         java.util.Collection<java.lang.String> changelists,
                         boolean ignoreAncestry,
                         boolean noDiffDeleted,
                         boolean force,
                         boolean copiesAsAdds)
                  throws ClientException
        Specified by:
        diff in interface ISVNClient
        Throws:
        ClientException
      • diff

        public void diff​(java.lang.String target,
                         Revision pegRevision,
                         Revision startRevision,
                         Revision endRevision,
                         java.lang.String relativeToDir,
                         java.lang.String outFileName,
                         Depth depth,
                         java.util.Collection<java.lang.String> changelists,
                         boolean ignoreAncestry,
                         boolean noDiffDeleted,
                         boolean force,
                         boolean copiesAsAdds)
                  throws ClientException
        Specified by:
        diff in interface ISVNClient
        Throws:
        ClientException
      • diff

        public void diff​(java.lang.String target1,
                         Revision revision1,
                         java.lang.String target2,
                         Revision revision2,
                         java.lang.String relativeToDir,
                         java.io.OutputStream outStream,
                         Depth depth,
                         java.util.Collection<java.lang.String> changelists,
                         boolean ignoreAncestry,
                         boolean noDiffDeleted,
                         boolean force,
                         boolean copiesAsAdds,
                         boolean ignoreProps,
                         boolean propsOnly,
                         DiffOptions options)
                  throws ClientException
        Description copied from interface: ISVNClient
        Display the differences between two paths
        Specified by:
        diff in interface ISVNClient
        Parameters:
        target1 - first path or url
        revision1 - first revision
        target2 - second path or url
        revision2 - second revision
        relativeToDir - index path is relative to this path
        depth - how deep to traverse into subdirectories
        ignoreAncestry - ignore if files are not related
        noDiffDeleted - no output on deleted files
        force - diff even on binary files
        copiesAsAdds - if set, copied files will be shown in their entirety, not as diffs from their sources
        ignoreProps - don't show property diffs
        propsOnly - show property changes only
        options - additional options for controlling the output
        Throws:
        ClientException
      • diff

        public void diff​(java.lang.String target1,
                         Revision revision1,
                         java.lang.String target2,
                         Revision revision2,
                         java.lang.String relativeToDir,
                         java.lang.String outFileName,
                         Depth depth,
                         java.util.Collection<java.lang.String> changelists,
                         boolean ignoreAncestry,
                         boolean noDiffDeleted,
                         boolean force,
                         boolean copiesAsAdds,
                         boolean ignoreProps,
                         boolean propsOnly,
                         DiffOptions options)
                  throws ClientException
        Specified by:
        diff in interface ISVNClient
        Throws:
        ClientException
      • diff

        public void diff​(java.lang.String target1,
                         Revision revision1,
                         java.lang.String target2,
                         Revision revision2,
                         java.lang.String relativeToDir,
                         java.io.OutputStream outStream,
                         Depth depth,
                         java.util.Collection<java.lang.String> changelists,
                         boolean ignoreAncestry,
                         boolean noDiffDeleted,
                         boolean force,
                         boolean copiesAsAdds,
                         boolean ignoreProps,
                         boolean propsOnly)
                  throws ClientException
        Description copied from interface: ISVNClient
        Display the differences between two paths
        Specified by:
        diff in interface ISVNClient
        Parameters:
        target1 - first path or url
        revision1 - first revision
        target2 - second path or url
        revision2 - second revision
        relativeToDir - index path is relative to this path
        depth - how deep to traverse into subdirectories
        ignoreAncestry - ignore if files are not related
        noDiffDeleted - no output on deleted files
        force - diff even on binary files
        copiesAsAdds - if set, copied files will be shown in their entirety, not as diffs from their sources
        ignoreProps - don't show property diffs
        propsOnly - show property changes only
        Throws:
        ClientException
      • diff

        public void diff​(java.lang.String target,
                         Revision pegRevision,
                         Revision startRevision,
                         Revision endRevision,
                         java.lang.String relativeToDir,
                         java.io.OutputStream outStream,
                         Depth depth,
                         java.util.Collection<java.lang.String> changelists,
                         boolean ignoreAncestry,
                         boolean noDiffDeleted,
                         boolean force,
                         boolean copiesAsAdds,
                         boolean ignoreProps,
                         boolean propsOnly,
                         DiffOptions options)
                  throws ClientException
        Description copied from interface: ISVNClient
        Display the differences between two paths.
        Specified by:
        diff in interface ISVNClient
        Parameters:
        target - path or url
        pegRevision - revision tointerpret target
        startRevision - first Revision to compare
        endRevision - second Revision to compare
        relativeToDir - index path is relative to this path
        depth - how deep to traverse into subdirectories
        changelists - if non-null, filter paths using changelists
        ignoreAncestry - ignore if files are not related
        noDiffDeleted - no output on deleted files
        force - diff even on binary files
        copiesAsAdds - if set, copied files will be shown in their entirety, not as diffs from their sources
        ignoreProps - don't show property diffs
        propsOnly - show property changes only
        options - additional options for controlling the output
        Throws:
        ClientException
      • diff

        public void diff​(java.lang.String target,
                         Revision pegRevision,
                         Revision startRevision,
                         Revision endRevision,
                         java.lang.String relativeToDir,
                         java.lang.String outFileName,
                         Depth depth,
                         java.util.Collection<java.lang.String> changelists,
                         boolean ignoreAncestry,
                         boolean noDiffDeleted,
                         boolean force,
                         boolean copiesAsAdds,
                         boolean ignoreProps,
                         boolean propsOnly,
                         DiffOptions options)
                  throws ClientException
        Specified by:
        diff in interface ISVNClient
        Throws:
        ClientException
      • diff

        public void diff​(java.lang.String target,
                         Revision pegRevision,
                         Revision startRevision,
                         Revision endRevision,
                         java.lang.String relativeToDir,
                         java.io.OutputStream outStream,
                         Depth depth,
                         java.util.Collection<java.lang.String> changelists,
                         boolean ignoreAncestry,
                         boolean noDiffDeleted,
                         boolean force,
                         boolean copiesAsAdds,
                         boolean ignoreProps,
                         boolean propsOnly)
                  throws ClientException
        Description copied from interface: ISVNClient
        Display the differences between two paths.
        Specified by:
        diff in interface ISVNClient
        Parameters:
        target - path or url
        pegRevision - revision tointerpret target
        startRevision - first Revision to compare
        endRevision - second Revision to compare
        relativeToDir - index path is relative to this path
        depth - how deep to traverse into subdirectories
        changelists - if non-null, filter paths using changelists
        ignoreAncestry - ignore if files are not related
        noDiffDeleted - no output on deleted files
        force - diff even on binary files
        copiesAsAdds - if set, copied files will be shown in their entirety, not as diffs from their sources
        ignoreProps - don't show property diffs
        propsOnly - show property changes only
        Throws:
        ClientException
      • diffSummarize

        public void diffSummarize​(java.lang.String target1,
                                  Revision revision1,
                                  java.lang.String target2,
                                  Revision revision2,
                                  Depth depth,
                                  java.util.Collection<java.lang.String> changelists,
                                  boolean ignoreAncestry,
                                  DiffSummaryCallback receiver)
                           throws ClientException
        Description copied from interface: ISVNClient
        Produce a diff summary which lists the items changed between path and revision pairs.
        Specified by:
        diffSummarize in interface ISVNClient
        Parameters:
        target1 - Path or URL.
        revision1 - Revision of target1.
        target2 - Path or URL.
        revision2 - Revision of target2.
        depth - how deep to recurse.
        changelists - if non-null, filter paths using changelists
        ignoreAncestry - Whether to ignore unrelated files during comparison. False positives may potentially be reported if this parameter false, since a file might have been modified between two revisions, but still have the same contents.
        receiver - As each is difference is found, this callback is invoked with a description of the difference.
        Throws:
        ClientException
      • diffSummarize

        public void diffSummarize​(java.lang.String target,
                                  Revision pegRevision,
                                  Revision startRevision,
                                  Revision endRevision,
                                  Depth depth,
                                  java.util.Collection<java.lang.String> changelists,
                                  boolean ignoreAncestry,
                                  DiffSummaryCallback receiver)
                           throws ClientException
        Description copied from interface: ISVNClient
        Produce a diff summary which lists the items changed between path and revision pairs.
        Specified by:
        diffSummarize in interface ISVNClient
        Parameters:
        target - Path or URL.
        pegRevision - Revision at which to interpret target. If Revision.Kind.unspecified or null, behave identically to ISVNClient.diffSummarize(String, Revision, String, Revision, Depth, Collection, boolean, DiffSummaryCallback), using path for both of that method's targets.
        startRevision - Beginning of range for comparsion of target.
        endRevision - End of range for comparsion of target.
        depth - how deep to recurse.
        changelists - if non-null, filter paths using changelists
        ignoreAncestry - Whether to ignore unrelated files during comparison. False positives may potentially be reported if this parameter false, since a file might have been modified between two revisions, but still have the same contents.
        receiver - As each is difference is found, this callback is invoked with a description of the difference.
        Throws:
        ClientException
      • properties

        public void properties​(java.lang.String path,
                               Revision revision,
                               Revision pegRevision,
                               Depth depth,
                               java.util.Collection<java.lang.String> changelists,
                               ProplistCallback callback)
                        throws ClientException
        Description copied from interface: ISVNClient
        Retrieves the properties of an item
        Specified by:
        properties in interface ISVNClient
        Parameters:
        path - the path of the item
        revision - the revision of the item
        pegRevision - the revision to interpret path
        depth - the depth to recurse into subdirectories
        changelists - changelists to filter by
        callback - the callback to use to return the properties
        Throws:
        ClientException
      • properties

        public void properties​(java.lang.String path,
                               Revision revision,
                               Revision pegRevision,
                               Depth depth,
                               java.util.Collection<java.lang.String> changelists,
                               InheritedProplistCallback callback)
                        throws ClientException
        Description copied from interface: ISVNClient
        Retrieves the properties of an item, including inherited properties.
        Specified by:
        properties in interface ISVNClient
        Parameters:
        path - the path of the item
        revision - the revision of the item
        pegRevision - the revision to interpret path
        depth - the depth to recurse into subdirectories
        changelists - changelists to filter by
        callback - the callback to use to return the properties
        Throws:
        ClientException
      • propertySetLocal

        public void propertySetLocal​(java.util.Set<java.lang.String> paths,
                                     java.lang.String name,
                                     byte[] value,
                                     Depth depth,
                                     java.util.Collection<java.lang.String> changelists,
                                     boolean force)
                              throws ClientException
        Description copied from interface: ISVNClient
        Sets one property of an item with a String value
        Specified by:
        propertySetLocal in interface ISVNClient
        Parameters:
        paths - paths of the items
        name - name of the property
        value - new value of the property. Set value to null to delete a property
        depth - the depth to recurse into subdirectories
        changelists - changelists to filter by
        force - do not check if the value is valid
        Throws:
        ClientException
      • revProperty

        public byte[] revProperty​(java.lang.String path,
                                  java.lang.String name,
                                  Revision rev)
                           throws ClientException
        Description copied from interface: ISVNClient
        Retrieve one revsision property of one item
        Specified by:
        revProperty in interface ISVNClient
        Parameters:
        path - path of the item
        name - name of the property
        rev - revision to retrieve
        Returns:
        the Property
        Throws:
        ClientException
      • revProperties

        public java.util.Map<java.lang.String,​byte[]> revProperties​(java.lang.String path,
                                                                          Revision rev)
                                                                   throws ClientException
        Description copied from interface: ISVNClient
        Retrieve all revsision properties of one item
        Specified by:
        revProperties in interface ISVNClient
        Parameters:
        path - path of the item
        rev - revision to retrieve
        Returns:
        the Properties
        Throws:
        ClientException
      • setRevProperty

        public void setRevProperty​(java.lang.String path,
                                   java.lang.String name,
                                   Revision rev,
                                   java.lang.String value,
                                   java.lang.String originalValue,
                                   boolean force)
                            throws ClientException
        Description copied from interface: ISVNClient
        set one revsision property of one item
        Specified by:
        setRevProperty in interface ISVNClient
        Parameters:
        path - path of the item
        name - name of the property
        rev - revision to retrieve
        value - value of the property
        originalValue - the original value of the property.
        force - use force to set
        Throws:
        ClientException
      • propertyGet

        public byte[] propertyGet​(java.lang.String path,
                                  java.lang.String name,
                                  Revision revision,
                                  Revision pegRevision,
                                  java.util.Collection<java.lang.String> changelists)
                           throws ClientException
        Description copied from interface: ISVNClient
        Retrieve one property of one item
        Specified by:
        propertyGet in interface ISVNClient
        Parameters:
        path - path of the item
        name - name of property
        revision - revision of the item
        pegRevision - the revision to interpret path
        Returns:
        the Property
        Throws:
        ClientException
      • fileContent

        public byte[] fileContent​(java.lang.String path,
                                  Revision revision,
                                  Revision pegRevision)
                           throws ClientException
        Description copied from interface: ISVNClient
        Retrieve the content of a file
        Specified by:
        fileContent in interface ISVNClient
        Parameters:
        path - the path of the file
        revision - the revision to retrieve
        pegRevision - the revision to interpret path
        Returns:
        the content as byte array
        Throws:
        ClientException
      • streamFileContent

        public void streamFileContent​(java.lang.String path,
                                      Revision revision,
                                      Revision pegRevision,
                                      java.io.OutputStream stream)
                               throws ClientException
        Description copied from interface: ISVNClient
        Write the file's content to the specified output stream. If you need an InputStream, use a PipedInputStream/PipedOutputStream combination.
        Specified by:
        streamFileContent in interface ISVNClient
        Parameters:
        path - the path of the file
        revision - the revision to retrieve
        pegRevision - the revision at which to interpret the path
        stream - the stream to write the file's content to
        Throws:
        ClientException
        See Also:
        PipedOutputStream, PipedInputStream
      • relocate

        public void relocate​(java.lang.String from,
                             java.lang.String to,
                             java.lang.String path,
                             boolean ignoreExternals)
                      throws ClientException
        Description copied from interface: ISVNClient
        Rewrite the url's in the working copy
        Specified by:
        relocate in interface ISVNClient
        Parameters:
        from - old url
        to - new url
        path - working copy path
        ignoreExternals - if externals are ignored during relocate
        Throws:
        ClientException
      • blame

        public void blame​(java.lang.String path,
                          Revision pegRevision,
                          Revision revisionStart,
                          Revision revisionEnd,
                          boolean ignoreMimeType,
                          boolean includeMergedRevisions,
                          BlameCallback callback)
                   throws ClientException
        Description copied from interface: ISVNClient
        Retrieve the content together with the author, the revision and the date of the last change of each line
        Specified by:
        blame in interface ISVNClient
        Parameters:
        path - the path
        pegRevision - the revision to interpret the path
        revisionStart - the first revision to show
        revisionEnd - the last revision to show
        ignoreMimeType - whether or not to ignore the mime-type
        includeMergedRevisions - whether or not to include extra merge information
        callback - callback to receive the file content and the other information
        Throws:
        ClientException
      • setConfigDirectory

        public void setConfigDirectory​(java.lang.String configDir)
                                throws ClientException
        Description copied from interface: ISVNClient
        Set directory for the configuration information, taking the usual steps to ensure that Subversion's config file templates exist in the specified location.. On Windows, setting a non-null value will override lookup of configuration in the registry.
        Specified by:
        setConfigDirectory in interface ISVNClient
        Parameters:
        configDir - Path of the directory, or null for the platform's default.
        Throws:
        ClientException
      • addToChangelist

        public void addToChangelist​(java.util.Set<java.lang.String> paths,
                                    java.lang.String changelist,
                                    Depth depth,
                                    java.util.Collection<java.lang.String> changelists)
                             throws ClientException
        Description copied from interface: ISVNClient
        Add paths to a changelist
        Specified by:
        addToChangelist in interface ISVNClient
        Parameters:
        paths - paths to add to the changelist
        changelist - changelist name
        depth - the depth to recurse
        changelists - changelists to filter by
        Throws:
        ClientException
      • removeFromChangelists

        public void removeFromChangelists​(java.util.Set<java.lang.String> paths,
                                          Depth depth,
                                          java.util.Collection<java.lang.String> changelists)
                                   throws ClientException
        Description copied from interface: ISVNClient
        Remove paths from a changelist
        Specified by:
        removeFromChangelists in interface ISVNClient
        Parameters:
        paths - paths to remove from the changelist
        depth - the depth to recurse
        changelists - changelists to filter by
        Throws:
        ClientException
      • getChangelists

        public void getChangelists​(java.lang.String rootPath,
                                   java.util.Collection<java.lang.String> changelists,
                                   Depth depth,
                                   ChangelistCallback callback)
                            throws ClientException
        Description copied from interface: ISVNClient
        Recursively get the paths which belong to a changelist
        Specified by:
        getChangelists in interface ISVNClient
        Parameters:
        rootPath - the wc path under which to check
        changelists - the changelists to look under
        depth - the depth to recurse
        callback - the callback to return the changelists through
        Throws:
        ClientException
      • lock

        public void lock​(java.util.Set<java.lang.String> path,
                         java.lang.String comment,
                         boolean force)
                  throws ClientException
        Description copied from interface: ISVNClient
        Lock a working copy item
        Specified by:
        lock in interface ISVNClient
        Parameters:
        path - path of the item
        force - break an existing lock
        Throws:
        ClientException
      • unlock

        public void unlock​(java.util.Set<java.lang.String> path,
                           boolean force)
                    throws ClientException
        Description copied from interface: ISVNClient
        Unlock a working copy item
        Specified by:
        unlock in interface ISVNClient
        Parameters:
        path - path of the item
        force - break an existing lock
        Throws:
        ClientException
      • info2

        public void info2​(java.lang.String pathOrUrl,
                          Revision revision,
                          Revision pegRevision,
                          Depth depth,
                          java.util.Collection<java.lang.String> changelists,
                          InfoCallback callback)
                   throws ClientException
        Description copied from interface: ISVNClient
        Retrieve information about repository or working copy items.
        Specified by:
        info2 in interface ISVNClient
        Parameters:
        pathOrUrl - the path or the url of the item
        revision - the revision of the item to return
        pegRevision - the revision to interpret pathOrUrl
        depth - the depth to recurse
        changelists - if non-null, filter paths using changelists
        callback - a callback to receive the infos retrieved
        Throws:
        ClientException
      • getVersionInfo

        public java.lang.String getVersionInfo​(java.lang.String path,
                                               java.lang.String trailUrl,
                                               boolean lastChanged)
                                        throws ClientException
        Description copied from interface: ISVNClient
        Produce a compact "version number" for a working copy
        Specified by:
        getVersionInfo in interface ISVNClient
        Parameters:
        path - path of the working copy
        trailUrl - to detect switches of the whole working copy
        lastChanged - last changed rather than current revisions
        Returns:
        the compact "version number"
        Throws:
        ClientException
      • upgrade

        public void upgrade​(java.lang.String path)
                     throws ClientException
        Description copied from interface: ISVNClient
        Recursively upgrade a working copy to a new metadata storage format.
        Specified by:
        upgrade in interface ISVNClient
        Parameters:
        path - path of the working copy
        Throws:
        ClientException
      • patch

        public void patch​(java.lang.String patchPath,
                          java.lang.String targetPath,
                          boolean dryRun,
                          int stripCount,
                          boolean reverse,
                          boolean ignoreWhitespace,
                          boolean removeTempfiles,
                          PatchCallback callback)
                   throws ClientException
        Description copied from interface: ISVNClient
        Apply a unidiff patch.
        Specified by:
        patch in interface ISVNClient
        Parameters:
        patchPath - the path of the patch
        targetPath - the path to be patched
        dryRun - whether to actually modify the local content
        stripCount - how many leading path components should be removed
        reverse - whether to reverse the patch
        ignoreWhitespace - whether to ignore whitespace
        removeTempfiles - whether to remove temp files
        callback - a handler to receive information as files are patched
        Throws:
        ClientException
      • getLongDate

        private static long getLongDate​(java.util.Date date)
      • getTarget

        private SvnTarget getTarget​(java.lang.String path,
                                    Revision revision)
      • getTarget

        private SvnTarget getTarget​(java.lang.String path)
      • getSVNProperties

        private SVNProperties getSVNProperties​(java.util.Map<java.lang.String,​java.lang.String> revpropTable)
      • getFilePath

        private java.lang.String getFilePath​(java.io.File path)
      • getUrlString

        private java.lang.String getUrlString​(SVNURL url)
      • getRevisionPropertiesNames

        private java.lang.String[] getRevisionPropertiesNames​(java.util.Set<java.lang.String> revProps)
      • getChangePaths

        private java.util.Set<ChangePath> getChangePaths​(java.util.Map<java.lang.String,​SVNLogEntryPath> changedPaths)
      • getProperties

        private static java.util.Map<java.lang.String,​byte[]> getProperties​(SVNProperties svnProperties)
      • getRevisionProperties

        private static java.util.Map<java.lang.String,​java.lang.String> getRevisionProperties​(SVNProperties revisionProperties)
      • getProperty

        private byte[] getProperty​(java.lang.String path,
                                   java.lang.String name,
                                   Revision rev,
                                   Revision pegRevision,
                                   boolean revisionProperties,
                                   java.util.Collection<java.lang.String> changelists)
                            throws ClientException
        Throws:
        ClientException
      • fillLocalAndRemoteTargets

        private void fillLocalAndRemoteTargets​(java.util.Set<java.lang.String> path,
                                               java.util.Set<java.lang.String> localPaths,
                                               java.util.Set<java.lang.String> remoteUrls)
      • getCommitInfo

        private CommitInfo getCommitInfo​(SVNCommitInfo commitInfo,
                                         SVNURL repositoryRoot)
                                  throws java.text.ParseException
        Throws:
        java.text.ParseException
      • getErrorMessageString

        private static java.lang.String getErrorMessageString​(SVNErrorMessage errorMessage)
      • mkdirLocal

        private void mkdirLocal​(java.util.Set<java.lang.String> localPaths,
                                boolean makeParents)
                         throws ClientException
        Throws:
        ClientException
      • removeLocal

        private void removeLocal​(java.util.Set<java.lang.String> localPaths,
                                 boolean force,
                                 boolean keepLocal)
                          throws ClientException
        Throws:
        ClientException
      • moveLocal

        private void moveLocal​(java.util.Set<java.lang.String> srcPaths,
                               java.lang.String destPath,
                               boolean force,
                               boolean moveAsChild,
                               boolean makeParents,
                               boolean metadataOnly,
                               boolean allowMixRev)
                        throws ClientException
        Throws:
        ClientException
      • moveRemote

        private void moveRemote​(java.util.Set<java.lang.String> srcPaths,
                                java.lang.String destPath,
                                boolean moveAsChild,
                                boolean makeParents,
                                java.util.Map<java.lang.String,​java.lang.String> revpropTable,
                                CommitMessageCallback handler,
                                CommitCallback callback)
                         throws ClientException
        Throws:
        ClientException
      • copyLocal

        private void copyLocal​(java.util.List<CopySource> localSources,
                               java.lang.String destPath,
                               boolean copyAsChild,
                               boolean makeParents,
                               boolean ignoreExternals)
                        throws ClientException
        Throws:
        ClientException
      • getFile

        private java.io.File getFile​(java.lang.String path)
      • getClientNotifyInformation

        static ClientNotifyInformation getClientNotifyInformation​(java.lang.String pathPrefix,
                                                                  SVNEvent event,
                                                                  java.lang.String path)
      • getPathPrefix

        private java.lang.String getPathPrefix​(java.lang.String pathOrUrl)
      • getPathPrefix

        private java.lang.String getPathPrefix​(java.util.Collection<?> pathsOrUrls)
      • getPathPrefix

        private java.lang.String getPathPrefix​(java.util.Collection<?> pathsOrUrls,
                                               java.lang.String destPath)
      • getPathPrefix

        private java.lang.String getPathPrefix​(java.lang.String pathOrUrl1,
                                               java.lang.String pathOrUrl2)
      • combinePathPrefixes

        private java.lang.String combinePathPrefixes​(java.lang.String pathPrefix1,
                                                     java.lang.String pathPrefix2)
      • updateSvnOperationsFactory

        private void updateSvnOperationsFactory()
      • versionString

        static java.lang.String versionString()
      • versionMajor

        static int versionMajor()
      • versionMinor

        static int versionMinor()
      • versionMicro

        static int versionMicro()
      • versionRevisionNumber

        static long versionRevisionNumber()
      • throwSvnException

        private void throwSvnException​(java.lang.Exception e)
                                throws SVNException
        Throws:
        SVNException
      • resetLog

        private void resetLog()
      • beforeOperation

        private void beforeOperation()
      • afterOperation

        private void afterOperation()
      • getVersionExtended

        public VersionExtended getVersionExtended​(boolean verbose)
        Specified by:
        getVersionExtended in interface ISVNClient
        Returns:
        Extended version information about the underlying native libraries and operating system.