Подтвердить что ты не робот

Рекомендации по контролю версий

Существует много разговоров о комментирующем коде, но как насчет комментариев по проверкам?

Я нашел это сообщение в блоге: http://redbitbluebit.com/subversion-check-in-comment-great-practices/

Как парень, который собирает заметки о выпуске, я ищу способы облегчить эту работу.

В настоящее время мы определили нашу собственную схему с <Begin_Doc>...<End_Doc> для всего, что должно быть опубликовано нашим клиентам программного обеспечения. Но даже для внутренних вещей, я хотел бы знать "почему" для каждого изменения.

4b9b3361

Ответ 1

У каждой функции есть билет/проблема/ошибка/задача/независимо от того, что вы звоните, и номер билета всегда упоминается в комментарии к регистрации. Это дает контекст.

Ответ 2

Я бы рекомендовал НЕ использовать/перегружать вашу систему контроля версий для этого. Я бы предложил программное обеспечение для отслеживания проблем как можно лучше.

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

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

Вам нужно определить, что такое репозиторий Source/version/SVN, - это он для управления исходными файлами, а также для записи заметки о выпуске. Я думаю, что это не должно быть перегружено.

Ответ 3

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

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

Одна последняя информация, которую мы добавили в наши комментарии о комментировании, - это имя одного обозревателя кода. Это тот человек, который проверил проверку работоспособности изменений до совершения совершения сделки.

Ответ 4

Я рекомендую функциональные комментарии. В комментариях следует дать резюме того, что было изменено. Если что-то изменилось и почему. Каждое коммитирование должно быть объяснимым, если вы не можете объяснить это четко, вы, вероятно, не должны его проверять.

Самое главное, что следует помнить при использовании журналов управления источниками, - это они, чтобы определить, когда и что было изменено. Чем функциональнее, тем лучше. коммиты должны быть сделаны в кусках размера укуса, что можно объяснить комментариями размера укуса.

Моим личным предпочтением является этот стиль:

ОБНОВЛЕНО систему регистрации ошибок.

  • Добавлена ​​устаревшая процедура разбора ошибок с использованием regex для получения устаревших кодов ошибок.
  • Изменен текст в сообщениях об ошибках базы данных, чтобы исправить ошибки.
  • Удалены прокомментированные разделы кода, потому что они больше не использовались.

Ответ 5

Ключ, что вы собираетесь делать с комментариями. Если вы создаете заметки о выпуске, вы можете сделать то, что вы предложили. Однако я бы рекомендовал вместо этого отслеживать заметки о выпуске в другом месте, например, в управлении проектами или инструментом отслеживания ошибок.

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

Кроме того, если вы используете такой инструмент, как FogBugz, вы можете связать регистрацию SVN с номером дела. Это означает, что вы можете найти дело, чтобы получить полное обсуждение, комментарии, скриншоты и т.д. Которая намного больше информации, чем вы могли бы войти в комментарий.

Ответ 6

Согласитесь с Memembrance, но вы также должны написать немного о том, почему вы внедрили исправление/ошибку, как вы это делали. Если вы часто верите в частоту проверки, вы должны также включить TO DO, чтобы один из ваших сотрудников смог выполнить задание.

Ответ 7

Внесение небольших изменений помогает: я могу предоставить подробные описания моих изменений таким образом.

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

Ответ 8

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

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

Ответ 9

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

Если вы используете что-то вроде интеграции Trac или roundup + svn, он может выбирать номера проблем из сообщений фиксации. Я всегда ставил их в первую строку, так как они так полезны.

Ответ 10

Изменить: Учитывая, что это, безусловно, мой самый низкий ответ, я думаю, стоит подчеркнуть, что скрыто в последнем абзаце: я - единственный владелец. У меня 100% -ная собственность на эти проекты и не работает с другими разработчиками. В магазине с более чем одним разработчиком все, что я говорю в этом ответе, может быть полностью несостоятельным.

Я подписываюсь на DRY здесь, как и во всех вещах.

Я почти никогда не добавляю комментарий к моим записям. Комментарий почти всегда повторяется. Ответ на вопрос "что изменилось в этой фиксации"? почти всегда находится в разложении.

Когда я смотрю файл, и я спрашиваю: "Что, черт возьми, произошло здесь?", первое, что я делаю, это посмотреть на diff с предыдущим rev. 90% времени ответ сразу становится очевидным, потому что код само собой разумеется или потому, что было что-то не само собой разумеющееся, что я прокомментировал в коде. Если это не так, я сопоставляю даты rev файла с системой отслеживания ошибок, и ответ есть.

Это всегда срабатывает. Иногда требуется небольшое исследование, чтобы что-то понять, потому что я не прокомментировал свой код адекватно. Но я никогда не мог найти ответ достаточно быстро.

Единственный раз, когда я добавляю комментарий в журнал фиксации, я знаю, что diff не поможет мне. Например, когда я сортирую членов класса: единственное, что diff скажет мне в этом случае, - это что-то очень большое. Когда я это сделаю, я фиксирую файл, как только исправил его. Нет подходящего места для комментариев об изменении этой области в файле, поэтому я добавляю комментарий о том, что единственное изменение в этом rev - это переупорядочение членов.

( "Почему бы вам не прокомментировать такое изменение в истории изменений в верхней части файла?", вы можете спросить. Я не сохраняю историю изменений в верхней части моих файлов. Это было страшно, перерыв в привычке на всю жизнь, чтобы сделать, и я ни разу не пожалел об этом. История изменений - Subversion.)

Если бы у меня не было 100% права собственности на проект, это могло бы быть другим. Возможно, слишком сложно сопоставить фиксации с исправлениями ошибок. Может быть слишком сложно обучить других разработчиков кодированию стиля, который позволяет эффективно использовать контроль над версиями. Я должен был бы видеть.