То, как запретить подверсию, соглашается на svn:external на изменения?

Разделить на:

sMyStringOF256characters := 
  'ThisStringis' +
  'ofLength256' +
  'And ManyManyManyManyManyManyManyManyManyManyManyManyMany' + 
  'ManyManyManyManyManyManyManyManyManyManyManyManyMany' + 
  'ManyManyManyManyManyManyManyManyManyManyManyManyMany' + 
  'ManyManyManyManyManyManyManyManyManyManyManyManyMany' + 
  'ManyManyManyManyManyManyManyManyManyManyManyManyMany' + 
  'ManyManyManyManyManyManyManyManyManyManyManyManyMany' + 
  'ManyManyManyManyManyManyManyManyManyManyManyManyMany' + 
  'ManyManyManyManyManyManyManyManyManyManyManyManyMany' + 
  'CharactersCharactersCharactersCharactersCharactersCharactersCharactersCharacters';
5
задан Aziz Shaikh 11 October 2012 в 09:36
поделиться

4 ответа

Для таких валидаций я бы тоже порекомендовал воспользоваться прекомитом, но вместо написания скрипта, который легко может оказаться непонятным, я рекомендую использовать библиотеку типа SVNKit - http://svnkit.com/ (если вы знаете Java).

Я сам написал несколько прекомитов, используя эту библиотеку, и с ней довольно легко работать. Вы пишете небольшую запускаемую Java-программу, которая вызывается из pre-commit-крюка Subversion. Затем легко извлечь, например, свойства или части URL, чтобы сделать валидацию и отклонить коммит, если он не применим к вашим "правилам".

Взгляните на классы SVNLookClient и SVNChangeEntry - в них есть методы для наиболее распространённых случаев (например, извлечение информации о выполняющемся коммите)

.
3
ответ дан 14 December 2019 в 08:58
поделиться

Поскольку вы используете https, я Предположим, вы используете mod_dav_svn . Вы можете настроить дополнительный URL-адрес для своего репозитория библиотеки и предоставить к нему доступ только для чтения. Таким образом, даже разработчики, которые обычно могут выполнять фиксацию в библиотеке, не смогут выполнить фиксацию через svn: external.

1
ответ дан 14 December 2019 в 08:58
поделиться

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

.
1
ответ дан 14 December 2019 в 08:58
поделиться

Вы можете попробовать что-нибудь вроде этого: использовать pre-commit скрипт для проверки, собирается ли коммит к метке. Если это так, то выйдите из строя и предоставьте сообщение. Читайте больше о диверсиях. Вам придётся переписать регекс так, чтобы он провалился, если его не HEAD, а не провалился, если это тэг.

$SVNLOOK changed -t “$TXN” “$REPOS” | egrep -v “^[AD][[:space:]]+(.*/)?tags/[^/]+/$” | egrep “^[^[:space:]]+[[:space:]]+tags/[^/]+/.+”
if [ $? -eq 0 ] ; then
echo >&2 “***************************************”
echo >&2 “* Modification of tags is not allowed *”
echo >&2 “***************************************”
exit 1
fi
2
ответ дан 14 December 2019 в 08:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: