metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2014-12-05 12:26 pm

Гит, zeromq и двойная бухгалтерия

Недавно [livejournal.com profile] vit_r писал про то, что гит не пригоден для промышленной разработки, т.к. позволяет вести "двойную бухгалтерию".
Насколько я понял, речь шла про то, что код на рабочем месте разработчика, код в мастере и код в релизе могут быть совершенно разными, причем инструментом это прямо рекомендуется. Ну, по крайней мере, именно это меня привлекает в гите - мне постоянно нужны экспериментальные ветки в стиле "сохранился, заглянул за угол, увидел что там босс-монстр, загрузился и пошел другим путем".

Внезапно, в процессе изучения ZeroMQ я наткнулся на прямую иллюстрацию такой двойной бухгалтерии.
Вот например, стабильная версия 4.0.5, исходники под винду: http://download.zeromq.org/zeromq-4.0.5.zip
Так вот, последние 230 коммитов в changelog этой версии напрочь отсутствуют в https://github.com/zeromq/libzmq
Более того, в этой репе существует сугубо две ветки и ни одного тэга.

Ну, то что мастер не собирается в 2010 студии из-за зависимости от крипто-либы sodium, а rc4.1.0 не собирается из-за отсутствующих файлов msbuild, это тащемта уже мелочи. Но по крайней мере, rc4.1.0 есть в гите.

[identity profile] nicka-startcev.livejournal.com 2014-12-06 03:04 am (UTC)(link)
вот я подрядился писать код в проекте у Васи. я правлю несколько файлов, делаю пулреквест. вася руками смотрит эти реквесты и отклоняет, ибо он сам полсекунды назад правил те же файлы, васины реквесты честно смержились, а мои - это дубли васиных.

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

[identity profile] metaclass.livejournal.com 2014-12-06 09:29 am (UTC)(link)
пуллреквест это гитхабовская содомия, нету такой терминологии в гите.

В норме, разработки ведутся в васиной и твоей ветке, периодически втаскивая мастер c merge или rebase.
По мере завершения работы и тестов, твою ветку либо главный, либо ты сам, если мелкая команда, пушишь в мастер, желательно через --ff-only

В общем, у меня с гитом проблем не было вообще, они могут быть, если его использовать как svn,

[identity profile] ykaliuta.livejournal.com 2014-12-07 02:15 pm (UTC)(link)
> пуллреквест это гитхабовская содомия, нету такой терминологии в гите.

man git-request-pull