Skip to content

[JENKINS-3949] Subversion checkouts creates files for symlinks #579

Closed

Description

@jenkins-infra-bot

The check out of project containing checked in symlinks creates a workspace
with files instead of symlinks. E.g., creating a repository containing
the elements:

$ svn co file://$PWD/test/trunk/data
A data/file.link
A data/file.txt
Checked out revision 3.
$ ls -l data
total 12
lrwxrwxrwx 1 mrohan mrohan 8 Jun 28 17:55 file.link -> file.txt
rw-rw-r- 1 mrohan mrohan 16 Jun 28 17:55 file.txt

Within Hudson, the workspace contains the elements:

$ ls -l data
total 16
rw-rw-r- 1 hudson hudson 13 Jun 28 17:53 file.link
rw-rw-r- 1 hudson hudson 16 Jun 28 17:53 file.txt
$ cat data/file.link
link file.txt

There is no newline in the file created.


Originally reported by mkrohan, imported from: Subversion checkouts creates files for symlinks
  • status: Closed
  • priority: Critical
  • component(s): subversion-plugin
  • resolution: Fixed
  • resolved: 2009-07-06T08:14:54+00:00
  • votes: 0
  • watchers: 4
  • imported: 20251212-090250
Raw content of original issue

The check out of project containing checked in symlinks creates a workspace with files instead of symlinks. E.g., creating a repository containing the elements:

$ svn co file://$PWD/test/trunk/data A data/file.link A data/file.txt Checked out revision 3. $ ls -l data total 12 lrwxrwxrwx 1 mrohan mrohan 8 Jun 28 17:55 file.link -> file.txt rw-rw-r- 1 mrohan mrohan 16 Jun 28 17:55 file.txt

Within Hudson, the workspace contains the elements:

$ ls -l data total 16 rw-rw-r- 1 hudson hudson 13 Jun 28 17:53 file.link rw-rw-r- 1 hudson hudson 16 Jun 28 17:53 file.txt $ cat data/file.link link file.txt

There is no newline in the file created.

  • environment: Platform: All, OS: Linux
4 attachments

