#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 ...
команды само по себе выдает число, которое соответствует размеру добавленных файлов, как и ожидалось. Тем не менее, спасибо, вы помогли мне понять, что возникает проблема, если нет добавленных файлов (в этом случае выводится размер файлов в текущем каталоге).