Как проверить чужую ветку через Git worktree
Git worktree создаёт для ветки отдельный рабочий каталог. Можно запустить тесты и изучить изменения коллеги, не пряча свои незавершённые правки в stash, не переключая текущую ветку и не клонируя репозиторий заново.
Сначала обновите ссылки на удалённые ветки, затем создайте каталог для ревью:
Такой каталог откроется с detached HEAD: он подходит для чтения кода и тестов, но новые коммиты не будут привязаны к ветке. Если проверка переросла в доработку, выполните
После ревью удалите каталог командой
Git worktree создаёт для ветки отдельный рабочий каталог. Можно запустить тесты и изучить изменения коллеги, не пряча свои незавершённые правки в stash, не переключая текущую ветку и не клонируя репозиторий заново.
Сначала обновите ссылки на удалённые ветки, затем создайте каталог для ревью:
git fetch origin
git worktree add ../review-123 origin/feature/some-branch
Такой каталог откроется с detached HEAD: он подходит для чтения кода и тестов, но новые коммиты не будут привязаны к ветке. Если проверка переросла в доработку, выполните
git switch -c review/fix-123.После ревью удалите каталог командой
git worktree remove ../review-123. Практический разбор Git worktree также объясняет создание рабочих веток, обновление через rebase или merge и безопасную очистку каталогов.Как сохранить работу при обрыве SSH с помощью tmux
tmux сохраняет терминальную сессию на сервере и делит одно окно на несколько панелей. Запустите именованную сессию командой
Чтобы отключиться, нажмите
Панели создаются сочетаниями
Готовая конфигурация и команды tmux также охватывают работу с окнами, прокрутку вывода, мышь и запуск заранее собранных раскладок.
tmux сохраняет терминальную сессию на сервере и делит одно окно на несколько панелей. Запустите именованную сессию командой
tmux new -s work: даже после разрыва SSH запущенная в ней задача продолжит выполняться.Чтобы отключиться, нажмите
Ctrl+b, отпустите клавиши и нажмите d. Вернуться можно командой tmux attach -t work. Список активных сессий покажет tmux ls.Панели создаются сочетаниями
Ctrl+b % для деления слева направо и Ctrl+b " для деления сверху вниз. Так в одном рабочем пространстве помещаются основная команда, логи и системный мониторинг.Готовая конфигурация и команды tmux также охватывают работу с окнами, прокрутку вывода, мышь и запуск заранее собранных раскладок.
⚡1
Nebula ArchRules: общие архитектурные проверки для JVM-проектов
Nebula ArchRules переносит правила ArchUnit из JUnit-тестов одного репозитория в любое число Gradle-проектов. Это пригодится командам, которым нужно одинаково отслеживать запрещённые зависимости и неправильное использование API.
ArchUnit анализирует скомпилированный байткод, поэтому одно правило работает для Java, Kotlin и Scala. Правила пишутся на Java через типобезопасный API, собираются в отдельный JAR-файл и могут поставляться вместе с библиотекой. Тогда плагин запускает их только для тех наборов исходников, где эта библиотека подключена.
Разбор устройства Nebula ArchRules показывает и практический сценарий Netflix: искать обращения к устаревшим, экспериментальным и внутренним API во множестве репозиториев. Результаты выводятся в консоль или JSON, а порог ошибки сборки можно настроить по приоритету нарушения.
Nebula ArchRules переносит правила ArchUnit из JUnit-тестов одного репозитория в любое число Gradle-проектов. Это пригодится командам, которым нужно одинаково отслеживать запрещённые зависимости и неправильное использование API.
ArchUnit анализирует скомпилированный байткод, поэтому одно правило работает для Java, Kotlin и Scala. Правила пишутся на Java через типобезопасный API, собираются в отдельный JAR-файл и могут поставляться вместе с библиотекой. Тогда плагин запускает их только для тех наборов исходников, где эта библиотека подключена.
Разбор устройства Nebula ArchRules показывает и практический сценарий Netflix: искать обращения к устаревшим, экспериментальным и внутренним API во множестве репозиториев. Результаты выводятся в консоль или JSON, а порог ошибки сборки можно настроить по приоритету нарушения.
Delta и fzf: Git-диффы с посимвольной подсветкой и меню файлов
Delta оформляет вывод
Скрипт
В настройке Delta и готовом скрипте gd есть конфигурация Git и важная оговорка: при переносе скрипта без авторских dotfiles к fzf нужно добавить флаг
Delta оформляет вывод
git diff, git show, git add -p и git blame: изменения внутри строк выделяются двумя оттенками, поэтому при ревью легче заметить отдельные исправленные символы.Скрипт
gd добавляет меню fzf для переключения между изменёнными файлами. Аргументы передаются напрямую в git diff: gd --staged показывает подготовленные к коммиту изменения, gd main.. сравнивает текущую ветку с main, а флаг --side включает просмотр бок о бок.В настройке Delta и готовом скрипте gd есть конфигурация Git и важная оговорка: при переносе скрипта без авторских dotfiles к fzf нужно добавить флаг
--ansi.❤1🫡1
Как фильтровать JSON в терминале с jq
jq — утилита командной строки для фильтрации и преобразования JSON. Она принимает файл или вывод другой команды, поэтому ответ API можно обработать прямо в конвейере shell-скрипта.
Фильтр
Флаг
jq — утилита командной строки для фильтрации и преобразования JSON. Она принимает файл или вывод другой команды, поэтому ответ API можно обработать прямо в конвейере shell-скрипта.
Фильтр
.servers[] перебирает объекты массива, select(...) оставляет подходящие, а {hostname: .hostname} собирает новый объект из нужных полей. Шаги соединяются оператором |, поэтому цепочку можно проверять по частям.Флаг
-r выводит строки без кавычек, чтобы сразу передать их другой команде. Примеры фильтрации и преобразования JSON также охватывают сортировку, группировку, переменные и обработку отсутствующих полей.Как найти источник расхода памяти в живом Python-процессе с Memray
Memray подключается к запущенному Python-процессу без перезапуска приложения и записывает выделения памяти, включая операции в расширениях на C и нативных библиотеках. Установка:
В контейнере найдите PID процесса и запустите
Для подключения нужен Python 3.7 или новее. В Kubernetes контейнеру также может потребоваться разрешение
Memray подключается к запущенному Python-процессу без перезапуска приложения и записывает выделения памяти, включая операции в расширениях на C и нативных библиотеках. Установка:
pip install memray.В контейнере найдите PID процесса и запустите
memray attach <PID>. Через несколько минут остановите запись и посмотрите, какие функции расходуют больше всего памяти: memray summary даст таблицу, memray flamegraph построит граф вызовов, а memray stats покажет общую статистику.Для подключения нужен Python 3.7 или новее. В Kubernetes контейнеру также может потребоваться разрешение
SYS_PTRACE. Такой профиль помогает найти крупные выделения памяти под реальной нагрузкой, когда проблема не воспроизводится локально.✍1
Как настроить Ruff для единых проверок в VS Code и терминале
Ruff форматирует Python-код, проверяет его по правилам и сортирует импорты. Это разные операции:
Правила храните в
Последовательная настройка Ruff связывает сохранение файла с теми же командами, которые запускаются в терминале:
Ruff форматирует Python-код, проверяет его по правилам и сортирует импорты. Это разные операции:
ruff format меняет оформление, а ruff check находит нарушения, включая неиспользуемые импорты. Проверку типов при этом можно оставить Pylance.Правила храните в
pyproject.toml, а расширению charliermarsh.ruff укажите исполняемый файл из проектного окружения через ruff.path. Для macOS, Linux и WSL это .venv/bin/ruff, для Windows: .venv/Scripts/ruff.exe. Конфликтующие действия Black и isort при сохранении стоит отключить.Последовательная настройка Ruff связывает сохранение файла с теми же командами, которые запускаются в терминале:
uv run --locked ruff format, ruff check и ruff check --fix. Так редактор и командная строка используют одну версию Ruff и один набор правил.❤1✍1
oyui: выбираем фрагменты диффа при jj split с подсветкой
oyui — терминальный редактор диффов для Jujutsu. Он помогает выбирать изменения при выполнении
Инструмент развивает идеи scm-record, встроенного в jj интерфейса для команд
Установка:
oyui — терминальный редактор диффов для Jujutsu. Он помогает выбирать изменения при выполнении
jj split: показывает код в цвете, подсвечивает синтаксис и позволяет выделять сразу группы фрагментов.Инструмент развивает идеи scm-record, встроенного в jj интерфейса для команд
split, restore и resolve. oyui стоит попробовать, если при разборе крупных диффов стандартному интерфейсу не хватает наглядности и группового выделения.Установка:
cargo install oyui. В обзоре инструментов для jj также собраны альтернативные редакторы диффов и другие дополнения к Jujutsu.André.Arko.net
Beyond jj: config & tools ecosystem
This post was originally given as a talk at JJ Con 2026. The slides are also available.
Hello! Welcome to “beyond jj”, where we’re going to take a look at the jj ecosystem: commands, configurations, and tools made to work with jj. It’s partly a follow-up…
Hello! Welcome to “beyond jj”, where we’re going to take a look at the jj ecosystem: commands, configurations, and tools made to work with jj. It’s partly a follow-up…
❤1
Как настроить модель в SolonCode через веб-интерфейс
SolonCode подключает модель к агенту без ручного редактирования
В разделе Models укажите адрес API, ключ, модель, размер контекста и тайм-аут. Перед сохранением запустите Test Connection, чтобы проверить ключ, адрес и прокси. После сохранения модель появится в чате без перезапуска.
Настройки можно сохранить для всех проектов или локально в
SolonCode подключает модель к агенту без ручного редактирования
settings.json. Запустите soloncode web 0 из каталога проекта: инструмент откроет браузер и сделает этот каталог рабочей областью.В разделе Models укажите адрес API, ключ, модель, размер контекста и тайм-аут. Перед сохранением запустите Test Connection, чтобы проверить ключ, адрес и прокси. После сохранения модель появится в чате без перезапуска.
Настройки можно сохранить для всех проектов или локально в
.soloncode/settings.json. API-ключ в репозиторий добавлять нельзя. Полный путь от установки до первой задачи❤1
git-cliff: как собрать список изменений из истории Git
git-cliff генерирует файл со списком изменений по истории Git. Для разбора сообщений коммитов он поддерживает Conventional Commits, соглашение об их формате, и собственные правила на основе регулярных выражений, которые находят заданные текстовые шаблоны.
Например, для проекта можно настроить формат списка изменений через конфигурационный файл: шаблон определяет, как будут выглядеть записи. Это позволяет подготовить CHANGELOG в нужном оформлении.
В репозитории git-cliff описаны способы разбора коммитов и настройки шаблона, а также собраны ссылки на документацию по установке, использованию и конфигурации.
#git #автоматизация
git-cliff генерирует файл со списком изменений по истории Git. Для разбора сообщений коммитов он поддерживает Conventional Commits, соглашение об их формате, и собственные правила на основе регулярных выражений, которые находят заданные текстовые шаблоны.
Например, для проекта можно настроить формат списка изменений через конфигурационный файл: шаблон определяет, как будут выглядеть записи. Это позволяет подготовить CHANGELOG в нужном оформлении.
В репозитории git-cliff описаны способы разбора коммитов и настройки шаблона, а также собраны ссылки на документацию по установке, использованию и конфигурации.
#git #автоматизация
Read. Write. Edit. Bash.
Это базовый набор операций Pi — агента, на котором построен OpenClaw. Дополнительные возможности появляются через расширения: агент может написать их по запросу пользователя, перезагрузить и проверить в работе.
У такого устройства есть полезные детали:
• состояние расширений хранится в сессии;
• беседу можно разветвить для отладки и вернуться с кратким пересказом;
• инструкции и примеры помогают агенту создавать новые функции.
Армин Ронахер разбирает Pi на собственных примерах: среди расширений, созданных по его запросам, есть список задач и ревью изменений кода. Получается взгляд на выбор ИИ-инструмента через то, что пользователь может настроить в нём под свою работу.
#ии #инструменты
Это базовый набор операций Pi — агента, на котором построен OpenClaw. Дополнительные возможности появляются через расширения: агент может написать их по запросу пользователя, перезагрузить и проверить в работе.
У такого устройства есть полезные детали:
• состояние расширений хранится в сессии;
• беседу можно разветвить для отладки и вернуться с кратким пересказом;
• инструкции и примеры помогают агенту создавать новые функции.
Армин Ронахер разбирает Pi на собственных примерах: среди расширений, созданных по его запросам, есть список задач и ревью изменений кода. Получается взгляд на выбор ИИ-инструмента через то, что пользователь может настроить в нём под свою работу.
#ии #инструменты
👍1
Инструменты программиста
Read. Write. Edit. Bash. Это базовый набор операций Pi — агента, на котором построен OpenClaw. Дополнительные возможности появляются через расширения: агент может написать их по запросу пользователя, перезагрузить и проверить в работе. У такого устройства…
Какими ИИ-ассистентами и агентами вы пользуетесь? Можно выбрать несколько
Anonymous Poll
8%
GitHub Copilot
1%
Codeium
46%
Claude Code
23%
Gemini
48%
ChatGPT
4%
GigaCode (Сбер)
2%
Yandex Code Assistant
29%
DeepSeek
5%
Hermes Agent
12%
Другое (напишу в комментариях)
От чатбота к агентам: опыт Митчелла Хашимото
Для работы с кодом Хашимото перешёл от отдельного чата к агенту, который читает файлы проекта и запускает программы. После этого начал повторять собственную работу: сначала решал задачу сам, затем давал её агенту без готового решения.
Так он выяснял, какие задачи можно поручать ИИ. Дальше добавлял инструкции в AGENTS.md, файл с правилами проекта, и способы проверить изменения, включая запуск тестов.
В истории освоения ИИ в разработке Хашимото связывает выбор задач с настройкой рабочего окружения. Отдельные чаты при этом остались в его повседневной работе.
#ии #инструменты
Для работы с кодом Хашимото перешёл от отдельного чата к агенту, который читает файлы проекта и запускает программы. После этого начал повторять собственную работу: сначала решал задачу сам, затем давал её агенту без готового решения.
Так он выяснял, какие задачи можно поручать ИИ. Дальше добавлял инструкции в AGENTS.md, файл с правилами проекта, и способы проверить изменения, включая запуск тестов.
В истории освоения ИИ в разработке Хашимото связывает выбор задач с настройкой рабочего окружения. Отдельные чаты при этом остались в его повседневной работе.
#ии #инструменты
❤1☃1
Инструменты программиста
От чатбота к агентам: опыт Митчелла Хашимото Для работы с кодом Хашимото перешёл от отдельного чата к агенту, который читает файлы проекта и запускает программы. После этого начал повторять собственную работу: сначала решал задачу сам, затем давал её агенту…
Где вы чаще всего работаете с ИИ-инструментом?
Anonymous Poll
33%
В отдельном окне чата или веб-версии
21%
Прямо в редакторе кода
26%
В терминале
2%
Через корпоративные сервисы или платформы
18%
По-разному, зависит от того, что нужно сделать
Как найти самые большие файлы в Zsh
Zsh умеет отбирать и сортировать файлы по размеру прямо в шаблоне поиска. Команда
Адам Джонсон на примере репозитория Django разбирает синтаксис этих квалификаторов, то есть правил отбора и сортировки после шаблона. Есть и пример поиска Python-файлов больше 150 КиБ. Такой список поможет выбрать, какие крупные файлы изучить перед очисткой репозитория.
#терминал #инструменты
Zsh умеет отбирать и сортировать файлы по размеру прямо в шаблоне поиска. Команда
du -h **/*(.OL[1,5]) покажет занятое место для пяти самых больших обычных файлов в текущем каталоге и подкаталогах. Точка исключает каталоги, OL сортирует файлы по убыванию размера, а [1,5] оставляет первые пять результатов.Адам Джонсон на примере репозитория Django разбирает синтаксис этих квалификаторов, то есть правил отбора и сортировки после шаблона. Есть и пример поиска Python-файлов больше 150 КиБ. Такой список поможет выбрать, какие крупные файлы изучить перед очисткой репозитория.
#терминал #инструменты
Поиск и замена кода по структуре с ast-grep
ast-grep ищет код по синтаксической структуре: вместо совпадений текста, как у grep, сопоставляет узлы дерева, представляющего устройство кода. Шаблон выглядит как обычный код, а метапеременная
Например, можно найти в TypeScript проверку значения перед его вызовом. Пробелы и переносы строк не мешают совпадению:
В Linux имя sg может быть занято системной командой; тогда используйте ast-grep вместо sg.
В README есть установка, примеры поиска и замены кода, а также описание собственных правил проверки в YAML. Это пригодится, если нужно находить повторяющиеся конструкции или менять код при обновлении библиотеки.
#инструменты #cli
ast-grep ищет код по синтаксической структуре: вместо совпадений текста, как у grep, сопоставляет узлы дерева, представляющего устройство кода. Шаблон выглядит как обычный код, а метапеременная
$A обозначает один узел этого дерева.Например, можно найти в TypeScript проверку значения перед его вызовом. Пробелы и переносы строк не мешают совпадению:
sg run -p '$A && $A()' -l ts
В Linux имя sg может быть занято системной командой; тогда используйте ast-grep вместо sg.
В README есть установка, примеры поиска и замены кода, а также описание собственных правил проверки в YAML. Это пригодится, если нужно находить повторяющиеся конструкции или менять код при обновлении библиотеки.
#инструменты #cli
👍1🐳1
bat: просмотр кода в терминале с подсветкой синтаксиса
bat выводит содержимое файлов с подсветкой синтаксиса, номерами строк и пометками изменений относительно индекса Git, то есть версии, подготовленной к коммиту. Если текст не помещается на экран, утилита по умолчанию открывает его в программе для постраничного просмотра.
Конкретный сценарий: предпросмотр файлов при поиске через fzf. Опция
В руководстве bat есть готовая команда для fzf, способы установки и примеры работы с файлами. При передаче вывода другой программе bat автоматически отдаёт чистое содержимое без номеров строк и пометок.
#инструменты #терминал
bat выводит содержимое файлов с подсветкой синтаксиса, номерами строк и пометками изменений относительно индекса Git, то есть версии, подготовленной к коммиту. Если текст не помещается на экран, утилита по умолчанию открывает его в программе для постраничного просмотра.
Конкретный сценарий: предпросмотр файлов при поиске через fzf. Опция
--line-range=:500 ограничивает вывод первыми 500 строками, чтобы сократить время загрузки длинных файлов. А --color=always сохраняет цветную подсветку в предпросмотре.В руководстве bat есть готовая команда для fzf, способы установки и примеры работы с файлами. При передаче вывода другой программе bat автоматически отдаёт чистое содержимое без номеров строк и пометок.
#инструменты #терминал
⚡1❤1
Для нового сервиса нужны репозиторий, ресурсы, сборка, тесты, доступы и мониторинг. Для каждого аспекта нужна была своя заявка и существовала отдельная очередь. В VK всё это свели в одну внутреннюю платформу: разработчик выбирает шаблон, получает ресурсы и сам может провести фичу от кода до запуска. Подготовка типового сервиса теперь занимает часы вместо недель.
В процесс встроены автопроверки, тесты в изолированной среде и фича-флаги. Среда ловит ошибки до релиза, а флаг позволяет включить функцию, например, для 1% пользователей и посмотреть, как она работает на реальных запросах.
Разобрали этот подход на примере ВКонтакте: какие операции автоматизировали, за что отвечает команда и с чего можно начать в своём проекте.
В процесс встроены автопроверки, тесты в изолированной среде и фича-флаги. Среда ловит ошибки до релиза, а флаг позволяет включить функцию, например, для 1% пользователей и посмотреть, как она работает на реальных запросах.
Разобрали этот подход на примере ВКонтакте: какие операции автоматизировали, за что отвечает команда и с чего можно начать в своём проекте.
Локальная модель в Bruno: подключение через Ollama и LM Studio
Bruno 4.0.0+ позволяет подключить ИИ на вашем компьютере для генерации проверок ответов API, скриптов и документации. Запросы к модели остаются на машине, помощник работает без интернета. ИИ-функции пока в бете и по умолчанию выключены.
В руководстве по подключению локальных моделей разобраны выбор модели под доступную память, запуск сервера и добавление его адреса и идентификатора модели в настройки Bruno. Ollama запускает сервер автоматически; в LM Studio его нужно включить вручную через графический интерфейс.
Для проверки подключения показаны команды, которые запрашивают список моделей у локального сервера. Небольшие модели подходят для типовых проверок, но уступают ведущим облачным моделям в сложных рассуждениях.
#инструменты #автоматизация
Bruno 4.0.0+ позволяет подключить ИИ на вашем компьютере для генерации проверок ответов API, скриптов и документации. Запросы к модели остаются на машине, помощник работает без интернета. ИИ-функции пока в бете и по умолчанию выключены.
В руководстве по подключению локальных моделей разобраны выбор модели под доступную память, запуск сервера и добавление его адреса и идентификатора модели в настройки Bruno. Ollama запускает сервер автоматически; в LM Studio его нужно включить вручную через графический интерфейс.
Для проверки подключения показаны команды, которые запрашивают список моделей у локального сервера. Небольшие модели подходят для типовых проверок, но уступают ведущим облачным моделям в сложных рассуждениях.
#инструменты #автоматизация
Как подключить личный GitHub и корпоративные аккаунты к GitButler
GitButler позволяет работать с личными репозиториями GitHub и корпоративными серверами GitHub Enterprise в одном Git-клиенте. Для каждого репозитория он сохраняет свой аккаунт: при переходе между проектами вручную переключать учётные данные не нужно.
В руководстве по подключению аккаунтов показаны вход через код подтверждения в браузере и подключение с токеном доступа. Для Enterprise понадобятся адрес API сервера и токен именно этого сервера.
Отдельно разобрана блокировка корпоративного сервера сетевой политикой GitButler: нужные адреса добавляют в поле
#git #инструменты
GitButler позволяет работать с личными репозиториями GitHub и корпоративными серверами GitHub Enterprise в одном Git-клиенте. Для каждого репозитория он сохраняет свой аккаунт: при переходе между проектами вручную переключать учётные данные не нужно.
В руководстве по подключению аккаунтов показаны вход через код подтверждения в браузере и подключение с токеном доступа. Для Enterprise понадобятся адрес API сервера и токен именно этого сервера.
Отдельно разобрана блокировка корпоративного сервера сетевой политикой GitButler: нужные адреса добавляют в поле
extraCsp файла настроек, затем перезапускают клиент. Учётные данные хранятся локально, в зашифрованном виде в системном хранилище ключей.#git #инструменты