Почему мой хук предварительной фиксации mercurial не работает в MinGW

#version-control #mercurial #mingw #mercurial-hook

#контроль версий #mercurial #mingw #перехват mercurial

Вопрос:

У меня есть хук предварительной фиксации в моем файле .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'
  

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

Я был бы весьма признателен за любую помощь или указания.

Ответ №1:

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

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

Комментарии:

1. Выполнение hg status ... команды само по себе выдает число, которое соответствует размеру добавленных файлов, как и ожидалось. Тем не менее, спасибо, вы помогли мне понять, что возникает проблема, если нет добавленных файлов (в этом случае выводится размер файлов в текущем каталоге).