Посмотрите на svnlook. Например:
> svnlook dirs-changed /path/to/repo/ -t 180000
directory/changed
other_directory/changed
Вы можете использовать регулярное выражение, чтобы определить, что разрешено, и использовать его в хуке предварительной фиксации (верните 0, если все в порядке, в противном случае 1).
РЕДАКТИРОВАТЬ: Извините, должен был добавить, что текущие операции репо и транзакции доступны в качестве первого и второго аргументов скрипта подключения.