Class SvnTagBranchUtils


  • public final class SvnTagBranchUtils
    extends Object
    • Method Detail

      • getProjectRoot

        public static String getProjectRoot​(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 String resolveTagBase​(String repositoryUrl)
      • resolveBranchBase

        public static String resolveBranchBase​(String repositoryUrl)
      • resolveUrl

        public static String resolveUrl​(String repositoryUrl,
                                        String tagBase,
                                        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