Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于大型SQL文件的git diff_Git - Fatal编程技术网

用于大型SQL文件的git diff

用于大型SQL文件的git diff,git,Git,我有一个很大的SQL文件(1.3g)。提交更新版本时,git会重复存储整个文件。我已经找到了这个问题的答案 我认为diff有一些尺寸限制,因为我 git diff --cached fatal: unable to generate diff for sql/dump.sql 我试图提高大文件阈值,但似乎没有任何效果。Git不会将SQL文件视为二进制文件。我怎样才能使diff适用于大文件?您似乎认为git应该只存储diff。git不是这样工作的。当它打包对象时,它可能(作为压缩包的一部分)删除

我有一个很大的SQL文件(1.3g)。提交更新版本时,git会重复存储整个文件。我已经找到了这个问题的答案

我认为diff有一些尺寸限制,因为我

git diff --cached
fatal: unable to generate diff for sql/dump.sql

我试图提高大文件阈值,但似乎没有任何效果。Git不会将SQL文件视为二进制文件。我怎样才能使diff适用于大文件?

您似乎认为git应该只存储diff。git不是这样工作的。当它打包对象时,它可能(作为压缩包的一部分)删除旧版本,但松散对象总是独立于任何其他版本存储。@MarkAdelsberger但是为什么我不能在大文件上运行diff?为什么它根本不压缩它们?如果我更改SQL文件中的一行,数据库的大小会加倍;这就是为什么我没有发布答案或试图解决这一点的原因。它根本不会压缩它们,因为正如我刚才所说的,git就是这样工作的。它只压缩包文件中的对象,而不是在最初将它们创建为松散对象时。不幸的是,
diff
代码路径中的错误报告信息量不大。我仔细研究了有问题的错误,但只能说这意味着git出于某种原因放弃了diff——我猜它可能无法分配缓冲区,但这只是一个猜测。不过,我不确定这是否真的与你的根本问题有关。即使在创建包文件时,deltification也会在与用户可读包所使用的代码路径完全不同的代码路径上完成diff@MarkAdelsberger是的,大文件阈值实际上修复了我原来的问题。你似乎认为git应该只存储差异。git不是这样工作的。当它打包对象时,它可能(作为压缩包的一部分)删除旧版本,但松散对象总是独立于任何其他版本存储。@MarkAdelsberger但是为什么我不能在大文件上运行diff?为什么它根本不压缩它们?如果我更改SQL文件中的一行,数据库的大小会加倍;这就是为什么我没有发布答案或试图解决这一点的原因。它根本不会压缩它们,因为正如我刚才所说的,git就是这样工作的。它只压缩包文件中的对象,而不是在最初将它们创建为松散对象时。不幸的是,
diff
代码路径中的错误报告信息量不大。我仔细研究了有问题的错误,但只能说这意味着git出于某种原因放弃了diff——我猜它可能无法分配缓冲区,但这只是一个猜测。不过,我不确定这是否真的与你的根本问题有关。即使在创建包文件时,deltification也会在与用户可读包所使用的代码路径完全不同的代码路径上完成diff@MarkAdelsberger是的,大文件阈值实际上修复了我原来的问题。