Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-21168

Git core.symlinks option not correctly auto-detected on Windows


    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major Major
    • git-plugin
    • None
    • Jenkins 1.509.4 running on Windows Server 2008 R2 64-bit, Git Client Plugin 1.6.0, Git Plugin 2.0

      There seems to be a problem related to the core.symlinks config option. Usually, if core.symlinks is not set (the default), Git will probe the target file system for symlinks support when cloning (see [1]). As Windows does not support symlinks in the POSIX sense, Git for Windows internally uses core.symlinks=false if that option is otherwise unset. However, relying on this results in this error for me (see [2]):

      Cloning the remote Git repository
      Cloning repository git://github.com/sschuberth/git.git
      Fetching upstream changes from git://github.com/sschuberth/git.git
      Checking out Revision 21d457224673682f2879170c504750db98638d2e (origin/master)
      FATAL: Could not checkout null with start point 21d457224673682f2879170c504750db98638d2e
      hudson.plugins.git.GitException: Could not checkout null with start point 21d457224673682f2879170c504750db98638d2e
      	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.checkoutBranch(CliGitAPIImpl.java:1222)
      	at hudson.plugins.git.GitSCM.checkout(GitSCM.java:870)
      	at org.jenkinsci.plugins.multiplescms.MultiSCM.checkout(MultiSCM.java:117)
      	at hudson.model.AbstractProject.checkout(AbstractProject.java:1376)
      	at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:655)
      	at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88)
      	at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:560)
      	at hudson.model.Run.execute(Run.java:1592)
      	at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
      	at hudson.model.ResourceController.execute(ResourceController.java:88)
      	at hudson.model.Executor.run(Executor.java:237)
      Caused by: hudson.plugins.git.GitException: Command "git checkout -f 21d457224673682f2879170c504750db98638d2e" returned status code 1:
      stderr: error: unable to create symlink RelNotes (Function not implemented)
      Note: checking out '21d457224673682f2879170c504750db98638d2e'.

      Directly using Git from the command line on the server works fine to clone the repository, I do not get any errors about being unable to create symlinks then.

      The error in Jenkins disappears when I explicitly do "git config --system core.symlinks false" on the build server (see [3]).

      [1] http://stackoverflow.com/a/11664406/1127485
      [2] http://mingwgitdevenv.cloudapp.net/job/mingwGitDevEnv-test-git/32/console
      [3] http://mingwgitdevenv.cloudapp.net/job/mingwGitDevEnv-test-git/33/consoleFull

            markewaite Mark Waite
            sschuberth Sebastian Schuberth
            0 Vote for this issue
            3 Start watching this issue