Используя мерзавца / подвижный на проектах с непрерывным рефакторингом?

С помощью Java 8 вы можете использовать метод format ..: -

System.out.format("%.2f", 4.0); // OR

System.out.printf("%.2f", 4.0); 
  • f используется для значения floating точки.
  • 2 после десятичного знака, число десятичных знаков после .

Для большинства версий Java вы можете использовать DecimalFormat: -

    DecimalFormat formatter = new DecimalFormat("#0.00");
    double d = 4.0;
    System.out.println(formatter.format(d));
20
задан Matt J 12 March 2009 в 05:57
поделиться

6 ответов

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

Это в некоторых случаях лучше, чем срочно отправленная голова, потому что у Вас нет постоянного прерывания существования кода отладки других, портящего Ваш код для добавления неошибок обработать.

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

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

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

  1. Прошедшие Тесты на его собственном
  2. Прошедшие Тесты после того, как основные изменения ответвлений были согласованы в мягкое ответвление

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

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

, Но я continiously обновлю от центрального главы repo в мой softbranch? Это - действительно сущность моей проблемы

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

"Непрерывное Обновление" становится ненужным, потому что у Вас нет тех же проблем при проявлении.

a  b   center
         |
         |
         /      Key:   / - | \   = Flow
/----<---|             < >       = Flow Directions
|  /--<--/             *         = Commit 
*  |     |             T         = Test
|  *     |             M         = Merging with "Current" state of common branch
*  |     |             C         = Tests Complete and Current state is "sane"
|  *     |
T  |     |
|  T     |
|  C     |
|  |/-<--/
*  M     |
|  T     |
*  C     |
|  \--->-\
*  /---<-/
T  |     |
C  *     |
|/-----<-/
M  |     |
T  *     |
|  T     |
*  C     |
|  |/-<--/
*  M     |
T  T     |
C  \-->--\
|/---<---/
M        |
T        |
C        |
\---->---\
         |

кроме того, из-за того, как система работает, позже, это могло также произойти:

a  b   center
|  |     |
T  |     |
C  *     |
|/</     |
M  |     |
|  *     |
T        |
C        |
|/----<--/
M        |
T        |
C        |
\-->-----\
         |

все понятие того, что они были "головой" в таком сценарии исчезает. Это там - десятки голов, какой, который Вы видите, подвержен перспективе.

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

В сущности, "Непрерывно обновляя мой softbranch от mainbranch", концептуально бессмысленно. Поскольку на самом деле, будут изменения, не представленные в mainbranch уже, и когда Вы будете знать, что они были продвинуты или нет? SVN Дает Вам эту ложную иллюзию "исключительного" состояния кода, когда в действительности, мгновенный один пользователь открывает файл в их текстовом редакторе, они на самом деле создали очень короткое жизненное мягкое ответвление, изменение, которое происходит, который никто не знает о, и чтобы эта иллюзия была поддержана путем, Вы думаете, что это работает, в действительности, пользователь должен фиксировать после каждого символа, который едва практичен. Так в действительности люди привыкают к факту, что различные местоположения становятся "несинхронизированными" друг с другом и изучают способы решить его так, это больше не проблема.

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

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

, Если у Вас есть какие-либо сомнения

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

19
ответ дан 30 November 2019 в 00:05
поделиться

Дал Вам одно голосование за хорошее настроение в трещине svn/dinosaur.

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

2
ответ дан 30 November 2019 в 00:05
поделиться

Для одного, если ничто иное, можно использовать МЕРЗАВЦА офлайн, таким образом, люди могут продолжить работать при управлении исходным кодом даже при перемещении или дома. Если любой случай может применяться, Вы могли бы определенно извлечь выгоду от МЕРЗАВЦА.

2
ответ дан 30 November 2019 в 00:05
поделиться

Путем Ваша команда использует средства Подверсии, что существует довольно большой случай усилия по слиянию. Почти каждый раз, когда член команды обновляет к новой магистрали, они объединяют свою рабочую копию с последней магистралью, даже если они не фиксируют своих собственных изменений на данном этапе. Слияние наверху склоняется к тому, чтобы быть продуктом уровня фиксации и числом членов команды, и так как уровень фиксации является функцией числа членов команды, Ваше управление исходным кодом наверху является O (N^2).

В модели Mercurial / Git, это усилие по слиянию будет делиться между командой. При стандартном получении по запросу changesets от всех затем часто, что Вы найдете, что другие уже сделали почти всю работу слияния, необходимо было сделать. И, в случаях, где слияние повредило что-то, часто люди уже зафиксируют его. Согласование пары ответвлений только должно быть сделано однажды, и так как уровень генерации новых ответвлений пропорционален числу членов команды, управление исходным кодом наверху является O (N).

я ожидал бы, что 20 разработчиков, работающих близко к голове над одним ответвлением, вероятно, включат изрядный объем объединяющейся работы (контакт с конфликтами и контакт с регрессиями из-за независимой разработки), таким образом, я был бы удивлен, попробовали ли Вы Подвижный / Мерзавец и не нашли полезную победу производительности. Вы думаете, что могли управлять 100 разработчиками со своим текущим успехом? Я оценил бы число разработчиков ядра Linux в 4 000, и все же они получают много сделанного материала, и общее управление исходным кодом наверху должно быть приемлемым.

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

, Следовательно, действительно большая победа - то, что Подвижные пользователи / пользователи Мерзавца больше не боятся ответвлений. Перед BitKeeper (инструмент, который действительно представил этот способ работать, насколько я знаю), длительные ответвления были тикающими бомбами замедленного действия, иногда взрываясь и занимая неделю для восстановления с. Теперь, мы можем перейти без колебания с уверенностью, что мы сможем объединиться позже. В здоровой команде другие видят Ваши происходящие ответвления и объединяют их с их и фиксируют Ваши усилия позже, если они думают, что это стоит. В централизованной модели, если у каждого разработчика было 3 или 4 активные ответвления, и я исправляю в высказывании, что это - O (N^2), затем Вы только что увеличили свое управление исходным кодом наверху фактором 3ish^2, т.е. порядок величины, который является, достаточно вероятно, для реального причинения вреда полному здоровью, богатству и счастью. Это - базовая причина, что члены команды (и менеджеры) обычно боятся ответвлений в централизованных системах и работы для уменьшения их.

11
ответ дан 30 November 2019 в 00:05
поделиться

Я думаю подвижный, является большим. Особенно с TortoiseHg.

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

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

Или можно даже быть собственной командой, например, когда Вы хотите протестировать свой код в нескольких платформа перед согласием на основной репозиторий.

2
ответ дан 30 November 2019 в 00:05
поделиться

то, что Вы описали в SVN, может быть сделано с помощью мерзавца / подвижный

1
ответ дан 30 November 2019 в 00:05
поделиться
Другие вопросы по тегам:

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