Search code examples
gitmercurial

Using git with Logic Pro


tl;dr: Will git or Mercurial have problems versioning a project with a few small files that change frequently and many large files that can change but rarely do?


I write music using Logic Pro, and I'm considering using version control software with my projects from now on. I found a SE question that talks about using Mercurial with Logic (https://video.stackexchange.com/questions/5148), but I would like to use git more (because I need to learn it for my job anyway, so the extra practice would be nice). Would git be an effective tool for versioning Logic projects, or will I run into problems that Mercurial won't have?

Here's what a Logic project directory looks like:

  • The file that changes the most is a project file that's a few kilobytes in size, changes frequently, and is non-human readable (I think).
  • There are several large, uncompressed audio files that rarely change, but do change occasionally. They're usually 1 MB to 10 MB in size.
  • Other audio files of any size or format can be included as assets. They also might change.
  • Occasionally, executables that serve as synthesizer or instrument plug-ins will be included. They probably will never change, but they can be added and removed.
  • There are several supporting files that are similar to the main project file. The question I found earlier suggests having the VCS ignore some of them.

Solution

  • Git will do this just as well as Mercurial.

    I do not know Logic Pro, but from what you are saying about the file formats, the delta storage might not work well, and in the worst case git will basically have to store each version of each file. You can do the math yourself to estimate the storage requirements then, and decide if that is ok for you. (However, when changing only some parts of uncompressed audio files, you'll probably get some savings...)

    Clearly, you won't get any usable diffs and merges, which may be problematic once you collaborate with others, but I don't know if this is a concern here.