Есть ли способ произвести журнал изменений в SVN - PullRequest
3 голосов
/ 19 сентября 2008

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

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

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

Foo.vb

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

Bar.vb

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

Ответы [ 5 ]

4 голосов
/ 19 сентября 2008

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

2 голосов
/ 20 сентября 2008

Я написал проект для такого рода вещей, который называется MOAP

Одна из его функций - генерировать запись ChangeLog из вашего локального diff (в настоящее время поддерживается базар, cvs, svn, git и darcs). Это можно сделать, запустив 'moap changelog prepare' или 'moap cl prep'. Эта запись также может включать измененные функции, если вы включите эту опцию.

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

Затем вы можете запустить 'moap changelog commit', чтобы зафиксировать изменения, описанные в записи ChangeLog. Он сохранит только файлы, перечисленные там, и оставит все остальные изменения локальными.

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

2 голосов
/ 19 сентября 2008

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

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

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

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

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

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

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

0 голосов
/ 19 сентября 2008

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

...