Activity

  1. jenkins-infra-bot commented on Jun 30, 2009

    @jenkins-infra-bot
    Author
    abarbieri:
    • Original comment link
    • Raw content of original comment:

      Hudson v1.313 (latest to-day) contains the Subversion plugin which in turns uses SVNKit 1.3.0 and this in turns supports SVN 1.6.x and hence SVN externals pointing to files as well as directories.

    Hudson v1.313 (latest to-day) contains the Subversion plugin which in turns uses
    SVNKit 1.3.0 and this in turns supports SVN 1.6.x and hence SVN externals
    pointing to files as well as directories.

  2. jenkins-infra-bot commented on Jun 30, 2009

    @jenkins-infra-bot
    Author
    abarbieri:
    • Original comment link
    • Raw content of original comment:

      duplicate of Issue 3673 as well, I think...

    duplicate of Issue 3673 as well, I think...

  3. jenkins-infra-bot commented on Jun 30, 2009

    @jenkins-infra-bot
    Author
    mkrohan:
    • Original comment link
    • Raw content of original comment:

      This issue is not related to Subversion externals. The underlying problem is with Unix symbolic links checked into Subversion. Upto version 1.310, Hudson correctly created symbolic links on checking out from Subversion. Starting with version 1.311, it now creates files instead.

      From your comments, I suspect you work primarily on Windows. The following "how to repeat" requires Unix (e.g., Linux). I'm using my home directory in the following commands (/home/mrohan), substitute where appropriate:

      1) Create a Subversion repository: $ svnadmin create /home/mrohan/repos

      2) Create a directory in Subversion: $ svn mkdir -mExample file:///home/mrohan/repos/xmpl

      Committed revision 1.

      3) Checkout the directory: $ svn co file:///home/mrohan/repos/xmpl Checked out revision 1.

      4) Populate with a file and symbolic link and check in: $ cd xmpl $ echo "This is a file" > file.txt $ ln -s file.txt file.link $ ls -l total 4 lrwxrwxrwx 1 mrohan mrohan 8 2009-06-30 09:32 file.link -> file.txt rw-rw-r- 1 mrohan mrohan 15 2009-06-30 09:32 file.txt $ svn add * A file.link A file.txt $ svn commit -mExample Adding file.link Adding file.txt Transmitting file data .. Committed revision 2.

      5) Start Hudson and define a job "Symlink Test" with 5.1) Source Code in Subversion: Repository: file:///home/mrohan/repos/xmpl Local module: xmpl 5.2) Add an "Execute shell" build step containing ls -l ls -l xmpl

      6) Run this job under v1.310 and v1.311, v1.312 or v1.312.

      The output for v1.310 shows a symlink in the workspace. The output for any later version show a file of 13 bytes. I'll attach my output.

      This is probably a bug in SVNKit but it is a regression for Hudson.

    This issue is not related to Subversion externals. The underlying problem is
    with Unix symbolic links checked into Subversion. Upto version 1.310, Hudson
    correctly created symbolic links on checking out from Subversion. Starting
    with version 1.311, it now creates files instead.

    From your comments, I suspect you work primarily on Windows. The following
    "how to repeat" requires Unix (e.g., Linux). I'm using my home directory in
    the following commands (/home/mrohan), substitute where appropriate:

    1) Create a Subversion repository:
    $ svnadmin create /home/mrohan/repos

    2) Create a directory in Subversion:
    $ svn mkdir -mExample file:///home/mrohan/repos/xmpl

    Committed revision 1.

    3) Checkout the directory:
    $ svn co file:///home/mrohan/repos/xmpl
    Checked out revision 1.

    4) Populate with a file and symbolic link and check in:
    $ cd xmpl
    $ echo "This is a file" > file.txt
    $ ln -s file.txt file.link
    $ ls -l
    total 4
    lrwxrwxrwx 1 mrohan mrohan 8 2009-06-30 09:32 file.link -> file.txt
    rw-rw-r- 1 mrohan mrohan 15 2009-06-30 09:32 file.txt
    $ svn add *
    A file.link
    A file.txt
    $ svn commit -mExample
    Adding file.link
    Adding file.txt
    Transmitting file data ..
    Committed revision 2.

    5) Start Hudson and define a job "Symlink Test" with
    5.1) Source Code in Subversion:
    Repository: file:///home/mrohan/repos/xmpl
    Local module: xmpl
    5.2) Add an "Execute shell" build step containing
    ls -l
    ls -l xmpl

    6) Run this job under v1.310 and v1.311, v1.312 or v1.312.

    The output for v1.310 shows a symlink in the workspace. The output
    for any later version show a file of 13 bytes. I'll attach my output.

    This is probably a bug in SVNKit but it is a regression for Hudson.

  4. jenkins-infra-bot commented on Jun 30, 2009

    @jenkins-infra-bot
    Author
    mkrohan:
    • Original comment link
    • Raw content of original comment:

      Created an attachment (id=760) Subversion check-out listing for v1.310

    Created an attachment (id=760)
    Subversion check-out listing for v1.310

  5. jenkins-infra-bot commented on Jun 30, 2009

    @jenkins-infra-bot
    Author
    mkrohan:
    • Original comment link
    • Raw content of original comment:

      Created an attachment (id=761) Subversion check-out listing for v1.311

    Created an attachment (id=761)
    Subversion check-out listing for v1.311

  6. jenkins-infra-bot commented on Jun 30, 2009

    @jenkins-infra-bot
    Author
    mkrohan:
    • Original comment link
    • Raw content of original comment:

      Downloaded SVNKit 1.3.0.5847, made the example repository available via http (not sure what the exact file: syntax is on Windows). jsvn successfully checks out and creates a symlink on Unix. On Windows, since symlinks are not supported on this platform, it instead creates a file containing "link file.txt" (13 bytes).

      It appears Hudson might be configuring SVNKit for Windows on Unix systems.

      jsvn on Unix: $ jsvn co http://10.20.96.133/repos/xmpl A xmpl/file.link A xmpl/file.txt Checked out revision 2. $ ls -l xmpl total 4 lrwxrwxrwx 1 mrohan mrohan 8 Jun 30 14:26 file.link -> file.txt rw-rw-r- 1 mrohan mrohan 15 Jun 30 14:26 file.txt

      jsvn on Windows: C:\mrohan\svnkit>jsvn co http://10.20.96.133/repos/xmpl A xmpl\file.link A xmpl\file.txt Checked out revision 2.

      C:\mrohan\svnkit>dir xmpl Volume in drive C is MROHAN-DEV3 Volume Serial Number is 707B-3181

      Directory of C:\mrohan\svnkit\xmpl

      30-Jun-09 14:26 <DIR> . 30-Jun-09 14:26 <DIR> .. 30-Jun-09 14:26 13 file.link 30-Jun-09 14:26 15 file.txt 2 File(s) 28 bytes 2 Dir(s) 14,278,062,080 bytes free

      C:\mrohan\svnkit>type xmpl\file.link link file.txt

    Downloaded SVNKit 1.3.0.5847, made the example repository available via
    http (not sure what the exact file: syntax is on Windows). jsvn successfully
    checks out and creates a symlink on Unix. On Windows, since symlinks are
    not supported on this platform, it instead creates a file containing
    "link file.txt" (13 bytes).

    It appears Hudson might be configuring SVNKit for Windows on Unix systems.

    jsvn on Unix:
    $ jsvn co http://10.20.96.133/repos/xmpl
    A xmpl/file.link
    A xmpl/file.txt
    Checked out revision 2.
    $ ls -l xmpl
    total 4
    lrwxrwxrwx 1 mrohan mrohan 8 Jun 30 14:26 file.link -> file.txt
    rw-rw-r- 1 mrohan mrohan 15 Jun 30 14:26 file.txt

    jsvn on Windows:
    C:\mrohan\svnkit>jsvn co http://10.20.96.133/repos/xmpl
    A xmpl\file.link
    A xmpl\file.txt
    Checked out revision 2.

    C:\mrohan\svnkit>dir xmpl
    Volume in drive C is MROHAN-DEV3
    Volume Serial Number is 707B-3181

    Directory of C:\mrohan\svnkit\xmpl

    30-Jun-09 14:26

    .
    30-Jun-09 14:26 ..
    30-Jun-09 14:2613 file.link
    30-Jun-09 14:2615 file.txt
    2 File(s) 28 bytes
    2 Dir(s) 14,278,062,080 bytes free

    C:\mrohan\svnkit>type xmpl\file.link
    link file.txt

  7. jenkins-infra-bot commented on Jul 1, 2009

    @jenkins-infra-bot
    Author
    mkrohan:
    • Original comment link
    • Raw content of original comment:

      This is a Unix (Linux) specific issue.

    This is a Unix (Linux) specific issue.

  8. jenkins-infra-bot commented on Jul 2, 2009

    @jenkins-infra-bot
    Author
    akosmaroy:
    • Original comment link
    • Raw content of original comment:

      is there a workaround for this issue, until it is fixed?

    is there a workaround for this issue, until it is fixed?

  9. jenkins-infra-bot commented on Jul 2, 2009

    @jenkins-infra-bot
    Author
    mkrohan:
    • Original comment link
    • Raw content of original comment:

      I have not been able to find a workaround. I simply reverted my instance back to v1.309 (don't update to every version).

    I have not been able to find a workaround. I simply reverted my instance back
    to v1.309 (don't update to every version).

  10. jenkins-infra-bot commented on Jul 2, 2009

    @jenkins-infra-bot
    Author
    akosmaroy:
    • Original comment link
    • Raw content of original comment:

      oh, it works in 1.309 - excellent...

    oh, it works in 1.309 - excellent...

  11. jenkins-infra-bot commented on Jul 2, 2009

    @jenkins-infra-bot
    Author
    mkrohan:
    • Original comment link
    • Raw content of original comment:

      It works up v1.310 and fails starting with v1.311

    It works up v1.310 and fails starting with v1.311

  12. jenkins-infra-bot commented on Jul 2, 2009

    @jenkins-infra-bot
    Author
    thoth39:
    • Original comment link
    • Raw content of original comment:

      This bug is blocking deployment of Hudson on my project. Please raise it's priority.

    This bug is blocking deployment of Hudson on my project.
    Please raise it's priority.

  13. jenkins-infra-bot commented on Jul 2, 2009

    @jenkins-infra-bot
    Author
    smworley:
    • Original comment link
    • Raw content of original comment:

      I would also like to see this fixed ...

      As it stands, I am able to work around this issue by

      • manually removing the work area (jobs/<project>/workspace/trunk)
      • manually checking out a new trunk (svn co http://.. ../trunk)
      • updating my <project> configuration to USE UPDATE
      • Under "Subversion", select "Use Update" and save

      From this I am able to release using the Hudson Maven Release Plugin. It would appear that the plug-in is not directly impacted by this change ..??.. E.g. It creates a new "checkout" directory under target which has working symlinks.

    I would also like to see this fixed ...

    As it stands, I am able to work around this issue by

    • manually removing the work area (jobs//workspace/trunk)
    • manually checking out a new trunk (svn co http://.. ../trunk)
    • updating my configuration to USE UPDATE
    • Under "Subversion", select "Use Update" and save

    From this I am able to release using the Hudson Maven Release Plugin. It would
    appear that the plug-in is not directly impacted by this change ..??.. E.g. It
    creates a new "checkout" directory under target which has working symlinks.

  14. jenkins-infra-bot commented on Jul 2, 2009

    @jenkins-infra-bot
    Author
    mkrohan:
    • Original comment link
    • Raw content of original comment:

      Issue #3968 appears to be a duplicate of this issue.

    Issue #3968 appears to be a duplicate of this issue.

  15. jenkins-infra-bot commented on Jul 3, 2009

    @jenkins-infra-bot
    Author
    mindless:
    • Original comment link
    • Raw content of original comment:
          • Issue 3968 has been marked as a duplicate of this issue. ***
        • Issue 3968 has been marked as a duplicate of this issue. ***
  16. 7 remaining items

  17. jenkins-infra-bot commented on Jul 5, 2009

    @jenkins-infra-bot
    Author
    mkrohan:
    • Original comment link
    • Raw content of original comment:

      Created an attachment (id=770) SVNKit log file with -Dsvnkit.symlinks=true on cmd line

    Created an attachment (id=770)
    SVNKit log file with -Dsvnkit.symlinks=true on cmd line

  18. jenkins-infra-bot commented on Jul 6, 2009

    @jenkins-infra-bot
    Author
    dodok1:
    • Original comment link
    • Raw content of original comment:

      I wuold like to point out that there is simple test case in SubversionSCMTest::testSymbolicLinkCheckout() to check this problem.

      I think that this problem has something to do with JNA.

    I wuold like to point out that there is simple test case in
    SubversionSCMTest::testSymbolicLinkCheckout() to check this problem.

    I think that this problem has something to do with JNA.

  19. jenkins-infra-bot commented on Jul 6, 2009

    @jenkins-infra-bot
    Author
    dodok1:
    • Original comment link
    • Raw content of original comment:

      After correcting my test case , I approve that solution is to remove those lines setting svnkit.symlinks to true. The issue with slow checkouts was solved in svnkit 1.3.0 using JNA.

      As soon as I will test in on the real deployment, I will commit that change.

    After correcting my test case , I approve that solution is to remove those
    lines setting svnkit.symlinks to true.
    The issue with slow checkouts was solved in svnkit 1.3.0 using JNA.

    As soon as I will test in on the real deployment, I will commit that change.

  20. jenkins-infra-bot commented on Jul 6, 2009

    @jenkins-infra-bot
    Author
    dodok1:
    • Original comment link
    • Raw content of original comment:

      solved in trunk, removed obsolete workaround

    solved in trunk, removed obsolete workaround

  21. jenkins-infra-bot commented on Jun 4, 2014

    @jenkins-infra-bot
    Author
    tommythekid:

    If anyone else thinks they are being bit by this very old bug, please check to see if you are actually affected by https://issues.jenkins-ci.org/browse/JENKINS-14217 ... which is what was getting us.

    ~tommy

  22. jenkins-infra-bot commented on Dec 12, 2025

    @jenkins-infra-bot
    Author

    [Original is_duplicated_by from Jira: JENKINS-3968]

  23. jenkins-infra-bot commented on Dec 12, 2025

    @jenkins-infra-bot
    Author

    [Original is_duplicated_by from Jira: JENKINS-3904]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions