Это можно сделать так (пишу, т.к. сам уже продумывал недавно реализацию, но из-за несчастья в семье не удалось заняться скриптом, хорошо, что ты это делаешь):
1. Настроить в фоссиле программу для сравнения:
Код:
fossil set gdiff-command <Путь к исполняемому файлу WinMerge или аналога>
Либо через веб-интерфейс фоссила (fossil ui) в разделе конфигурации.
2. Получить информацию о версиях файла при помощи команды
Код:
fossil finfo -b <Путь к файлу>
Результат будет вида:
Код:
8cb3752461 2012-02-07 kuntasho Поддержка "макроса по
56fab5fed5 2012-02-05 kuntasho Добавлена установка г
adc414704b 2012-01-24 kuntasho Синхронизация с основ
977958ab5f 2012-01-24 kuntasho Скрипт "Авторский ком
3. Из полученного списка надо получить ИД предыдущей версии. Тут возможны 2 ситуации: (а) в сравниваемом файле есть незакоммиченные изменения. Значит предыдущей версией для файла будет самая верхняя в списке версий строчка. (б) сравниваемый файл закоммичен. Значит предыдущая версия - это вторая сверху в списке версий строчка.
Узнать, закоммичены ли изменения файла или нет, можно при помощи команды
Код:
fossil finfo -s <Путь к файлу>
Если он не менялся, то вывод будет следующим:
Код:
unchanged <ид самого последнего коммита>
В противном случае файл менялся или про него система ничего не знает (статус будет uncknown) и т.п.
4. Чтобы запустить сравнение надо запустить команду
Код:
fossil gdiff --from <ИД коммита версии, которую сравниваем> --to <ИД коммита версии, с которой сравниваем>
Если будут еще вопросы, спрашивай. Но предварительно рекомендую покопаться в справке по командам fossil (fossil help а затем fossil help <имя команды>). Ну или то же самое в веб-интерфейсе.