заставить пользователя SVN и обновить извлечение с частными подкаталогами - PullRequest
0 голосов
/ 23 февраля 2012

У меня есть дерево Subversion, в котором есть только несколько открытых каталогов. Последний каталог доступен только для пользователя "я".

/trunk/public1
/trunk/public2
/trunk/private1

Когда я проверяю trunk, я получаю /public1 и /public2, но не /private1. Меня не спрашивают мои учетные данные, потому что Subversion видит, что может автоматически проверять общедоступные каталоги.

  1. Как заставить Subversion проверить этот каталог как "я", чтобы я мог получить все каталоги? Я предполагал, что это будет так же просто, как добавить --username в командной строке - но это не сработает!
  2. Но что, если я уже проверил эту структуру каталогов и имею только общедоступные каталоги? Я уже переключился на использование «я», потому что я могу делать коммиты без проблем. Но что бы я ни делал, каталог /private1 не появляется. Как я могу обновить свою локальную копию с личным каталогом?

Что делает это еще более странным то, что я могу сделать (внутри каталога):

svn update private1

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

Вот соответствующие части моего файла авторизации Subversion на Apache:

[groups]
developers=me

[foo:/trunk]
@developers=rw
*=r

[foo:/trunk/private1]
@developers=rw
*=

Я могу просто выполнить браузер на /trunk/private1, используя мой браузер через WebDAV (после ввода правильных учетных данных для пользователя «я»).

1 Ответ

0 голосов
/ 23 февраля 2012

См. Раздел по авторизации на основе пути в руководстве по Subversion.В частности, прочитайте последнее серое поле на странице.

На основании этой информации сервер выглядит так, как будто видит, что может извлечь корневую папку без учетных данных, а затем анонимно выполняет всю проверку.Поскольку у вас есть только один шанс для аутентификации, вы по-прежнему анонимны, когда заходите в частные каталоги, поэтому вы не получаете их копию.Если вам нужно получить такие каталоги, защищенные доступом, используйте параметр --username в команде initial svn checkout.Я не знаю, что вы можете checkout папку с одним набором учетных данных в середине рабочей копии, которая была извлечена с использованием другого набора учетных данных (это может привести к путанице svn commit, поскольку каждый коммит может толькоесть один автор).

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

...