avva: (Default)
[personal profile] avva
(эта запись может быть интересна программистам)

Наверное, это неправильно, что меня так смешит запись Reset Demystified. Если вкратце, то автор книги Pro Git (!), признается в том, что мало написал о команде git reset в своей книге, потому что плохо ее понимал (!!). Но с тех пор он прочитал о ней побольше, и сейчас объяснит ее раз и навсегда, в блог-записи на 17 страниц!

Можно ли придумать более убедительную демонстрацию извращенности и враждебности командной строки гита? У команды git reset, которая потенциально может полностью стереть ваши изменения навсегда, есть три разных подвида, каждый из которых делает совершенно разную работу, и еще один из этих подвидов очень похож на другую команду, git checkout, но только в одном из ее подвидов - другой опять-таки делает совершенно другое! Но ничего, все станет кристально ясно, как только мы изучим полезнейшую сводную таблицу в конце записи:



Правда, теперь все понятно?

Я вспомнил, когда это прочитал, как два или три года назад мне так же было смешно, когда в Hacker News обсуждали новый сайт "Daily git tips". Я пытался сказать одну простую вещь: если вам для работы с системой управления версиями нужен сайт с ежедневными новыми советами, то что-то не так в вашей системе. Но меня, кажется, не очень поняли. Или не согласились.

Date: 2012-02-02 08:24 pm (UTC)
From: [identity profile] janatem.livejournal.com
Вообще-то рекомендуемый стиль работы (это вроде касается всех распределенных VCS) — воздерживаться от push. Вместо этого разработчики должны делать pull друг у друга из главного репозитория, а Главный Одмин всего проекта должен делать pull в главный репозиторий.

Date: 2012-02-02 08:36 pm (UTC)
From: [identity profile] konstantin tenzin (from livejournal.com)
Мне кажется, что в корпоративной среде все таки больше принят подход с центральным репозиторием, и возможностью пушить туда изменения всеми разработчиками (возможно в специальные ветки). Git хорошо может использоваться для поддержки этого способа работы, не теряя при этом своих других достоинств. Верю, что меркуриал тоже должен выглядеть достойно.

Date: 2012-02-02 08:59 pm (UTC)
From: [identity profile] alexis-m.livejournal.com
Тем не менее, даже Главный Одмин будет делать pull в свой локальный репозиторий, а в главный таки придется push. Либо у него есть физический доступ к репозиторию на сервере.

Date: 2012-02-03 10:13 am (UTC)
From: [identity profile] janatem.livejournal.com
Да, но если ровно один человек (в данном случае Главный Одмин) делает push из своего репа в главный, то это никак не может привести к пулл-ап-мердж-коммит-пуш, который, собственно, доставляет всем пользователям централизованных VCS.

Date: 2012-02-03 03:33 pm (UTC)
From: [identity profile] alexis-m.livejournal.com
Так сокращение на один push в конце. Даже если разработчики только pull-ят друг у друга и из главного репозитория, то им локально все равно нужно делать pull-merge/rebase. Это все административная организация процесса. И мы отвлеклись от начальной темы.
Товарищ выше написал: «ну, hg конечно проще. Но вот один абсолютно типичный юзкейз (два юзера коммитят в свой клон одного парента по чейнжсету, один пушнул, второй вынужден делать пулл-ап-мердж-коммит-пуш, причем суть его коммита плохочитаема из-за мерджа) там сделан криво донельзя.»
И мой вопрос был, разве git лучше, чем hg, разруливает подобные ситуации?
Edited Date: 2012-02-03 03:33 pm (UTC)

Date: 2012-02-03 04:21 pm (UTC)
From: [identity profile] janatem.livejournal.com
> один push в конце
...не считается, поскольку эта операция тривиальна и в данном контексте всегда должна завершиться успешно. Смысл такой политики в том, что каждый сам -ец своего счастья, т.е. сам решает, что и когда помержить в свой личный репозиторий.

Впрочем, мы действительно отклонились от темы. Я не пользовался hg, но, основываясь на прочитанных про него доках, пока считаю, что git и hg очень похожи по сути и рамках данной дискуссии вообще неотличимы. Поправьте меня кто-нибудь.

December 2025

S M T W T F S
  123 4 56
78 9 10 11 1213
1415 1617181920
21 22 23 24 2526 27
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 28th, 2025 06:22 am
Powered by Dreamwidth Studios