Uploaded image for project: 'Maven SCM'
  1. Maven SCM
  2. SCM-481

cygwin SVN does not understand the target file generated by SvnCommandLineUtils.addTarget()

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Won't Fix
    • Affects Version/s: 1.2
    • Fix Version/s: None
    • Component/s: maven-scm-provider-svn
    • Labels:
      None
    • Environment:
      Windows Vista
      CYGWIN_NT-6.0 novaordis 1.5.25(0.156/4/2) 2008-06-12 19:34 i686 Cygwin
      svn, version 1.5.4 (r33841)



    • Flags:
      Patch

      Description

      SCM 1.2 generates a SVN target file (--targets c:\Users\ovidiu\AppData\Local\Temp\maven-scm-xxxxx-targets) that contains Windows absolute paths ("c:/work/playground/maven/release-plugin-experiments/pom.xml").

      cygwin SVN fails to understand it:

      [INFO] Unable to commit files
      Provider message:
      The svn command failed.
      Command output:
      svn:
      '/cygdrive/c/work/playground/maven/release-plugin-experiments/C:' is
      not a working copy
      svn: Can't open file
      '/cygdrive/c/work/playground/maven/release-plugin-experiments/C:/.svn/entries':
      No such file or directory

      Configuring Maven to use <useCygwinPath>true</useCygwinPath> as advised in http://maven.apache.org/scm/subversion.html has no effect. Even if SvnCommandLineUtils.addTarget() did use the flag and did generate a cygwin-compliant path, SVN would also fail with:

      [INFO] Unable to commit files
      Provider message:
      The svn command failed.
      Command output:
      svn: '/cygdrive' is not a working copy
      svn: Can't open file '/cygdrive/.svn/entries': No such file or directory

      Solution 1: modify SvnCommandLineUtils.addTarget()'s signature to receive the working directory, and method's behavior to extract relative paths and write relative paths in the --target file.

      Patch attached.

      If Maven development team intends to apply the patch, I will also write extra test cases. All current tests pass.

      Solution 2: A better solution would be to actually patch org.apache.maven.scm.ScmFileSet to maintain relative paths, as its contract advertises. It currently doesn't. If ScmFileSet is fixed to maintain correct state, then Solution 1 would be rendered obsolete.

      I am also willing to implement a fix for Solution 2, if it is validated by the Maven development team.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                ovidiu ovidiu
              • Votes:
                7 Vote for this issue
                Watchers:
                7 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: