2008-10-03 3 views
2

У меня есть личная вики, на которой я делаю заметки. Страницы wiki находятся в каталоге рабочей копии subversion, «pages», и я устанавливаю их разрешения на 664, которые принадлежат www-data: www-data. Мое имя пользователя находится в группе «www-data», поэтому я могу проверять и беспорядок со страниц вручную.Почему subversion chown/recreate файлы на checkin?

Некоторое время у меня была проблема, потому что каждый раз, когда я запускал чек, файлы принадлежали мне: www-data вместо www-data: www-data, и я больше не мог бы изменять файлы вики через мой веб-интерфейс! Я решил проблему, щелкнув бит setgid в каталоге «pages», но я все еще смущен, почему это произошло в первую очередь:

Каждый раз, когда я проверяю что-то в subversion, кажется, что svn удаляет он и воссоздает его. Зачем? Поддерживает ли это поведение некоторые функции, о которых я не знаю? Есть ли способ изменить его?

Спасибо!

ответ

3

Установите «липкий» бит разрешений.

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

это будет стимулировать этап создания файла Checkout, чтобы наследовать разрешения каталогов вместо перехода к человеку, которого в последний раз редактировал его.

Редактировать: dow + s == setgid. Информация оставлена ​​здесь для потомков и других читателей.

2

Я думаю, вы используете его неправильно. Что бы вы могли сделать, все еще есть все в подрывной деятельности и у вас есть локальная рабочая копия отдельно от каталога www, в котором вы работаете.

После этого просто у вас есть рабочая копия, автоматически обновляемая (или экспортированная, если вам не нужны каталоги .svn в www foldeR) для www-пользователя с помощью какого-либо скрипта (возможно, как крючок post-commit), который затем соответственно устанавливает разрешения.

поток будет работа:

  1. редактировать файлы в/дома/youruser/yourwiki-рабочая копия/
  2. делать СВН совершают
    • после совершения крючок обновляет файлы в каталоге/вар/WWW/(или там, где расположен вики)
  3. Гото 1.

Таким образом, вам не нужно беспокоиться о разрешении, и вы даже можете иметь более одного человека на веб-сайте со всеми преимуществами контроля версий.

+0

Isak, это сработает, но проблема в том, что моя рабочая копия IS my/var/www! Когда я обращаюсь к файлам через http: // localhost/wiki, он просматривает файлы в/var/www и редактирует их. – 2008-10-07 19:23:03