Был тут на конфе Ink & Switch, обсуждали, как починить

версионирование для нормальных людей, и там Jonathan Edwards задвинул идею, что мол «ациклический граф версий» это концепция для надмозгов, а простым людям понятнее линейная история и копии. Типа, захотел ветку — сделал копию, и у нее будет своя линейная история. Никаких ж/д стрелок на графе, просто ходишь взад-вперед, все просто и интуитивно.

И я в общем-то могу только симпатизировать, хотя кажется, за тем столом никто так же сильно не впечатлился, как я. Это из той серии, когда «взять концепцию, к которой все привыкли и смирились, и сделать ее нормальнее», как раз за что я и полюбил юзабилити изначально.

Потом я начал думать, может это уже где-то было, и если да, что пошло не так? Очень полезный check для всех новых идей, рекомендую.

В меркуриале (насколько я понимаю меркуриал) ветки как раз обладают практически своей историей, да? Т.е. можно их рассматривать как копии. Потом, в CVS или SVN (простите, не помню их настолько хорошо, чтобы вспомнить, у кого конкретно) тоже как-то так бранчевались (если мне память не изменяет, но я помню, там прям папки на серваке лежали, типа, branches/*). То есть оно в принципе именно так всегда и было _везде_, кроме git-а, но либо реализация была не оч (cvs/svn), либо с хостингом не повезло (mercurial).

Мне кажется, концепция checkout-а тоже немного запутала людей. Типа, внутри одной папки ты то на одну версию переключаешься, то на другую. А могли бы быть _буквально_ разные папки. Редакторы кода, я думаю, подтянулись бы.

Ну и наконец, универсализация. Операции типа merge/rebase/diff всегда работают над двумя копиями, но им в принципе не важно, ремоут они или локальные. На условном гитхабе тоже лежат разные папки для разных бранчей, и ты работаешь с ними точно так же, как с локальными копиями.

Т.е. пропадает отдельная концепция «синка графа» (довольно нетривиальная, давайте признаем). И никто не притворяется, что мол моя копия это как бы «зеркало» вон той удаленной, которое еще и разойтись может. Нет, просто две разные копии, два инстанса. Хочешь diff? Diff. Хочешь merge? Merge. Что локально, что удаленно, все едино.

Гитхаб частично это реализует с форками, но при этом бранчи остаются еще и внутри одного репозитория, и получается полный бананас, если обо всем этом начинать думать. А могло бы быть красиво и однообразно.

В общем, симпатичная как будто концепция. Что думаете? Пора писать современный SVN?

5 ответов

27 просмотров

Имхо ко всему рано или поздно привыкаешь. А насколько описанная концепция жизнеспособна мы увидели бы только по факту ее реализации. И извлекли бы для себя уроки, как стоит (или не стоит) делать.

Я считаю что гит можно было бы действительно сделать проще

Dlazder
Я считаю что гит можно было бы действительно сдела...

Очень многое можно сделать просто! Очень! Но вот как доходит до "делать" так нет никого, кто хочет делать или находится так мало, что у тех что есть не хватает рук

Зачем "прибивать гвоздями" один граф к другому? По-моему, именно в этом и гибкость distributed VCS. А если хотим без "зеркала" то зачем зеркалим локальными ветками? Работайте без них, напрямую с remote, как я. А по поводу версий - https://t.me/git_cool/58784

Похожие вопросы

Обсуждают сегодня

Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
Портфолио: Зовут меня Александр, мне 41 год. Город Киров. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github.co...
Magic
11
Подскажите, пожалуйста, где в backende, или не в нем можно дату поправить? Логирует действия не в том часовом поясе
Лео
7
Есть магистры regex в чате? Задача: нужно написать regex который мэтчит полные (без сокращений по типу ::1/128) ipv6 адреса кроме 2001:0df7:cef7:29f7:52f7:adf7:2cf7:4ff7, при ...
Илья
5
Приветствую всех, есть вопросик. Передали проект на OctoberCms, без инсталяшки в полуразвернутом виде, нужно было залить бекап бд, после залития бд, оказалось, что части строк...
Лео
14
Привет! Подскажите может кто сталкивался, при создании купона выходит вот в таком виде окно. Как поправить это?
Ruslan
4
Помните я тут рассказывал про таролога программистку? Мне выдали новый мем
Magic
6
Ребята, я за проф советом😅 По микросервисам. В монолите есть общие файлы для сервисов: фетчи, конфиги, либы, утилсы.. как при распиле правильно их поддерживать? Пока вариант д...
Александр Тарасюк
1
DataGrip не сканирует почему-то все таблицы, хотя раньше показывал их че за херня, сталкивались?
Magic
9
где собака, админ группы? нычкуется и боится проявить волю, в толерантность еще не наигрался? @yelizariev
Ognezar
61
Карта сайта