LINUX.ORG.RU

Mercurial против Git в Facebook

 , ,


0

5

Привет, ЛОР!

Нашёл довольно интересную заметку о том, почему некоторые до сих пор используют Mercurial. В частности, Facebook этим славен. Может кому интересно тут будет.

https://graphite.dev/blog/why-facebook-doesnt-use-git

TL;DR для Ъ:

Года до 2012 в Facebook царствовал Git, но с ним были проблемы. У лицекниги была жирная монорепа, и Git начинал ощутимо лагать на ней. Перцы из Facebook написали разрабам гита с предложением ускорить работу собственно гита, но те их послали, предложив место этого распилить монорепу на кусочки. Лицекниговые такой поворот сюжета не оценили, и тут им подвернулся Mercurial, разрабы которого как раз без проблем приняли патчи с улучшением производительности.

С тех пор в мордокниге царствует Mercurial.

Ответ на: комментарий от Syncro

Всем бизнесам выгодна максимизация текучки кадров

нет, это миф. Я сам бизнесмен, сам трачу свои деньги на ФОТ и такие бредни у меня вызывают оторопь.

гит будет по 2 раза на дню разваливать вам рабочую копию

я такое один раз видел 18 лет назад, когда девочка верстальщица что-то удивительное навертела. Больше не было ни разу.

max_lapshin ★★★★★
()
Ответ на: комментарий от Syncro

т.к. это способствует лучшему угнетению рабочего класса.

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

hateyoufeel ★★★★★
() автор топика
Ответ на: комментарий от max_lapshin

нет, это миф.

ну это как спор о демократии в политике. По делам их узнаете их.

я такое один раз видел 18 лет назад

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

Syncro ★★★★★
()
Ответ на: комментарий от hateyoufeel

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

Syncro ★★★★★
()
Ответ на: комментарий от Syncro

нет, пролетарий зарабатывает на жизнь(прокорм) собственным трудом на хозяйских средствах производства,

Явно не про программистов. У каждого программиста свой ноутбук есть.

hateyoufeel ★★★★★
() автор топика
Ответ на: комментарий от grem

какой такой договоренности?

вам мержом приехал чей-то рефакторинг на тысячу строк кода и наделал конфликтов в вашем коде. Гит все разломал в сотни испорченных файлов по рабочей копии со строчками >>> <<<, и ваши варианты: а) откатить все набрав 5 заклинаний, которые вы никогда не запомните и переделать свой код приспособившишсь б) сделать мусорный мердж коммит резолвом гита/среды/интеграции. Теперь внимание: гит мог бы без заклинаний до мержа и разлома рабочей копии сообщить, что в ветке есть конфликты и предоставить возможность без лишнего гемора выбрать из а) и б). Хотя бы потому что ни один менеджер вас не поймет правильно когда вы заговорите о конфликтах, он решит что вы с коллегой токсики и сретесь как дети из-за фигни и одного из вас как раз можно было бы продать, что-бы получить новые проекты/деньги/лиды.

Syncro ★★★★★
()
Последнее исправление: Syncro (всего исправлений: 3)
Ответ на: комментарий от Syncro

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

Ты в X5 Retail случайно не работал?

cumvillain
()
Ответ на: комментарий от Syncro

Что значит гит поломал? В других системах при подтягивании несовместимых изменений само всё разрушится или подсиживающие джуны сбегутся разгребать?

Прочитай уже документацию: https://git-scm.com/book/ru/v2/Инструменты-Git-Продвинутое-слияние

grem ★★★★★
()
Ответ на: комментарий от hateyoufeel

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

Syncro ★★★★★
()
Ответ на: комментарий от Syncro

многие работодатели даже удаленщикам выдают ноуты и иную технику

ичо? Ноуты взаимозаменимы. Ты можешь взять любой и писать код.

а кроме техники есть еще серверы, сервисы код и т.п.

Ну, да, и? Программист не может собрать и поднять свой сервер? Говно это, а не программист!

hateyoufeel ★★★★★
() автор топика
Ответ на: комментарий от cumvillain

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

Syncro ★★★★★
()
Последнее исправление: Syncro (всего исправлений: 1)
Ответ на: комментарий от Syncro

вы как будто оттаяли изо льда 19 века и пару дней поработали в IT.

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

max_lapshin ★★★★★
()
Ответ на: комментарий от hateyoufeel

ичо? Ноуты взаимозаменимы. Ты можешь взять любой и писать код.

в современной юридической практике это определяет владельца результатов труда вроде как. Т.е. если например условный Сысоев пилил свой сервер на компе от работодателя по прямой постановке ТЗ, то значит он не будет иметь никаких прав на свое творение, т.е. является пролетарием.

Syncro ★★★★★
()
Ответ на: комментарий от Syncro

Вот повсеместный гит это из той же оперы кстати.

Я стесняюсь спросить, но когда git merge —abort вдруг стал слишком сложным для людей с зарплатой в несколько сотен тысяч рублей?

cumvillain
()
Ответ на: комментарий от Syncro

Т.е. если например условный Сысоев пилил свой сервер на компе от работодателя по прямой постановке ТЗ, то значит он не будет иметь никаких прав на свое творение, т.е. является пролетарием.

Дело в том, что Сысоев может купить себе ноут и пилить сервер там. В этом кроется разница с 19 веком :))

cumvillain
()
Ответ на: комментарий от cumvillain

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

Syncro ★★★★★
()
Ответ на: комментарий от Syncro

