Ни в чем, идеология абсолютно та же. Нужна фича, открываем ветку и в ней кодим. Когда готово — сливаем изменения в главную ветку. Просто в одной ветке может работать больше одного человека. Спольски развернуто объяснил hginit.com/00.html Главная идея в том, что DVCS поддерживает идеологию CVSC, но не наоборот.
Гит ещё более разухабистый, у него есть т.н. stash и staging area www.ndpsoftware.com/git-cheatsheet.html которых, порой, не хватает в mercurial. Нужна простота и лёгкая кроссплатформенность — Mercurial, нужны фичи, гитхаб — Git.
Вы сидите в одной ветке, делаете коммит, продолжаете работать. Ваш коллега делает коммит, упс, нужно проадейтиться. Ок проадейтился, смерджил, закоммитил. Теперь уже вам нужно перед коммитом обновиться. Конечно вариант, на каждый чих заводить ветку, но если на одну задачу больше пары человек, то начинаются танцы.
В случае распределенных систем, вы работаете в своей песочнице: закончили, проапдейтились, смерджили, запушили.
Даже с DVCS можно иметь «центральный» репозиторий.
Смотри: svn рос, откусывая долю у cvs. Кого объедала git-core, а затем git? На графике не видно проседания у сегодняшнего лидера svn, всего-лишь остановившийся рост (ниша cvs исчерпана).
Проблема не в инструментарии — сами инструменты для слияния не сильно отличаются, Проблема в подходах к использованию. У DVCS более частые коммиты и поэтому слияние происходит проще. В CVCS коммиты большие и редкие из опасения сломать чужой код.
УВРЧЯДНТ — это не аргумент. Когда я сидел на винде и случайно открывал унылого ослика, мне приходилось ЖДАТЬ, чтобы его закрыть. И это со всеми отключёнными плагинами, боюсь представить что было бы с парочкой панелек, как у обычных юзеров.
Что мешает переопределить метод clone если мы вдруг поняли что нам нужно клонировать объект, а не просто привести ссылку к родидельскому типу и/или скопировать ссылку на объект?
Я не говорю, что это плохо. В Жабе можно написать функцию, которая будет принимать строку селектора; и будет точно такой же километровый свич с пятью уровнями вложенности. Но зачем, если под рукой типы и перегрузка?
Ты сказал «нельзя использовать вместо одного другое», тут выясняется, что это можно, но неправильно. Ок, выше иерархией есть abstract ButtonBase.
А вообще хочется примера, что-то мне подсказывает что он будет противоречить второй и третьей букве в SOLID.
1. И что такого?
2. Что же мне почитать, о ненавистник энтерпрайза?
to vimvim: Второй пример, кстати, я впервые увидел в Ваадине, для небольшой кастомизации поведения по месту.
Гит ещё более разухабистый, у него есть т.н. stash и staging area www.ndpsoftware.com/git-cheatsheet.html которых, порой, не хватает в mercurial. Нужна простота и лёгкая кроссплатформенность — Mercurial, нужны фичи, гитхаб — Git.
В случае распределенных систем, вы работаете в своей песочнице: закончили, проапдейтились, смерджили, запушили.
Даже с DVCS можно иметь «центральный» репозиторий.
Это относится ко всем DVCS, не только к гиту.
З.Ы. Я прочитал второй коммент на странице.
stackoverflow.com/questions/2613525/what-makes-merging-in-dvcs-easy/2613595#2613595
поправочка:
На твоём средненьком современном железе IE9 работает так же быстро, как и все остальные браузеры.
О чем мы вообще спорим? Работает быстро, нравится — пользуйся. Меня IE не устраивает, и скорость тут далеко не основная причина.
А вообще хочется примера, что-то мне подсказывает что он будет противоречить второй и третьей букве в SOLID.
2. Что же мне почитать, о ненавистник энтерпрайза?
to vimvim: Второй пример, кстати, я впервые увидел в Ваадине, для небольшой кастомизации поведения по месту.