Skip to content

Lizerium/LizeriumFindChanges

Repository files navigation

🧩 Lizerium Find Changes 🧩

Lizerium Find Changes — консольный инструмент для сравнения двух версий файловой структуры, формирования списка изменений и подготовки готовой папки обновления.


Оглавление


Общее

Important

Цель проекта — автоматически определить разницу между двумя версиями файловой структуры и подготовить содержимое обновления.

Инструмент сравнивает:

  • папки
  • файлы
  • новые элементы
  • удалённые элементы
  • изменённые файлы
  • перемещённые / переиспользованные файлы

После анализа он может:

  • сформировать manifest.json
  • собрать папку обновления только из нужных файлов
  • отдельно извлечь файлы, отсутствующие в новой версии

Возможности

  • 📁 Сравнение двух директорий
  • 📄 Поиск новых, удалённых и изменённых файлов
  • 🔁 Определение файлов, которые были перенесены или повторно использованы
  • 🏗 Формирование готовой папки обновления
  • 📜 Генерация manifest.json
  • 🧩 Извлечение файлов, которые отсутствуют в новой версии
  • ⚡ Простая конфигурация через config.json

Технологии

  • C#
  • .NET
  • Console Application
  • System.Text.Json

Как это работает

Программа использует две директории:

  • Before — предыдущая версия
  • After — новая версия

На основе сравнения она определяет:

  • какие папки были добавлены
  • какие папки были удалены
  • какие файлы были изменены
  • какие файлы появились впервые
  • какие файлы были удалены
  • какие файлы совпадают по содержимому, но имеют другой путь (Retranslate)

После этого формируется:

  • manifest.json со списком изменений
  • папка обновления с нужной структурой файлов

Структура конфигурации

Программа использует файл:

config.json

Если его нет — он будет создан автоматически.

Пример config.json

{
	"Before": "C:\\Builds\\OldVersion",
	"After": "C:\\Builds\\NewVersion",
	"Version": "99.3.12",
	"IsMissingFilesMode": false
}

Параметры

  • Before — путь до предыдущей версии
  • After — путь до новой версии
  • Version — имя выходной папки обновления
  • IsMissingFilesMode — переключение режима работы

Режимы работы

1. Режим генерации обновления

Если:

"IsMissingFilesMode": false

то программа:

  1. Сравнивает Before и After
  2. Формирует manifest.json
  3. Создаёт папку обновления с именем из поля Version
  4. Копирует в неё только необходимые изменённые / новые / переиспользуемые файлы

Выход:

  • manifest.json
  • папка обновления, например:
99.3.12/

2. Режим извлечения отсутствующих файлов

Если:

"IsMissingFilesMode": true

то программа:

  1. Сравнивает Before и After
  2. Ищет файлы, которые были в старой версии, но отсутствуют в новой
  3. Копирует их в отдельную папку:
MISSING/

Этот режим полезен для:

  • анализа потерь файлов
  • проверки неполных сборок
  • восстановления содержимого
  • ручной инспекции изменений

Структура выходных данных

После запуска могут быть сформированы следующие данные:

manifest.json

Содержит список изменений между двумя версиями.

Примеры типов изменений:

  • Added
  • Deleted
  • Changed
  • Unchanged
  • Retranslate

Папка обновления

Например:

99.3.12/

Внутри неё будет лежать только то, что действительно должно быть доставлено как обновление.

Папка отсутствующих файлов

Если активирован режим извлечения отсутствующих файлов:

MISSING/

Пример сценария использования

Исходные данные

C:\Builds\Freelancer_99.3.11
C:\Builds\Freelancer_99.3.12

Конфиг

{
	"Before": "C:\\Builds\\Freelancer_99.3.11",
	"After": "C:\\Builds\\Freelancer_99.3.12",
	"Version": "99.3.12",
	"IsMissingFilesMode": false
}

Результат

После запуска будут получены:

manifest.json
99.3.12/

Эти данные можно использовать для дальнейшей упаковки и публикации обновления, например в экосистеме Lizerium Launcher.


Другое

Tip

Проект используется как часть пайплайна подготовки обновлений в экосистеме Lizerium.

Important

Для корректного результата рекомендуется сравнивать уже подготовленные и финальные сборки, а не промежуточные рабочие директории.


Author

Developed and maintained by Dvurechensky Part of the Lizerium ecosystem


About

Инструмент для сравнения двух версий файловой структуры и подготовки папки обновления.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages