Вот однострочник Unix, который будет удалять .pyc файлы каждый раз, когда вы запускаете hg update
.
Добавьте это в файл hgrc:
[hooks]
preupdate.cleanpyc = hg status --no-status --removed --deleted --include "**.py" --rev .:$HG_PARENT1 --print0 | xargs -0 -I '{}' rm -f '{}c'
Он запускается непосредственно перед обновлением и получает все файлы .py, которые будут удалены или удалены при выполнении обновления, а затем удаляет соответствующие файлы .pyc.
Вот краткое описание того, как это работает:
hg status --no-status --removed --deleted --include "**.py" --rev .:$HG_PARENT1
При этом удаляются все файлы (например, hg forget
) или удаляются (hg rm
, hg mv
и т. Д.) Между текущей версией .
и пунктом назначения ($HG_PARENT
). Вы можете добавить --subrepos
, чтобы также получить все изменения в под-репозиториях, если вы используете эту функцию.
xargs -0 -I '{}' rm -f '{}c'
Это просто добавляет 'c' в конец каждого имени файла, возвращаемого из hg status
, и пытается его удалить. Флаг -f
для rm
гарантирует отсутствие ошибок, если файл .pyc не существует.
Обратите внимание, что mercurial автоматически удаляет пустые каталоги после обновления, но потерянные файлы .pyc часто приводят к тому, что каталоги остаются. Поскольку это выполняется перед обновлением, оно гарантирует, что пустые каталоги будут правильно удалены.