Почему subversion восстанавливает файлы при регистрации?
-
03-07-2019 - |
Вопрос
У меня есть личная вики-страница, в которой я делаю заметки.Страницы wiki находятся в каталоге рабочей копии subversion "pages", и я установил для них разрешения 664, принадлежащие www-data:www-data.Мое имя пользователя находится в группе "www-data", так что я могу проверять страницы вручную и возиться с ними.
Некоторое время у меня была проблема, потому что каждый раз, когда я запускал проверку, файлы принадлежали мне:www-data вместо www-data:www-data, и я больше не мог изменять файлы wiki через мой веб-интерфейс!Я решил проблему, переключив бит setgid в каталоге "pages", но я все еще не понимаю, почему это произошло в первую очередь:
Каждый раз, когда я проверяю что-то в subversion, кажется, что svn удаляет это и создает заново.Почему?Поддерживает ли это поведение какую-то функциональность, о которой я не знаю?Есть ли способ это изменить?
Спасибо!
Решение
Установите бит "липких" разрешений.
find -type d -exec chgrp www-data {} +
find -type d -exec chmod g+s {} +
это побудит этап создания файла checkout унаследовать права доступа к каталогам вместо переключения на пользователя, который последний раз редактировал его.
Редактировать:dow +s == setgid.Информация, оставленная здесь для потомков и других читателей.
Другие советы
Я думаю, что вы используете его неправильно.Что вы могли бы сделать, так это по-прежнему иметь все в subversion и иметь свою локальную рабочую копию отдельно от каталога www, в котором вы разрабатываете.
Затем просто автоматически обновите рабочую копию www (или экспортируйте, если вам не нужны каталоги .svn в папке www) для www-user с помощью некоторого скрипта (возможно, как пост-фиксация hook), который затем соответствующим образом настраивает разрешения.
Рабочий процесс был бы:
- редактируйте файлы в /home/youruser/yourwiki-working-copy/
- фиксирует ли svn
- перехват после фиксации обновляет файлы в /var/www/ (или где бы ни находилась wiki)
- переход 1.
Таким образом, вам не нужно беспокоиться о разрешениях, и вы даже можете привлечь к работе на веб-сайте более одного человека со всеми преимуществами контроля версий.