Skip to content

spajic/mtimer

Repository files navigation

mtimer

git принципиально не сохраняет время изменения контролируемых файлов. В случае, если время изменения файла важно (например, для кэширования), mtimer поможет их восстановить.

mtimer позволяет сохранить mtime для файлов в указанной директории и потом восстановить сохранённые значения.

При восстановлении надо не присвоить изменённым файлам старый mtime. Для определения изменения файла сохраняется hash его содержимого (сейчас это md5). Если хэш файла изменился между store и apply, то его mtime не восстанавливается.

mtimer написан на go и работает быстро.

usage

Сохранить mtimes в файл mtimer.dat

mtimer --store --filespath=/path/to/files --timespath=/path/to_mtimer_dat --ignore=node_modules,tmp,.git

  • --store - режим сохранения mtimes в файл
  • --filespath - путь к директории, для файлов которой нужно сохранить mtimes
  • --timespath - путь к директории, куда сохранить файл mtimes.dat
  • --ignore - список поддиректорий, для которых mtimes сохранять не нужно

Восстановить mtimes из файла mtimer.dat

mtimer --apply --filespath=/path/to/files --timespath=/path/to_mtimer_dat

  • --apply - режим восстановления mtimes из файла
  • --filespath - путь к директории, для файлов которой нужно восстановить mtimes
  • --timespath - путь к директории, откуда взять файл mtimes.dat

Показать справку

mtimer --help

Показать версию

mtimer --version

comparison

Попробовал подобное решение на perl - https://github.com/danny0838/git-store-meta - но оно хранит информацию о файлах в гите, требует наличия git-репозитория для сбора метаданных и работает на порядок медленнее.

About

Restore mtimes of files managed by git

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages