0

I'm looking for some advice on a Git Branching strategy.

The CAD software I use, ArchiCAD, has a standard library of objects. There as some minor modifications to these libraries I make to suit our office and I would like to track these changes in git. I can able to decompile the binary objects of these libraries to xml files, so then I can to version the modification to these files git.

However when a new version of the software comes out, an updated version of the library is released with some fixes, improvements, new objects that I want to be able to utilise.
I also want to be able to merge the modifications I made on the previous version, into the new version.

I'm not really sure on how the git branching strategy should work. I'm thinking 3 branches:

  • Original Source - This would contain the object library source and get updated after each new release
  • Release - This would get the Original source branch merged in upon a new ArchiCAD release and my modifications manually diffed to ensure compatibility.
  • Feature - Testing of modifications to the standard library.

The kicker is, each of the filenames that come with each ArchiCAD version are prefixed with the relevant version number, eg these two files are identical for all intents and purposes except for the file name and the version number within an xml node.

  • ARCHICAD Library 25\Object Library 25\1. BASIC LIBRARY 25\1.1 Furnishing 25\Appliances 25\Cooktop Gas 25.xml
  • ARCHICAD Library 26\Object Library 26\1. BASIC LIBRARY 26\1.1 Furnishing 26\Appliances 26\Cooktop Gas 26.xml

Some thoughts:

  • Should I strip out the version number in the file and folder names, create a script to run a bulk git mv command or is there a way some for of file pattern matching in git?
  • Should I also include the compiled binary library objects (.gsm files) within the git tracking.
  • I also need to maintain a few of version of the libraries at a time, ie ArchiCAD 25 & ArchiCAD 26 libraries are both actively used within the office, and naturally there is no forward compatibility with the compiled binary objects (ArchiCAD 25 cannot read an object compiled for ArchiCAD 26).

Thanks.

0 Answers0