为什么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。此处留给后代和其他读者的信息。