Показаны сообщения с ярлыком mercurial. Показать все сообщения
Показаны сообщения с ярлыком mercurial. Показать все сообщения

вторник, 13 марта 2012 г.

Подсчёт строк в репозитории Mercurial

Иногда хочется посмотреть на красивые циферки, даже если большого смысла они не несут. Например, посчитать число строк в проекте. Если вы используете Mercurial, то сделать это можно одной командой:

$ hg locate -0 | xargs -0 wc -l

Хотя, наверняка в других VCS есть аналог hg locate. Этот метод отлично работает для репозиториев без бинарных данных и переваривает файлы с пробелами в именах благодаря аргументу -0. Если же у вас вдруг в репозитории имеются какие-то бинарники, картинки или шрифты например, то их можно исключить с помощью аргумента -X:

$ hg locate -0 -X website/static | xargs -0 wc -l

Ещё один метод исключения, более гибкий:

$ hg locate | grep -Eiv '\.(png|jpg|tiff)' | tr "\n" "\0" | xargs -0 wc -l

Вместо пространного объяснения использованных опций в предыдущем однострочнике приведу его копию с длинным ключами:

$ hg locate \
  | grep --extended-regexp \
         --ignore-case \
         --invert-match \
         '\.(png|jpg|tiff)' \
  | tr "\n" "\0" \
  | xargs --null wc --lines

Также, может пригодиться явное задание ревизии для locate с помощью стандартного для Mercurial аргумента -r.

В конце пример работы приведённых команд:

суббота, 14 января 2012 г.

Mercurial Queues

В этой статье пойдёт речь про одно из дополнений к Mercurial~--- Queues (далее просто MQ). Это дополнение распространяется вместе с Mercurial, поэтому для начала использования достаточно включить его, добавив следующие строки в .hg/hgrc:

[extensions]
hgext.mq =

понедельник, 12 сентября 2011 г.

Храним TeX документы в Mercurial репозитории

TeX plus Mercurial

Недавно я переехал с Subversion на Mercurial. И похоже, что добровольно назад не вернусь :). Я действительно проникся той идеей, что поскольку процесс разработки ПО является сам по себе распределённым процессом, то и система контроля версий должна быть распределённой. И ещё тем, что начало работы с VCS должно быть максимально простым. Это позволяет использовать мощь VCS в любом проекте, не задумываясь, как в случае с централизованными системами, окупятся ли усилия по поднятию и/или созданию репозитория. И ещё... а, ладно, на тему CVCS vs. DVCS написано предостаточно ...