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

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

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

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

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

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

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

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

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

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

5 ответов

67 просмотров

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

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

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

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

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

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

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

Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
2
Привет!) Кто как юзает переменные в строках?) Чисто ради интереса Вот так: echo "У меня {$bananasAmount} бананов"; Или вот так: echo "У меня ${bananasAmount} бананов";
Виталий
3
разработчик ботов скидывает портфолио, боты которые он уже создал. А вот как узнать что это именно он их создал?
Gosudar
4
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
кто-нибудь уже пробовал это?
Lencore
4
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
❓ Подскажите как сделать в группе телеги функцию (кнопку) пересылки сообщения где есть нарушение правил? Бот к каждому сообщению (по определенным ключам) добавляет снизу кнопк...
Alexander
4
Вопрос: Здравствуйте! У меня возникла проблема с использованием плагина Mall в OctoberCMS. Я использую все файлы и компоненты в их исходном виде, без изменений. Однако на стр...
𐩱𐩪𐩣𐩱𐩲𐩺𐩡
8
Карта сайта