Is there a guide to tracking a HISE project with git?
-
Is there a guide to tracking a HISE project with git?
I'm comfortable with git but just want to know if there are any files/folders that you would ignore, or any other git-specific setup that is recommended?
-
@dannytaurus Here's my gitignore
https://codeberg.org/LibreWave/Sordina/src/branch/main/.gitignore
-
@d-healey said in Is there a guide to tracking a HISE project with git?:
@dannytaurus Here's my gitignore
https://codeberg.org/LibreWave/Sordina/src/branch/main/.gitignore
Thanks. Wow, that a lot of ignored folders!
Why do you ignore Presets? They're the .hip files, aren't they? Seems like something you would want to track. Is it because they're archives and not human-readable?
-
@dannytaurus Yeah they aren't trackable by git, and I'm only using them for little test projects within my larger project. The main project file is always xml.
Actually I don't know why I'm ignoring the SampleMaps folder, you probably want to track that. Sordina is an fx plugin so no sample maps, but seems weird that I ignored it...
-
@d-healey Do you remove folders with no content from your project folder? Or do you leave them there and just have git not track them because they're empty?
Is it generally advisable to leave the folder structure of a HISE project as-is, even though many folders are empty?
Or is it safe to delete empty folders? If so, does HISE create the folders when it needs them?
-
@d-healey said in Is there a guide to tracking a HISE project with git?:
@dannytaurus Here's my gitignore
https://codeberg.org/LibreWave/Sordina/src/branch/main/.gitignore
I found this, which is very useful to ignore the Binaries but keep the JUCER file:
# Ignore all files and folders in the Binaries directory Binaries/* # Do not ignore the AutogeneratedProject.jucer file !Binaries/AutogeneratedProject.jucer # Ignore everything within subdirectories of Binaries (necessary for the exception rule to work properly) Binaries/*/*
The three lines need to be present for the "script" to work
Now you don't have to set your JUCER again and again and again! -
@ustk said in Is there a guide to tracking a HISE project with git?:
Now you don't have to set your JUCER again and again and again!
This is created/overwritten every time you export from HISE.
@dannytaurus said in Is there a guide to tracking a HISE project with git?:
Do you remove folders with no content from your project folder?
Git doesn't track directories, it only tracks files, so you don't need to do anything, unless you want to track an empty folder. https://superuser.com/questions/1472515/does-git-delete-empty-folders
@dannytaurus said in Is there a guide to tracking a HISE project with git?:
does HISE create the folders when it needs them
Yes
-
@d-healey said in Is there a guide to tracking a HISE project with git?:
This is created/overwritten every time you export from HISE.
Of course it is, but now with a simple git click (or command) you can just discard the modified bits.
I have a project with tons of flags and settings and this is game changerAnother solution is to open the jucer before exporting, so the jucer asks if you want to load the new version from disk or discard, which is very useful. But you forget that once and you're good for setting the jucer again. With git, it never happens anymore
-
@ustk said in Is there a guide to tracking a HISE project with git?:
I have a project with tons of flags and settings and this is game changer
You should be able to set everything within HISE preferences. What are you missing, perhaps we can add it?
-
@d-healey Yeah I agree, but my tests showed that all flags weren't reliable when set within Hise.
I think
FORCE_INPUT_CHANNELS
was not workingJUCE_USE_BETTER_MACHINE_IDS=1 DONT_CREATE_EXPANSIONS_FOLDER=1 USE_SCRIPT_COPY_PROTECTION=1 FORCE_INPUT_CHANNELS=1 HISE_DEACTIVATE_OVERLAY=1 ENABLE_ALL_PEAK_METERS=1 USE_IPP=0 CONFIRM_PRESET_OVERWRITE=0 HISE_USE_OPENGL_FOR_PLUGIN=0
Also I have some hardened runtimes, microphone flags, microphone access, access text, etc...
This is something that is still not clear in my mind as where I should set them all. So I kept setting them manually (until I could keep the jucer with Git)