我们的设置:
我们使用混合的Windows XP和Windows 7机器进行开发,以及一些unix服务器,它们拥有我们的Subversion(SVN)存储库并托管我们的网站。
我们的网站存储在SVN仓库中,因此当需要对网站进行更改时,我们会将SVN的工作副本签出到我们的Windows机器上。完成所有更改后,我们将工作副本提交回SVN repo,并且bash脚本将repo的头部部署到Web服务器。 (相当标准的东西)
我的问题:
该网站使用(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符号链接转换吗?
答案 0 :(得分: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
我认为使用上述内容作为起点来破解某些内容应该相对简单。