У меня есть svn-репозиторий, использующий authz для управления доступом. Структура выглядит следующим образом:Ветвительная директория с частичным доступом для чтения
├── branches
│ └── bob
├── tags
└── trunk
└── A
├── B
│ └── README.txt
└── README.txt
Пусть AuthZ предоставляет пользователю доступ к каталогу A
но не B
читать, и он терпит неудачу при попытке разветвляются A
:
[hidden]$ svn copy A ^/branches/bob/A1 -m 'Branching A to branches/bob/A1'
Adding copy of A
svn: E220001: Commit failed (details follow):
svn: E220001: Access denied
журнала The Svnserve говорит
Authorization Failed recursive read /trunk/A
Почему у svn есть это ограничение и есть способ обойти? Почему он не игнорирует B
при ветвлении, точно так же, как делать кассу?
Если это оказалось невозможным, тогда какой лучший рабочий процесс для svn с authz? Похоже, ветвление не разрешено, единственный способ - все, кто работает на багажнике, но это слишком глупо.
Возможно, из-за того, что предполагается, что правильная ветвь ИМО должна содержать все от источника, даже если пользователь, пытающийся вступить в ветвь, не имеет доступа к нему, поскольку они предположительно «А» будут разбиты без содержимого 'B', и это вызывается при попытке слияния' bob/A1' обратно в '/ trunk/A'. – prodigitalson
@prodigitalson, IMO, если это проблема A будет разбита без B, тогда svn checkout также следует запретить. –
[Прочитайте последний блок боковой панели в нижней части страницы. Это объясняет это.] (Http://svnbook.red-bean.com/en/1.7/svn.serverconfig.pathbasedauthz.html) – prodigitalson