为什么Subversion在签入时加重/重新创建文件?
时间:2020-03-06 15:05:31 来源:igfitidea点击:
我有一个个人Wiki,我在上面做笔记。 Wiki的页面位于Subversion工作副本目录"页面"中,我将其权限设置为664,由www-data:www-data拥有。我的用户名位于" www-data"组中,因此我可以手动检入并弄乱页面。
有一段时间,我遇到了一个问题,因为每次运行签入时,文件将归我所有:www-data而不是www-data:www-data,并且我将无法再通过我的网页界面!我通过翻转"页面"目录中的setgid位解决了该问题,但是我仍然对为什么首先发生这种情况感到困惑:
每次我将某项检查到subversion中时,似乎svn将其删除并重新创建。为什么?这种行为是否支持我不知道的某些功能?有办法改变吗?
谢谢!
解决方案
我认为我们使用的是错误的。我们可以做的仍然是将所有内容都保留在subversion中,并将本地工作副本与开发所依据的www目录分开。
然后只需使用某些脚本(可能是提交后的钩子)自动为www用户更新www工作副本(如果我们不希望www foldeR中的.svn目录,则可以导出)因此。
工作流程为:
- 编辑/ home / youruser / yourwiki-working-copy /中的文件
- 转到1.
这样,我们不必担心权限,甚至可以让一个以上的人在网站上工作,从而获得版本控制的所有好处。
设置"粘性"权限位。
find -type d -exec chgrp www-data {} + find -type d -exec chmod g+s {} +
这将鼓励checkout的文件创建阶段继承目录权限,而不是切换到最后编辑它的人。
编辑:dow + s == setgid。此处留给后代和其他读者的信息。