如何在存储库中存储文件权限?一些文件需要是只读的,以阻止第三方程序废弃它,但在退出存储库后,它们被设置为读写.
我查看谷歌并发现2005年的一篇博客文章说Subversion不存储文件权限.列出了补丁和钩子脚本(只有一个URL仍然存在).三年之后,Subversion仍然没有存储文件权限,并且挂钩是解决这个问题的唯一方法吗?(我从来没有做过钩子,而是使用Subversion原生的东西.)
SVN确实具有存储元数据(属性)和文件的功能.属性基本上只是键/值对,但是有一些特殊的键,如'svn:executable',如果文件存在此属性,Subversion将在检出文件时为该文件设置文件系统的可执行位.虽然我知道这不是你想要的,但它可能就足够了(对我而言).
行结尾(svn:eol-style)和mime类型(svn:mime-type)还有其他属性.
在SVN中没有存储文件权限的本机方式.
无论asvn和补丁从博客文章似乎是向上(并托管在官方SVN仓库),这是一个很好的事情,但我不认为他们会有任何时间很快在核心版本处理这种元数据.
SVN有能力专门处理符号链接和可执行文件很长一段时间,但在Win32上都无法正常工作.我不会屏住另一个这样的非便携式功能(尽管在现有的元数据系统之上实现它并不会太难.)
我会考虑编写一个shell脚本来手动调整文件权限,然后将其放入存储库中.
一种可能的解决方案是编写一个脚本,用您的其余代码签入,并作为构建过程的第一步运行.
此脚本将运行您的代码库副本,并设置对某些文件的读取权限.
理想情况下,脚本将从简单的输入文件中读取文件列表.这将使其易于维护并且易于其他开发人员理解哪些文件被标记为只读.