Как я могу получить функциональность svn: externals только для чтения? - PullRequest
17 голосов
/ 29 октября 2008

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

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

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

Ответы [ 4 ]

5 голосов
/ 10 декабря 2010

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

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

Вот подробности: Хук предварительной фиксации SVN для избежания изменений в подкаталогах тегов

3 голосов
/ 29 октября 2008

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

1 голос
/ 28 января 2011

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

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

[external_repo]
@maintainer = rw
@others = r

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

Надеюсь, это поможет прояснить ситуацию.

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

1 голос
/ 29 октября 2008

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...