Вопрос

Я настроил репозиторий SVN с нуля и успешно пометил некоторые из своих выпусков с помощью команды копирования SVN.

Я использовал плагин аутентификации SSPI для Apache, поэтому наши разработчики просто подключались к серверу со своими сетевыми учетными данными, и все работало нормально.

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

Затем я заблокировал каталог /svn/ с помощью:Требовать группу «CORP\CKAN0BlahBlah»

Это эффективно ограничивает новых разработчиков в группе безопасности доступом только для чтения, пока им не будет предоставлен доступ через файл конфигурации aAuthZ.

Теперь у меня есть пара вопросов:

  1. Как правильный способ (кроме системы чести), чтобы пользователи не допускали изменений в каких -либо каталогов «тегов»?

  2. Можно ли использовать SSPI для передачи членов групп в Authz, а не перечислять участников индивидуально в файле конфигурации?

Это было полезно?

Решение 2

Для Вопрос 1, я разработал для этого:

@echo off
SET SVNLOOK=C:\Program Files\CollabNet Subversion Server\svnlook.exe
SET GREP=D:\SVN\Repo\hooks\grep.exe
SET LOG=D:\SVN\Repo Logs.txt

>>"%LOG%" echo ==== commit %1 %2 ====
>>"%LOG%" "%svnlook%" changed -t %2 %1

("%svnlook%" changed -t %2 %1 | "%grep%" "^U.*/tags/") && (echo Cannot commit to tags.>&2 && exit 1)
("%svnlook%" log -t %2 %1 | "%grep%" "[a-zA-Z0-9]") || (echo You must specify a comment.>&2 && exit 1)

exit 0

Взял инструмент grep из http://sourceforge.net/projects/unxutils


Для Вопрос 2, ответ НЕТ, вы не можете проверить группы безопасности AD в файле конфигурации AuthZ.

Спасибо за вашу помощь всем.

Другие советы

1. Вы можете использовать перехватчик pre-commit для предотвращения коммитов, см. Перехватчик предварительной фиксации SVN для предотвращения изменений в подкаталогах тегов.

Редактировать: Чтобы сделать это в Windows, попробуйте следующее:

Сохраните это как файл с именем pre-commit.bat в папке хуков вашего репозитория:

@echo off
set REPOSITORY=%1
echo %REPOSITORY% | find /I "tags"
if errorlevel 1 goto done
echo You tried to commit to %REPOSITORY% >&2
echo Committing to tags is not allowed >&2
exit 1
:done

Обратите внимание: это предотвратит фиксацию любого пути к репозиторию, содержащего подстроку теги.Измените в соответствии с вашими потребностями.

Не существует «правильного» способа.Теги — это соглашение, и разработчики должны его изучить и следовать ему.За исключением этого, отказоустойчивость можно реализовать с помощью перехватчиков Subversion.Видеть этот страница с хорошим руководством.

Мне кажется, это вопрос образования и процесса.Если ваши разработчики понимают назначение ваших тегов SVN, вероятность того, что люди (намеренно) будут выполнять фиксацию тега, будет гораздо менее вероятной.Для эффективного информирования об этих процессах я считаю необходимым наличие актуальной письменной документации.Моя команда использует Wiki для хранения документации о наших процессах (в частности, мы используем МедиаВики).Подход Wiki, кажется, делает вещи намного более доступными и их легче поддерживать в актуальном состоянии, чем что-то вроде хранения документов MS Office с версиями в SharePoint.

Как насчет использования файла svn-auth для определения этого?это будет выглядеть так:

[groups]
ADMINS=<your ID>
<rest of groups>=<all other IDs>

[/]
* = r
<rest of groups> = rw
@ADMINS = rw

[/tags]
<rest of groups> = r

Это предоставит администраторам доступ для чтения и записи к каталогу тегов, но никому другому.Я не знаю плагин аутентификации SSPI, поэтому, возможно, мой пример не работает в вашем контексте.

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