пятница, 14 сентября 2012 г.

mercurial: +100 к гибкости

Недавно обнаружил замечательное расширение для hg : crecord.
Оно позволяет делать построчные коммиты - то есть, выбирать конкретные строки, которые включить в очередной коммит.
Допустим у вас есть измененный файл и в стандартный diff попадают изменения , сделанные в рамках двух разных доработок. Изменения по одной из доработок вы хотите закоммитить,  а изменения по другой - пока не хотите. В этом случае как раз и поможет данное расширение..

Установка и подключение предельно просты:

1. выкачиваем расширение в локальную директорию из репозитория (расширение еще не включено в список стандартных)


$ hg clone https://bitbucket.org/edgimar/crecord
 
2. редактируем .hgrc файл  

[extensions] 



crecord = /путь/до/каталога/crecord/содержащего/__init__.py/ 

И теперь можем использовать как новую команду для hg:
$ hg crecord

В результате отображается консольный интерфейс с возможностью выбора отдельных файлов и отдельных строк в файлах, причем строки можно выбирать группами.

p.s.

Без багов, конечно же , тоже не обошлось:

hg crecord требует указания имени пользователя.
Требует - указываем ... через стандартный для hg  параметр -u

$ hg crecord -u someuser
.. а он не понимает и продолжает требовать.

Приходится явно прописывать в .hgrc

[ui]
username = someuser
Приятного использования!

2 комментария:

  1. Я не хочу холиварить, но в гите есть такая штука.
    git add -p, или через git add -i

    ОтветитьУдалить
  2. Все в порядке!)
    Это не удивительно , что есть - hg и git конкурирующие СКВ как-никак , а задача "выборочного коммита" стоит перед фанатами как hg так и git.

    Хотя надо будет на досуге глянуть , действительно ли то , о чем вы сказали - аналогия того, о чем говорил я :)

    ОтветитьУдалить