Пересылка пользователем в Mercurial репозиторий вызывает ошибку HTTP 500 для других пользователей - PullRequest
2 голосов
/ 03 ноября 2010

У меня есть размещенный в Windows ртутный репозиторий, на который у пользователей UserA, UserB и UserC есть права. Пользователь A может с радостью выдвигать / вытягивать и т. Д., Но как только пользователь C нажимает ... Пользователь A начинает получать следующую ошибку:

прервать: ошибка HTTP 500: .hg \ store \ data / _web / _mvc._sitemap.i: доступ запрещен

Единственное «исправление» для этого - сбросить и повторно запустить удаленный репозиторий.

Кто-нибудь имеет опыт работы с этим типом проблемы?

Обновление: Репозиторий находится на диске на сервере, а IIS расположен поверх него. Пользователи подключаются локально. Программа установки в значительной степени права на вики Mercurial.

1 Ответ

2 голосов
/ 04 ноября 2010

Я выкладываю здесь ответ Тонфы с небольшой дополнительной информацией. Это совершенно нормально, и действительно так работает файловая система. Когда ваши пользователи используют прямой доступ к диску, они создают новые файлы, которые принадлежат им. Если не будут предприняты шаги, чтобы убедиться, что принадлежащие им файлы также доступны для записи их соавторам, то последующим отправителям (и сборщикам в зависимости от ваших разрешений по умолчанию) будет сказано, что они не могут получить доступ к вновь созданным файлам.

Есть несколько общих способов избежать этого , каждый из которых является работой администратора сервера, а не работой пользователей с подталкиванием . Или:

  • изменить разрешения, чтобы все новые файлы автоматически добавлялись с разрешениями, которые предоставляют всем соавторам доступ на чтение / запись
  • заставить всех использовать только HTTP-интерфейс для push / pull, поэтому все операции чтения / записи выполняются одним и тем же пользователем (IIS)

В Unix Land первое легко сделать, используя «бит липкой группы» и «umask». На окнах есть, вероятно, еще более простой способ, который работает только половину времени. ,)

...