tl;dr:git 或 Mercurial 是否会在版本控制项目时遇到问题,其中包含一些经常更改的小文件和许多可以更改但很少更改的大文件?
我使用Logic Pro创作音乐,并且我正在考虑从现在开始在我的项目中使用版本控制软件。我发现了一个关于使用 Mercurial 和 Logic ( https://video.stackexchange.com/questions/5148 )的 SE 问题,但我想更多地使用 git(因为无论如何我都需要为我的工作学习它,所以额外的练习会很好)。git 会成为版本控制 Logic 项目的有效工具,还是会遇到 Mercurial 不会遇到的问题?
Logic 项目目录如下所示:
Git基本上可以正确处理 Logic Pro X 项目,但您需要注意以下几点:
顶级包文件夹本身的扩展属性可能不会被保留,因此您可能希望将项目保存为文件夹而不是包。
您可能需要将Freeze Files, Bounces, 和*.nosync添加到您的.gitignore.
某些内部文件命名约定将导致无法从 Windows 系统检出项目。这对于在您自己的计算机上对您自己的项目进行版本控制不会有问题,但如果您已将 Logic 项目签入作为较大事物(例如游戏)一部分的存储库,则这可能会给其他人带来问题。
如果您的存储库使用 LFS,那么最好注册*.aif并(可能)*.wav使用它,以及保存到 Logic 项目中的任何其他大型媒体类型。这将使签出新副本变得更加容易,特别是对于特别大的项目(因为git非常大的包文件可能会出现问题)。
如果您从多台计算机或分支编辑项目,几乎肯定会在自动保存数据中存在合并冲突,因此您可能也需要这样做.gitignore。
另一方面,您通常不需要担心原始录音会发生变化;Logic 的大多数音频编辑本质上都是非破坏性的,并且仅修改引用原始文件的元数据,而不是修改文件本身。据我所知,唯一的例外是音频编辑器“文件”选项卡上应用的音频编辑功能(例如标准化、更改增益、反向、时间和音调机等)。从“Track”和“Smart Tempo”选项卡应用的功能仅编辑元数据,不应导致 git 中发生较大差异。
Git 和 Mercurial 一样可以做到这一点。
我不了解 Logic Pro,但从你所说的文件格式来看,增量存储可能无法正常工作,在最坏的情况下,git 基本上必须存储每个文件的每个版本。您可以自己计算一下来估计存储需求,并决定这是否适合您。(但是,当仅更改未压缩音频文件的某些部分时,您可能会节省一些费用......)
显然,您不会获得任何可用的差异和合并,一旦您与其他人合作,这可能会出现问题,但我不知道这是否是一个问题。