Мне нужен инструмент, который может предоставить мне добавочную историю файлов (для текстовых исходных файлов). Я использую контроль версий, но хотел бы больше истории.
Эта история должна быть только временной и охватывать промежуток между фиксациями. Sublime уже позволяет мне сравнивать содержимое редактора с тем, что сохранено. Поэтому я хотел бы получить запись об изменении для каждого сохранения.
Многие IDE имеют эту функцию. Например , локальная история IntelliJ . Однако я хотел бы сделать это независимо от IDE или текстового редактора. Мне нужен специальный инструмент, который может работать в Linux.
Один из подходов — использовать rsync и периодически делать резервные копии. Есть даже такие инструменты, как tym . Но это затруднило бы поиск по списку изменений. Я хотел бы что-то, что имеет историю стиля Git и может использовать интерфейс стиля Meld для изменения изменений.
Способ автоматического хранения версий файлов независимо от приложения находится на уровне файловой системы. Для этого есть файловая система FUSE : copyfs . Copyfs обеспечивает просмотр существующего дерева каталогов (хранящегося в выбранной вами файловой системе), в котором доступны все прошлые версии каждого файла. Открытие файлов обычно дает последнюю версию; инструмент командной строки copyfs-fversion
позволяет получить доступ к прошлым версиям.
Чтобы сравнить прошлую версию с текущей, запустите, чтобы заблокировать старую версию, сделайте ее копию, затем запустите, чтобы вернуться к последней версии. Также есть по крайней мере одна исправленная версия, fuse-copyfs , которая расширяется возможностью сравнения версий (среди прочего).copyfs-fversion -l VERSION-NUMBER FILE
copy-fversion -r *FILE*
copyfs-fversion
-d
В Copyfs нет способа очистить старые версии.
Альтернативы (также основанные на FUSE) упоминаются в Linux File Versioning? на Unix и Linux .
Вы можете использовать git локально, без сервера, для отслеживания истории. Если на вашем компьютере установлен git, введите git init
команду из каталога, чтобы инициализировать репозиторий git в существующем каталоге. Теперь добавьте выбор ваших файлов с помощью команды добавления, например: git add *.py
. Зафиксируйте текущую версию, скажем, git commit -m 'initial version'
и продолжайте работать с файлами. Запустите команду фиксации на желаемых этапах.
Вы можете использовать любой пользовательский интерфейс Git для изучения этого локального репозитория и просмотра истории файлов с помощью совместимых инструментов.
==Дополнительная информация об автоматизации ниже по запросу Анджело==
Действие git commit можно автоматизировать при сохранении файлов с помощью сценариев и возможностей операционной системы или дополнительного программного обеспечения, но, вероятно, это будет излишним. Но, просто для изучения варианта,
iNotify
можно использовать для автоматического запуска сценария при запуске системы, чтобы отслеживать изменения в папках в указанном списке и запускать команду git commit при возникновении изменений.
Анджело Фукс
Теди Канджиратинкал