Применить астиль на зарегистрированные файлы с помощью SVN-крючков

Я хотел бы применить некоторый стиль к коду всякий раз, когда кто-то присоединяется к репозиторию SVN, для этого я использую astyle при совершении изменений с помощью svn pre-commit hook.

Я могу получить имена файлов, как это, но когда я применяю астиль, кажется, что программа не может получить данные из файлов:

 for FILE in $($SVNLOOK changed -t "$TXN" "$REPOS" | cut -b 5-); do # echo $REPOS/$FILE 1>&2 # prints the files' paths astyle --style=gnu -n $FILE done # commit the changes from astyle here 

Любая идея, как я могу это достичь?

  • SVN изменяет все мои проверки
  • Перенос SVN -
  • SVN не удалось подключиться к серверу
  • SVN: как переместить проект из одного хранилища в другой репозиторий
  • Проверьте, не изменился ли файл в репозитории SVN
  • Как указать параметры конфигурации среды выполнения subversion?
  • subversion svn: E175013: запрещено - временное
  • Инструмент доступа и индексирования SVN
  • One Solution collect form web for “Применить астиль на зарегистрированные файлы с помощью SVN-крючков”

    Я боюсь, но у меня плохо для вас новое: вы не можете этого сделать

    Как упоминалось в SVN-книге в главе «Реализация хранилищ-хранилищ», в комментарии с помощью Stop-Sign (вы знаете, что это означает)

    Хотя скрипты hook могут делать почти что угодно, существует одно измерение, в котором авторы сценариев сценариев должны проявлять сдержанность: не изменяйте транзакцию фиксации с использованием скриптов hook. Хотя может возникнуть соблазн использовать скрипты hook для автоматического исправления ошибок, недостатков или нарушений правил, присутствующих в файлах, которые могут быть совершены, это может вызвать проблемы. Subversion хранит кеши на стороне клиента определенных битов данных репозитория, и если вы меняете транзакцию фиксации таким образом, эти кэши становятся незаметно устаревшими. Эта несогласованность может привести к неожиданному и неожиданному поведению. Вместо того, чтобы изменять транзакцию, вы должны просто проверить транзакцию в крюке предварительной фиксации и отклонить фиксацию, если она не соответствует требуемым требованиям. В качестве бонуса ваши пользователи будут изучать ценность осторожных, ориентированных на соблюдение навыков работы.

    Джек Репеннинг, главный технический директор CollabNet, также упоминает об этом

    … К сожалению, я должен сказать вам, что нет, вы не можете этого сделать. Содержимое файла для прикрепляемых файлов доступно вам в скрипте hook (через команды svnlook «changed» и «cat»), но то, что вы видите, является копией данных, которые уже были введены в базу данных (хотя это не фактически совершено), и у вас нет возможности изменить это, только чтобы разрешить или отказаться от окончательной фиксации транзакции.

    Если вы все еще смелее пытаетесь, вы можете попытаться понять код из довольно старой темы (2009 год), где автор утверждает, что « он изменяет содержимое транзакции»,

    Linux и Unix - лучшая ОС в мире.