2010-07-16 3 views
9

Вчера, когда я проверил последнюю версию нашего внутреннего инструмента, я увидел около 30 новых версий. Мне было любопытно, так как я думал, что кто-то наконец исправил эти раздражающие ошибки и добавил эту функцию, которую я так долго ждал ... и угадайте, что? Ничего из этого не произошло, кто-то просто подумал, что было бы неплохо обновить некоторые заголовки и выполнить небольшую корректировку двух или трех функций. Все в отдельной фиксации. Отлично.Один большой checkin или несколько более мелких?

Это подняло дискуссию в нашей команде - следует ли это считать одобренной, или мы должны запретить такое «злоупотребление»? Вероятно, это действительно может вписаться в одну или две коммиты, но 30, похоже, много. Как это должно быть обработано - какова наилучшая практика?

+0

Что такое «оскорбительное»?Вы также, кажется, объединяете понятия «версии» и «ревизии», когда им не нужно. – msw

+1

Если у каждого есть привычка читать каждый фиксатор, эта практика действительно потребует от команды много времени. Либо привычка, либо практика неправильны. – Konerak

+0

@msw: «оскорбительное» заключалось в том, что каждая фиксация имела одно и то же сообщение. Забыл упомянуть об этом. Но вы правы, что системы контроля версий были сделаны для отслеживания версий, поэтому количество коммитов, вероятно, не так важно для нас. – PeterK

ответ

6

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

Вы не должны совершать ничего, что останавливает проект от строительства.

Вы должны заполнять сообщение фиксации, чтобы люди знали, какие изменения были сделаны.

Это будет делать для меня .. Я не предполагаю, что-то было сделано, если я не вижу его в сообщении фиксации ...

+2

Не заповеди традиционно начинаются с «Ты должен ...»? * SCNR * +1 – sum1stolemyname

+0

@ sum1stolemyname: никогда не читайте RFC? – Konerak

+0

@ Konerak: НЕ ДОЛЖНЫ, что RFCs традиционно начинаются с [«ВЫ ДОЛЖНЫ ...»] (http://tools.ietf.org/html/rfc2119)? : p – kennytm

2

Я бы не заботиться о количестве фиксаций в каждой фиксации сохраняет согласованность проекта (сборка по-прежнему будет успешной). Это некий внутренний счет, который не должен вас беспокоить. Если вы хотите что-то изменить, лучше говорите людям, чтобы они использовали некоторые структурированные сообщения фиксации (например, «[bugfix] ...», «[feature] ...», «[minorfix]»).

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

4

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

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

Также, если несколько заданий завершены в одном коммите, не легко увидеть, какие изменения относятся к какой задаче.

+0

+1 Именно поэтому я считаю, что фиксация должна отражать логическое изменение (bugfix , функция, рефакторинг ...), физически не связаны с файлом или функцией. – PeterK

+0

Что требуется для изменения, требуется 2 недели работы. Конечно, вы должны не только зарегистрироваться через 2 недели, но каждый раз, когда у вас есть что-то, что не сломается. –

+0

@Johann Strydom: правда, если кто-то делает большие изменения, он должен разделить его на несколько меньших. Во всяком случае, я все еще думаю, что это можно сделать так, чтобы каждый мог понять из сообщений фиксации то, что делается и почему. – PeterK

1

Борьба с энтропией кода - это постоянное усилие команды. Следует поощрять проведение небольших проверок, где нужно только «фиксировать разбитые окна» по одному пути, а не нахмуриться. Исходный репозиторий - это неправильный инструмент для отслеживания исправлений - вот что такое отслеживание ошибок - поэтому неудобство при поиске исправлений при сканировании репозитория кода, а не в репозитории ошибок кажется для меня совершенно незначительным.

Я работаю в команде с умеренным размером на большой базе кода (~ 1M LOC) с огромным история (~ 20Y). Большая часть кода - это куча беспорядочной логики ветвления, устаревший API, соглашения об именах, даже случайное отступы часто заставляют его печатать. Я начал привычку к незначительным улучшениям чтения, чтобы попытаться бороться с полным гнилом кода, и я стараюсь, чтобы товарищи по команде приняли ту же привычку.

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

+0

Речь идет не о том, чтобы заставить людей делать что-то, а просто говорить, что было бы неплохо, если бы кто-то исправился, чтобы проверить изменения в файлах, которые они зафиксировали в одном коммите, чтобы вы могли видеть все, что было изменено. Это может быть только одна строка в одном файле с надписью «Исправлена ​​ошибка орфографии в диалоговом окне», которая заняла 5 минут. Я обычно смотрю на изменения, которые были зафиксированы, когда я делаю обновление, чтобы следить за тем, что происходит в коде. Видя, что каждый файл проверяется индивидуально с помощью «Сделал некоторые вещи», он не добавляет большого значения. –

Смежные вопросы