我希望git版本tar文件,以便与存储库相关的功能,例如git-diff(甚至是复杂的git-merge冲突解决方案)文件似乎是一个目录,其包含的文件定期提交给git,但在结帐时,应该再次获得有效的tar
存档。这在某种程度上是可以实现的吗?
我首先考虑使用smudge/clean filters,但它们只允许您修改存储的git blob的文件内容。
所以,现在我正在考虑使用hooks(pre-commit
和post-checkout
,如建议here,尽管我希望有pre-add
过滤器以及...)它可以简单地在tar
文件和目录结构之间进行转换,或者为了正确维护元数据,直接用git objects进行管道(或者作为折衷方案,使用中间目录,但override the metadata)。但是,在我开始这项潜在的疯狂工作之前,是否存在
这与Can git treat zip files as directories and files inside the zip as blobs?密切相关,虽然我希望由于tar文件只是文件和元数据的连接而没有压缩,因此对它们进行处理可能会更容易。
答案 0 :(得分:0)
我会建议其中一条评论中提到的内容,即使用textconv
。
您可以使用cat
轻松调用--textconv
的{{1}}选项,而不是手动使用git diff
。
对于合并,您可以使用renormalize
选项,或将其配置为merge.renormalize
的默认设置。
我从未真正测试过这个,但我相信它会起作用。