3

我们的设置:
我们混合使用 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 符号链接的转换吗?

4

1 回答 1

1

我建议进入 VBScript 和 Windows Script Host。比如说,我有一个名为的文件C:\Temp\Hello.txt,我想创建一个链接C:\Temp\Sample。我将创建一个脚本,命名MakeSample.vbs如下:

Set WshShell = CreateObject("Wscript.shell")
Set oMyShortcut = WshShell.CreateShortcut("C:\Temp\Sample2.lnk")
oMyShortcut.WindowStyle = 3
oMyShortcut.TargetPath = "C:\Temp\Hello.txt"
oMyShortCut.Save

在 VBScript 中读取 LINK 文件很简单,例如:

Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile("C:\Temp\linkfile.")
txt = f.ReadAll
f.Close
MsgBox txt

我认为使用上述内容作为起点来破解一些东西应该相对简单。

于 2014-08-19T13:42:12.000 回答