Управление версиями приближается в [закрытой] Толпе

Поскольку вы выполняете целочисленное деление.

Как говорит @Noldorin, если оба оператора являются целыми числами, то используется целочисленное деление.

Результат 0.33333333 не может быть представлен как целое число, поэтому к результату присваивается только целочисленная часть (0).

Если любой из операторов является double / float, тогда будет выполнена арифметика с плавающей запятой. Но у вас будет такая же проблема, если вы это сделаете:

int n = 1.0 / 3.0;
20
задан Ólafur Waage 9 March 2009 в 23:41
поделиться

7 ответов

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

5
ответ дан 30 November 2019 в 01:06
поделиться

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

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

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

8
ответ дан 30 November 2019 в 01:06
поделиться

Я использовал бы одно ответвление на выпуск и использовал бы Непрерывную Интеграцию, чтобы помешать одной пользовательской истории вредить другим.

1
ответ дан 30 November 2019 в 01:06
поделиться

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

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

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

Кроме этого, мы делаем' ответвление целью ' (PDF). Я также записал немного больше о том, как мы делаем мерзавца здесь .

4
ответ дан 30 November 2019 в 01:06
поделиться

Я не вижу, как ответвление на функцию может сделать Вас более гибкими или минимизированными. Стоимость управления ответвлением просто слишком высока. Я утверждал бы, что, если Вы чувствуете, что Вам нужно ответвление на функцию тогда, Ваши истории являются слишком большими. История должна быть завершена следующей толпой и в противном случае конечно, следующей. Таким образом, если ответвление только существует в течение 1-2 дней, я не вижу, как это может быть полезно или его возмещенная стоимость. Это - стандартная программа для многих людей для работы над историей, таким образом, я иногда использую ответвление dev для разработчиков для работы в том, так, чтобы они могли объединять код Много раз в день при работе над той же историей без кода, развертываемого на тесте (основное ответвление). Идеально Вы имели бы так мало происходящих историй и завершили бы их настолько быстро, что Вам только будут нужны Основное ответвление и никакие другие.

-1
ответ дан 30 November 2019 в 01:06
поделиться

Единственное изменение, которое необходимо сделать к исходной системе управления версиями, состоит в том, чтобы интегрировать ее с непрерывной системой интеграции (как TeamCity или CruiseControl.NET ).

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

1
ответ дан 30 November 2019 в 01:06
поделиться

На самом деле это очень интересная тема.

Мы всегда применяем ветвление для каждого создания задачи, фактически каждая задача (не сюжетная, а фактические задачи, разложенные после совещания по планированию разборки) будет иметь по крайней мере, одна связанная ветвь.

Вы можете увидеть, как это выглядит на следующей диаграмме: alt text

Это позволяет очень легко поощрять рецензирование, поскольку команда может проверить, что было изменено в задаче (ветви), даже когда разработчики решили сделать много промежуточных коммитов (что является очень хорошей практикой!)

Ниже приведено несколько ссылок, которые могут быть полезны:

  1. Подробное задание на ветку
  2. Идите Agile за 4 шага!
  3. И скриншот об этом здесь .
4
ответ дан 30 November 2019 в 01:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: