Подтвердить что ты не робот

Как я могу получить функциональность svn: externals в режиме "только для чтения"?

svn: externals могут быть полезны для всасывания центральных библиотек или IP в проект, чтобы они могли храниться в одном месте, доступном для всех.

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

Как я могу сделать svn: externals read-only? Это приемлемо, если есть какой-то дополнительный аргумент или какой-то способ сделать внешний, который мы можем добавить к процедуре для всех, чтобы следовать.

4b9b3361

Ответ 1

Использование svn-репозиториев, чтобы избежать перехода на специальные диски, например. теги

Если вы используете соглашение об именах ttb (trunk, tags, branches) и код для доступа только для чтения svn: внешний доступ находится в каталогах тегов, вы можете использовать крюк предварительной фиксации, чтобы избежать коммитов в эти каталоги.

Вот подробности: SVN pre-commit hook для исключения изменений в подкаталогах тэгов

Ответ 2

Сделать внешние репозитории доступными только для чтения всем, кроме сопровождающих.

Ответ 3

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

Ответ 4

Сделать внешние репозитории доступными только для чтения всем, кроме сопровождающих.

Я полностью согласен J. Джон отвечает выше. Создание крючка предварительной фиксации является излишним. svn: externals (это просто ссылка на внешний репозиторий, отсюда и название), и поэтому он все еще находится в отдельном репозитории (вы можете убедиться, что, перейдя на извлеченный внешний код и сделайте 'svn info | grep URL'), так просто поместите необходимое разрешение в это внешнее репо. Что-то вроде:

[external_repo]
@maintainer = rw
@others = r

И из repo (позвольте называть это repoA), где это определено как "внешнее" (позвольте внешнему репо как repoB), вам не нужно ничего делать. Когда кто-то (кроме человека, входящего в @maintainers) пытается совершить внешнее репо через код, который он или она проверил из repoA, commit будет направлен на внешний repoB и, следовательно, разрешение, которое вы устанавливаете как-то вроде выше на том, что репо будет вставлять и блокировать фиксацию.

Надеюсь, что эта помощь поможет понять.

Исмаэль Казимпан:)