Почему мой хук mercurial pre-commit не работает в MinGW

В моем файле .hgrc есть хук перед фиксацией, который проверяет, будут ли добавлены в репозиторий более 5 МБ файлов. Крюк это:

pre-commit.added-files-too-large = test 5000 -gt `hg status --added --no-status --print0 | xargs --null ls -lk | awk \'{sum += $5} END {print sum}\'`

Это отлично работает в Linux (с использованием bash), но не работает в MinGW. Если я просто запускаю ту же команду из командной строки оболочки MinGW, она работает, как и ожидалось.

Сообщение об ошибке

test: invalid integer ``hg'

Я подозреваю, что ошибка связана с тем, как что-то цитируется, но я пробовал множество комбинаций (включая изменение обратных кавычек на $()) и, похоже, не могу найти правильный ответ.

Любая помощь или указатели будут очень признательны.


person Carcophan    schedule 03.06.2011    source источник


Ответы (1)


Я предполагаю, что встроенный скрипт печатает какую-то ошибку, поэтому тест видит строку вместо числа.

Запустите команду hs status... из командной строки, чтобы увидеть, что она напечатает.

person Aaron Digulla    schedule 03.06.2011
comment
Запуск команды hg status ... сам по себе выдает число, которое соответствует размеру добавленных файлов, как и ожидалось. Тем не менее, спасибо, вы помогли мне понять, что существует проблема, если нет добавленных файлов (в этом случае он печатает размер файлов в текущем каталоге). - person Carcophan; 03.06.2011