我有一个受版本控制的网站项目,它依赖于通过符号链接来自同一服务器上未版本控制目录的文件。
我目前将符号链接存储在存储库中。这样做的目的是,如果有人将工作副本签出到同一台服务器上,他们可以在将项目的工作副本提交回存储库之前对其进行编辑和测试。
当他们检出他们的工作副本时,它成功设置了符号链接,以便整个站点在测试时可以正常工作。
参与该项目的用户是 Windows 用户,因此我在服务器上设置了 Samba 共享,然后将其映射到 Windows 中的网络驱动器。人们可以通过网络共享直接在服务器上编辑他们的工作副本,然后在 Web 浏览器中测试它们,然后通过 TortoiseSVN 将他们的更改提交回存储库。
问题
我遇到的问题是,Samba 按预期解析了符号链接,但是当用户尝试将其更改提交回存储库时,TortoiseSVN 认为链接的文件是项目的一部分,并尝试将目标文件提交到存储库,而不是符号链接本身。
我尝试关闭 samba 中的符号链接支持,这意味着无法解析链接文件,因为我真的不希望人们访问链接文件,也不想将链接文件导入存储库。问题是,我得到了“无法统计‘\webserver\projects\working\project\symlinked_file.php’。访问被拒绝”
除了符号链接问题之外,其他一切都 100% 完美。用户可以将网站项目签出到他们的机器上并对其进行处理(但无法测试),也可以将它们签出到他们在开发 Web 服务器上的空间并对其进行处理和全面测试。所以我不想改变工作流程,我只是需要一个解决符号链接问题的解决方案。
非常感谢。
最初发布在 StackOverflow 上: https://stackoverflow.com/questions/2400917/svn-samba-and-symbolic-links-how-to-get-them-all-to-play-together
答案1
我有一个类似的设置,但我选择不包含 svn 中的符号链接。
相反,我编写了一个脚本,它在结账后简单地创建符号链接。
德国。