- *programming *git *hgПытаюсь вот сформулировать свое мнение касательно "Git vs Mercurial" и понял что немного не хватает информации. Жуйк, есть ли какие-то ситуации, которые в hg делаются значительно проще чем в git? Простоту будем мерять в степени необходимости выполнения "неочевидных" комманд в git-решении.
Это не вброс, не флудите, плз. Если есть желание устроить СО на тему Git-vs-Mercurial — создам отдельный потс
Replies (195)
- @trminator:быстренько поднять сервер на http для междусобойчика — hg serve#1731723/1from Miranda, 3 months ago
- @xl0:@trminator И чего, пушить тоже черег http?#1731723/2from BitlBee959DE1C6, 3 months ago, in reply to /1
- @predator:на себе испытал гормознутось hg при большом репозитории. Правда давно это было. Уже года два назад#1731723/5from 16285826581327665753963129, 3 months ago
- @Shchvova:к меркуриалу элементарно писать расширения, на нормальном языке, работают везде и работают удобно.#1731723/6from web, 3 months ago
- @Shchvova:о, меркуриал нормально работает по виндой и макосью... Гит тоже работает, но никак по другому как "уродство" это не назовешь#1731723/8from gmail.1461FF78, 3 months ago
- @Shchvova:@ComradeDOS насколько я понимаю это не одно и то же. Функциональность хуков очень ограничена, когда расширения меркуриала могут очень много что менять, например, как хранится информация в репозитории.#1731723/12from web, 3 months ago, in reply to /10
- @ComradeDOS:@Shchvova Скажем так — с помощью хуков можно сделать многое. Если нужно больше лезь внутрь.#1731723/13from hp, 3 months ago, in reply to /12
- @Shchvova:легче найти адекватный пользователей, а не тупых фан-боев Торвальдса.#1731723/14from gmail.1461FF78, 3 months ago
- @balodja:Кто-нибудь, напомните, как в гите отредактировать предпоследний коммит?#1731723/16from home, 3 months ago
- @Shchvova:да, еще еще меркуриал нормально использует ветки. Звучит тупо, но гит в этом плане просто говно... Ну общим, вот что умные люди пишут jhw.dreamwidth.org#1731723/18from gmail.1461FF78, 3 months ago
- @balodja:К тому, ТС, для кого ты собираешься это мнение формулировать? :)#1731723/19from home, 3 months ago
- @balodja:@ComradeDOS Ребейз? Шикарно, после этого можно про тормознутость меркуриала даже не заикаться.#1731723/20from home, 3 months ago, in reply to /17
- @Shchvova:а, да, еще в меркуриале нету необходимости делать рибейз... Вообще это ущербная идеология править историю, не?#1731723/27from gmail.1461FF78, 3 months ago
- @xl0:Основные претензии к hg: 1) Кривые бранчи. 2) Кривой merge. 3) Невозможность запушить только тот бранч, который ты хочешь запушить. 4) тормоза на больших проектах. 5) hg log выглядит просто ёбищьно. 6) И это только то, что я вспомнил сейчас.#1731723/33from BitlBee959DE1C6, 3 months ago
- @ComradeDOS:Тред скатился в унылое говно. Обычный срачик между сторонниками разных подходов. Очень напоминает спор "остроконечников" с "тупоконечниками".#1731723/38from hp, 3 months ago
- @Shchvova:ну общим, отошли от темы. Меркуриал лучше гита банально тем что он мержит умнее.
Читать jhw.dreamwidth.org#1731723/42from gmail.1461FF78, 3 months ago - @LittleChris:@xl0 ага. а критерием кривости/ровности является степень похожести на git. git лучшевсех потому что это git и он лучшевсех. какая срань.#1731723/45from web, 3 months ago, in reply to /33
- @balodja:@LittleChris Это же хомячки торвальдса, чего еще ожидать?#1731723/46from home, 3 months ago, in reply to /45
- @xl0:@LittleChris Я зибил и просто использую#1731723/48from BitlBee959DE1C6, 3 months ago, in reply to /47
- @Shchvova:@LittleChris ну, я написал уже 4 конкретных факта чем лучше меркурил гита, на что получил ответ "говно, т.к. не так как в гите"#1731723/49from gmail.1461FF78, 3 months ago, in reply to /47
- @xl0:@LittleChris Я зибил и просто использую миррор в гит по работе. С кроме работы hg не встречаю.#1731723/50from BitlBee959DE1C6, 3 months ago, in reply to /47
- @ComradeDOS:@balodja Если нужно отредактировать только сообщение — git commit --amend В /16 говорилось про редактирование коммита, а не сообщения.#1731723/55from hp, 3 months ago, in reply to /39
- @LittleChris:@Kim хомячки вообще зло. и даже на топливо для биореактора едва годятся.#1731723/59from web, 3 months ago, in reply to /53
- @ComradeDOS:@balodja Последнего. В git help commit есть описание того, что тебе нужно. ;)#1731723/60from hp, 3 months ago, in reply to /57
- @LittleChris:@Shchvova есть ещё класс юзеров «гит охуенный потому, что гитхаб охуенный».#1731723/61from web, 3 months ago, in reply to /58
- @balodja:@ComradeDOS Рецепт в студию. Я чото сам не осилил.#1731723/62from home, 3 months ago, in reply to /60
- @LittleChris:@ComradeDOS наваяешь на хуках git аналог hg-git.github.com — тогда и поговорим.#1731723/63from web, 3 months ago, in reply to /10
- @Kim:@Shchvova Это те которые ведут диалог в формате "Ты хуй, hg это единственно верная система". Все уже увидели две ссылки с описанием одной и той же проблемы. ТС наверно даже сделал пометку, что Git does not records family history in the repository и дальше его не интересует, как ты называешь собеседников, долбаёбами которые дрочат на и далее по тексту.#1731723/64from emacs-desktop, 3 months ago, in reply to /54
- @ComradeDOS:@balodja git reset --soft ID && git commit --amend#1731723/65from hp, 3 months ago, in reply to /62
- @LittleChris:@Kim вы чота путаете, тезис таков: «git — уёбищное говно, пушо здесь он неудобный, а тут — кривой, а вот этого не умеет в принципе. я с вас удивляюсь, хули вы все на него фапаете»#1731723/67from 7bf83e66, 3 months ago, in reply to /64
- @balodja:@ComradeDOS Ты же таким образом склеишь два коммита, если я правильно понял.#1731723/70from home, 3 months ago, in reply to /65
- @Kim:@LittleChris Ну понятно же, что кроме "не умеет в принципе" про историю — остальное были аргументы уровня "мне удобно спать на потолке, а кто не согласен — болен на голову".#1731723/71from emacs-desktop, 3 months ago, in reply to /67
- @Sectoid:@trminator с некоторой натяжкой можно принять. а почему именно http?#1731723/75from mobility, 3 months ago, in reply to /1
- @LittleChris:@Kim «мне удобно набивать в 1,5 раз больше команд при рутинных операциях из-за прибитой 150мм гвоздями staging area, получая профит от её использования раз в месяц; а кто не согласен — болен на голову»#1731723/76from 7bf83e66, 3 months ago, in reply to /71
- @LittleChris:@Sectoid я так понимаю, libgit2.github.com пишется гитхабовцами от нехер делать?#1731723/84from 7bf83e66, 3 months ago, in reply to /79
- @LittleChris:@Sectoid особенно интуитивно выводится команда git request-pull например#1731723/89from 7bf83e66, 3 months ago, in reply to /86
- @Sectoid:@LittleChris А что это за комманда? за 3+ года использования ни разу не сталкивался.
/me пошел читать man.#1731723/91from mobility, 3 months ago, in reply to /89 - @fractal:@balodja датышо? сирьёзна?
«а, да, еще в меркуриале нету необходимости делать рибейз... Вообще это ущербная идеология править историю, не?» — где тут про удалённую историю?
И кстати, иногда может появиться крайняя нужда отредактировать удалённую историю: файл с паролями засунули, выложили бинарь, или просто файло с нарушением лицензии. А какую колбасу нам предложит hg на этот случай?#1731723/95from web, 3 months ago, in reply to /87 - @LittleChris:Про интуитивность git. Дано:
$ ls
foo bar
$ git branch
bar
* master
Вопрос: что сделает команда git checkout bar?#1731723/96from 7bf83e66, 3 months ago - @Sectoid:@LittleChris выгружает в рабочую копию ветку bar, очевидно же. еще раз — курим модель.#1731723/98from mobility, 3 months ago, in reply to /96
- @LittleChris:@fractal можно mq использовать, можно strip+import, можно histedit.#1731723/99from 7bf83e66, 3 months ago, in reply to /95
- @Sectoid:@LittleChris что именно — это? семнатика checkout — в man git-checkout, модель счас сходу не скажу, но в мане тоже есть.#1731723/105from mobility, 3 months ago, in reply to /103
- @LittleChris:@Sectoid что у веток есть приоритет перед файлами.#1731723/108from 7bf83e66, 3 months ago, in reply to /105
- @Sectoid:@LittleChris git checkout [-p|--patch] [<tree-ish>] [--] [<paths>...]
ы?#1731723/112from mobility, 3 months ago, in reply to /108 - @Sectoid:@LittleChris открывайте дверь! Это акция "знай shell или кипятильник в жопу!"#1731723/116from mobility, 3 months ago, in reply to /113
- @LittleChris:@Sectoid мне за шелл не платят. а тебе?#1731723/121from 7bf83e66, 3 months ago, in reply to /116
- @Sectoid:@LittleChris также как и тебе — за решение задач. а если хуево знаешь инструмент — решаешь их ты тоже хуево.#1731723/122from mobility, 3 months ago, in reply to /121
- @LittleChris:@Sectoid ви гойворите так, будто в hg нет этого вашего rebase.#1731723/123from 7bf83e66, 3 months ago, in reply to /120
- @Sectoid:@LittleChris есть. но без гитовых веток он не так годен.#1731723/124from mobility, 3 months ago, in reply to /123
- @LittleChris:@Sectoid или беру нормальный инструмент, но ведь это не рассматривается, не так ли?#1731723/125from 7bf83e66, 3 months ago, in reply to /122
- @Sectoid:@LittleChris инструмент, которым невозможно выполнить требующуюся мне манипуляцию — говно и не нужен.#1731723/126from mobility, 3 months ago, in reply to /125
- @LittleChris:@Sectoid гитовские «ветки» — это hg bookmarks.#1731723/128from 7bf83e66, 3 months ago, in reply to /124
- @Sectoid:@LittleChris да, наслышан уже. правда не тестировал — насколько точно соответствуют?#1731723/129from mobility, 3 months ago, in reply to /128
- @Sectoid:@LittleChris его для другого пишут. чтобы была возможность безопасно взаимодействовать с гит-репами из долгоживущих процессов. Существующая libgit написана из расчета использования в короткоживущих утилитах, и имеет в связи с этим немалые утечки памяти#1731723/130from mobility, 3 months ago, in reply to /84
- @LittleChris:@Sectoid они оба являются одним и тем же — перемещаемым указателем на вершину DAG ревизий. hg-git пушит в git remote именно bookmarks#1731723/131from 7bf83e66, 3 months ago, in reply to /129
- @LittleChris:@Sectoid шота я не нахожу libgit в репах#1731723/132from 7bf83e66, 3 months ago, in reply to /130
- @LittleChris:@Sectoid очевидно, что
re-entrant, with sane error handling
сплошь выдумка и маркетинг. ну кому это может понадобиться?
designed with a solid and consistent API
compiled with minimal external dependencies (currently only zlib)#1731723/133from 7bf83e66, 3 months ago, in reply to /130 - @Sectoid:@LittleChris она немножко статическая, является частью проекта git.#1731723/134from mobility, 3 months ago, in reply to /132
- @Sectoid:@LittleChris а теперь еще раз прочитай сообщение, на которое отвечаешь.#1731723/135from mobility, 3 months ago, in reply to /133
- @LittleChris:@Sectoid $ locate -b libgit | wc -l
0#1731723/136from 7bf83e66, 3 months ago, in reply to /134 - @LittleChris:@Sectoid или ты имел в виду, что она вкомпилена в git статически и на диске её запросто может не быть?#1731723/137from 7bf83e66, 3 months ago, in reply to /134
- @Sectoid:@LittleChris я имел в виду, что в силу того, что она статическая и не особо предназначена для внешнего использования — ее нечасто вкладывают в пакеты в дистрибутивах.#1731723/138from mobility, 3 months ago, in reply to /137
- @LittleChris:@Sectoid когда сроки поджимают, а инструмент требует прочесть и усвоить тонны манов чтобы просто работать с ним, он выкидывается нахер.#1731723/139from 7bf83e66, 3 months ago, in reply to /122
- @Sectoid:@LittleChris ну, я ж говорю — херовый из тебя работник, даже инструментарий первой необходимости не знаешь в базовом объеме. в сад.#1731723/140from mobility, 3 months ago, in reply to /139
- @LittleChris:@Sectoid а всё почему? а всё потому, что в кишках у git говно и черви, которое даже в либу толком не завернёшь. вот 5 лет прошло, прежде чем хоть что-то вменяемое появилось.#1731723/141from 7bf83e66, 3 months ago, in reply to /138
- @LittleChris:@Sectoid диагноз по аватарке? ну-ну.#1731723/142from 7bf83e66, 3 months ago, in reply to /140
- @LittleChris:@ComradeDOS stackoverflow.com
but the downside of it is that you cannot push updates made to your git repo to a hg repo with git-hg
а hg-git умеет пушить коммиты в репозитории git#1731723/143from web, 3 months ago, in reply to /69 - @Sectoid:@LittleChris если честно — мне не сильно интересно что в кишках, пока оно решает мои задачи. что до качества кода — да, оно не везде высокое.#1731723/144from mobility, 3 months ago, in reply to /141
- @Kim:@LittleChris Диагноз по тому простому факту, что если тебя поджимают сроки, то свой инструментарий ты должен давно уметь. То есть ситуация "завтра дедлайн, а мне надо прочитать тонны манов" — невозможна. //К.О.#1731723/145from emacs-desktop, 3 months ago, in reply to /142
- @LittleChris:@Kim это был не «мой инструментарий». это «инструментарий, которым приказал пользоваться заказчик (потому что он оплатил пару приватных реп в гитхабе) и который выбирал не я».
А ситуация была «доработать и внедрить workflow сегодня, а лучше вчера». учитывая тот факт, что мой стаж работы с git составлял пару месяцев и 5 команд из туториала на гитхабе, а git был и моложе на пару лет, и ещё большее говно, чем сейчас, задача была практически невыполнима вовремя. Следующий (и все последующие) проект я положил под mercurial и не пожалел об этом ни разу за все полтора года, которые я с ним работал.#1731723/146from 7bf83e66, 3 months ago, in reply to /145 - @LittleChris:@Sectoid надо понимать, вам не составит труда переписать github.com так, чтобы оно использовало эти самые низкоуровневые команды?#1731723/148from web, 3 months ago, in reply to /79
- @LittleChris:@Sectoid кроме того, у git отсутствуют extension points. задача «добавить ключ к произвольной команде» или «пищать в спикер каждый третий вызов любой команды» не решается средствами git api, а решается (пере)определением алиаса в шелле (см. git achievements сотоварищи).#1731723/149from web, 3 months ago, in reply to /79
- @LittleChris:@asphyx на минуточку, таких юзеров git — что-то ~70%#1731723/154from 7bf83e66, 3 months ago, in reply to /151
- @LittleChris:@Sectoid и вот здесь вопрос.
Зачем тратить ресурсы на «изучать модель», если пользуясь нормальными DVCS (veracity, hg, bzr) этого делать не нужно?#1731723/155from web, 3 months ago, in reply to /86 - @overmind88:@LittleChris LOL, bazaar занесли в нормальные dvcs#1731723/156from Kopete, 3 months ago, in reply to /155
- @dion:@dr-Chaos ложь чуть более чем полностью. Начинается это с того что она тащит с собой пол cygwin-а, perl, vim и еще кучу ненужного говна. В инсталлере msysgit или как там его куча каких-то странных опций вроде работы с EOL, каки-то идиотские git shell-ы, и т.д. И заканчивая тем что какой-нибудь невозможностью откатить все измененные файлы. Частично в таком случае помогает создание staging area и удаление её тут-же, но не всегда.#1731723/158from laptop, 3 months ago, in reply to /21
- @dion:по теме — в git-е отсутствует нормальная поддержка pull/push по HTTP. В корпоративной среде это очень важно. Сам был свидетелям попыток это завести с целью избежать еще одного открытого порта не сервере.#1731723/159from laptop, 3 months ago
- @Sectoid:@LittleChris "нормальность" модели субьективно — в сад.#1731723/166from mobility, 3 months ago, in reply to /155
- @Sectoid:@overmind88 в сраче много шума. правда в результате эта тему к нему и скатилась, увы(#1731723/168from mobility, 3 months ago, in reply to /147
- @Sectoid:@LittleChris посмотрел пример — принципиальной сложности не вижу. на bash подойдет?)#1731723/169from mobility, 3 months ago, in reply to /148
- @dion:@Sectoid я не говорил что оно не работает. Оно работает но через одно место. И судя по мануалу progit.org ничего и не поменялось...
Если два отсутствующие локально коммита на сервере уже зажевало в pack файл, то сливаться будет он весь... А если repack-а давно не было то при pull-е будет огромная куча GET-запросов.. Сюда же добавить что репозитории для этого дела нужно заводить с отдельными ключами плюс заниматься непонятно каким извращением с WebDAV-ом. А так да, вроде и работает.#1731723/170from laptop, 3 months ago, in reply to /163 - @LittleChris:@overmind88 дада, мы уже выяснили, что чтобы быть нормальной, название vcs должно начинаться с «git».#1731723/171from web, 3 months ago, in reply to /156
- @LittleChris:@Sectoid на сишечке, будьте любезны#1731723/172from web, 3 months ago, in reply to /169
- @LittleChris:@Sectoid впрочем, если сможете хранить репозиторий в реляционной БД (sqlite например, но подойдёт любая) — пишите хоть на баше, хоть на брейнфаке#1731723/173from web, 3 months ago, in reply to /169
- @LittleChris:@ComradeDOS github.com
hg convert . .git/hgcheckout
В отличие от этой поделки, hg-git не использует /usr/bin/git. Вообще.
hg -R .git/hgcheckout push $HG_REPO#1731723/175from web, 3 months ago, in reply to /69 - @ComradeDOS:@LittleChris Зря. Если бы использовал, то работал бы быстрее и потреблял меньше памяти. ;)#1731723/176from work, 3 months ago, in reply to /175
- @Kim:@Sectoid Как я понял авторы что на <jhw.dreamwidth.org>, что на <jhw.dreamwidth.org> жалуются на то, что mercurial в истории сохраняет имена веток, а git хранит имена только для текущих бранчей. Из-за этого (смотри вторую ссылку, там проще расписано) нельзя понять какая ветка истории всегда принадлежала ветке release, а значит нельзя, например, удобно разобрать какие изменения пришли извне твоей линии разработки и которые надо будет, соответственно, описать в обзоре перед релизом.#1731723/177from emacs-desktop, 3 months ago, in reply to /94
- @dr-Chaos:@dion Не, ну господа. Больше года назад в git-е появился CGI, который нормально работает не с файлами, а с объектами репозитория (git-http-backend). С WebDAV с тех же пор возиться не надо, т.к. аутентификация будет та что укажешь веб серверу. Ну и под винду уже месяца 3 как можно negotiate аутентификацию использовать, т.к. curl виндовый допилили, до этого ntlm приходилось юзать.#1731723/181from web, 3 months ago, in reply to /170
- @dion:@dr-Chaos это и есть костыли. А мешают много чем. Например непонятно зачем в системе второй перл, vim и еще кучу говна... Про откатить файлы — я не раз сталкивался с тем что даже после reset --hard, git status показывает что есть modified файлы#1731723/182from laptop, 3 months ago, in reply to /180
- @overmind88:@dion
Например непонятно зачем в системе второй перл, vim и еще кучу говна...
А hg использует петон, установленный в системе?#1731723/184from Work, 3 months ago, in reply to /182 - @dion:@overmind88 можно и так.. на оффициальном сайте можно выбрать либо в виде одного exe-ника (созданного py2exe) либо чтобы был нужен пистон.#1731723/186from laptop, 3 months ago, in reply to /184
- @LittleChris:немного оффтоп, но думаю, пригодится: сводная табличко «фатальных недостатков» Git и Mercurial — blog.develop7.info#1731723/200from web, 1 month ago
