Всем привет. Очень часто мы сталкиваемся с необходимостью обновлять P3D. При каждой новой версии нам приходится как минимум устанавливать свежий клиент. От версии к версии меняется структура файла Prepar3d.cfg (какие-то параметры появляются, какие-то уходят), причем какие-то параметры мы часто изменяем сами (в т.ч. через GUI настройки) и не хотели бы терять их при чистке P3D или переустановке винды. Плюс ко всему, часто бывает так, что по какой-то непонятной причине P3D начинает вести себя как-то не так. В всех этих случаях хотелось бы иметь возможность отслеживать изменения во всех конфигурационных файлах (prepar3d.cfg, scenery.cfg, terrain.cfg), чтобы, так скажем, не терять situation awareness над своими конфигами. Вот такую инфу можно получить по файлу Prepar3d.cfg при обновлении клиента P3D, если папку %APPDATA%RoamingLockheed MartinPrepar3D v5 добавить в локальный репозиторий.

Теперь гайд, как это сделать.
1. Устанавливаем tortoiseHG https://tortoisehg.bitbucket.io/
2. запускаем tortoiseHG, заходим в «file — new repository», выбираем папку (ctrl+V или browse). расположение основных конфигов (под каждую папку создаем свой репозиторий) :
— prepar3d.cfg: %APPDATA%RoamingLockheed MartinPrepar3D v5
— terrain.cfg, scenery.cfg: %PROGRAMDATA%Lockheed MartinPrepar3D v5
для примера я создаю тестовый репозиторий в папке C:UsersromanDesktoptest, в котором у меня лежит всего один файл copy_web_extensions.bat
3. теперь мы готовы сделать первый коммит. выделяем все файлы, которые хотим отслеживать (выделим всё), указываем комментарий и нажимаем commit
4. пробуем поменять что-то в отслеживаемом файле и посмотреть, как это выглядит в tortoiseHG. чтобы зафиксировать изменения, делаем очередной коммит (в коммит попадают только те файлы, которые вы отметили флагом)
5. теперь откатываем изменения. выделяем предыдущий коммит, жмем ПКМ и выбираем Update. файл откатится до нужного состояния
6. можем посмотреть историю по файлу. сделаем еще один коммит для наглядности:
7. теперь выберем другой режим отображения файлов — «отображать все файлы» (в данном случае необязательно, но в будущем у вас может не быть нужного файла в данном окне, т.к. окно может отображать либо все файлы, либо только измененные файлы). заходим в «file history/annotate» и видим все отслеживаемые изменения данного файла:
Edited by aiRoNe
Почему не git?
И насколько хорошо работает вот это?
хотите гит — юзайте гит. а по поводу органайзера я не знаю, что вам сказать, я им не пользуюсь.
репозиторий можно выгрузить в public. например, для этого вполне подойдет бесплатный sourceForge.
1. создаем репозиторий в sourceforge
2. копируем информацию для .hgrc (для ssh скорее всего должен быть установлен ssh-клиент по типу putty; если у вас нет — выбирайте https)
файл .hgrc находится в папке .hg вашего репозитория
3. после того, как добавили path в .hgrc, нажимаете «push outgoing changes to» (в подсказке высветится адрес удаленного репозитория, который вы добавили в pathsdefault файла .hgrc), нажимаем «yes», вводим пароль — и ваш репозиторий выгрузится в public, после чего его можно будет склонировать откуда угодно и когда угодно, но только не сейчас, т.к. sourceforge в данный момент выдает ошибку 500 при попытке clone :(((
вот так выглядит наш репозиторий в веб-интерфейсе sourceforge:
Edited by aiRoNe
вот так выглядит папка репозитория для fslabs. очень удобно отслеживать изменения между обновлениями. переключаться между версиями можно в один клик (через update). например, обновился до v126 и что-то пошло не так — встал через update на коммит предыдущей версии и проверил, все ли в порядке, т.к. все файлы вернулись к тому состоянию, которое тобой уже было облетано.
также при обновлении можно спокойно вернуть на место изменения, которые были затерты файлами из стандартной поставки (например, модифицированные текстуры кокпита) — когда вы коммитите очередные изменения, вы можете коммитить только те файлы, которые должны обновиться. не ставим флаги на тех файлах, которые не надо затирать, и они не попадают в коммит. после коммита выделяем их, находясь в режиме в working copy (вкладка commit), дале ПКМ и «revert…» — изменения сбросятся
Edited by aiRoNe
не могу понять, как использовать клонирование по https. но я понял, как склонировать репу по ssh. для этого нужно сгенерировать пару ключей и сохранить public key в account setttings — ssh settings на сайте.
для того, чтобы сгенерировать ключ (да и вообще, чтобы работал ssh), я установил putty. ключ я сгенерировал по инструкции c sourceforge (https://p.sf.net/sourceforge/sshkey). сначала генерируем пару ключей через puttygen: выбираем тип Ed25519, нажимаем Generate, создаем мышкой рандомность. далее в comment указываем USERNAME@shell.sourceforge.net (USERNAME — ваш логин на sourceforge).
далее public key отправляем на сайт sourceforge в ssh settings.
после этого заходим в tortoiseHG, заходим в file — clone, указываем адрес ssh в source (адрес начинается с ssh://, т.е. hg clone в этом поле tortoiseHG — лишнее) и нажимаем clone. вводим пароль и репозиторий склонирован (он появится в вашем workbench со всей историей изменения). представьте, что вы произвели этот маневр после переустановки винды. важное замечание: security key на сайте обновится не сразу.
довольно сложный гайд получился, всем спасибо.
Edited by aiRoNe
Тут главное — добиться чтобы такого не происходило.