hi guys,
the symlinks causing annoying troubles on windows, since windows have no support for them. It is not something which we cannot fix or just ignore, but to my opinion, in overall, putting symlinks into multi-platfrom project tracked by source control system is bad idea.
Here the errors reported by tar (on windows) by unpacking sources, which previously were dl-ed from scm and tar-ed on linux machine:
+ tar -xzf cog.tar.gz tar: cog/macbuild/resources/OpenAL.framework/Resources: Cannot create symlink to `Versions/Current/Resources': No such file or directory tar: cog/macbuild/resources/OpenAL.framework/OpenAL: Cannot create symlink to `Versions/Current/OpenAL': No such file or directory tar: cog/macbuild/resources/OpenAL.framework/Headers: Cannot create symlink to `Versions/Current/Headers': No such file or directory tar: cog/macbuild/resources/OpenAL.framework/Versions/Current: Cannot create symlink to `A': No such file or directory tar: cog/nscogbuild/cygwinbuild/installer/onebuild: Cannot create symlink to `/Users/eliot/Newspeak/closurevm/onebuild/': No such file or directory
(the last one is fun because we know who to blame for it ;)
to my thinking, if to build things some parts cannot live without symlinks, they should be created by makefiles, or by "configure" script. But sources should be clean of symlinks, because they turning a simple tree layout into a graph (often with loops) making navigation horrifying and confusing many tools, even on unix:
find: Symbolic link `/builds/jenkins/workspace/Pinocchio/../../workspace/Cog-Unix/cog/unixbuild/third-party/alsa-lib-1.0.17a/include/alsa' is part of a loop in the directory hierarchy; we have already visited the directory to which it points. find: Symbolic link `/builds/jenkins/workspace/Pinocchio/../../workspace/Cog Git Tracker (blessed)/cog/unixbuild/third-party/alsa-lib-1.0.17a/include/alsa' is part of a loop in the directory hierarchy; we have already visited the directory to which it points. find: Symbolic link `/builds/jenkins/workspace/Pinocchio/../../workspace/StackVM-Unix/cog/unixbuild/third-party/alsa-lib-1.0.17a/include/alsa' is part of a loop in the directory hierarchy; we have already visited the directory to which it points. find: Symbolic link `/builds/jenkins/workspace/Pinocchio/../../workspace/MooseOnMoose2/cache/MooseOnMoose2/MooseOnMoose2' is part of a loop in the directory hierarchy; we have already visited the directory to which it points. find: Symbolic link `/builds/jenkins/workspace/Pinocchio/../../workspace/Nautilus Without RPackage/cache/Nautilus Without RPackage/Nautilus Without RPackage' is part of a loop in the directory hierarchy; we have already visited the directory to which it points. find: Symbolic link `/builds/jenkins/workspace/Pinocchio/../../workspace/Cog Git Tracker (cog-osx)/cog/unixbuild/third-party/alsa-lib-1.0.17a/include/alsa' is part of a loop in the directory hierarchy; we have already visited the directory to which it points.
OK, these are cleaned up. None of them was essential.
On Wed, Feb 22, 2012 at 5:32 AM, Igor Stasenko siguctua@gmail.com wrote:
hi guys,
the symlinks causing annoying troubles on windows, since windows have no support for them. It is not something which we cannot fix or just ignore, but to my opinion, in overall, putting symlinks into multi-platfrom project tracked by source control system is bad idea.
Here the errors reported by tar (on windows) by unpacking sources, which previously were dl-ed from scm and tar-ed on linux machine:
- tar -xzf cog.tar.gz
tar: cog/macbuild/resources/OpenAL.framework/Resources: Cannot create symlink to `Versions/Current/Resources': No such file or directory tar: cog/macbuild/resources/OpenAL.framework/OpenAL: Cannot create symlink to `Versions/Current/OpenAL': No such file or directory tar: cog/macbuild/resources/OpenAL.framework/Headers: Cannot create symlink to `Versions/Current/Headers': No such file or directory tar: cog/macbuild/resources/OpenAL.framework/Versions/Current: Cannot create symlink to `A': No such file or directory tar: cog/nscogbuild/cygwinbuild/installer/onebuild: Cannot create symlink to `/Users/eliot/Newspeak/closurevm/onebuild/': No such file or directory
(the last one is fun because we know who to blame for it ;)
to my thinking, if to build things some parts cannot live without symlinks, they should be created by makefiles, or by "configure" script. But sources should be clean of symlinks, because they turning a simple tree layout into a graph (often with loops) making navigation horrifying and confusing many tools, even on unix:
find: Symbolic link
`/builds/jenkins/workspace/Pinocchio/../../workspace/Cog-Unix/cog/unixbuild/third-party/alsa-lib-1.0.17a/include/alsa' is part of a loop in the directory hierarchy; we have already visited the directory to which it points. find: Symbolic link `/builds/jenkins/workspace/Pinocchio/../../workspace/Cog Git Tracker (blessed)/cog/unixbuild/third-party/alsa-lib-1.0.17a/include/alsa' is part of a loop in the directory hierarchy; we have already visited the directory to which it points. find: Symbolic link
`/builds/jenkins/workspace/Pinocchio/../../workspace/StackVM-Unix/cog/unixbuild/third-party/alsa-lib-1.0.17a/include/alsa' is part of a loop in the directory hierarchy; we have already visited the directory to which it points. find: Symbolic link
`/builds/jenkins/workspace/Pinocchio/../../workspace/MooseOnMoose2/cache/MooseOnMoose2/MooseOnMoose2' is part of a loop in the directory hierarchy; we have already visited the directory to which it points. find: Symbolic link `/builds/jenkins/workspace/Pinocchio/../../workspace/Nautilus Without RPackage/cache/Nautilus Without RPackage/Nautilus Without RPackage' is part of a loop in the directory hierarchy; we have already visited the directory to which it points. find: Symbolic link `/builds/jenkins/workspace/Pinocchio/../../workspace/Cog Git Tracker (cog-osx)/cog/unixbuild/third-party/alsa-lib-1.0.17a/include/alsa' is part of a loop in the directory hierarchy; we have already visited the directory to which it points.
-- Best regards, Igor Stasenko.
vm-dev@lists.squeakfoundation.org