Разделить на:
sMyStringOF256characters :=
'ThisStringis' +
'ofLength256' +
'And ManyManyManyManyManyManyManyManyManyManyManyManyMany' +
'ManyManyManyManyManyManyManyManyManyManyManyManyMany' +
'ManyManyManyManyManyManyManyManyManyManyManyManyMany' +
'ManyManyManyManyManyManyManyManyManyManyManyManyMany' +
'ManyManyManyManyManyManyManyManyManyManyManyManyMany' +
'ManyManyManyManyManyManyManyManyManyManyManyManyMany' +
'ManyManyManyManyManyManyManyManyManyManyManyManyMany' +
'ManyManyManyManyManyManyManyManyManyManyManyManyMany' +
'CharactersCharactersCharactersCharactersCharactersCharactersCharactersCharacters';
Для таких валидаций я бы тоже порекомендовал воспользоваться прекомитом, но вместо написания скрипта, который легко может оказаться непонятным, я рекомендую использовать библиотеку типа SVNKit - http://svnkit.com/ (если вы знаете Java).
Я сам написал несколько прекомитов, используя эту библиотеку, и с ней довольно легко работать. Вы пишете небольшую запускаемую Java-программу, которая вызывается из pre-commit-крюка Subversion. Затем легко извлечь, например, свойства или части URL, чтобы сделать валидацию и отклонить коммит, если он не применим к вашим "правилам".
Взгляните на классы SVNLookClient и SVNChangeEntry - в них есть методы для наиболее распространённых случаев (например, извлечение информации о выполняющемся коммите)
. Поскольку вы используете https, я Предположим, вы используете mod_dav_svn
. Вы можете настроить дополнительный URL-адрес для своего репозитория библиотеки и предоставить к нему доступ только для чтения. Таким образом, даже разработчики, которые обычно могут выполнять фиксацию в библиотеке, не смогут выполнить фиксацию через svn: external.
Если вы не взяли на себя обязательство сохранить внешнее определение как ревизию ствола, почему бы просто не сделать новую метку, основанную на этой ревизии. Тогда у вас может быть ваша внешняя точка svn:external на метке, и вы можете использовать один из документированных методов контроля доступа для ограничения фиксации в вашем каталоге меток (или поместить метку в другой репо и заставить это репо читать только).
.Вы можете попробовать что-нибудь вроде этого: использовать 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