git errors
error: RPC failed; curl 56 GnuTLS recv error (-54): Error in the pull function
solution 1. set buffer size larger. git config --global http:poseBuffer 52428800
solution 2. add the below setting in .bashrc.
export GIT_TRACE_PACKET=1
export GIT_TRACE=1
export GIT_CURL_VERBOSE=1
solution 3. only clone the newest code.
git clone https://github.com/JGPY/large-repository.git --depth 1
cd large-repository
git fetch --unshallow
git apply patch
step 1. check if the patch is suitable. git apply --check xxxx.patch
step 2.
能检測出现的问题有下面几种样例:
1. error: cannot apply binary patch to 'xxx' without full index line
xxx通常会是bin/png/gif等等二进制文件 详细的原因就是patch中有指明要打上xxx文件,可是这个文件并不包括在这个patch中,不过有一个名字存在当中。遇到这个问题要重视。
2. error: core/java/android/provider/Settings.java: patch does not apply
出现这样的通常会是补丁冲突,这样的通常是强制打上补丁(使用--reject)后依据产生的*.rej文件来手动解决冲突。
3. warning: core/java/android/view/View.java has type 100644, expected 100755
出现这样的警告通常是文件内没有冲突,可是文件的权限发生变动。一般没有影响。
step 3. git apply --reject xxx.patch
运行了这一步后会产生什么样的结果,我对第一步的冲突来相应说明。
1.这样的问题通常是制作补丁的开发者没有将二进制文件制作到patch中云,对于这样的情况不会有不论什么的提示,由于patch中源资源文件都没有,Git也没有什么招术来解决。最好的方法是联系补丁提供者。
2.这样的情况是因为git apply是对照补丁中前后几行代码,假设没有出如今目标文件里,那么这就是冲突。这个是比較常常出现的,对于这样的情况会生成*.rej文件,能够find ./ -name *.rej找到这些冲突的补丁,手动打上就好。
3.能够考虑忽略。