Здравствуйте, Ночной Смотрящий, Вы писали:
НС>Здравствуйте, Nikе, Вы писали:
НС>>>Использование rebase штука неоднозначная N>>А в чём с ним проблема?
НС>В том что он корежит историю.
Ровно наоборот. Он нужен для правильной линейной истории. Смотреть бесконечные параллельные цепочки в результате мержей — удовольствие сомнительное.
Социализм — это власть трудящихся и централизованная плановая экономика.
Здравствуйте, Эйнсток Файр, Вы писали:
ЭФ>А как без веток-то?
Ну, это как свадьба без гостей. Некоторые думают, что без нескольких сотен приглашённых свадьба невозможна.
ЭФ>Если до такого абсурда доводить, то не все и с гитом работают, некоторые без него.
А некоторые (озираясь и шёпотом) даже обмениваются версиями не из командной строки.
Здравствуйте, _ABC_, Вы писали:
_AB>Здравствуйте, mgu, Вы писали:
mgu>>Вы, похоже, не общались с сантехниками. В качестве увертюры обсираются хозяева квартиры и предыдущие мастера. _AB>Общался. Таких гнать надо ссанными тряпками, ибо после них переделывать надо. Грамотный сантехник сделает свою работу, _AB>объяснит проблему, посоветует комплектующие. И после него всё будет работать.
Слушайте, я прекрасно понимаю, что такое абстрактные классы.
mgu>>Спасибо за комплимент, но мой юношеский максимализм остался в прошлом веке. _AB>Да я вижу, что старческая обида превалирует. А можно было бы мужской зрелостью довольствоваться.
Где можно почитать про мужскую зрелость? (с), почти.
Здравствуйте, Ночной Смотрящий, Вы писали:
LP>>Ровно наоборот. Он нужен для правильной линейной истории.
НС>Откуда вообще эта жажда линейной истории?
Удобно просмотривать.
НС>Тем более ценой ведущих в никуда веток и кучи одинаковых коммитов.
Откуда возьмутся кучи одинаковых комитов и идущих в никуда веток?
Если мы говорим про средний продукт, то у тебя есть мастер-ветка, в которую никто ничего не комитит, только иногда мёржат, есть девелоперская, в которую ребейзят из веток созданных под конкретные изменения. И есть кастомизации, когда продукт зарелизил, отдал конкретному заказчику и дальше он живёт своей жизнью (в единой репе, чтобы перекрестные баги было проще фиксить).
Итого, у нас 2..n объективно необходимых веток, 99% создаваемых веток ребейзятся в девелопмент потому, что короткие и не хочется засорять дерево мёржами. Фичи которые разрабатывались долго, и в которых реально появились дублирующие комиты — да, лучше мёржить. Но это скорее организационный косяк ИМХО.
Здравствуйте, mgu, Вы писали:
mgu>Слушайте, я прекрасно понимаю, что такое абстрактные классы.
Этого явно недостаточно, раз твой код никто не понимает.
mgu>Где можно почитать про мужскую зрелость? (с), почти.
Тебе уже поздно, видимо.
Здравствуйте, LaPerouse, Вы писали:
LP>Здравствуйте, Ночной Смотрящий, Вы писали:
НС>>Здравствуйте, Nikе, Вы писали:
НС>>>>Использование rebase штука неоднозначная N>>>А в чём с ним проблема?
НС>>В том что он корежит историю.
LP>Ровно наоборот. Он нужен для правильной линейной истории. Смотреть бесконечные параллельные цепочки в результате мержей — удовольствие сомнительное.
Так истории в реальности параллельны, если над проектом работают несколько разработчиков. Они же параллельно работают над проектом.
Здравствуйте, Nikе, Вы писали:
НС>>Откуда вообще эта жажда линейной истории? N>Удобно просмотривать.
Если нам важно что и откуда пришло — удобнее просматривать без кучи дублирующихся коммитов. Причем чем активнее разработка, тем сложнее разобраться в слитой в одну огромную кучу истории.
НС>>Тем более ценой ведущих в никуда веток и кучи одинаковых коммитов. N>Откуда возьмутся кучи одинаковых комитов и идущих в никуда веток?
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>>>Откуда вообще эта жажда линейной истории? N>>Удобно просмотривать.
НС>Если нам важно что и откуда пришло — удобнее просматривать без кучи дублирующихся коммитов.
В случае большого проекта я обычно смотрю комиты фильтрованные, по файлам, папкам или авторам.
НС>Причем чем активнее разработка, тем сложнее разобраться в слитой в одну огромную кучу истории.
Дублирующие коммиты — это ненормально, откуда они вообще берутся? Это предполагает длительный девелопмент изолированный от основной массы разработчиков — иногда, конечно, такое бывает, что черпиками забирают комиты из других веток, но это скорее исключением должно быть.
Да и при такой разработке всё-равно можно ребезить свой бренч на более новые версии системы, а не вносить дублирующие комиты.
НС>>>Тем более ценой ведущих в никуда веток и кучи одинаковых коммитов. N>>Откуда возьмутся кучи одинаковых комитов и идущих в никуда веток?
НС>Последствия ребейза.
Нет, при нормальном ребейзе очевидно не остаётся идущих вникуда веток, потому, что они встраиваются в основную, и появиться дублированным комитам неоткуда — это противоречит сути ребейза.
Здравствуйте, Skorodum, Вы писали:
mgu>>Выход за пределы 3-х операций -- это индикатор кривизны организации разработки, и Git тут ни при чём. S>Не правда. S>git clone S>git pull S>git log S>git add S>git commit S>git rebase -i (упорядочить локальные коммиты, добавить забытое и т.п.) S>git push S>Это самый минимум когда работаешь один и в одной ветке. S>Далее: S>git blame S>git bisect S>git checkout S>git stash S>git branch S>git fetch S>git rebase origin/master S>git merge S>Это минимальный джентельменский набор программиста.
этот список это минус, а не плюс
S>К сожалению, очень многие принципиально не могут/не хотят понять гит.
Нахрена понимать ещё один язык программирования? Я лучше оставлю кусочек мозга на понимание более важных вещей, чем ОВЕРХЕДА программирования.
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Здравствуйте, _ABC_, Вы писали:
mgu>>Слушайте, я прекрасно понимаю, что такое абстрактные классы. _AB>Этого явно недостаточно, раз твой код никто не понимает.
"коллеги" != "все коллеги"
mgu>>Где можно почитать про мужскую зрелость? (с), почти. _AB>Тебе уже поздно, видимо.
(Я) != (все, читающие эту ветку), у нас же не личная переписка.
Здравствуйте, Nikе, Вы писали:
НС>>Если нам важно что и откуда пришло — удобнее просматривать без кучи дублирующихся коммитов. N>В случае большого проекта я обычно смотрю комиты фильтрованные, по файлам, папкам или авторам.
Вместо того чтобы посмотреть на граф лога. О том и речь.
НС>>Причем чем активнее разработка, тем сложнее разобраться в слитой в одну огромную кучу истории. N>Дублирующие коммиты — это ненормально, откуда они вообще берутся?
От ребейза. Оно так работает.
НС>>Последствия ребейза. N>Нет, при нормальном ребейзе очевидно не остаётся идущих вникуда веток, потому, что они встраиваются в основную
Чтобы именно встроилось, а не просто изменения перенесли, нужно делать не ребейз, а мерж. Если кому то уж очень надо линейную историю без подробностей по религиозным причинам — есть squash.
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>>>Если нам важно что и откуда пришло — удобнее просматривать без кучи дублирующихся коммитов. N>>В случае большого проекта я обычно смотрю комиты фильтрованные, по файлам, папкам или авторам.
НС>Вместо того чтобы посмотреть на граф лога. О том и речь.
Мне не нужно смотреть граф лога, мне нужно смотреть на то, что менялось в конкретном месте. Зачем мне вообще смотреть граф, если фича была сделана и вошла в основной состав?
Это лишняя сущность, оно просто отвлекает.
N>>Дублирующие коммиты — это ненормально, откуда они вообще берутся?
НС>От ребейза. Оно так работает.
Нет, ребейз не так работает. Ребейз переносит цепочку изменений с одной стартовой точки в другую, это просто изменение точки крепления ветви в дереве. Move. Никаких дублирующих комитов не появляется. Они могут появиться только если ветка жила долго и в неё черипикали комиты из других веток, но как я говорил: в случае если разрабатываемая фича сложная и продолжительная — действительно лучше мёржить.
НС>>>Последствия ребейза. N>>Нет, при нормальном ребейзе очевидно не остаётся идущих вникуда веток, потому, что они встраиваются в основную
НС>Чтобы именно встроилось, а не просто изменения перенесли, нужно делать не ребейз, а мерж. Если кому то уж очень надо линейную историю без подробностей по религиозным причинам — есть squash.
У мёржа есть недостаток — появляются лишние автоматические комиты, иногда слишком много.
Мне кажется, что ты либо не понимаешь ребейз, либо как-то неправильно его используешь.
Мерж, усложнение дерева:
Ребейз, линейно и ничего лишнего:
Я вдруг подумал, что может ты сохраняешь старые ветки, которые у всех обычно отправляются сразу в мусор?
Вот старая картинка показывающая переход с мёржей на ребейзы:
Здравствуйте, Ночной Смотрящий, Вы писали:
N>>Дублирующие коммиты — это ненормально, откуда они вообще берутся? НС>От ребейза. Оно так работает.
Нет. Второй "такой же" коммит просто не применится при ребейзе — гит скажет что все изменения уже применены и баста, "git rebase --continue". В очень редких случаях применит, и тогда компилятор будет орать на повторно определенные фунцкции, но это капец как редко бывает.
Одинаковые коммиты в дереве — это от merge, но в реальности это один коммит (один sha1), просто показывается в разных историях.
Здравствуйте, Skorodum, Вы писали:
S>Здравствуйте, mgu, Вы писали:
mgu>>Выход за пределы 3-х операций -- это индикатор кривизны организации разработки, и Git тут ни при чём. S>Не правда. S>git clone S>git pull S>git log S>git add S>git commit S>git rebase -i (упорядочить локальные коммиты, добавить забытое и т.п.) S>git push S>Это самый минимум когда работаешь один и в одной ветке. S>Далее: S>git blame S>git bisect S>git checkout S>git stash S>git branch S>git fetch S>git rebase origin/master S>git merge S>Это минимальный джентельменский набор программиста.
это с одной стороны правда, а с другой не вполне — часть из них гораздо удобнее выполнять в гуевых тулзовинах, и их из списка 'знать' можно вычеркивать — просто кнопочку с иконкой жмешь и всё
Здравствуйте, Nikе, Вы писали:
N> Зачем мне вообще смотреть граф, если фича была сделана и вошла в основной состав?
Для тогт чтобы понимать что проичходит в проекте.
N>Это лишняя сущность, оно просто отвлекает.
Кому как. Меня, к примеру, отвлекает необходимость искусственно поддерживать линейную историю.
НС>>От ребейза. Оно так работает. N>Нет, ребейз не так работает. Ребейз переносит цепочку изменений с одной стартовой точки в другую, это просто изменение точки крепления ветви в дереве. Move. Никаких дублирующих комитов не появляется. Они могут появиться только если ветка жила долго
А коротокоживущие ветки на одно маленькое изменение не особо то и полезны.
N>У мёржа есть недостаток — появляются лишние автоматические комиты, иногда слишком много.
Это маленький недостаток. Зато у ребейза их валом. Набери в гугле merge vs rebase — статей, подробно описывающих почему ребейз это плохо навалом.
N>Мне кажется, что ты либо не понимаешь ребейз, либо как-то неправильно его используешь.