В итоге появилась такая вот запись номером 3516 в баг-трекере Subversion. Если на русском, то суть вот в чем.
Имеем svn сервер с sasl. В нем два различных репозитария, один публичный, другой закрытый. Отличаются они записями в файле authz. Для публичного
[/] *= r master=rwДля приватного
[/] *= master=rwТ.е. если ты не прошел аутентификацию , то тебе ничего нельзя.
Пробуем посмотреть лог обоих репозитариев. Для публичного он будет такой (это вывод в консоль, так что все нормально)
r10 | sonar | 2009-03-16 09:21:53 +0300 (Mon, 16 Mar 2009) | 1 line ?\209?\131?\208?180?\208?\176?\208?\187?\208?\181?\208?\189?\209?139 ?\208? \191?\209?128?\208?\190?\208?\181?\208?\186?\209?\130?\209?139 ?\208?\180? \208?\187?\209?\143 ?\208?\188?\208?184?\208?\179?\209?\128?\208?\176?\209? \134?\208?184?\208?\184 ?\209?\129 ?\208?\190?\209?135?\208?\181?\208?\189? \209?\140 ?\209?\129?\209?130?\208?\176?\209?\128?\208?\190?\208?\185 ?\208? \178?\208?181?\209?\128?\209?\129?\208?\184?\208?\184 ?\208?\189?\208?\176 ? \208?\189?\208?190?\208?\178?\209?\131?\209?\142. ------------------------------------------------------------------------ r9 | sonar | 2009-03-16 09:06:05 +0300 (Mon, 16 Mar 2009) | 1 line ?\208?\161?\208?190?\209?\133?\209?\128?\208?\176?\208?\189?\208?181?\208? \189?\208?\184?\208?\181 ?\208?\178?\208?181?\209?\128?\209?\129?\208?\184? \208?\184 0.9 ------------------------------------------------------------------------Тут мы видим и дату , и пользователя, и сообщение ревизии. Для приватного вывод будет следующим
------------------------------------------------------------------------ r10 | (no author) | (no date) | 1 line ------------------------------------------------------------------------ r9 | (no author) | (no date) | 1 line ------------------------------------------------------------------------ r8 | (no author) | (no date) | 1 lineТут мы видим "ничего".
Может возникнуть мнение, что ошибка в самом хранилище. Но я объясняю на двух разных для наглядности. Тоже самое будет, если для публичного отредактировать файл authz как у приватного. Следующий возникающий вопрос - а ты то под тем логином/паролем заходишь? Специально проверил такой командой
svn log svn://address --username master --password passРезультат прежний.
В итоге напрашивается такое объяснение. Команда log не использует логин/пароль для чтения данных, а ломится на сервер под anonymous.
Будем надеяться, что исправят эту ошибку, либо укажут что я делаю не правильно. Жаль только, что аж с 27 октября к багу ни одного комментария.
Добрый день.
ОтветитьУдалитьСегодня столкнулся с такой же проблемой. Часов 5 подпрыгивал - не решил бы - голову бы оторвали - у меня миграция была, точно на нее бы списали.
В общем, проблема не в самой СВН, так что наверное надо закрыть репорт в трекере.
Проблема решается следующим образом - надо в svnserve.conf опцию anon-access установить в = deny
Объясню почему это так работает - клиент подключаясь вначале проверяет доступ от анонимного пользователя. И если он его получил, то дальше не применяет аутентификацию. Соответственно, он не может прочитать лог, хотя подключиться к репозиторию может.
Буду оч признателен, если опишете это в закрытии бага.
Удачи. :)
Привет. спасибо за ответ. проверить врятли получится, т.к. уже не пользуюсь svn. хотя надо будет воспроизвести ситуацию снова и если что закрыть баг репорт
ОтветитьУдалить