Почему subversion восстанавливает файлы при регистрации?

StackOverflow https://stackoverflow.com/questions/168423

  •  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), который затем соответствующим образом настраивает разрешения.

Рабочий процесс был бы:

  1. редактируйте файлы в /home/youruser/yourwiki-working-copy/
  2. фиксирует ли svn
    • перехват после фиксации обновляет файлы в /var/www/ (или где бы ни находилась wiki)
  3. переход 1.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top