如何让git透明地将tar档案视为目录?

时间:2016-05-03 09:47:53

标签: git archive tar

我希望版本文件,以便与存储库相关的功能,例如(甚至是复杂的冲突解决方案)文件似乎是一个目录,其包含的文件定期提交给git,但在结帐时,应该再次获得有效的tar存档。这在某种程度上是可以实现的吗?

我首先考虑使用smudge/clean filters,但它们只允许您修改存储的git blob的文件内容。

所以,现在我正在考虑使用hookspre-commitpost-checkout,如建议here,尽管我希望有pre-add过滤器以及...)它可以简单地在tar文件和目录结构之间进行转换,或者为了正确维护元数据,直接用git objects进行管道(或者作为折衷方案,使用中间目录,但override the metadata)。但是,在我开始这项潜在的疯狂工作之前,是否存在

  • 实现这一目标的更好方法,或
  • 一个已经存在的解决方案?

这与Can git treat zip files as directories and files inside the zip as blobs?密切相关,虽然我希望由于文件只是文件和元数据的连接而没有压缩,因此对它们进行处理可能会更容易。

1 个答案:

答案 0 :(得分:0)

我会建议其中一条评论中提到的内容,即使用textconv

您可以使用cat轻松调用--textconv的{​​{1}}选项,而不是手动使用git diff

对于合并,您可以使用renormalize选项,或将其配置为merge.renormalize的默认设置。

我从未真正测试过这个,但我相信它会起作用。