我目前正试图向codestyle检查上(github上)库的永久居民,我希望提供的补丁,使他们能够轻松地解决codestyle提交者。 为此,我拉下自己的PR,运行我们uncrustify脚本在它修复任何风格的错误,并希望创建一个.patch文件,他们可以轻松地应用。 然而,它始终打破了一些文件。
我这样做(GIT版本1.7.10.4与core.autocrlf=input
, core.filemode=false
):
$ git checkout pr-branch
$ git log -1 (shows: commit dbb8d3f)
$ git status (nothing to commit, working directory clean)
$ <run the code styler script, which modifies some files>
$ git diff > ../style.patch (so the patch file lands outside the repo)
$ git reset --hard HEAD (to simulate the situation at the submitter's end)
$ git log -1 (shows: commit dbb8d3f)
$ git status (nothing to commit, working directory clean, so we are where we started)
$ git apply ../style.patch
error: patch failed: somefile.cpp:195
error: somefile.cpp: patch does not apply (same output using the --check option)
这仅适用于某些文件,不是所有的人。 我不知道如何解决这一点,即如何让git的告诉我到底哪里出了问题 - 它只是告诉我,当我挖一大块#,但是这仍然是相当巨大的。
我到目前为止已经试过(没有成功):
-
apply --reverse
,apply --whitespace=nowarn
-
diff HEAD
代替diff
独 - 做一个虚拟提交(提交作品没有问题!),利用
format-patch
,删除假承诺,以应用补丁git-am
带或不带-3
,或申请git-apply
- 已在本地目录,而不是一升上来补丁文件(在抓救命稻草,在这里)
- 检查的git-DIFF的人的页面,-apply,-format补丁,用于-am有用的东西
- 与Linux补丁
patch
命令 - ....
我不知道什么可能是错误的差异。 空白的东西应该只给予警告,对不对? 在任何情况下,我不想理会他们,因为它是一个固定的风格,这显然涉及到的空白。
我怎样才能修复/诊断本甚至找出它捞出到底是什么? 它是否有助于如果我张贴的罪魁祸首文件之一的差异? 是什么令我感到困惑还在于,committ工作没有问题,但是从提交创建补丁不?
与此搏斗了几个小时后,我在我的知识结束...