想问一下各位是怎么让 SVN 或者 GIT 保留 Linux 文件权限的。
背景:
十一期间帮朋友解决一个问题,他们的知识库是用 WordPress 搭建的(which is a stupid choice),历史原因没有用 Wiki ,中间还间断自己根据需求开发了一些插件,自己重新修改过主题,总之各种更改。现在他们想把这个知识库开放给合作伙伴使用,而且对其进行更进一步的开发,部分合作伙伴会参见进来协同开发。
以前他们对这个 WP 系统预想的比较简单,就是一个纯粹的知识存档和检索的系统,一直是单人开发,当初也没怎么重视,都是怎么简单怎么来,没有进行过版本控制和配置管理,最多也就简单进行备份。开发的流程也很简单:开发者自己在虚拟机的 Ubunutu 8.04 里面修改 -> tar 包 + .SQL 文件 -> Ubuntu 8.04 服务器部署,这个过程由于 tar 包能够完整的权限,基本上没有问题。
现在他们想把开发人员增加到 3 人。十一期间他们尝试了用 SVN 进行版本管理,将当前 Ubuntu 8.04 服务器上运行的版本用 tar 打包并导出了.SQL 文件作为后续开发的基线,个人负责开发各自功能模块,然后提交到 SVN 服务器,最后从 SVN export 出来放回到 Ubuntu 8.04 服务器上部署。
现在的问题是:在用 SVN 管理的过程中,发现 SVN 不能够保留 Ubuntu 下文件和文件夹权限。我做了个简单的实验,从基线中恢复到本地虚拟机里面的某个文件夹原来的权限是 744 ,将权限变更为 766 ,然后导出再 Commit 到 SVN 服务器的时候, SVN 提示没有任何 update 。