Есть ли способ создать журнал изменений в SVN?

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

  •  01-07-2019
  •  | 
  •  

Вопрос

При фиксации в SVN я могу добавить сообщение фиксации верхнего уровня с подробным описанием того, что фиксируется, но в идеале мне хотелось бы иметь возможность комментировать отдельные файлы и то, что в них изменилось.Я видел нечто подобное на предыдущей работе, но это было с использованием CVS (и я не могу вспомнить, было ли это достигнуто с помощью домашнего сценария для создания файла скелета)

Я просмотрел списки изменений, но, опять же, не думаю (хотя и хочу, чтобы меня опровергли), что это дает такую ​​степень детализации, как описано ниже.

В идеале я ищу что-то вроде:

Фу.вб

  • Добавлена ​​новая функциональная панель

Бар.vb

  • Удалена функция foo
  • Добавлена ​​функциональность в XYZ для выполнения ABC +/- Измененная функция для журнала ошибки
Это было полезно?

Решение

Я бы просто сделал это в отдельном сообщении о коммите. ЧерепахаSVN имеет автодополнение имен файлов, что очень помогает в этом.

Еще одна вещь, которую вы можете сделать, это svn st перед фиксацией и скопировать/вставить имена файлов в сообщение о фиксации.

Да, и не забудьте сильно усомниться в ценности этого.Я знаю, что некоторые проекты OSS (Linux?) требуют такой точности, но для многих проектов это просто шум.Diff может рассказать вам гораздо больше и точнее.

Еще одна вещь, которую вы можете рассмотреть, — это использование Гит.Git позволяет выполнять коммиты локально, меньшими шагами.Затем вы отправляете на главный сервер все свои коммиты по отдельности или объединяете их в один коммит со всеми сообщениями о коммитах в одном сообщении.Это было очень упрощенное объяснение, но, вероятно, на него стоит обратить внимание.

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

Вы можете просто совершить коммит всякий раз, когда закончите одну конкретную задачу.В любом случае это должно привести к улучшению комментариев.Комментарий «Реализована проверка электронной почты» к трем необходимым файлам говорит мне гораздо больше, чем «добавленная функцияverify_email».Последнее я сам вижу в диффе.

Одно из существенных различий между SVN и CVS заключается в том, что изменения фиксируются атомарно.В CVS каждый файл имеет свою собственную версию, но в SVN версия предназначена для всего проекта и включает все файлы, проверенные вместе.

Вот четыре идеи решения:

  1. Проверьте каждую из ваших программ отдельно, со своим собственным сообщением журнала.Это может означать, что если, скажем, вы вернете пять файлов, вы «израсходуете» пять версий, четыре из которых могут привести к неработающей сборке.
  2. Развивайтесь по отдельному пути (т.ваша собственная частная ветка), сделайте то же, что и выше, а затем в стратегические моменты объедините свою ветку с магистралью.
  3. Сохраняйте все вместе, а отдельные записи сохраняйте в виде комментариев в шапке программы.Это может потребовать (небольшой) дополнительной работы, но вам все равно придется составлять отдельные сообщения для входа.
  4. Выполните одну проверку для всех файлов, но с красивым полным сообщением журнала с подробным описанием каждой части каждого файла.

Я написал проект для выполнения подобных вещей под названием МОАП

Одна из его функций — создание записи в журнале изменений на основе локальных различий (в настоящее время поддерживается bazaar, cvs, svn, git и darcs).Вы можете сделать это, запустив команду «moap Changelog подготовить» или «moap cl prep». Эта запись также может включать в себя измененные функции, если вы включите эту опцию.

Затем вы идете и меняете эту запись, описывая свои изменения.Вы можете удалить файлы, которые не хотите фиксировать, как часть следующего коммита.

Затем вы можете запустить «фиксацию журнала изменений moap», чтобы зафиксировать изменения, описанные в записи журнала изменений.Он зафиксирует только перечисленные там файлы, а все остальные изменения останутся локальными.

Надеюсь, это поможет!

Такой результат можно было бы получить, если бы существовали некоторые правила записи комментариев внутри каждого из зафиксированных файлов.Эти комментарии могут быть впоследствии извлечены с помощью триггера svn.

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