# Using git for DAW project files



## d.healey (Apr 14, 2018)

I recently realized that Reaper project files can be opened in a text editor and are a kind of XML format. This lead me to the idea that I should be able to use the git version control system to keep track of my Reaper projects.

So I've started using it with a recent project and so far it's working very well. I create a new branch for each cue, or in some cases several branches for different versions of a cue, and once I'm happy with the cue I merge it back into the master branch. This keeps an entire revision history so I'm able to jump back to previous versions really easily. I'm currently only tracking the project file (RPP) and ignoring media files, I work mainly with MIDI so this is quite convenient.

Is anyone else using git or a similar system with their DAW projects?


----------



## vicontrolu (Apr 14, 2018)

Whats the benefit of using this vs the traditional "Cue_x_01_soft" "Cue_x_02_harder+brass" naming structure under one or different folders? Cant seem to get why you´d prefer a version control system.


----------



## tack (Apr 14, 2018)

I get versioning for free on my project files thanks to cloud storage. (I self-host with Nextcloud.)

I think the real benefit of using git for this might be in collaboration, where you could cherry pick changes on branches back to master. But even though the .RPP files are textual, they're not exactly obvious like it is with code. I have to think that being able to merge specific changes back to master would require some serious commit hygiene, ensuring that only the right line changes are included in the commit (a la git add -p)


----------



## d.healey (Apr 14, 2018)

tack said:


> But even though the .RPP files are textual, they're not exactly obvious like it is with code. I have to think that being able to merge specific changes back to master would require some serious commit hygiene, ensuring that only the right line changes are included in the commit (a la git add -p)


Yes I'm still very much experimenting with this. Currently I'm just using it as if I was making a new version of a project file rather than saving more micro changes as I do with a coding project. I'd not heard of nextcloud, but have just had a quick look on wiki, I like that it's FOSS. My problem with the cloud is always that "there is no cloud" just other people's computers, but self hosting with this system seems much more appealing.



vicontrolu said:


> Whats the benefit of using this vs the traditional "Cue_x_01_soft" "Cue_x_02_harder+brass" naming structure under one or different folders? Cant seem to get why you´d prefer a version control system.


There are two main benefits for me. The first is with git I don't have to create new files, I just create a new branch and open (what appears to be) the same file as I have been working on, this means I don't ever confuse myself by loading in an older version and scratching my head wondering where my work has gone  I could also create hundreds of different versions and wouldn't need to search through them to find the right one, I just switch to the branch in git and open the one project file. I don't split my cues into separate files so this works nicely for me, but even if I did split them then I'd only need one file per cue no matter how many versions of that cue I write.

The second benefit for me is the detailed version history you can create with git, each commit has comments with it so I can see really quickly what I changed in the different versions.


----------



## JEPA (Apr 14, 2018)

i understand you can't overwrite the source file, that is beneficial, instead of creating new files and losing tracking of each one and not knowing what were the changes made. Very interesting!!


----------



## JEPA (Apr 14, 2018)

but for audio would be a headache... you will have to keep a cloud of audio sources intact, and the time loading up loading down (when the files are huge like over 48kHz and 24bits) is not worth any more if you have a project with over 10 tracks (that is then usual).


----------



## JEPA (Apr 14, 2018)

but for studio automation it seems like a winner! recalling all gear at once


----------



## d.healey (Apr 14, 2018)

JEPA said:


> but for audio would be a headache... you will have to keep a cloud of audio sources intact, and the time loading up loading down (when the files are huge like over 48kHz and 24bits) is not worth any more if you have a project with over 10 tracks (that is then usual).


Well I'm not tracking the audio files, just the project file. The project file can reference any audio files so there is no need to make multiple copies of the audio, the project will just reference the correct files. The only issue would be if you had an audio file with a particular name referenced in the project and then it was overwritten by a new audio file, but I don't tend to do that so it wouldn't be so much of a problem for me. Even if it did happen the older version of the project would still open and load the new audio file but timings might be off etc. depending on what was different in the new file. I don't see this as a drawback though because in this situation you'd have to keep multiple copies of the audio anyway no matter how you were keeping a version history.


----------



## tack (Apr 14, 2018)

d.healey said:


> I'd not heard of nextcloud, but have just had a quick look on wiki, I like that it's FOSS. My problem with the cloud is always that "there is no cloud" just other people's computers, but self hosting with this system seems much more appealing.


I quite recommend it. It's been working nicely for me. Because it's all on my local network, I'm not fussed about the fact that every time I hit ctrl-s in Reaper I have a ~200MB project file get synced to my Nextcloud. It uses a https://docs.nextcloud.com/server/13/user_manual/files/version_control.html (tiered versioning) strategy, so you get good coverage across time without eating gobs of space. Also the mobile client is featureful enough for me. I have it automatically sync photos I take from my phone, as well as a couple key data folders. It's also convenient for sharing files with friends and family (with password protection if needed), and to provide a drop folder for people to send me stuff.

All standard stuff for e.g. Dropbox users of course. But I've always abstained from that, being generally distrustful of anything I don't control.


----------



## Dewdman42 (Apr 29, 2018)

I'm thinking about setting up NextCloud here, mainly so that I can work on audio project files and have them sync to some other machines. Then I could go to the other machine and open the same logic project later.. and I have a third machine that is used for nothing other then backing up to crash plan. Thanks for the suggestion!


----------

