> Я делаю всё через комманд лайн, кроме очевидно неудобных вещей.
Мне удобно смотреть историю и в хг, и в гите. И в сабвершене не испытывал проблем. Но базар прячет еë, и это раздражает. Это не шоу-стоппер.
> Вы патч мастер? Вам сливают всё, а вы мерджите? Не могу ничего посоветовать ибо не знаю вашего процесса. Просто выглядит подозрительно.
Не понимаю, что выглядит подозрительно? За последнюю неделю я завершил какое-то количество тикетов и они ждут, пока до них доберëтся гейткипер, а некоторые еще в процессе (потому что я переключался на саппорт/проблемы на лайве).
> :: Я не могу клонировать или не клонировать по желанию
> В смысле? готово — делаешь merge \ pull не готово — не делаешь. Что значит должен? В транк не должны попадать недоделки. Для этого есть бранчи фич. Клонировать (сделать branch) можно в любой момент и с любой ветки.
Если я хочу получить каждый тикет в отдельной ветке, в базаре меня заставляют делать новые клоны. Которые жрут время, занимают место и лежат в другом месте относительно предыдущего места работы. Что кроме всего еще значит то, что все мои tags-файлы уже невалидны, а у коллеги в эклипсе десятка три воркспейсов.
То, что в базаре репозиторий и ветка — это синонимы — это плохо. Очень плохо. Я могу иметь один репозиторий и много веток одновременно и в меркуриале, и в гите. Там DAG, почему мне инструмент не даëт с ним нормально работать?
> можно поставить, посмотреть и сделать bzr revert если не подходит, в чем проблема? Все, что не закоммичено — не закоммичено и места не занимает…
> bzr revert откатит до состояния последнего коммита.
Применение через bzr pull сделает коммит. Я могу сделать анкоммит, но я не могу посмотреть в мыле. А я хочу, потому что я привык и потому что это быстрее в несколько раз.
> Ерунда какая. А почему не положить их в библиотеку и держать в репозитории то, для чего он предназначен? Для исходников, вообщем-то.
Потому что репозиторий организовывал не я и потому что оформление меняется в процессе.
Я б сделал по отдельному репозиторию на каждый модуль и делал бы из них нормальные библиотеки, но я пока не могу такое продавить, никто не хочет.
> Потихоньку выясняется, что базар тут вообщем-то нипричем. А, как я и говорил, надо думать о процессах и организации работы.
Well, при чëм, конечно. Я написал список проблем, и 3 гига на диске — это не основная и не проблема.
Проблема в том, что он мешает мне общаться с коллегами, проблема в том, что у начала работы над тикетом стоимость выше той, которую я получу с меркуриалом или гитом, он неудобен (и не пытается таковым быть) — неужели расцветить всë или паджинировать так тяжело?
И я не могу его нормально расширять, чтоб улучшить воркфлоу. API базара плохое как внутреннее — питоновское, так и наружное — коммандлайновое (к примеру, return code часто не имеет отношения к тому, что произошло).
> Эмоционально это вам нравится, а это нет…
Эмоционально мне не нравится гит. Но я могу им пользоваться, это инструмент, а не его подобие.
> можно увидеть и что в транке и что было в мердже и что закоммитили… На каждом шагу видно кто что и когда сделал
Я не пользуюсь гуем, к сожалению, привык к консоли или веб-интерфейсу (которого тоже нет, с логгерхедом немало возни), плюс под мак часто не собирают ничего.
> По поводу прикола. Что-то не так в процессе, если есть огромные незамердженные бранчи. И они лежат на одной машине.
Почему не так? У меня примерно 15 тикетов еще в стадии «не дошли до лайва», еще 5 — просто эксперименты, еще десяток я не удалил, в результате — 30 бранчей, каждый по 100 мегов (история длинная), 3 гига накопилось.
> В чем невозможность движения? Организовать структуру бранчей, установить общие правила, _следить за четким их исполнением_. Всё просто работает. Двигаться в каком смысле?
В том смысле, что я не могу три ветки в одном репозитории держать, например. Я не могу клонировать или не клонировать по желанию — мне нужно клонировать. Я не могу отправить патчик по мылу человеку, чтоб он его посмотрел и применил, если ему захочется, потому что для этого ему придëтся создавать новый клон, применять то, что выдал bzr send и смотреть — очень высокая цена за любое движение выходит. :(
> Именно с базаром у нас работают до 10 человек, так что спорить не буду, конечно.
У нас тоже всего 11 человек. А проект не слишком так, чтоб большой, там рабочая копия на 40 мб, из которых 30 — всякие картинки и оформление, остальное — код, темплейты и всякие мелочи.
А строго по ветке на фичу я и в гите не применяю, и в хг — только для более-менее долгоиграющих изменений. Но это в своих проектах, на работе сейчас как раз воркфлоу строим и «по ветке на тикет» очень хорошо выходит. С букмарками.
Но он серьëзно абсолютно нелогичен. Почему я забираю изменения из транка, делаю с ними мерж и в результате вижу «merge with trunk» вместо изменений из транка? А мой сосед потом забирает мои изменения, но видит этот «merge with trunk» вместо моих изменений. Не вижу, что именно здесь логично. :(
> Если логика не подходит под выбранный вами процесс разработки — надо просто взять другой инструмент, пока не поздно.
Тут возник клëвый прикол. У нас есть процесс, выстроенный под базар, с кучей репозиториев/бранчей, гейткипером и т.п. Если мы берëм хг или гит, то мы легко его можем поддерживать и даже двигаться в разные стороны. А с базаром двигаться некуда, у него один вариант, если не хочется давать доступ всем в главный репозиторий — куча отдельных репозиториев. :( У меня на диске текущие незамерженные бранчи проекта занимают 3 гига. Вроде немного, но это ж не видео, это текст.
Он очень ограничен в плане свободы передвижений. :(
Я подумываю написать в блог свежую статью на тему сравнения гита вс хг и плевка в сторону базара (ну, у меня к нему и раньше немного неприязненное отношение было, но за последние два месяца оно резко изменилось в сторону ненависти :)), за последний год как раз постоянно работал со всеми…
> Я использую одновременно и гит, и меркуриал, поэтому не поддержу мнение, что между ними так уж сложно переходить :)
Ты пришëл уже на накатанную дорожку и тебе просто чëтко и ясно объяснили, что делать. А когда только начинают его использовать, всякая херня лезет очень здорово. :\
Я на текущей работе вынужден пользоваться базаром (уже 2,5 месяца) и за последние две недели написал предложение о переходе на меркуриал, сделал презентацию и в принципе скоро должны проголосовать. :) У меня есть страничка на вики длиной в 2,5 тысячи слов, я постараюсь кратко основные моменты оттуда описать:
no in-repo branches
absolutely useless revision numbers
mainline idea and merge-orientedness, log presentation sucks
no possibility to exchange with text/plain patches
no coloring, no auto-pagination of output
abolutely awful code and API
Первый пункт может казаться неважным, если до того не использовать hg или git. Но он важен, и для меня это основной камень преткновения.
Номера ревизий — это жопа. В базаре попытались сделать последовательные номера коммитов (как в свн — 1, 2, 3), которые бы сохранялись при клонировании, но они *не сохраняются*. В гите — только хеши ревизий, в хг — хеши и локальные номера, в базаре — только локальные номера. Хеши спрятаны глубоко и никто в компании, кроме меня, как до них добраться, никак не может запомнить. Это вообще дикая жопа выходит. Если ты знаешь номер чейнджсета, ты не можешь пойти к другому человеку и сказать «в чейнджсете ab32f трабла!» Ты должен отправить ему длинный хеш через джаббер, потому что базар не понимает сокращений. Не знаю, как выразить всю свою ненависть. :\
Коммиты других людей постоянно прячутся за мержами. Неприятно в большинстве случаев.
bzr send не умеет слать простые патчи по мылу, только бинарные и кошмарные. Неудобно, блин.
Ну, подсветку и паджинацию можно сделать через пайп, но это те мелочи, которые достают.
Мне пришлось написать пару экстеншенов для него для работы и должен сказать, что его внутренности — это пример одного из самых плохих исходных кодов, которые я видел в крупных опенсорсных питоновых проектах. Не, не пример одного, это самый плохой. Очень-очень плохо, двойка.
Могу немного попытаться продолжить на тему плюсов хг и гита, но мне кажется, что этого достаточно, да?
Эх, JSDB на старой версии SpiderMonkey, которая еще в ff 3.5 используется. Новая, с JäegerMonkey, намного быстрее. Правда, не знаю, есть ли билды JSDB с ним, но в любом случае хорошо знать, что теперь всë заметно лучше. :)
А, как-то я с этой стороны не посмотрел. Ну, возможность писать императивно не исключает возможность писать функционально. И это на лиспе всë-таки делать проще, чем на перле, питоне или жаваскрипте.
Хм, не уловил, а как макросы ломают функциональность? Лисп даëт возможность писать программы имеративно с помощью присваивания (setq, etc), а макросы тут не при чëм, или я что-то упускаю?
stevelosh.com/blog/2009/08/a-guide-to-branching-in-mercurial/
Мне удобно смотреть историю и в хг, и в гите. И в сабвершене не испытывал проблем. Но базар прячет еë, и это раздражает. Это не шоу-стоппер.
> Вы патч мастер? Вам сливают всё, а вы мерджите? Не могу ничего посоветовать ибо не знаю вашего процесса. Просто выглядит подозрительно.
Не понимаю, что выглядит подозрительно? За последнюю неделю я завершил какое-то количество тикетов и они ждут, пока до них доберëтся гейткипер, а некоторые еще в процессе (потому что я переключался на саппорт/проблемы на лайве).
> :: Я не могу клонировать или не клонировать по желанию
> В смысле? готово — делаешь merge \ pull не готово — не делаешь. Что значит должен? В транк не должны попадать недоделки. Для этого есть бранчи фич. Клонировать (сделать branch) можно в любой момент и с любой ветки.
Если я хочу получить каждый тикет в отдельной ветке, в базаре меня заставляют делать новые клоны. Которые жрут время, занимают место и лежат в другом месте относительно предыдущего места работы. Что кроме всего еще значит то, что все мои tags-файлы уже невалидны, а у коллеги в эклипсе десятка три воркспейсов.
То, что в базаре репозиторий и ветка — это синонимы — это плохо. Очень плохо. Я могу иметь один репозиторий и много веток одновременно и в меркуриале, и в гите. Там DAG, почему мне инструмент не даëт с ним нормально работать?
> можно поставить, посмотреть и сделать bzr revert если не подходит, в чем проблема? Все, что не закоммичено — не закоммичено и места не занимает…
> bzr revert откатит до состояния последнего коммита.
Применение через bzr pull сделает коммит. Я могу сделать анкоммит, но я не могу посмотреть в мыле. А я хочу, потому что я привык и потому что это быстрее в несколько раз.
> Ерунда какая. А почему не положить их в библиотеку и держать в репозитории то, для чего он предназначен? Для исходников, вообщем-то.
Потому что репозиторий организовывал не я и потому что оформление меняется в процессе.
Я б сделал по отдельному репозиторию на каждый модуль и делал бы из них нормальные библиотеки, но я пока не могу такое продавить, никто не хочет.
> Потихоньку выясняется, что базар тут вообщем-то нипричем. А, как я и говорил, надо думать о процессах и организации работы.
Well, при чëм, конечно. Я написал список проблем, и 3 гига на диске — это не основная и не проблема.
Проблема в том, что он мешает мне общаться с коллегами, проблема в том, что у начала работы над тикетом стоимость выше той, которую я получу с меркуриалом или гитом, он неудобен (и не пытается таковым быть) — неужели расцветить всë или паджинировать так тяжело?
И я не могу его нормально расширять, чтоб улучшить воркфлоу. API базара плохое как внутреннее — питоновское, так и наружное — коммандлайновое (к примеру, return code часто не имеет отношения к тому, что произошло).
> Эмоционально это вам нравится, а это нет…
Эмоционально мне не нравится гит. Но я могу им пользоваться, это инструмент, а не его подобие.
Я не пользуюсь гуем, к сожалению, привык к консоли или веб-интерфейсу (которого тоже нет, с логгерхедом немало возни), плюс под мак часто не собирают ничего.
> По поводу прикола. Что-то не так в процессе, если есть огромные незамердженные бранчи. И они лежат на одной машине.
Почему не так? У меня примерно 15 тикетов еще в стадии «не дошли до лайва», еще 5 — просто эксперименты, еще десяток я не удалил, в результате — 30 бранчей, каждый по 100 мегов (история длинная), 3 гига накопилось.
> В чем невозможность движения? Организовать структуру бранчей, установить общие правила, _следить за четким их исполнением_. Всё просто работает. Двигаться в каком смысле?
В том смысле, что я не могу три ветки в одном репозитории держать, например. Я не могу клонировать или не клонировать по желанию — мне нужно клонировать. Я не могу отправить патчик по мылу человеку, чтоб он его посмотрел и применил, если ему захочется, потому что для этого ему придëтся создавать новый клон, применять то, что выдал bzr send и смотреть — очень высокая цена за любое движение выходит. :(
> Именно с базаром у нас работают до 10 человек, так что спорить не буду, конечно.
У нас тоже всего 11 человек. А проект не слишком так, чтоб большой, там рабочая копия на 40 мб, из которых 30 — всякие картинки и оформление, остальное — код, темплейты и всякие мелочи.
А строго по ветке на фичу я и в гите не применяю, и в хг — только для более-менее долгоиграющих изменений. Но это в своих проектах, на работе сейчас как раз воркфлоу строим и «по ветке на тикет» очень хорошо выходит. С букмарками.
Ну хг удобнее и проще, это да.
> Если логика не подходит под выбранный вами процесс разработки — надо просто взять другой инструмент, пока не поздно.
Тут возник клëвый прикол. У нас есть процесс, выстроенный под базар, с кучей репозиториев/бранчей, гейткипером и т.п. Если мы берëм хг или гит, то мы легко его можем поддерживать и даже двигаться в разные стороны. А с базаром двигаться некуда, у него один вариант, если не хочется давать доступ всем в главный репозиторий — куча отдельных репозиториев. :( У меня на диске текущие незамерженные бранчи проекта занимают 3 гига. Вроде немного, но это ж не видео, это текст.
Он очень ограничен в плане свободы передвижений. :(
> Но, вообще говоря, git и правда помощнее, чем hg (хотя и менее юзабельный, как минимум на первых порах).
Да ну? Хотелось бы услышать, в каком месте?
Ты пришëл уже на накатанную дорожку и тебе просто чëтко и ясно объяснили, что делать. А когда только начинают его использовать, всякая херня лезет очень здорово. :\
Я на текущей работе вынужден пользоваться базаром (уже 2,5 месяца) и за последние две недели написал предложение о переходе на меркуриал, сделал презентацию и в принципе скоро должны проголосовать. :) У меня есть страничка на вики длиной в 2,5 тысячи слов, я постараюсь кратко основные моменты оттуда описать:
Первый пункт может казаться неважным, если до того не использовать hg или git. Но он важен, и для меня это основной камень преткновения.
Номера ревизий — это жопа. В базаре попытались сделать последовательные номера коммитов (как в свн — 1, 2, 3), которые бы сохранялись при клонировании, но они *не сохраняются*. В гите — только хеши ревизий, в хг — хеши и локальные номера, в базаре — только локальные номера. Хеши спрятаны глубоко и никто в компании, кроме меня, как до них добраться, никак не может запомнить. Это вообще дикая жопа выходит. Если ты знаешь номер чейнджсета, ты не можешь пойти к другому человеку и сказать «в чейнджсете ab32f трабла!» Ты должен отправить ему длинный хеш через джаббер, потому что базар не понимает сокращений. Не знаю, как выразить всю свою ненависть. :\
Коммиты других людей постоянно прячутся за мержами. Неприятно в большинстве случаев.
bzr send не умеет слать простые патчи по мылу, только бинарные и кошмарные. Неудобно, блин.
Ну, подсветку и паджинацию можно сделать через пайп, но это те мелочи, которые достают.
Мне пришлось написать пару экстеншенов для него для работы и должен сказать, что его внутренности — это пример одного из самых плохих исходных кодов, которые я видел в крупных опенсорсных питоновых проектах. Не, не пример одного, это самый плохой. Очень-очень плохо, двойка.
Могу немного попытаться продолжить на тему плюсов хг и гита, но мне кажется, что этого достаточно, да?
Удобно! ;)
Да, меня эта тема тоже немного волнует, и у меня есть некоторые мысли по поводу того, что б сделать, чтобы это улучшить.
1) импортировать как патч mq можно только голову или коммит, у которого дети — уже патчи
2) -e — редактировать сообщение, можно опустить, естественно
Вообще стоит просто почитать hg help mq. Я как-то давно уже хочу написать руководство по mq, но руки никак не доходят. %)
Attic, кстати, это нечто среднее между mq и shelve. С помощью mq тоже можно эмулировать stash.