• Icon: Bug Bug
    • Resolution: Done-Errata
    • Icon: Blocker Blocker
    • MTA 7.2.0
    • MTA 7.0.0, MTA 7.1.0, MTA 7.0.2, MTA 7.0.1, MTA 7.0.3, MTA 7.0.4, MTA 7.1.1, MTA 7.1.2
    • Hub
    • False
    • Hide

      None

      Show
      None
    • False
    • Critical
    • None

      Description of problem:

      By convention, SVN repositories have three subdirectories under their root path: trunk, branches (could be branch in some cases) and tags (could be tag as well). Right now, when retrieving source code, addons are automatically adding /trunk or /branches/<target_branch> on the repo URL for Checkout depending on whether the Branches field of the application has a value or not, which makes it impossible to checkout anything under tags.

      A solution for this could be to repurpose the Root Path field from the application entity for SVN repos, in a way that it is used to specify the path inside of the repo that needs to be checked out and overriding the concatenation of trunk or any branch that might be specified.

      For example, as it works right now, if repository URL was https://svn.corp/my-repo and root path was /Application_1, the addons would checkout https://svn.corp/my-repo/trunk and then look for the /Application_1 subdirectory to execute their task against it.

      The proposal would be that, if repository URL was https://svn.corp/my-repo and root path was /tags/v.2.4.5/Application_1, the addons would checkout https://svn.corp/my-repo/tags/v.2.4.5/Application_1 and the task would be executed on the root path of the directory that was checked out. This would enable the user to access tags or any non-conventional subdirectory under the root repository (such as branch or tag instead of branches and tags), and should be possible because SVN allows users to checkout any directory and not only root repositories like Git.

      Of course, this would require a documentation update to reflect the specifics of the SVN use case.

       Version-Release number of selected component (if applicable):

      MTA 7.1.1

       How reproducible:

      Always

            [MTA-4236] [Hub] Tags are not accessible in SVN repositories

            Errata Tool added a comment -

            Since the problem described in this issue should be resolved in a recent advisory, it has been closed.

            For information on the advisory (Migration Toolkit for Applications bug fix and enhancement update), and where to find the updated files, follow the link below.

            If the solution does not work for you, open a new bug report.
            https://access.redhat.com/errata/RHBA-2025:0501

            Errata Tool added a comment - Since the problem described in this issue should be resolved in a recent advisory, it has been closed. For information on the advisory (Migration Toolkit for Applications bug fix and enhancement update), and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2025:0501

            Test Scenarios Analysis succeeded:

            1. url=http://10.0.188.129/svn/mtaqe-svn/book-server/tags/v2.4.5
               url=http://10.0.188.129/svn/mtaqe-svn/book-server/trunk
              url=http://10.0.188.129/svn/mtaqe-svn/book-server/branches/bookserver-app
              branch = 
              root path= src/main/java
            2. url=http://10.0.188.129/svn/mtaqe-svn/book-server
              branch = tags/v.2.4.5 
              also for branch = branches/bookserver-app
              root path= src/main/java

             
             

            - '[CMD] Running: /usr/bin/svn --non-interactive --trust-server-cert checkout http://10.0.188.129/svn/mtaqe-svn/book-server/tags/v.2.4.5/src/main/java /shared/source/book-server/src/main/java' - '[CMD] /usr/bin/svn succeeded.'

             

            Karishma Punwatkar added a comment - Test Scenarios Analysis succeeded: url = http://10.0.188.129/svn/mtaqe-svn/book-server/tags/v2.4.5   url = http://10.0.188.129/svn/mtaqe-svn/book-server/trunk url = http://10.0.188.129/svn/mtaqe-svn/book-server/branches/bookserver-app branch =  root path= src/main/java url = http://10.0.188.129/svn/mtaqe-svn/book-server branch = tags/v.2.4.5   also for branch = branches/bookserver-app root path= src/main/java     - '[CMD] Running: /usr/bin/svn --non-interactive --trust-server-cert checkout http: //10.0.188.129/svn/mtaqe-svn/book-server/tags/v.2.4.5/src/main/java /shared/source/book-server/src/main/java' - '[CMD] /usr/bin/svn succeeded.'  

            1. This test scenario Succeeded, I was missing . in tags/v.2.4.5

            url=http://10.0.188.129/svn/mtaqe-svn/book-server

            branch=tags/v.2.4.5

            path=

             
            Fetching application.

            • '[CMD] Running: /usr/bin/ssh-agent -a /tmp/agent.1'
            • '[CMD] /usr/bin/ssh-agent succeeded.'
            • '[SSH] Agent started.'
            • '[SVN] Cloning: http://10.0.188.129/svn/mtaqe-svn/book-server/tags/v.2.4.5'
            • '[SVN] Using credentials (id=1) svn.'
            • '[FILE] Created /addon/.subversion/servers.'
            • '[FILE] Updated /addon/.subversion/auth/svn.simple/4d8acb11225214446c33910e2e7f5cc0.'
            • '[CMD] Running: /usr/bin/svn --non-interactive --trust-server-cert checkout http://10.0.188.129/svn/mtaqe-svn/book-server/tags/v.2.4.5 /shared/source/book-server'
            • '[CMD] /usr/bin/svn succeeded.'
            • '[RULESET] fetching: id=1 (.discovery)'
            • '[RULESET] fetching: id=24 (cloud-readiness)'
            • '[RULESET] fetching (dep): id=20 (.technology-usage)'
            • '[CMD] Running: /usr/bin/windup-shim convert --outputdir /addon/rules/rulesets/1/rules /addon/rules/rulesets/1/rules'
            • '[CMD] /usr/bin/windup-shim succeeded.'
            • '[CMD] Running: /usr/bin/windup-shim convert --outputdir /addon/rules/rulesets/24/rules /addon/rules/rulesets/24/rules'
            • '[CMD] /usr/bin/windup-shim succeeded.'
            • '[CMD] Running: /usr/bin/windup-shim convert --outputdir /addon/rules/rulesets/20/rules /addon/rules/rulesets/20/rules'
            • '[CMD] /usr/bin/windup-shim succeeded.'
            • '[CMD] Running: /usr/local/bin/konveyor-analyzer --provider-settings /addon/opt/settings.yaml --output-file /addon/issues.yaml --dep-output-file /addon/deps.yaml --no-dependency-rules --rules /addon/rules/rulesets/1/rules --rules /addon/rules/rulesets/24/rules --rules /addon/rules/rulesets/20/rules --label-selector konveyor.io/target=cloud-readiness'
            • '[CMD] /usr/local/bin/konveyor-analyzer succeeded.'
            • '[TAG] Tagging Application 55.'
            • '[CMD] Running: /usr/bin/svn --non-interactive --trust-server-cert info -r HEAD'
            • '[CMD] /usr/bin/svn succeeded.'
            • 'Analysis 55 reported. duration: 61.814096ms'
            • Facts updated.
            • Done.

            Karishma Punwatkar added a comment - 1. This test scenario Succeeded, I was missing . in tags/v.2.4.5 url = http://10.0.188.129/svn/mtaqe-svn/book-server branch =tags/v.2.4.5 path =   Fetching application. ' [CMD] Running: /usr/bin/ssh-agent -a /tmp/agent.1' ' [CMD] /usr/bin/ssh-agent succeeded.' ' [SSH] Agent started.' ' [SVN] Cloning: http://10.0.188.129/svn/mtaqe-svn/book-server/tags/v.2.4.5 ' ' [SVN] Using credentials (id=1) svn.' ' [FILE] Created /addon/.subversion/servers.' ' [FILE] Updated /addon/.subversion/auth/svn.simple/4d8acb11225214446c33910e2e7f5cc0.' ' [CMD] Running: /usr/bin/svn --non-interactive --trust-server-cert checkout http://10.0.188.129/svn/mtaqe-svn/book-server/tags/v.2.4.5 /shared/source/book-server' ' [CMD] /usr/bin/svn succeeded.' ' [RULESET] fetching: id=1 (.discovery)' ' [RULESET] fetching: id=24 (cloud-readiness)' ' [RULESET] fetching (dep): id=20 (.technology-usage)' ' [CMD] Running: /usr/bin/windup-shim convert --outputdir /addon/rules/rulesets/1/rules /addon/rules/rulesets/1/rules' ' [CMD] /usr/bin/windup-shim succeeded.' ' [CMD] Running: /usr/bin/windup-shim convert --outputdir /addon/rules/rulesets/24/rules /addon/rules/rulesets/24/rules' ' [CMD] /usr/bin/windup-shim succeeded.' ' [CMD] Running: /usr/bin/windup-shim convert --outputdir /addon/rules/rulesets/20/rules /addon/rules/rulesets/20/rules' ' [CMD] /usr/bin/windup-shim succeeded.' ' [CMD] Running: /usr/local/bin/konveyor-analyzer --provider-settings /addon/opt/settings.yaml --output-file /addon/issues.yaml --dep-output-file /addon/deps.yaml --no-dependency-rules --rules /addon/rules/rulesets/1/rules --rules /addon/rules/rulesets/24/rules --rules /addon/rules/rulesets/20/rules --label-selector konveyor.io/target=cloud-readiness' ' [CMD] /usr/local/bin/konveyor-analyzer succeeded.' ' [TAG] Tagging Application 55.' ' [CMD] Running: /usr/bin/svn --non-interactive --trust-server-cert info -r HEAD' ' [CMD] /usr/bin/svn succeeded.' 'Analysis 55 reported. duration: 61.814096ms' Facts updated. Done.

            Jeff Ortel added a comment - - edited

            Looks like the actual tag is v.2.4.5 not v2.4.5.

            Worked for me with:

            branch=v.2.4.5

            Jeff Ortel added a comment - - edited Looks like the actual tag is v . 2.4.5 not v2.4.5. Worked for me with: branch=v.2.4.5

            Thanks jortel for the steps,
            1. This test scenario is failing

            url=http://10.0.188.129/svn/mtaqe-svn/book-server

            branch=tags/v2.4.5

            path=

            • 'OptDir: /addon/opt'
            • 'SharedDir: /shared'
            • 'CacheDir: /cache'
            • 'SourceDir: /shared/source'
            • 'RuleDir: /addon/rules'
            • 'BinDir: /shared/bin'
            • 'M2Dir: /cache/m2'
            • Fetching application.
            • '[CMD] Running: /usr/bin/ssh-agent -a /tmp/agent.1'
            • '[CMD] /usr/bin/ssh-agent succeeded.'
            • '[SSH] Agent started.'
            • '[SVN] Cloning: http://10.0.188.129/svn/mtaqe-svn/book-server/tags/v2.4.5'
            • '[SVN] Using credentials (id=1) svn.'
            • '[FILE] Created /addon/.subversion/servers.'
            • '[CMD] /usr/bin/svn failed: exit status 1'
               
              2. This test scenario succeeded url=http://10.0.188.129/svn/mtaqe-svn/book-server/tags/v2.4.5

            branch=

            path=

            Karishma Punwatkar added a comment - Thanks jortel for the steps, 1. This test scenario is failing url = http://10.0.188.129/svn/mtaqe-svn/book-server branch =tags/v2.4.5 path = 'OptDir: /addon/opt' 'SharedDir: /shared' 'CacheDir: /cache' 'SourceDir: /shared/source' 'RuleDir: /addon/rules' 'BinDir: /shared/bin' 'M2Dir: /cache/m2' Fetching application. ' [CMD] Running: /usr/bin/ssh-agent -a /tmp/agent.1' ' [CMD] /usr/bin/ssh-agent succeeded.' ' [SSH] Agent started.' ' [SVN] Cloning: http://10.0.188.129/svn/mtaqe-svn/book-server/tags/v2.4.5 ' ' [SVN] Using credentials (id=1) svn.' ' [FILE] Created /addon/.subversion/servers.' ' [CMD] /usr/bin/svn failed: exit status 1'   2. This test scenario succeeded  url = http://10.0.188.129/svn/mtaqe-svn/book-server/tags/v2.4.5 branch = path =

            Jeff Ortel added a comment - - edited

            The branch test good.

            The tags test worked as a side-effect of how it's implemented but not as prescribed.  The branch and root-path fields are simply overlaying GIT semantics to Subversion.  For subversion, checkout URL is built as url + branch + path.  So, in practice you can put the branch or tag in either the branch or root-path.  To comply with intended semantics, the user would specify either the branch or tag in the Branch field.

            Example:

            url=http://10.0.188.129/svn/mtaqe-svn/book-server

            branch=trunk

            path=

             

            url=http://10.0.188.129/svn/mtaqe-svn/book-server

            branch=branches/bookserver-app

            path=

             

            url=http://10.0.188.129/svn/mtaqe-svn/book-server

            branch=tags/v2.4.5

            path=

             

            To be clear, the user may also define the branch or tag (and root path) in the url.  This 

            Examples:

            url=http://10.0.188.129/svn/mtaqe-svn/book-server/trunk

            branch=

            path=

             

            url=http://10.0.188.129/svn/mtaqe-svn/book-server/branches/bookserver-app

            branch=

            path=

             

            url=http://10.0.188.129/svn/mtaqe-svn/book-server/tags/v2.4.5

            branch=

            path=

             

            The RootPath follows the same pattern.  The GIT semantics here are that it represents the location of the application relative to the cloned repository tree defined by the url+branch.

             

             

             

            Jeff Ortel added a comment - - edited The branch test good. The tags test worked as a side-effect of how it's implemented but not as prescribed.  The branch and root-path fields are simply overlaying GIT semantics to Subversion.  For subversion, checkout URL is built as url + branch + path .  So, in practice you can put the branch or tag in either the branch or root-path.  To comply with intended semantics, the user would specify either the branch or tag in the Branch field. Example: url = http://10.0.188.129/svn/mtaqe-svn/book-server branch =trunk path =   url = http://10.0.188.129/svn/mtaqe-svn/book-server branch =branches/bookserver-app path =   url = http://10.0.188.129/svn/mtaqe-svn/book-server branch =tags/v2.4.5 path =   To be clear, the user may also define the branch or tag (and root path) in the url .  This  Examples: url = http://10.0.188.129/svn/mtaqe-svn/book-server/trunk branch = path =   url = http://10.0.188.129/svn/mtaqe-svn/book-server/branches/bookserver-app branch = path =   url = http://10.0.188.129/svn/mtaqe-svn/book-server/tags/v2.4.5 branch = path =   The RootPath follows the same pattern.  The GIT semantics here are that it represents the location of the application relative to the cloned repository tree defined by the url+branch.      

            Tested on MTA-7.2.0-33 Build

            2. Scenarios we Tested "Analysis on SVN Repository with branch folder - Succeeded 
            3. Scenarios we Tested "Analysis on SVN Repository with tag folder - Succeeded 



            Karishma Punwatkar added a comment - Tested on  MTA-7 .2.0-33 Build 2. Scenarios we Tested " Analysis on SVN Repository with branch folder  -  Succeeded   3. Scenarios we Tested " Analysis on SVN Repository with tag folder  -  Succeeded  

            We are yet to test for Scenarios Tags and Branch

            Karishma Punwatkar added a comment - We are yet to test for Scenarios Tags and Branch

            Karishma Punwatkar added a comment - - edited

            Tested on MTA-7.2.0-33 Build

            1. Scenarios we Tested "Analysis on SVN Repository without trunk folder" and Analysis on SVN Repository with trunk folder - Succeeded 

             

            Karishma Punwatkar added a comment - - edited Tested on MTA-7 .2.0-33 Build 1. Scenarios we Tested " Analysis on SVN Repository without trunk folder " and Analysis on SVN Repository with trunk folder - Succeeded    

            A Arnold added a comment -

            jortel - thanks very much. Doc ticket created - https://issues.redhat.com/browse/MTA-4264

             

            A Arnold added a comment - jortel - thanks very much. Doc ticket created - https://issues.redhat.com/browse/MTA-4264  

              jortel Jeff Ortel
              rromanni@redhat.com Ramon Roman Nissen
              Karishma Punwatkar Karishma Punwatkar
              Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

                Created:
                Updated:
                Resolved: