如何使用 Git 设置 Adob​​e Premiere?

如何使用 Git 设置 Adob​​e Premiere?

我正在使用 Adob​​e Premiere Pro 2018 进行视频编辑。我想使用 git 进行设置,以便对项目文件进行版本控制。

项目文件 (.prproj) 是 XML 的 gzip。

当我执行 git diff 时,是否可以配置 git 来比较项目文件内的 XML?

答案1

是的,您可以使用“textconv”过滤器,git 将使用它在显示时将文件转换为可区分的格式。请参阅:

简而言之,首先需要通过 git config(始终未跟踪)定义过滤器:

git config --global diff.gzipped.textconv "gunzip -c"

[diff "gzipped"]
    textconv = gunzip -c

然后通过 .gitattributes (已跟踪) 或 .git/info/attributes (未跟踪) 将其分配给 .prproj 文件:

*.prproj diff textconv=gzipped

diff需要该属性来完全启用差异,即告诉 git 该文件应该被视为文本而不是二进制。)

您还可以使用此方法制作更高级的转换器,例如,额外规范化和美化 XML(如果程序将所有内容写为一行长的内容)。


但是,textconv 过滤器仅用于显示。在 Git 中存储压缩文件仍存在一个缺点,即版本之间没有相似性,因此如果文件也很大,则会导致存储库随着每个版本而相应增大。(相比之下,文本文件在版本之间通常非常相似,因此即使是较长的提交历史记录也可以非常有效地进行增量压缩。)

您可能希望使用“smudge/clean”过滤器,其工作方式类似,但结果是永久性的 - 也就是说,git 在内部存储“已清理”版本,并在签出时将其转换回(smudges)。配置如下所示:

[filter "gzipped"]
    clean = gunzip -c
    smudge = gzip -c

属性文件如下所示:

*.prproj filter=gzipped

这让您能够利用 Git 的增量压缩,但也有缺点,即每个克隆都必须在其 git 配置中配置过滤器(无法自动分发)。如果有人克隆存储库而尚未配置过滤器,则他们需要git checkout --renormalize

再次,您可以扩展“清理”过滤器来美化 XML(xml_pp)并使其以视觉上更美观的方式呈现差异。

相关内容