metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2012-11-10 09:41 pm

Меркуриал

Одной вещи в меркуриале я в принципе понять не могу.
Я меняю файл А, делаю commit и push, потом я меняю дома файл Б и делаю commit, а на попытку push меня посылают фпень делать pull/merge/commit.
Вопрос - почему бы независимые изменения в разных папках не мержить автоматом, как это сделано в svn?

PS: А теперь рассмотрим, как это положено делать:
1) дерево исходников представляет собой граф, узлы которого - каталоги и блобы с файлами, а связи - связь между каталогом и расположенными в нем подкаталогами и файлами.
2) пользователь 1 меняет файл с путем A
3) пользователь 2 меняет другой файл с путем B.
4) Друг другу они в принципе никак не мешают - структура графа не меняется, меняются два независимых узла.
5) операции коммутируют - т.е. вне зависимости от порядка применения операций, результат будет одним и тем же.
6) для коммутирующих операций merge должен делаться, очевидно, автоматически.

[identity profile] zamotivator.livejournal.com 2012-11-11 11:07 am (UTC)(link)
Видать у вас коллектив такой.
У меня вот народ куда ответственней, и на то есть причины - в том числе и в виде санкций

[identity profile] insanegigolo.livejournal.com 2012-11-11 11:11 am (UTC)(link)
ну да к санкциям dvsc имеет прямое отношение

[identity profile] zamotivator.livejournal.com 2012-11-11 11:14 am (UTC)(link)
Непосредственное. Если DVCS позволяет не блокировать конкурентную активность разработки, но позволяет блокировать конкуретные изменения продукта в точке синхронизации - это означает, что она адекватна процессу стабильной разработки софта и хорошо интегрируется с Continuous Integration Process.

У меня крепнет ощущение, что я мечу бисер перед свиньями. Прежде чем кидаться со мной спроить задумайтесь, о каком процессе я говорю. Погуглите про Feature Branch, Branch Integration. Почитайте про регрессионые тесты.
А не кидайтесь сразу спорить и иронизировать.

[identity profile] insanegigolo.livejournal.com 2012-11-11 11:17 am (UTC)(link)
Извините если задел ваши религиозные чувства, для меня просто странно что система контроля версий занимается несвойственной ей работой. Но если вы считаете что всё ок, то всё ок.

[identity profile] zamotivator.livejournal.com 2012-11-11 11:20 am (UTC)(link)
Система контроля версий - это просто инструмент.
Я писал не про систему контроля версий. Перечитайте тред с самого начала.
Я писал про процесс. Про деструктивные опасные действия - автоматический merge.
Про правильный default у mercurial и git - как более адекватный эффективный разработке.

[identity profile] insanegigolo.livejournal.com 2012-11-11 11:27 am (UTC)(link)
значит писали не туда.

[identity profile] zamotivator.livejournal.com 2012-11-11 11:29 am (UTC)(link)
Скорей, у читателей проблемы с чтением и интерпритациями прочитанного.ю

[identity profile] insanegigolo.livejournal.com 2012-11-11 11:31 am (UTC)(link)
Таким образом вы никому ничего не докажете.

[identity profile] zamotivator.livejournal.com 2012-11-11 11:32 am (UTC)(link)
Простите? Я кому-то что-то доказывал? Вы ошиблись адресом.
Я делился опытом. Зря я бисер мечу.

[identity profile] insanegigolo.livejournal.com 2012-11-11 11:33 am (UTC)(link)
А почему вы на прямой вопрос на который можно ответить да или нет, начинаете делиться опытом?

[identity profile] zamotivator.livejournal.com 2012-11-11 11:34 am (UTC)(link)
Потому что вопрос непростой, очевидно.

[identity profile] dmzlj.livejournal.com 2012-11-11 04:43 pm (UTC)(link)
а пулл сначала на второе рабочее место не судьба сделать? локальные ревизии то разъехались, очевидно

[identity profile] dmzlj.livejournal.com 2012-11-11 04:48 pm (UTC)(link)
вы тут точно не обкурились все? есть стандартный workflow, который делает то, что нужно, и покрывает 90% случаев.

pull - update - commit - push. с любого рабочего места. всё. какие еще файлы? какая коммутация-мастурбация? вы чего тут?

[identity profile] berezovsky.livejournal.com 2012-11-11 05:05 pm (UTC)(link)
Ситуации разные бывают. Например, сидишь в аэропорту через узкий канал какого-нибудь опсоса. Зачем тянуть пулом кучу всякого дерьмища и тратить трафик? Вот метакласс и хочет запушить один файлик и всё.

[identity profile] dmzlj.livejournal.com 2012-11-11 05:09 pm (UTC)(link)
ну запушь на отдельный бранч, раз такая экстремальная ситуация, потом с него накатишь на основной, какие проблемы? если история при этом получится некрасивая --- есть rebase, всё.

и не надо вокруг экстремального случая --- "сижу в аэропорту на модеме 2400" разводить теории про коммутирующие коммиты или еще про какую неведомую ё.х.

[identity profile] dmzlj.livejournal.com 2012-11-11 05:10 pm (UTC)(link)
но еще вопрос, потянется ли pull-ом куча всякого дерьма, или только изменения с последнего коммита. по моему, как раз последнее, так что не надо тут.

[identity profile] berezovsky.livejournal.com 2012-11-11 05:13 pm (UTC)(link)
что значит на отдельный бранч? :-)))

[identity profile] dmzlj.livejournal.com 2012-11-11 05:13 pm (UTC)(link)
это что, троллинг?

наверняка же в модном хипстерском hg есть аналог

git push origin master:airport_branch
Edited 2012-11-11 17:14 (UTC)

[identity profile] berezovsky.livejournal.com 2012-11-11 05:19 pm (UTC)(link)
я всегда думал, что бранчи - это крупная ебанистическая телега, типа релиз кандидаты хранить через десятки билдов и прочая

[identity profile] ykaliuta.livejournal.com 2012-11-11 05:21 pm (UTC)(link)
Дешевизна бранчей и лёгкость работы с ними и мержа -- фича dvcs.

[identity profile] dmzlj.livejournal.com 2012-11-11 05:23 pm (UTC)(link)
бранчи это всё. и они ничего не стоят.
например, что бы затолкать куда-нибудь текущий рабочий сет, что бы поработать над друой проблемой, можно сделать
git stash,
а можно git checkout -b new_wtf_branch, поработать, потом переключиться на new_wtf_branch, доделать предыдущее, замержить на мастер и грохнуть временный бранч.

это бесплатно.
Edited 2012-11-11 17:23 (UTC)

[identity profile] metaclass.livejournal.com 2012-11-11 05:24 pm (UTC)(link)
hg push -f

[identity profile] max630.livejournal.com 2012-11-11 05:28 pm (UTC)(link)
он вроде локально же мерж делает. Те же яйца, ну на один шаг меньше

[identity profile] dmzlj.livejournal.com 2012-11-11 05:28 pm (UTC)(link)
надо не умничать, а использовать средства в их нормальном, штатном режиме, пользуясь стандартным workflow, если проблема стандартна. в данном случае даже и проблемы-то никакой нет.

[identity profile] metaclass.livejournal.com 2012-11-11 05:34 pm (UTC)(link)
в гитах и прочем бранчи дешево и популярно и используется постоянно.

Page 3 of 4