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

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

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

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

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

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

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

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

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

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

5 ответов

74 просмотра

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

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

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

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

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

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

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

Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Объясните, пожалуйста, почему компилятор ругается на использование в условии неинициализированной переменной: int x; Task.Run(async () => { x = await somefunc(); }).Wait...
Александр
5
Ребят, подскажите, пожалуйста, почему в префиксе к ассетам, которые генерируются через фильтр | theme в шаблоне, стал вдруг появляться index.php? Вот так выглядит ссылка на а...
Виталий
1
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Коллеги, может знает кто, можно ли цвет бейджа счётчика в BackendMenu менять без бубнов?
Alex Blaze
3
Карта сайта