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

StackOverflow https://stackoverflow.com/questions/1640032

  •  08-07-2019
  •  | 
  •  

Вопрос

Я ищу способ выполнить следующие действия: до или после, или любым другим способом.

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

<Ол>
  • Пользователь фиксирует файл
  • Что-то работает (зацепка или что-то еще)
  • Что-то еще из # 2 должно добавить статический текст в файл, который был зафиксирован
  • На основании этого http://subversion.open. collab.net/ds/viewMessage.do?dsForumId=3&dsMessageId=296576 Я вижу, что это не рекомендуется, но должен быть способ добавлять текст в файл при каждом коммите.

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

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

    Это было полезно?

    Решение 3

    Пока единственно возможным решением является использование клиентских хуков tortoiseSVN:

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

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

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

    Другие советы

    Посмотрите на красное поле в конце эта глава книги SVN:

      

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

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

    Согласно этой ветке, вы можете сделать это в хуке перед фиксацией, но это будет плохая вещь & # 8482; Если вам абсолютно необходимо, чтобы в файле был статический текст, было бы лучше, чтобы разработчики вставили этот текст, а затем использовали хук pre-commit, чтобы убедиться, что он там был. Если статический текст не существует или неверен, вы отклоняете коммит.

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

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

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

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

    Здесь есть немного информации: http://svnbook.red-bean.com/en/1.4/svn.ref.reposhooks.post-commit.html

    Тем не менее, зачем тебе это делать?

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top