Git умеет «из коробки» раскрашивать то, что выводит в консоль, а Subversion — нет. Надоело руками каждый раз перенаправлять вывод svn diff
в colordiff — написал простенькую раскрашивалку. Когда-то умела красить только вывод подкоманды status
, теперь понимает blame (praise, annotate, ann), diff (di), help (?, h), status (stat, st) — и сами подкоманды, и их синонимы.
Архив рубрики: subversion
Инструменты разные — методы похожие
Попробовал решить одну из рабочих задач, применив нелюбимый язык PHP в комплекте с современными инструментами — получилось близко к тому, что делал сравнительно недавно на перле, с некоторыми отличиями:
- Вместо перла — PHP,
- Модули тоже лежат рядом со своим кодом, но управляются не картоном, а через composer,
- Композер и тесты может запустить (composer test), и отладочный сервер (composer start). Но можно для однообразия для обоих языков сделать Makefile и выполнять нужные действия командой make. Например, у меня запуск тестов — всегда make test, чтобы не путаться.
- Вместо Mojolicious::Lite — микрофреймворк Slim. Для быстрого старта — Slim-Skeleton.
- В шаблонах вместо Embedded Perl — Twig.
- Если сайт работает через PHP-FPM, то нет нужды пинать демона каждый раз, как обновится код — он сам обрабатывает подобную ситуацию. Развёртывание свежей версии простого веб-приложения сводится к трём действиям: обновление рабочей копии (svn up либо git pull), разрешение зависимостей (composer install) и на всякий случай запуск тестов.
Практика показала, что разобраться с подобным комбайном можно достаточно быстро. Код при этом получается чуть более многословным, чем в Mojo, но всё равно компактным и понятным.
Statt zu schlafen
Учёт домашних доходов с расходами — сплошное расстройство. Теперь вот вместо того, чтоб спать, пытаюсь вспомнить, что же умею делать за деньги, потому что на одну зарплату прокормить семью вообще нереально.
Могу:
- Программировать на Перле — как древние CGI-приложения и прочее легаси, так и современные, с использованием фреймворков Mojolicious, Dancer, Catalyst.
- Программировать на PHP: в основном допиливать существующие приложения, а не писать с нуля что-то большое. Могу писать с нуля что-то мелкое с фреймворком Slim.
- Настраивать CMS Drupal и WordPress, а также дорабатывать их темы оформления.
- Настраивать и дорабатывать Open Journal Systems, включая реализацию многоязычности имён — делал это в OJS 2.4.2, 2.4.7.1, 2.4.8.1, думаю, и в Open Conference Systems смогу реализовать.
- Кроссбраузерно верстать веб-страницы, применять адаптивный дизайн, грамотно использовать возможности HTML5 и CSS3.
- Немножко программировать на Руби (в том числе, с использованием Ruby on Rails) — наверное, на юниорском уровне.
- Немножко программировать на ЯваСкрипте — как голый JavaScript, так и с jQuery. Совсем чуть-чуть — nodejs, Angular, Vue.
- Писать тесты на перле, пхп и руби.
- Постоянно внушать коллегам необходимость использования багтрекера и системы контроля версий.
- (хоть и не считаю это основными профессиональными навыками) фотографировать, петь, аккомпанировать на шестиструнной гитаре, преподавать, водить легковой автомобиль, быть Дедом Морозом, штурманом и инструктором по водному туризму, набирать ноты в MuseScore и LilyPond и тексты с формулами в TeX — медленно, но красиво.
Хочу от 15 USD / 1 kRUB в час.
- Statt zu schlafen (нем.) — вместо того, чтобы спать
- Резюме — http://shoorick.ru/cv
Справился с ошибкой svn E155010
Решил как-то добавить древние файлы в систему контроля версий, да не смог:
$ svn st | grep -e '^\?' | cut -c9-999 | xargs svn add A noframe.html.en svn: E000013: Can't create temporary file from template '/usr/local/www/path/to/svn-XXXXXX': Permission denied
Оказалось, не имел права писать во временный каталог Subversion .svn/tmp где-то выше. Изменил права, повторяю попытку добавления — фиг:
$ svn st | grep -e '^\?' | cut -c9-999 | xargs svn add svn: E155037: Previous operation has not finished; run 'cleanup' if it was interrupted
Команда svn cleanup
тоже не помогла
$ svn cleanup svn: E155010: The node '/usr/local/www/path/to/af_0011.html.ru' was not found.
Гугление с чтением форумов не особо помогло — пришлось ковырять базу данных, где Subversion хранит состояние рабочей копии — это файл .svn/wc.db, для работы с которым нужен SQLite. Будете ковырять — не забудьте сделать резервную копию!
$ sqlite3 wc.db sqlite> SELECT * FROM LOCK; sqlite> SELECT * FROM WC_LOCK; 1|path/to|-1 sqlite> DELETE FROM WC_LOCK; sqlite> SELECT * FROM WORK_QUEUE; 26|(sync-file-flags path/to/af_0011.html.ru) sqlite> DELETE FROM WORK_QUEUE;
В моём случае сработало.
Subversion 1.8 в Ubuntu 13.10
Жизнь под Убунтой, где принято ставить программы уже готовыми, а не собирать их из исходников самому, как это практикуется в некоторых других юникосоподобных ОС, усиливает лень. Вот, например, вышла Subversion 1.8 (и сменила формат данных в рабочих копиях) — вроде, надо обновить, а фиг: в репозиториях хранилищах программ нет свежих версий — есть лишь 1.7.9.
На форуме askubuntu.com предлагают какой вариант:
sudo sh -c 'echo "# WANdisco Open Source Repo" >> /etc/apt/sources.list.d/WANdisco.list'
sudo sh -c 'echo "deb http://opensource.wandisco.com/ubuntu precise svn18" >> /etc/apt/sources.list.d/WANdisco.list'
wget -q http://opensource.wandisco.com/wandisco-debian.gpg -O- | sudo apt-key add -
sudo apt-get update
С последующим apt-get upgrade
либо apt-get install subversion
. Хоть рецепт содержит слово precise
, что намекает на Ubuntu 12.04 LTS, он работает и в 13.10.