2008-10-03 47 views
2

我有一个我记录的个人wiki。 wiki的页面位于Subversion的工作副本目录“pages”中,我将它们的权限设置为664,由www-data:www-data所有。我的用户名在“www-data”组中,因此我可以手动签入并弄乱页面。为什么Subversion在登入时chown /重新创建文件?

有一段时间,我遇到了一个问题,因为每次运行签入时,这些文件都归我所有:www-data而不是www-data:www-data,我将不能再更改维基文件通过我的网络界面!我通过翻转“pages”目录中的setgid位解决了这个问题,但我仍然困惑于为什么发生在第一位:

每次我在subversion中检查一些东西时,看起来好像svn删除它并重新创建它。为什么?此行为是否支持我不知道的某些功能?有没有办法改变它?

谢谢!

回答

3

设置“粘性”权限位。

find -type d -exec chgrp www-data {} + 
find -type d -exec chmod g+s {} + 

这将鼓励签出的文件创建阶段继承目录权限,而不是切换到最后编辑它的人。

编辑:dow + s == setgid。这里留给后人和其他读者的信息。

2

我想你错了。你可以做的事情仍然是在颠覆中的一切,并让你的本地工作副本与你开发的www目录分开。

然后只需通过一些脚本(也许作为post-commit钩子)将www工作拷贝自动更新(或者在不需要www foldeR中的.svn目录的情况下导出)相应地设置权限。

工作流程是:在/ home

  1. 编辑文件/ youruser/yourwiki-工作拷贝/
  2. 做SVN提交
    • post-commit钩子更新在/ var文件/网络/(或任何维基位于)
  3. 转到1.

这样,您不必担心权限,甚至可以让多个人在网站上工作,并享受版本控制的所有好处。

+0

Isak,这将工作,但这里的问题是,我的工作副本是我的/ var/www!当我通过http:// localhost/wiki访问文件时,它正在查看/ var/www中的文件并编辑它们。 – 2008-10-07 19:23:03

相关问题