есть те, кому важно, чтобы история коммитов выглядела хорошо. она для них даже важнее, чем сам код. всякие черри-пики, отдельные ветки, комменты, исправления, сквоши. зачем? кому нужна история коммитов за полгода, если коммитить каждый день? бюрократия, ей богу. почему бы не что-ли удалить и создать по-новой папку .git? история -- чистая. красота.
Здравствуйте, pira, Вы писали:
P>есть те, кому важно, чтобы история коммитов выглядела хорошо. она для них даже важнее, чем сам код. всякие черри-пики, отдельные ветки, комменты, исправления, сквоши. зачем? кому нужна история коммитов за полгода, если коммитить каждый день? бюрократия, ей богу. почему бы не что-ли удалить и создать по-новой папку .git? история -- чистая. красота.
Наверное тебе самому, чтобы через полгода понять почему ты сделал так, а не иначе.
А так открыл blame и посмотрел по какой задаче было сделано изменение.
Здравствуйте, pira, Вы писали:
P>есть те, кому важно, чтобы история коммитов выглядела хорошо. она для них даже важнее, чем сам код. всякие черри-пики, отдельные ветки, комменты, исправления, сквоши. зачем? кому нужна история коммитов за полгода, если коммитить каждый день? бюрократия, ей богу. почему бы не что-ли удалить и создать по-новой папку .git? история -- чистая. красота.
Когда в проекте десятки разработчиков. Когда бизнес требований много, а документации мало. Когда что-то ломается с завидной переодичностью. Когда проект начинали писать 10 лет назад и продолжают до нынешних дней. Вот тогда история коммитов — незаменимый инструмент чтобы понять что менялось и почему.
Здравствуйте, pira, Вы писали:
P>есть те, кому важно, чтобы история коммитов выглядела хорошо. она для них даже важнее, чем сам код. всякие черри-пики, отдельные ветки, комменты, исправления, сквоши. зачем? кому нужна история коммитов за полгода, если коммитить каждый день? бюрократия, ей богу. почему бы не что-ли удалить и создать по-новой папку .git? история -- чистая. красота.
Поддержание форков и эффективное решение проблем — без истории изменений просто не возможно.
Черри-пик, лишь инструмент удержания инстории линейной. С линейной банальнее удобнее потом работать. Мержить тоже можно — но лишь до тех пор пока эту историю можно нормально просмотреть.
Другое дело, что если работает маленькая команда над небольшим проектом — актуальность истории может быть не так уже и важна, так как люди которые могут объяснить что-либо находятся в шаговой доступности, а некоторые помнят что менялось и 3 года назад. Поэтому вам может она и не важна (история). Хотя по себе знаю что забыть можно что-то, что было неделю назад, поэтому применяя очередной фикс — бывает полезно посмотреть историю. Внезапно может быть оказаться, что точно такое же исправление уже было отвергнуто. Но небольшие проекты, даже кто не интересуется историей изменений — всё равно получают прямой выигрыш от использовая СКМ в виде "collaboration", бэкапов исходников и прочего, что в хаосе часто остаётся за кадром и оседает (и исчезает) на машинах ушедших/уволившихся разработчиков. Поэтому если уже СКМ используется, нормально не вести историю просто нет смысла.
На практике бывает и по другому: нужно иметь дело с большим объемом кода, разработчиков много: бОльшая часть друг друга не знает. А если количество коммитов (и довольно объемных) более 30-100 в день — то без хорошо оформленных комментариев — просто невозможно будет найти интересующие изменения или понять что зачем происходит вообще. А интересующие изменения нужно находить: после рефакторинга например не так-то просто найти куда переехала та или иная функциональность.
Здравствуйте, Blazkowicz, Вы писали:
B>Когда в проекте десятки разработчиков. Когда бизнес требований много, а документации мало. Когда что-то ломается с завидной переодичностью. Когда проект начинали писать 10 лет назад и продолжают до нынешних дней. Вот тогда история коммитов — незаменимый инструмент чтобы понять что менялось и почему.
10 лет — уже охрененно много. А ведь бывает так что и 25 лет.
Здравствуйте, pira, Вы писали:
P>есть те, кому важно, чтобы история коммитов выглядела хорошо. она для них даже важнее, чем сам код. всякие черри-пики, отдельные ветки, комменты, исправления, сквоши. зачем? кому нужна история коммитов за полгода, если коммитить каждый день? бюрократия, ей богу.
По комментам. Ну делаешь заказчикам систему. Она работает. Год, два, три, и постоянно меняется. Через 5 лет вдруг поступает от пользователей запрос "А почему на странице Х показывается У? По ТЗ ведь должно показываться Й?" и дают фрагмент оригинального ТЗ. Проверяешь то старое ТЗ — и правда, должно быть Й. Рядом еще лежит 100500 ТЗ на правки и модификации, но смотреть их все займет полгода.
Поднимаешь историю коммитов, и видишь, что 3 года назад было исправлено, потому что "главный директор заказчика дал задание срочно поменять Й на У (талон №15732)". Поднимаешь соответвующие документы, и даешь обоснованный ответ.
P>почему бы не что-ли удалить и создать по-новой папку .git? история -- чистая. красота.
А это вообще не реально — ты не сможешь склеить свои изменения с изменениями других разработчиков же.
Здравствуйте, pira, Вы писали:
P>есть те, кому важно, чтобы история коммитов выглядела хорошо. она для них даже важнее, чем сам код. всякие черри-пики, отдельные ветки, комменты, исправления, сквоши. зачем? кому нужна история коммитов за полгода, если коммитить каждый день? бюрократия, ей богу. почему бы не что-ли удалить и создать по-новой папку .git? история -- чистая. красота.
На моей практике основной сценарий был такой. Есть большой проект. Бизнес-требований, всяческих стандартнов — огромное количество. Фичи исчисляются сотнями и более-менее внятное их описание существуте только в трекере задач. И вот, когда что-то ломается, ты смотришь на код, и не понимаешь, ни почему этот код такой какой есть. Ты не знаешь как оно должно правильно работать, так или эдак. Банально — ты не можешь принять решение у тебя бага в коде, или конфликт бизнес-требований.
И вот ты смотришь историю коммитов, и видишь что там John менял потому что тикет #271489, а Jane меняла потому что тикет #321398, ты отрываешь эти тикеты и получаешь описание требований именно для этого куска кода!
А вот, если нет у тебя истории. Если нет у тебя тикетов в коммитах, то ты никогда не узнаешь как правильно нужно исправить код. Ты исправишь его только так как требуется одним конкретным пользователем, но при этом, возможно, сломаешь то как им пользуются десятки других.
Здравствуйте, pira, Вы писали:
P>есть те, кому важно, чтобы история коммитов выглядела хорошо. она для них даже важнее, чем сам код. всякие черри-пики, отдельные ветки, комменты, исправления, сквоши. зачем? кому нужна история коммитов за полгода, если коммитить каждый день? бюрократия, ей богу. почему бы не что-ли удалить и создать по-новой папку .git? история -- чистая. красота.
Чтобы было кого blame'ить!
Здравствуйте, pira, Вы писали:
P>есть те, кому важно, чтобы история коммитов выглядела хорошо. она для них даже важнее, чем сам код. всякие черри-пики, отдельные ветки, комменты, исправления, сквоши. зачем? кому нужна история коммитов за полгода, если коммитить каждый день? бюрократия, ей богу. почему бы не что-ли удалить и создать по-новой папку .git? история -- чистая. красота.
Меня тут пару дней назад попросили перенести одно изменение, которое было сделано около года назад, из мастера в релизный бранч (которому пара лет уже). Без нормальной истории я бы фиг нашел, что именно и когда я менял. По истории это заняло 5 минут.
Здравствуйте, pira, Вы писали:
P>есть те, кому важно, чтобы история коммитов выглядела хорошо. она для них даже важнее, чем сам код. всякие черри-пики, отдельные ветки, комменты, исправления, сквоши. зачем? кому нужна история коммитов за полгода, если коммитить каждый день? бюрократия, ей богу.
Я вот тоже не понимаю тех, кто пытается править историю. Она должна оставаться такой, какой была в реальности. А все эти средства для "прихорашивания" — это зло.
P>почему бы не что-ли удалить и создать по-новой папку .git? история -- чистая. красота.
А вот это уже не верно. Удалять историю нельзя, она жизненно необходима для любого серьёзного проекта.
Здравствуйте, Blazkowicz, Вы писали:
B>Когда проект начинали писать 10 лет назад и продолжают до нынешних дней. Вот тогда история коммитов — незаменимый инструмент чтобы понять что менялось и почему.
Здравствуйте, alex_public, Вы писали:
P>>есть те, кому важно, чтобы история коммитов выглядела хорошо. она для них даже важнее, чем сам код. всякие черри-пики, отдельные ветки, комменты, исправления, сквоши. зачем? кому нужна история коммитов за полгода, если коммитить каждый день? бюрократия, ей богу. _>Я вот тоже не понимаю тех, кто пытается править историю. Она должна оставаться такой, какой была в реальности. А все эти средства для "прихорашивания" — это зло.
Смотря что считать прихорашиванием. Полезные вещи:
— поправить опечатку. Зачем навечно оставлять в истории тот факт, что ты по кнопке промазал?
— упростить коммиты, чтобы ревьюверу было понятно что конкретно ты пытаешься изменить и как. Разбираться с твоими экспериментами и блужданиями — тяжело и бессмысленно.
— сделать коммиты связными — модификации некоего целого гораздо удобнее читать впоследствии — сразу видно по коммиту что и зачем менялось, плюс упрощается cherry-pick.
— избавиться от сломанного кода — каждый коммит должен быть хотя бы компилябельным — упрощает, например, git bisect
Так же правка истории полезна для исправления своих ошибок, например, вместо того, чтобы начать какое-то срочное изменение как бранч от мастера, ты его сделал поверх другого, ещё не готового изменения.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Здравствуйте, pira, Вы писали:
P>есть те, кому важно, чтобы история коммитов выглядела хорошо. она для них даже важнее, чем сам код. всякие черри-пики, отдельные ветки, комменты, исправления, сквоши. зачем? кому нужна история коммитов за полгода, если коммитить каждый день? бюрократия, ей богу. почему бы не что-ли удалить и создать по-новой папку .git? история -- чистая. красота.
Я даже больше скажу.
Нужно ещё и сохранять старые системы введения историй и багов.
Иначе будет как у нас, есть коммит "#1234 исправление по требованию", а что такое 1234 теперь невозможно узнать.