【发布时间】:2025-12-11 05:15:02
【问题描述】:
我们的设置:
我们使用混合的 Windows XP 和 Windows 7 机器进行开发,以及一些保存我们的 Subversion (SVN) 存储库并托管我们的网站的 unix 服务器。
我们的网站存储在 SVN 存储库中,因此当需要对网站进行更改时,我们会将 SVN 的工作副本检出到我们的 Windows 机器上。完成所有更改后,我们将工作副本提交回 SVN 存储库,然后一个 bash 脚本将存储库的头部部署到网络服务器。 (相当标准的东西)
我的问题:
该网站使用(unix)符号链接(无法替换)。因此,检查它并从 unix 服务器提交工作正常,符号链接仍然存在。但是由于我们使用的是 Windows 开发机器,SVN 不会自动将它们的符号链接表示转换为 Windows/NTFS 符号链接,即使它们受支持(我们的 Windows XP 机器已安装相关驱动程序)。
SVN 符号链接是没有扩展名的文件,其中包含:
link /path/link/was/pointing/to
我的问题:
我不精通批处理脚本(用于 unix bash 脚本)。
任何关于如何在批处理脚本中将 SVN 的文本符号链接最好地转换为有效的 Windows/NTFS 符号链接的指导都会很受欢迎。
如果我将 Windows 符号链接提交到 SVN 存储库会发生什么?
我需要第二个脚本来将 Windows 符号链接转换回 SVN 文本链接吗?
后者会破坏 Unix 端 SVN 文本链接到 Unix 符号链接的转换吗?
【问题讨论】:
-
Windows 符号链接的工作方式与 Unix 不同。此外,您不能以任何简单的方式从命令行在 Windows 中创建符号链接,而且考虑到这些文件是由 Windows 自动编译的,我从未听说过任何脚本方面的东西。正因为如此,您无法真正进行相反的转换,因为脚本语言通常不支持二进制数据。
-
您当然可以在 Windows Vista 和更早版本中创建符号链接,只使用命令行和内置命令。 Windows XP 需要单独的(小)下载,并且只提供等效的硬链接。见Complete Guide to Symbolic Links on Windows
标签: windows svn unix batch-file symlink