Я сделал систему сборки для своего веб-приложения, это переписывает весь URL ресурса для включения числа пересмотра файла (для улучшения клиента, кэширующегося). На сегодняшний день я выполняю эту команду для каждого файла для получения числа пересмотра:
hg log --template '{rev}\n' path-to-file
Выполнение hg для каждого файла является действительно трудоемким. Существует ли быстрый способ перечислить все файлы в репозитории с последним числом пересмотра?
Это сработает, но, пожалуйста, прочтите мой комментарий выше о том, почему использование этого в любом месте вашего рабочего процесса, вероятно, является плохой идеей. В самом списке вы должны использовать хэш ревизии, а не номер, поскольку он не меняется при клонировании. Также это не очень эффективно, но, по крайней мере, это только два экземпляра процесса вместо одного для каждого файла:
hg grep --all '.' | perl -na -F: -e 'next unless ($F[2] eq "+"); print "$F[0] $F[1]\n" unless ($prev eq $F[0]); $prev = $F[0]'
Пример:
that 3
file 1
Кодирование такой команды на Python с помощью синтаксического анализа hg annotate или в качестве расширения Mercurial не должно быть слишком сложным. Следующее обсуждение ртутного списка рассылки кажется разумным решением, хотя я его не пробовал.