При фиксации в SVN я могу добавить сообщение фиксации верхнего уровня, чтобы подробно описать, что именно фиксируется, но в идеале я хотел бы иметь возможность комментировать отдельные файлы и то, что в них изменилось. Я видел нечто подобное на предыдущем месте работы, но здесь использовалась CVS (и я не могу вспомнить, было ли это достигнуто с помощью сценария домашнего пивоварения для создания файла скелета)
Я просмотрел списки изменений, но, опять же, я не думаю (хотя я готов доказать, что ошибался), что это дает такую степень детализации, как показано ниже.
В идеале я ищу что-то вроде:
Foo.vb
- Added new function bar
Bar.vb
- Removed function foo
- Added functionality in xyz to do abc +/- Modified function to log error





Я бы просто сделал это в отдельном сообщении о фиксации. TortoiseSVN имеет автозаполнение имени файла, что очень помогает в этом.
Еще вы можете сделать svn st перед фиксацией и скопировать / вставить имена файлов в свое сообщение фиксации.
Да, и обязательно сильно сомневайтесь в ценности этого. Я знаю, что некоторые проекты OSS (Linux?) Требуют такой точности, но для многих проектов это просто шум. Diff может сказать вам гораздо больше и точнее.
Еще одна вещь, которую вы можете рассмотреть, - это использование Git. Git позволяет выполнять локальные коммиты меньшими шагами. Затем вы отправляете на главный сервер все свои коммиты по отдельности или объединяете их в одну фиксацию со всеми сообщениями фиксации в одном сообщении. Это было упрощенное объяснение, но, вероятно, его стоит проверить.
Я бы только добавил, что я думаю, что лучше разбивать ваши коммиты на логические «куски». Зафиксируйте несколько связанных измененных файлов вместе, по одному за раз, даже если у вас есть 30 файлов для регистрации. В противном случае шум может вытеснить что-то важное для одного пользователя.
Вы можете просто совершить коммит всякий раз, когда закончите с одной конкретной задачей. В любом случае это должно привести к лучшим комментариям. Комментарий "Реализованная проверка электронной почты" к трем необходимым файлам говорит мне гораздо больше, чем "добавленная функция verify_email". Я сам вижу последнее в разнице.
Такой результат может быть получен, если есть некоторые правила относительно того, как комментарии записываются внутри каждого из зафиксированных файлов. После этого эти комментарии могут быть извлечены триггером svn.
Одно из существенных различий между SVN и CVS состоит в том, что изменения совершаются атомарно. В CVS каждый файл имеет свою собственную версию, но в SVN версия предназначена для всего проекта и включает в себя все зарегистрированные файлы вместе.
Вот четыре идеи решения:
Я написал проект для такого рода вещей под названием MOAP
Одна из его функций - создать запись в журнале изменений из вашего локального diff (в настоящее время поддерживаются bazaar, cvs, svn, git и darcs). Вы делаете это, запустив «moap changelog prepare» или «moap cl prepare». Эта запись также может включать в себя измененные функции, если вы включите эту опцию.
Затем вы меняете эту запись, описывая свои изменения. Вы можете удалить файлы, которые не хотите коммитить, как часть следующего коммита.
Затем вы можете запустить 'фиксацию журнала изменений moap', чтобы зафиксировать изменения, описанные в записи журнала изменений. Он зафиксирует только перечисленные там файлы, а все остальные изменения оставит локальными.
Надеюсь, это поможет!
«это просто шум» ... полностью согласен. Для журнала коммитов достаточно общего обзора. Зачем тратить время на ввод изменений файла за файлом? Люди просто перестанут читать ваши сообщения, так как они могут все это выяснить с помощью svn diff, если они будут достаточно внимательны.