The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Релиз распределённой системы управления версиями Mercurial 3.8"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Заметили полезную информацию ? Пожалуйста добавьте в FAQ на WIKI.
. "Релиз распределённой системы управления версиями Mercurial 3..." +4 +/
Сообщение от all_glory_to_the_hypnotoad (ok), 05-Май-16, 22:14 
> Ещё понимаю переход hg->git, но обратный.. не разумею ... попробовал hg и втянулся ... очень приятно ... продуманно. Как в питоне

В этом заключается вся суть пользователей hg и самого hg - помойка и сумбур в голове.

Меркуриал ни в каком виде не является продуманной DVCS, тут больше подходит "передуманный". Например, изначально hg был модульным так, что без мозготраха нельзя было даже зажечь цвета в diff - нужно было готовить модуль и делать специальный алиас с другим названием команды (лол ... цвета для diff так и остались модулем color, только теперь не нужно делать алиас для команды). Особенно удивляла причина согласно которой дизайнеры ртути считали это правильным, ~ diff должен для всех выглядить одинаково чтобы его можно было использовать в скриптах. Нагородить грёбанные модули догадались, а поделить команды на пользовательские и технические не шмогли. Такая беда была со многими другими стандартными фичами, но в остальных случаях ещё нужно было руками выкачивать сами модули хер знает откуда...

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

Кроме этого неверно выбранная стратегия разработки, т.е. попытка отстраниться от дизайна фич приложения через модули, привела к пересечению функционала в разных модулях. Например, чтобы получить функционал git-овго rebase в mercurial нужно сразу три модуля - rebase, mq и histedit .. и даже с ними не получается полного функционала и удобного к нему интерфейса. А сколько ещё есть экспериментальных модулей делающих одно и тоже...

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

Есть ещё комичные примерны дизайна в этой убогой vcs, прямо в новости пишут:

> Добавлено экспериментальное расширение automv, которое автоматизирует определение фактов переименования и копирования файлов в репозитории ...

VCS, ориентированная на работу исходниками, всё ещё оперирует понятиями перемещения файла, а не кусков текста. Раньше если как-то не так перемещаешь файл (не через hg mv), то ртуть теряет его историю ..  а теперь вот впилили костыль, но всё равно hg не разрулит разрез файла на несколько, склейку файлов в один или суперпозицию этих изменений. Всё это нужно для нормальной истории и blame/annotate.

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

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Релиз распределённой системы управления версиями Mercurial 3.8, opennews, 04-Май-16, 20:03  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру