Consensus is expensive, while making everything opt-in is relatively cheap.
As a human being, you're multithreaded. You can type with multiple fingers, you can drive and hold a conversation at the same time. The only blocking function we have to deal with is sneezing, where all current activity must be suspended for the duration of the sneeze. That's pretty annoying, especially when you're driving and trying to hold a conversation. You don't want to write code that's sneezy.
#2884467 меня окончательно достал SourceTree, и я поставил GitKraken.
После недели использования:
Что понравилось:
* Сделано для людей.
* Не пугает диалогами с выхлопом консоли.
* Drag'n'drop — в т.ч. легко управлять ветками не переключаясь между ними.
* Squash называется squash.
* Показывает stash'и в дереве.
* Автоматически делает и применяет stash когда нужно.
* Встроенный юзабельный 3-way merge для разрешения конфликтов.
* Можно добавлять в staged изменения построчно. Чуть менее удобно, чем в GitHub Desktop, но всё же.
* Не пушит теги без спросу.
* Интеграция с GitHub и BitBucket.
* Активные блог разработчика и канал на ютубе.
К чему можно придраться:
* TreeView модифицированных файлов свёрнут по умолчанию, что нивелирует его удобство и приходится использовать обычный FullPath.
* Дерево более гнутое, чем могло бы быть — часто изгибает более значительную ветку, отдавая приоритет менее значительной или stash'у. (Похоже, это проявляется на старых ветках, а то, что сделано уже в самом GitKraken — отображается нормально. Странно.)
* Auto-Fetch это хорошо, но было бы неплохо ещё отображать как-то, что он выполняется успешно или же нужно взаимодействие с пользователем (ввести пароль от ssh ключа).
* Сворачивание меток бранчей в дереве коммитов. Если моя ветка и мастер совпадают, то я не могу найти мастер визуально. (Я знаю где он находится или могу выбрать его в левой колонке, просто мелкий раздражающий фактор.)
* Любимый всеми Electron — 300+ МБ оперативной памяти.
Отправил несколько фидбэков — есть удобная форма для этого в программе. Но без платной подписки они могут и в dev/null отправляться, кто знает. Можно было бы, конечно, попробовать Pro Trial активировать и повторить... Ну или в slack заглянуть.
Общее впечатление:
В целом сейчас это лучший из GUI клиентов git под Windows. Заменит мне и GitHub Desktop и SourceTree. Можно рекомендовать всем, в т.ч. хорошим людям™, если Electron и "Free for non-commercial use" не напрягают.
После После недели использования:
Что понравилось:
* Сделано для людей.
* Не пугает диалогами с выхлопом консоли.
* Drag'n'drop — в т.ч. легко управлять ветками не переключаясь между ними.
* Squash называется squash.
* Показывает stash'и в дереве.
* Автоматически делает и применяет stash когда нужно.
* Встроенный юзабельный 3-way merge для разрешения конфликтов.
* Можно добавлять в staged изменения построчно. Чуть менее удобно, чем в GitHub Desktop, но всё же.
* Не пушит теги без спросу.
* Интеграция с GitHub и BitBucket.
* Активные блог разработчика и канал на ютубе.
К чему можно придраться:
* TreeView модифицированных файлов свёрнут по умолчанию, что нивелирует его удобство и приходится использовать обычный FullPath.
* Дерево более гнутое, чем могло бы быть — часто изгибает более значительную ветку, отдавая приоритет менее значительной или stash'у. (Похоже, это проявляется на старых ветках, а то, что сделано уже в самом GitKraken — отображается нормально. Странно.)
* Auto-Fetch это хорошо, но было бы неплохо ещё отображать как-то, что он выполняется успешно или же нужно взаимодействие с пользователем (ввести пароль от ssh ключа).
* Сворачивание меток бранчей в дереве коммитов. Если моя ветка и мастер совпадают, то я не могу найти мастер визуально. (Я знаю где он находится или могу выбрать его в левой колонке, просто мелкий раздражающий фактор.)
* Любимый всеми Electron — 300+ МБ оперативной памяти.
Отправил несколько фидбэков — есть удобная форма для этого в программе. Но без платной подписки они могут и в dev/null отправляться, кто знает. Можно было бы, конечно, попробовать Pro Trial активировать и повторить... Ну или в slack заглянуть.
Общее впечатление:
В целом сейчас это лучший из GUI клиентов git под Windows. Заменит мне и GitHub Desktop и SourceTree. Можно рекомендовать всем, в т.ч. хорошим людям™, если Electron и "Free for non-commercial use" не напрягают.
Но одна деталь просто вымораживает.
Он внезапно начал достаточно часто обновляться. При этом каждое обновление требует авторизации зачем-то. При этом форма логина сделана по уродски — сначала появляется поле для логина, Next, потом только пароль. (Почему это говно повсюду копируют.) И теперь форма логина по "Use existing account" вообще не грузится. Та-да!
Также не вижу переключателя для тестирования мобильной вёрстки.
Табы vs пробелы посчитали (хотя кривовато).
Теперь бы знать статистику 2 vs 4 пробела по языкам программирования.
Есть что на этот счёт?
$ git push origin <branch>
...
Counting objects: 25, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (23/23), done.
Writing objects: 100% (25/25), 4.02 KiB | 0 bytes/s, done.
Total 25 (delta 13), reused 0 (delta 0)
_
Курсор мигает, команда не завершается, больше ничего не происходит. Разумеется, чего не запушилось.
Если сделать свежий клон, ничего не коммитить и только бранч обновить/создать, то получается так:
$ git push origin <branch>
...
Total 0 (delta 0), reused 0 (delta 0)
_
С тем же безуспешным результатом.
Изучены
stackoverflow.com
stackoverflow.com
stackoverflow.com
stackoverflow.com
reddit.com
Испробовано:
* push -u;
* разные версии git и разные гуи;
* запуск на другом ПК через другого провайдера;
* манипуляции с MTU;
* что-то ещё.
Не испробовано:
* sudo chown -R git.git /srv/git/ на сервере. Но если это, видимо, только у меня не работает, то маловероятно, что проблема с правами?
Если не найду причину, останется только патчи по почте слать.
Только успел обнаружить, что встроенный терминал тормозит и ломает пользовательский ввод, как вышло большое обновление, где его переписали.
code.visualstudio.com
Я тут узнал про этот холивар.
JS — ленивый язык для ленивых людей. Настолько, что им лень в C-style языке ставить C-style разделители выражений.
Меня больше всего удивляет, что кто-то вообще это говно — Automatic semicolon insertion — придумал.
Как результат внедрения такого лексического препроцессора, то что написано, то что подразумевалось и то что выполнится на самом деле — это три большие разницы, вместо хотя бы двух. Теперь, выбирая сторону холивара, просто приходится выбирать сорт граблей, по которым в любом случае ходить.
Если я предпочитаю использовать т-с-з, по аналогии с другими языками и потому что явное лучше неявного, то ASI мне только палки в колёса иногда вставляет, делая внешне нормальный код нерабочим (неявные вещи случаются независимо от моей воли).
Сторонники "чистого кода" говорят, что у них всё хорошо, надо вот только помнить про несколько случаев, где препроцессор ошибается, и они то не пишут код так, чтобы сталкиваться с этими случаями. И даже если сталкиваются, то т-с-з в начале строки — это абсолютно нормальное решение в такой ситуации.
Для меня звучит как сидром жертвы плохого дизайна языка.
Можно было бы легко выбирать параметры из url'ов. Но нет, захватывается только то, что попало в последний проход, т.е. в данном случае только тот параметр, который стоит крайним справа.
regex101.com — на примере можно пощёлкать языки и увидеть, что попадает в результаты.
В JS остаётся только выгребать все параметры массивом и уже из него брать нужное.
Demonic invasion in progress
Как сделать не ту игру, выкинуть, подумать, и сделать лучше.
youtube.com
(~80 минут)
(Хех. Снова Дум #2765917 .)
Git from the inside out (текст), понравилось.
Стало интересно, что происходит внутри при более сложных вещах — при редактировании истории. На ютубе есть ещё доклады, затрагивающие внутреннее устройство Гита, но они не идут сильно дальше этого.
Также захотелось увидеть что-то подобное про Mercurial. Видео не нашёл, и в процессе поиска вспомнил, что Меркуриал не задуман так, чтобы выставлять детали имплементации. Но если очень хочется, то официальная wiki — это наиболее содержательный источник информации. Начать удобнее всего оказалось с Mercurial for Git users и далее следовать по ссылкам на термины. В разделе Developer Info — Internals оказалось не густо.
На SO упоминаются статьи Behind the scenes и Towards a Better SCM: Revlog and Mercurial (гуглибельно, я не знаю нормальной ссылки), но они не слишком содержательны, по крайней мере на том уровне, на котором я хотел удовлетворить своё любопытство.
Одна деталь:
Аналогом команды git cat-file для просмотра внутренних бинарных файлов в Mercurial является подмножество команд hg debug*. Полный список дебажных команд удобнее получить через hg help debug.
Наткнулся на Стало интересно, что происходит внутри при более сложных вещах — при редактировании истории. На ютубе есть ещё доклады, затрагивающие внутреннее устройство Гита, но они не идут сильно дальше этого.
Также захотелось увидеть что-то подобное про Mercurial. Видео не нашёл, и в процессе поиска вспомнил, что Меркуриал не задуман так, чтобы выставлять детали имплементации. Но если очень хочется, то официальная wiki — это наиболее содержательный источник информации. Начать удобнее всего оказалось с Mercurial for Git users и далее следовать по ссылкам на термины. В разделе Developer Info — Internals оказалось не густо.
На SO упоминаются статьи Behind the scenes и Towards a Better SCM: Revlog and Mercurial (гуглибельно, я не знаю нормальной ссылки), но они не слишком содержательны, по крайней мере на том уровне, на котором я хотел удовлетворить своё любопытство.
Одна деталь:
Аналогом команды git cat-file для просмотра внутренних бинарных файлов в Mercurial является подмножество команд hg debug*. Полный список дебажных команд удобнее получить через hg help debug.
Откатываешь ппоследние правки, смотришь, где что сломалось...
И понимаешь, что в это время кто-то так же ковыряет веб-морду.
youtube.com
youtube.com
Не совсем разработчик в этот раз. Silent Hill 2 с комментариями парня, озвучивавшего ГГ.
(Продолжаем цикл — #2765917 , может уже отдельный тег придумать?)
youtube.com
Не совсем разработчик в этот раз. Silent Hill 2 с комментариями парня, озвучивавшего ГГ.
(Продолжаем цикл — #2765917 , может уже отдельный тег придумать?)
youtube.com
Джон Ромеро играет в Дум и делится байками о разработке оного.
(10 роликов ~2.5 часа в сумме.)
(Продолжая #2693830 .)
Джон Ромеро играет в Дум и делится байками о разработке оного.
(10 роликов ~2.5 часа в сумме.)
(Продолжая #2693830 .)