Не боись... Как говорил Крош из любимого мультика моих детей ("Смешерики"): "Глаза бояться, а руки делают..."
1) Место на диске. Я уже писал. Не важно Диск на 150 Гб или 2 Тб любой нормальный пользователь всё равно экономит место на диске, а реализация алгоритма восстановления позволит удалить копию папки "Data" (без копии мне Skyrim приходилось переустанавливать каждые две недели), так-что еще и экономия места получится.
2) Запоминать не в любом случае. Если плагин ничего не заменяет, то и запоминать ни чего не надо. Зачем мусор в журнале и лишние архивы. Сохранять только копии заменяемых файлов. В плагине может быть сотня файлов, а заменяемых 2-3 - только их и сохранять иначе и 2Тб не хватит.
3) Архивы называть по ID установщика.
4) В "Журнале замен" делать записи: "ID" - "Дата установки" - "Время установки" - "Имя перезаписанного файла".
5) Еще раз внимательно просмотри алгоритм, поменял нумерацию, чтобы стало понятней:
01) Skyrim - Файл_0
02) Инсталляция Мода_1 - заменяет Файл_0 на Файл_1. Файл_0 - в Архив_ID=1. Делаем запись в журнале ID=1
03) Инсталляция Мода_2 - заменяет Файл_1 на Файл_2. Файл_1 - в Архив_ID=2. Делаем запись в журнале ID=2
04) Деинсталляция Мода_1
05) Остается Файл_2 так как записан позже. в Архиве_ID=2 заменяем Файл_1 на Файл_0 (из Архива_ID=1). Удаляем Архив_ID=1. Удаляем запись из журнала ID=1
06) Инсталляция Мода_1
07) Заменяет Файл_2 на Файл_1. Файл_2 - в Архив_ID=1. Делаем запись в журнале ID=1
08) Деинсталляция Мода_2
09) Остается Файл_1 так как записан позже. в Архиве_ID=1 заменяем Файл_2 на Файл_0 (из Архива_ID=2). Удаляем Архив_ID=2. Удаляем запись из журнала ID=2
10) Деинсталляция Мода 1
11) Заменяет Файл_1 на Файл_0 (из Архива_ID=1). Удаляем Архив_ID=1. Удаляем запись из журнала ID=1
12) В ИТОГЕ: Активный файл - Файл_0. Архивов нет. Записей в "Журнале замен" нет.
"Журнал замен" лучше делать не текстовым файлом, а базой данных и индексировать по полям "ID" и "Имя перезаписанного файла" - тогда поиск будет быстрым, но это уже на твое усмотрение.
Сообщение отредактировал Lord-Vadim: 06 августа 2013 - 22:48