Intereting Posts

Subversion: как добавить текст в каждый зафиксированный файл?

Я ищу способ сделать следующее либо на pre-commit или post-commit, либо любым другим способом.

Вот что мне нужно для работы

  1. Пользователь записывает файл
  2. Что-то работает (крючок или что-то еще)
  3. Что-то еще от # 2 должно добавить статический текст в файл,

Основываясь на этом http://subversion.open.collab.net/ds/viewMessage.do?dsForumId=3&dsMessageId=296576, я вижу, что это не рекомендуется, но есть способ добавить текст в файл при каждом коммите.

Операционная система: отправлено Os

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

Посмотрите на красную рамку в конце этой главы книги SVN:

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

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

В соответствии с этим потоком вы можете сделать это с помощью привязки до фиксации, но это будет Bad Thing ™. Если вы обязательно должны иметь статический текст в файле, было бы лучше, если бы разработчики разместили текст, а затем используйте крюк предварительной фиксации, чтобы убедиться, что он был там. Если статический текст не существует или неверен, вы отклоняете фиксацию.

До сих пор единственным возможным решением было использование крючков на стороне клиента черепахиSVN:

Автоматическое добавление комментариев с помощью TortoiseSVN?

К сожалению, это заставляет разработчиков использовать только TortoiseSVN. Использование плагинов Visual Studio, например, не будет работать 🙁

Если кто-то найдет какой-либо централизованный способ, как это сделать, пожалуйста, напишите здесь.

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

Затем робот выполняет проверку / обновление файлов, за которыми он смотрит, проверяет их политику и юридические уведомления, автоматически добавляет все, что ему нужно, а затем проверяет изменения. Таким образом, кеши subversion счастливы, а юридические уведомления – во всех файлах , Развертывание приведет к изменению изменений следующего цикла обновления / фиксации так же, как и любые другие изменения. Вы даже можете, чтобы робот автоматически обновлял юридический раздел с последним определением, в зависимости от того, насколько вы его сложны.

Может даже быть в состоянии использовать что-то вроде Hudson для размещения этого в полезной структуре.

Вы можете установить крючок на сервере SVN, который будет выполнять скрипт, и может добавлять информацию в файл и т. Д.

Здесь крошечная информация: http://svnbook.red-bean.com/ru/1.4/svn.ref.reposhooks.post-commit.html

Тем не менее, почему на Земле вы хотели бы это сделать?