Jump to content

Workflow to store missions in git ?


bswift

Recommended Posts

So .miz files are basically compressed archives.

 

Is there a setting somewhere to have the unarchived structure remain? I'm not sure if storing these in git makes sense - if a buddy and I make mods to these will the diffs make any sense? Lua files seem like it'd be easy to mangle it.

 

Is the best option to just.... save file copies with a different name?

Link to comment
Share on other sites

Is the best option to just.... save file copies with a different name?

 

I keep my saved games\dcs\missions folder on the cloud, where I have automatic versioning (I use MS OneDrive, but Dropbox and Google Drive are similar)

 

oPTbvOh.jpg

 

For work: iMac mid-2010 of 27" - Core i7 870 - 6 GB DDR3 1333 MHz - ATI HD5670 - SSD 256 GB - HDD 2 TB - macOS High Sierra

For Gaming: 34" Monitor - Ryzen 3600X - 32 GB DDR4 2400 - nVidia GTX1070ti - SSD 1.25 TB - HDD 10 TB - Win10 Pro - TM HOTAS Cougar - Oculus Rift CV1

Mobile: iPad Pro 12.9" of 256 GB

Link to comment
Share on other sites

Zip - VEAF :pilotfly:

 

If you want to learn, talk and fly with french-speaking friends, the Virtual European Air Force is here for you ! Meet us on our Discord and our forum

If you're a mission creator, you may want to check the VEAF Mission Creation Tools (and its GitHub repository) a set of open-source scripts and tools that make creating a dynamic mission a breeze !

Link to comment
Share on other sites

So .miz files are basically compressed archives.

 

Is there a setting somewhere to have the unarchived structure remain? I'm not sure if storing these in git makes sense - if a buddy and I make mods to these will the diffs make any sense? Lua files seem like it'd be easy to mangle it.

 

Is the best option to just.... save file copies with a different name?

 

 

Depends on the storage mechanism. For Google Drive, it synched and would retain previous versions without decompressing, but only make available these fo rhte account owner. However I see most serious people use Git and assemble the mission from its components manually. Seems a bit complex, I do not use that mechanism, but plenty do.

___________________________________________________________________________

SIMPLE SCENERY SAVING * SIMPLE GROUP SAVING * SIMPLE STATIC SAVING *

Link to comment
Share on other sites

Actually, the problem with cooperative editing is that, each time you save the mission in the DCS editor, the lua files inside the .miz get shuffled (lines change their order, ids change, etc.)

That's why we introduced a normalizer in our workflow.

Then, once the mission is normalized, you can save it as a different name, copy it to a cloud, backup it, or store it on a version control system such as git ; name your poison ;)

Zip - VEAF :pilotfly:

 

If you want to learn, talk and fly with french-speaking friends, the Virtual European Air Force is here for you ! Meet us on our Discord and our forum

If you're a mission creator, you may want to check the VEAF Mission Creation Tools (and its GitHub repository) a set of open-source scripts and tools that make creating a dynamic mission a breeze !

Link to comment
Share on other sites

Actually, the problem with cooperative editing is that, each time you save the mission in the DCS editor, the lua files inside the .miz get shuffled (lines change their order, ids change, etc.)

That's why we introduced a normalizer in our workflow.

Then, once the mission is normalized, you can save it as a different name, copy it to a cloud, backup it, or store it on a version control system such as git ; name your poison ;)

Out of interest, which ones get changed? The mission file is an indexed table, not something that generally changes. Something else?

___________________________________________________________________________

SIMPLE SCENERY SAVING * SIMPLE GROUP SAVING * SIMPLE STATIC SAVING *

Link to comment
Share on other sites

Actually, the mission file is one of the files that gets modified when saving in DCS editor. The data in the table is not always sorted in the same way, therefore it's difficult to diff correctly from one update to the next.

 

 

Our normalizer sorts the data arbitrarily before saving it in the lua file.

Zip - VEAF :pilotfly:

 

If you want to learn, talk and fly with french-speaking friends, the Virtual European Air Force is here for you ! Meet us on our Discord and our forum

If you're a mission creator, you may want to check the VEAF Mission Creation Tools (and its GitHub repository) a set of open-source scripts and tools that make creating a dynamic mission a breeze !

Link to comment
Share on other sites

just out of interest what is a normalizer ? how does it work?

Targs,

 

 

 

GTX 1080ti, Asus Hero XI, Intel 9900KF @4.2MHz, 32g DDR4@3200Mhz, 4x 1Tb SSD 1x 400g m.2mvme(boot), 28" Samsung 4k, Saitek X-56 Throttle/Warthog Stick and Saitek Pro Flight Pedals.

 

 

Moduls

 

 

All of the NATO jets, and all the choppers..

DEDi MP [62AW] The Blackbirds Brisbane

 

 

Link to comment
Share on other sites

Hi Targanon,

 

The mission file (.miz) written by DCS mission editor is actually a ZIP archive containing lua files (and more).

The main lua file is aptly named mission and contains a huge lua table describing all the objects in the mission.

 

Unfortunately, LUA tables have no inherent order; therefore each time even a small modification happens in the editor, the mission file is shuffled randomly, making it almost impossible to see what was actually changed in the mission.

 

This process of generating a report showing the difference between two versions of a file is very important in version control. This shuffling makes merging work from different sources impossible.

 

We at VEAF have developped a set of tools, including a script that sorts the lua table in the mission file according to arbitrary rules.

 

This way, when something is changed in the editor, the (sorted) file can be compared with the (sorted) previous version and it is easy to see what has changed.

 

You can read more about this here.

Zip - VEAF :pilotfly:

 

If you want to learn, talk and fly with french-speaking friends, the Virtual European Air Force is here for you ! Meet us on our Discord and our forum

If you're a mission creator, you may want to check the VEAF Mission Creation Tools (and its GitHub repository) a set of open-source scripts and tools that make creating a dynamic mission a breeze !

Link to comment
Share on other sites

Maybe there'll be a brand new mission file format with the new Mission Editor update.

 

Also I'm not fond of extension-less filenames :P Even tho it's just a label, I went "yuck" when I first saw that on linux, never liked it ever since.

Modules: A-10C I/II, F/A-18C, Mig-21Bis, M-2000C, AJS-37, Spitfire LF Mk. IX, P-47, FC3, SC, CA, WW2AP, CE2. Terrains: NTTR, Normandy, Persian Gulf, Syria

 

Link to comment
Share on other sites

There's a lot of value in providing concise but descriptive comments every time you do a source control commit/check-in.

...And of course committing often!

Concerned about committing work-in-progress, breaking changes? That's why you should be working on a separate branch, so as not to affect the main trunk until your 'feature' is complete and tested.

 

It becomes a lot less necessary to analyse file deltas/diffs if the commit history contains meaningful comments.

 

Parallel development by several people on the same file entirely relies upon the ability of the source control software being able to 'merge' the changes.

The 'miz' files are binary files and as such cannot be merged.

No merging means no parallel development on that file.

 

Of course a huge amount of effort (arguably the majority) is likely to be in your custom LUA script(s) rather than the mission file itself.

Being plain text files these are perfect candidates for parallel development.

 

If not already, store your LUA scripts as separate entities within source control, rather than just the 'binary' pre-compiled MIZ file containing the entire project bundled up together.

 

 

UPDATE: oh and if you and your buddy really do need to both be editing the MIZ file, you'll have to come to some arrangement regarding 'checking-out'/locking/reserving the file so that only one of you ever has permission/ability to be touching it at any given time. Only once the edit is complete can it be opened up again.


Edited by MeerCaT
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...