假设我在 SVN 管理路径内创建一个符号链接文件,将该路径提交给 SVN,然后检出该路径。
符号链接文件会存活下来吗?
如果符号链接文件由相对路径组成,那么在完成签出后它是否可以“在任何地方”起作用?
有什么问题吗?
答案1
一般来说,是的。
但是,有些客户端无法正确处理符号链接。Eclipse IDE 的 Subclipse 创建目录而不是符号链接。
因此,最好在开始开发之前确保您的客户能够正确地执行此操作。
答案2
符号链接可以进行版本控制。
Unix 用户可以将符号链接置于版本控制之下。链接在 Unix 工作副本中重新创建,但在 win32 工作副本中不会重新创建。
是的
只要权限没有改变,就应该如此。
不适用于 Windows 结账。
答案3
符号链接无法在 Windows 计算机上保留,这可能是一个问题。
在 Windows 计算机上,符号链接采用占位符文件*的形式,例如:
style.css
:
链接../www_public/styles.css
*):这些文件具有“ svn:special
”属性,其值为“*
“。
有时我必须先将内容导出到 Windows 机器,然后才能将项目移动/上传到其目标服务器。
我使用了一个小型 shell 脚本,它可以很好地从占位符文件重新创建实际的符号链接:
#!/bin/sh
grep -lr '^link ' . | while read placeholderfile
do
linecount=`wc -l $placeholderfile | cut -c1`
if [ $linecount -eq 0 ] ; then
linkfile=`cut -c6- "$placeholderfile"`
ln -sf "$linkfile" "$placeholderfile"
echo -e "[\E[32;40mOK\E[37;40m] Replaced $placeholderfile with symlink"
else
echo -e "[\E[31;40mWARNING\E[37;40m] $placeholderfile contains newline(s)"
fi
tput sgr0
done
该脚本假设所有以字符串“ link
”开头且不包含换行符的文件都是符号链接。
答案4
NTFS 从一开始就支持符号链接 - 这是 NT 的 POSIX 子系统的遗产。因此您可以创建符号链接。但 Windows 作为操作系统只能从 Win 7 开始识别符号链接。而且它们受到限制 - 按照默认策略,普通用户无法使用 MKLINK 创建符号链接。