9

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.
4

3 回答 3

4

Git大部分情况下都能正确处理 Logic Pro X 项目,但您需要注意以下几点:

  • 顶级包文件夹本身的扩展属性可能不会保留,因此您可能希望将项目保存为文件夹而不是包。

  • 您可能希望将Freeze FilesBounces*.nosync加到您的.gitignore.

  • 某些内部文件命名约定将导致无法从 Windows 系统签出项目。这对于在您自己的计算机上对您自己的项目进行版本控制不会有问题,但是如果您已将 Logic 项目签入作为更大事物(例如游戏)一部分的存储库,这可能会给其他人带来问题。

  • 如果您的存储库使用 LFS,最好注册*.aif并(可能)*.wav使用它,以及保存到 Logic 项目中的任何其他大型媒体类型。这将使检查新副本变得更加容易,尤其是从特别大的项目中(因为git非常大的包文件可能会出现问题)。

  • 如果您从多台计算机或分支编辑项目,您几乎肯定会在自动保存数据中出现合并冲突,因此您可能也希望.gitignore这样做。

另一方面,您通常根本不需要担心原始录音会发生变化;大多数 Logic 的音频编辑本质上是非破坏性的,只修改引用原始文件的元数据,而不是修改文件本身。我知道的唯一例外是适用于音频编辑器的“文件”选项卡的音频编辑功能(例如标准化、更改增益、反向、时间和音高机器等)。从“Track”和“Smart Tempo”选项卡应用的功能仅编辑元数据,不应导致 git 中发生大的差异。

于 2020-12-28T21:08:17.457 回答
3

Git 会像 Mercurial 一样做到这一点。

我不知道 Logic Pro,但从你所说的文件格式来看,增量存储可能无法正常工作,在最坏的情况下,git 基本上必须存储每个文件的每个版本。您可以自己进行数学计算以估计存储需求,然后决定这是否适合您。(但是,当只更改未压缩音频文件的某些部分时,您可能会节省一些...)

显然,您不会得到任何可用的差异和合并,一旦您与他人合作,这可能会出现问题,但我不知道这是否是一个问题。

于 2013-05-19T22:21:29.910 回答
0

我在 Logic 中使用https://splice.com/进行版本控制和远程协作项目。它在代码方面不如 GitHub 强大,但它直接与 Logic 集成,并在您保存副本时自动更新版本。它不处理合并,因此您必须与其他音乐家协调谁在何时进行编辑。如果出现任何问题,也很容易回到旧版本。

于 2021-01-01T00:15:54.980 回答