yurikhan: (Default)

Заметка для себя, чтоб не потерять.

Типичная задача: добавить сабмодуль в git-репозиторий.

Решение человека, только что читавшего мануал: $ git submodule add git@host:path/repo.git. Клонирует удалённый репозиторий в подкаталог текущего, регистрирует его в .gitmodules и .git/config.

Как обычно получается у меня: $ git clone git@host:path/repo.git. Клонирует удалённый репозиторий в подкаталог текущего и больше ничего не делает. Обнаруживается это где-то ближе к тому моменту, когда добавление сабмодуля нужно закоммитить.

Соответственно, задача: На входе есть суперпроект (в терминах git-submodule(1)) и внутри него локальная копия репозитория, который нужно сделать сабмодулем. Считаем, что текущий каталог находится внутри суперпроекта, а корень будущего сабмодуля является непосредственным подкаталогом текущего. Решение методом выливания воды из чайника заранее отметаем как неизящное.

Из инструментов у нас есть git submodule add [-b <branch>] <repository> <path>. Ветку указывать нужно в редких случаях и можно руками. Путь легко вводится по M-RET в Midnight Commander’е. А вот URL репозитория хочется достать и подставить автоматически.

Достать путь можно так: $ git -C <submodule> config --get remote.origin.url.

Однако писать $ git submodule add $(<строчка выше>) каждый раз утомительно, поэтому добавляем алиас:

$ git config --global --edit

[alias]
    subinit = !sh -c 'sub="$1" && shift && git submodule add "$@" $(git -C "$sub" config --get remote.origin.url)' -

$ git subinit repo
Adding existing repo at 'repo' to the index

$ git subinit repo2 -b master
Adding existing repo at 'repo' to the index
yurikhan: (Default)

Из обсуждения, как людям объяснять Git:

X: Do not mention DAG to people who do not have a formal computer science background. […] The word “graph” has a completely different meaning to laypeople.

Me: You mean the graph plot? Well, in Russian the word for graph-as-in-graph-theory is an homonym of the word for count-as-in-count-Dracula.

yurikhan: (Default)

Или о бесявости отсутствия таковых.

Альфа-Клик, интернет-банк Альфа-Банка. Чтобы сделать перевод между счетами, приходится (1) навестись на «Переводы» в строке меню, (2) в попап-меню ткнуть в «Между своими счетами», выбрать в выпадающих списках сначала (3) счёт Откуда, потом (4) счёт Куда, потом (5) ввести сумму. Именно в этом порядке, потому что преждевременная валидация ввода.

Как должно быть: В списке счетов вижу название и текущий остаток. Дальше несколько способов.

  • Способ А: (1а) Дрэг-эн-дроп из текущего остатка на другой счёт открывает форму перевода, заранее заполненную исходным и целевым счетами, остаётся только (2а) ввести сумму.
  • Способ Б: (1б) Клик в название открывает выписку. На экране выписки должна быть (2б) кнопка «Перевести отсюда», открывающая ту же форму с предзаполненным исходным счётом, остаётся (3б) выбрать целевой счёт и (4б) ввести сумму.
  • Если переводим не между своими счетами, то сценарий (б) тот же самый, только в (3б) указываем счёт получателя не выбором из списка своих счетов, а каким-то другим способом (выбор из закладок или, на худой конец, заполнение формы с опциональным созданием закладки).

Zabbix, система мониторинга с веб-мордой. Вижу график трафика по семи серверам. Хочу добавить к нему недавно развёрнутый восьмой. Для этого приходится: (1) в строке меню навестись на Configure; (2) вспомнить, определён ли график для какого-то Хоста или в каком-то Шаблоне; (3) ткнуть соответственно в Hosts или Templates; (4) найти нужный хост или шаблон в двухстраничной таблице; (5) ткнуть в ссылку Graphs в его строке; (6) в открывшемся списке графиков этого хоста ткнуть в нужный график.

Как должно быть: На странице с графиком должна быть кнопка «Конфигурировать это».

Outlook Web Access, веб-морда к корпоративной почте. Чтобы подписаться на рассылку, приходится: (1) в меню опций ткнуть в Options; (2) ткнуть в Groups; (3) нажать кнопку Join; (4) в открывшемся диалоге ткнуть в нужную группу; (5) в окне информации о группе нажать кнопку Join.

Как должно быть: (1) На вкладке People или на главной можно поиском найти нужную группу. (2) В панели информации о группе должна быть кнопка «Вступить в это».

Gajim, jabber-клиент. Чтобы добавить контакт, нужно: (1) выбрать в меню Actions | Add contact | (нужный jabber-аккаунт); (2) в диалоге ввести JID; (3) в выпадающем списке выбрать группу.

Как должно быть: Ростер уже сгруппирован сначала по аккаунтам, потом по группам. (1) В контекстном меню группы должен быть пункт «Добавить сюда». Остаётся (2) в диалоге ввести JID.

Magit, git-фронтэнд для Emacs’а. Чтобы создать новую ветку от текущего коммита, нужно: (1) нажать b B (magit-branch-and-checkout); (2) ввести хэш или имя ветки начального коммита или согласиться на предлагаемый по умолчанию; (3) ввести имя новой ветки.

Как должно быть: (1) В графе коммитов навести курсор на нужный коммит; (2) дать команду «создать ветку отсюда»; (3) ввести имя новой ветки.

Jenkins, инструмент для continuous integration. Чтобы склонировать задачу, нужно (1) ткнуть New Item, (2) выбрать радиокнопку Copy existing item, (3) выбрать клонируемую задачу из комбо-списка.

Как должно быть: В контекстном меню задачи должен быть пункт «Склонировать это».

Правило: Пользователь, видящий в интерфейсе объект, должен мочь непосредственно с него отдавать команды, принимающие этот объект в качестве любого параметра.

Положительные примеры: на картах в карточке здания «Проехать сюда» и «Проехать отсюда». В почтовиках «Filter messages like this».

yurikhan: (Default)

Надо не забывать на ночь таблетку от кашля, а то так иногда интересно /(под)?сознание/ работает, ох-хо-хо…

Снится это мне, что я работаю с какой-то системой контроля версий. (Предположительно — распределённой, весьма вероятно — конкретно с Git’ом.) И вот восстанавливаю я оттуда что-то, и обнаруживаю, что рабочая копия не соответствует тому состоянию, которое восстанавливаю. Грубо говоря, последний патч накладывается только наполовину. И так несколько раз, пытаюсь достать несколько разных ревизий и получаю расхождение.

Тут, видимо, начинаю просыпаться. Кхы, кх-к-к-кхххы. Откашливаюсь — и патч накладывается полностью, расхождений нет.

Доктор, меня вылечат?…

Profile

yurikhan: (Default)
Yuri Khan

August 2018

S M T W T F S
   1234
567891011
12131415161718
19202122232425
26 2728293031 

Links

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated 2025-06-15 21:00
Powered by Dreamwidth Studios