You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Michael Osipov (JIRA)" <ji...@apache.org> on 2018/06/03 21:04:00 UTC

[jira] [Assigned] (WAGON-497) ScmWagon#put() strips parent dirs from the target path if they already exist in SCM

     [ https://issues.apache.org/jira/browse/WAGON-497?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Michael Osipov reassigned WAGON-497:
------------------------------------

    Assignee: Michael Osipov

> ScmWagon#put() strips parent dirs from the target path if they already exist in SCM
> -----------------------------------------------------------------------------------
>
>                 Key: WAGON-497
>                 URL: https://issues.apache.org/jira/browse/WAGON-497
>             Project: Maven Wagon
>          Issue Type: Bug
>          Components: wagon-scm
>    Affects Versions: 3.0.0, 3.1.0
>            Reporter: Ilya Basin
>            Assignee: Michael Osipov
>            Priority: Major
>             Fix For: 3.1.0
>
>
> Here're the symptoms of the bug:
>  ScmCvsExeWagonTest.testWagonGetFileList() wants to checkin multiple files into "/file-list/".
>  When the test repo is fresh, only the first file is checked in correctly. All other files are checked into the repo root.
> Reason (and why it works fine with SVN):
> In ScmWagon.checkOut() targetName is split to existing parth an non-existing part.
> in case of svn:
>  - checks out repoUrl + existingPart
>  - mkdirs missingPart
>  - return missingPart
> the caller copies the new file into coDir/ + missingPart/
> on second put() all dirs exist
>  - checks out repoUrl + allPart
>  - return empty string
> the caller copies the new file into coDir/
>  in case of cvs (on second put()):
>  - checks out repoUrl WITHOUT allPart
>  - returns empty string
>  the caller copies the new file into coDir/
> My current goal is to re-enable ScmCvsExeWagonTest. There are numerous bugs in wagon-scm and fixing just one is not enough to run even a single test case.
> However, the proposed pull request will let you reach the point in [WagonTestCase#testWagonGetFileList()|https://github.com/apache/maven-wagon/blob/be94400731575f54ff537ec90359460f42a561cc/wagon-provider-test/src/main/java/org/apache/maven/wagon/WagonTestCase.java#L741] when all test files are checked in correctly.
> UPD: The test case "testWagon" which could reveal that is disabled by mistake: it runs only if supportsGetIfNewer(), but we don't call getIfNewer() there.
> UPD2: the cvs rls command is not widely supported, but ScmWagon cannot checkout when list() unsupported: it throws "Failed to create directory ", although the directory already exists.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)