org.apache.maven.scm.provider.svn
Class SvnTagBranchUtils

java.lang.Object
  extended by org.apache.maven.scm.provider.svn.SvnTagBranchUtils

public class SvnTagBranchUtils
extends java.lang.Object

Version:
$Id: SvnTagBranchUtils.java 687028 2008-08-19 12:02:05Z vsiveton $

Field Summary
static java.lang.String[] REVISION_SPECIFIERS
           
static java.lang.String[] SVN_BASE_DIRS
           
static java.lang.String SVN_BRANCHES
           
static java.lang.String SVN_TAGS
           
static java.lang.String SVN_TRUNK
           
 
Constructor Summary
SvnTagBranchUtils()
           
 
Method Summary
static java.lang.String getProjectRoot(java.lang.String repoPath)
          Returns the project root for the given repository url, where "project root" is the root of the /trunk, /branches, /tags directories
static boolean isRevisionSpecifier(ScmVersion version)
          Returns whether the supplied tag refers to an actual revision or is specifying a tag/branch url in the repository.
static java.lang.String resolveBranchBase(java.lang.String repositoryUrl)
           
static java.lang.String resolveBranchBase(SvnScmProviderRepository repository)
           
static java.lang.String resolveBranchUrl(java.lang.String repositoryUrl, ScmBranch branch)
          Resolves a branch name to a repository url.
static java.lang.String resolveBranchUrl(SvnScmProviderRepository repository, ScmBranch branch)
          Resolves a branch name to a repository url.
static java.lang.String resolveTagBase(java.lang.String repositoryUrl)
           
static java.lang.String resolveTagBase(SvnScmProviderRepository repository)
           
static java.lang.String resolveTagUrl(java.lang.String repositoryUrl, ScmTag tag)
          Resolves a tag to a repository url.
static java.lang.String resolveTagUrl(SvnScmProviderRepository repository, ScmTag tag)
          Resolves a tag to a repository url.
static java.lang.String resolveUrl(java.lang.String repositoryUrl, java.lang.String tagBase, java.lang.String subdir, ScmBranch branchTag)
          Resolves a tag or branch name to a repository url.
If the branchTagName is an absolute URL, that value is returned.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

REVISION_SPECIFIERS

public static final java.lang.String[] REVISION_SPECIFIERS

SVN_TRUNK

public static final java.lang.String SVN_TRUNK
See Also:
Constant Field Values

SVN_BRANCHES

public static final java.lang.String SVN_BRANCHES
See Also:
Constant Field Values

SVN_TAGS

public static final java.lang.String SVN_TAGS
See Also:
Constant Field Values

SVN_BASE_DIRS

public static final java.lang.String[] SVN_BASE_DIRS
Constructor Detail

SvnTagBranchUtils

public SvnTagBranchUtils()
Method Detail

getProjectRoot

public static java.lang.String getProjectRoot(java.lang.String repoPath)
Returns the project root for the given repository url, where "project root" is the root of the /trunk, /branches, /tags directories

Parameters:
repoPath - Repository path/url to be searched
Returns:

resolveTagBase

public static java.lang.String resolveTagBase(SvnScmProviderRepository repository)

resolveTagBase

public static java.lang.String resolveTagBase(java.lang.String repositoryUrl)

resolveBranchBase

public static java.lang.String resolveBranchBase(SvnScmProviderRepository repository)

resolveBranchBase

public static java.lang.String resolveBranchBase(java.lang.String repositoryUrl)

resolveTagUrl

public static java.lang.String resolveTagUrl(SvnScmProviderRepository repository,
                                             ScmTag tag)
Resolves a tag to a repository url. By supplying the repository to this function (rather than calling resolveTagUrl(String,ScmTag) the resolution can use the repository's tagBase to override the default tag location.

Parameters:
repository - the repository to use as a base for tag resolution
tag - tag name
Returns:
See Also:
resolveUrl(String,String,String,ScmBranch)

resolveTagUrl

public static java.lang.String resolveTagUrl(java.lang.String repositoryUrl,
                                             ScmTag tag)
Resolves a tag to a repository url. Will not use the SvnScmProviderRepository.getTagBase() during resolution.

Parameters:
repositoryUrl - string url for the repository
tag - tag name
Returns:
See Also:
resolveUrl(String,String,String,ScmBranch)

resolveBranchUrl

public static java.lang.String resolveBranchUrl(SvnScmProviderRepository repository,
                                                ScmBranch branch)
Resolves a branch name to a repository url. By supplying the repository to this function (rather than calling resolveBranchUrl(String,ScmBranch) the resolution can use the repository's tagBase to override the default tag location.

Parameters:
repository - the repository to use as a base for tag resolution
branch - tag name
Returns:
See Also:
resolveUrl(String,String,String,ScmBranch)

resolveBranchUrl

public static java.lang.String resolveBranchUrl(java.lang.String repositoryUrl,
                                                ScmBranch branch)
Resolves a branch name to a repository url. Will not use the SvnScmProviderRepository.getTagBase() during resolution.

Parameters:
repositoryUrl - string url for the repository
branch - branch name
Returns:
See Also:
resolveUrl(String,String,String,ScmBranch)

resolveUrl

public static java.lang.String resolveUrl(java.lang.String repositoryUrl,
                                          java.lang.String tagBase,
                                          java.lang.String subdir,
                                          ScmBranch branchTag)
Resolves a tag or branch name to a repository url.
If the branchTagName is an absolute URL, that value is returned. (i.e. http://foo.com/svn/myproject/tags/my-tag)

If the repository has a SvnScmProviderRepository.getTagBase() specified, the tag is simply appended to the tagBase value. Note that at this time, we are using the tagBase as a base for both branches and tags.

If the branchTagName contains a branch/tag specifier (i.e. "/branches", "/tags", "/trunk"), the branchTagName is appended to the projectRoot without adding the subdir.
Else, the result is in the format of projectRoot/subdir/branchTagName directory.

Parameters:
repositoryUrl - string url for the repository
tagBase - tagBase to use.
subdir - Subdirectory to append to the project root (for branching use "branches", tags use "tags")
branchTag - Name of the actual branch or tag. Can be an absolute url, simple tag/branch name, or even contain a relative path to the root like "branches/my-branch"
Returns:

isRevisionSpecifier

public static boolean isRevisionSpecifier(ScmVersion version)
Returns whether the supplied tag refers to an actual revision or is specifying a tag/branch url in the repository. According to the subversion documentation, the following are valid revision specifiers: NUMBER revision number "{" DATE "}" revision at start of the date "HEAD" latest in repository "BASE" base rev of item's working copy "COMMITTED" last commit at or before BASE "PREV"

For command such as diff, the revision argument can be in the format of: IDENTIFIER:IDENTIFIER where IDENTIFIER is one of the args listed above



Copyright © 2003-2011 Apache Software Foundation. All Rights Reserved.