Т.е. если например условный Сысоев пилил свой сервер на компе от работодателя по прямой постановке ТЗ, то значит он не будет иметь никаких прав на свое творение, т.е. является пролетарием.

А где тут средства производства?

Ты ещё поной тут, что столяр не имеет прав на стул, который он продал из своей столярной мастерской.

hateyoufeel ★★★★★
() автор топика
Ответ на: комментарий от Syncro

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

Это уже вопрос к качеству судебной системы.

cumvillain
()
Ответ на: комментарий от cumvillain

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

Syncro ★★★★★
()
Ответ на: комментарий от Syncro

в капиталистическом государстве все работает на интересы капиталиста, а в колониально-зависимом на капиталиста из метрополии

Бвахахахаха. Мил человек, ты ТК РФ читал? Это один из наиболее враждебных нанимателю кодексов в мире.

cumvillain
()
Ответ на: комментарий от Syncro

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

Еще гномы-членокрады! Ты уже надел клетку на член чтобы от них защититься?

cumvillain
()
Ответ на: комментарий от cumvillain

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

Syncro ★★★★★
()
Ответ на: комментарий от Syncro

у людей которым не приходится пахать 80% имеющегося времени есть возможности крутиться и перехитрить любого работника

Сразу видно диванного кукаретика. Поищи статистику по судам, они встают на сторону работника примерно всегда.

cumvillain
()
Ответ на: комментарий от Syncro

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

Это ты дошёл до такого после того, как не смог порт в Gitlab перевесить? Или ты всегда таким был?

Кстати, у меня git историю не разваливает и файлы не портит.

hateyoufeel ★★★★★
() автор топика
Последнее исправление: hateyoufeel (всего исправлений: 1)
Ответ на: комментарий от Syncro

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

По сути твоей проблемы:

  1. В рамках всех существующих систем, кроме pijul (наверное), конфликты неизбежны, и это боль, да. Но это не боль от Git, это боль от того, что все современные VCS работают с кодом даже не как с текстом, а как с набором байт.
  2. Твоё нытьё про то, что «git мог бы и знать» решается, например, использованием git branchless, который работает именно так, как ты хочешь (сначала проверяет будет ли конфликт).
anonymous
()
Ответ на: комментарий от anonymous

использованием git branchless

еще десяток магичных костылей? ха-ха, там дефрагментация есть? искоробочной то всяко не хватит для скучающего, надо чтобы гит между сломанными рабочими копиями постоянно делал как можно больше бестолковых «Action Required»

Syncro ★★★★★
()
Ответ на: комментарий от spbzip

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

firkax ★★★★★
()
Ответ на: комментарий от Syncro

еще десяток магичных костылей? ха-ха, там дефрагментация есть? искоробочной то всяко не хватит для скучающего, надо чтобы гит между сломанными рабочими копиями постоянно делал как можно больше бестолковых «Action Required»

Я до сих пор не понимаю как люди с зарплатой в сотни тысяч рублей не могут справиться с одной командой в git:

$ git --no-pager log --oneline master
88f07de (HEAD -> master) b
e86696d Initial commit
$ git --no-pager log --oneline feature
e6f9b13 (feature) c
e86696d Initial commit
$ git merge feature
Auto-merging FILE
CONFLICT (content): Merge conflict in FILE
Automatic merge failed; fix conflicts and then commit the result.
$ git status
On branch master
You have unmerged paths.
  (fix conflicts and run "git commit")
  (use "git merge --abort" to abort the merge)

Unmerged paths:
  (use "git add <file>..." to mark resolution)
	both modified:   FILE

no changes added to commit (use "git add" and/or "git commit -a")
$ git reset --hard
HEAD is now at 88f07de b
$ git status
On branch master
nothing to commit, working tree clean
cumvillain
()
Ответ на: комментарий от Syncro

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

Reset ★★★★★
()
Ответ на: комментарий от Syncro

так у вас 5 команд

У меня одна команда отката ветки. Остальные чтобы показать тебе состояние репозитория. Ну и продемонстрировать, что ты несешь лютую ахинею.

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

Я не знаю как комментировать эту шизофрению.

cumvillain
()
Ответ на: комментарий от Reset

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

Syncro ★★★★★
()
Ответ на: комментарий от cumvillain

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

Syncro ★★★★★
()
Последнее исправление: Syncro (всего исправлений: 2)
Ответ на: комментарий от anonymous

В рамках всех существующих систем, кроме pijul (наверное), конфликты неизбежны, и это боль, да.

В Darcs и Pijul конфликты тоже неизбежны. Там они просто чуть реже возникают.

Вообще, у этих штук другие плюшки гораздо интереснее. Бесконфликтность идёт скорее маленьким бонусом.

hateyoufeel ★★★★★
() автор топика
Последнее исправление: hateyoufeel (всего исправлений: 2)
Ответ на: комментарий от firkax

О! Фанаты SVN подтянулись!

Не, не организуют. Тот факт, что есть эталонная копия репозитария, на которую остальные ориентируются, не делает систему менее распределённой.

hateyoufeel ★★★★★
() автор топика
Последнее исправление: hateyoufeel (всего исправлений: 1)
Ответ на: комментарий от Syncro

вы разбираете какой-то один кейс, а гит может обсираться несколько по-разному и часто спасает только в районе 3-5 команд «отката».

Обсираться можешь ты, git делает то что ты ему сказал. Если ты не обосрался, процедура отката выглядит так, как я показал.

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

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

cumvillain
()