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] vp.livejournal.com 2012-11-11 06:59 am (UTC)(link)
Почитал комменты и ничего не понял, что делать.

[identity profile] jek-hor.livejournal.com 2012-11-11 07:32 am (UTC)(link)
Мержить самостоятельно. Как выше правильно написали, только человек может гарантировать целостность кода, даже если он в разных директориях менялся в каждом коммите.

[identity profile] http://users.livejournal.com/_windwalker_/ 2012-11-17 08:45 pm (UTC)(link)
бу-га-га. тесты могут показывать целостность кода и continuous integration, а не человек за кнопками.

Не стоит заставлять человека решать проблемы машины.

[identity profile] jek-hor.livejournal.com 2012-11-18 08:44 am (UTC)(link)
Ну править потом всё равно человеку. И посмотрю я, как вы будете тестами код драйверов покрывать, когда у вас даже толковой документации на железку нет.

[identity profile] metaclass.livejournal.com 2012-11-18 08:51 am (UTC)(link)
Да, контроль версий в этом случае вам очень поможет :)

[identity profile] jek-hor.livejournal.com 2012-11-18 08:55 am (UTC)(link)
Автоматический мерж и подавно.

[identity profile] http://users.livejournal.com/_windwalker_/ 2012-11-18 11:16 am (UTC)(link)
написанием эмулятора железки, как же ещё.

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

[identity profile] metaclass.livejournal.com 2012-11-11 08:00 am (UTC)(link)
расширение hg fetch
оно при неконфликтующих коммитах автоматический мердж будет делать.

[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] vp.livejournal.com 2012-11-11 06:57 pm (UTC)(link)
Дык вот топикстартер и предлагает как раз таки нормальный воркфлоу. А авторы системы контроля версий живут в каком-то лалаленде.

[identity profile] kiryl.livejournal.com 2012-11-11 07:44 pm (UTC)(link)
ну так жуйте свои кактусы (svn и прочие cvs) раз нет желания понять что как и зачем сделано.

[identity profile] dmzlj.livejournal.com 2012-11-12 04:09 am (UTC)(link)
да нет, он по моему, что-то не догоняет, при всём уважении.

[identity profile] thinker8086.livejournal.com 2012-11-13 12:37 am (UTC)(link)
http://metaclass.livejournal.com/743200.html?thread=14955808#t14955808

Вот, собственно, правильный ответ. Подумав, можно согласиться.