[U-Boot-Users] [PATCH] Fix return value of mtest when CFG_ALT_MEMTEST set

Jon Loeliger jdl at freescale.com
Fri Feb 15 21:26:23 CET 2008


Guennadi Liakhovetski wrote:
> On Thu, 14 Feb 2008, Wolfgang Denk wrote:
> 
>> In message <Pine.LNX.4.64.0802131116340.5484 at axis700.grange> you wrote:
>>> Fix a missing return statement from a non-void function.
>>>
>>> Signed-off-by: Guennadi Liakhovetski <g.liakhovetski at gmx.de>
>> Applied, thanks.
>>
>> Ummm... I had to apply this manually:
>>
>> error: patch failed: common/cmd_mem.c:695
>> error: common/cmd_mem.c: patch does not apply
>> fatal: sha1 information is lacking or useless (common/cmd_mem.c).
>> Repository lacks necessary blobs to fall back on 3-way merge.
>> Cannot fall back to three-way merge.
>> Patch failed at 0001.
>>
>> How old is your source tree?
> 
> I produced the patch against 1.2.0, but before that I've verified, that 
> the file, or at least the affected function hasn't changed, so, thought it 
> would be ok. Sorry. But what does the error message actually mean? Is it 
> just because I referenced some "way too old" commit?
> 

No.  "Way too old" is not the issue with the error message.

First off, the patch didn't apply directly to the file.
That's our key that the patch isn't up-to-date with the
current tree, as that file has changed significantly enough
that your changes are no longer applicable.

In that situation, git tries to do a clever trick by backing
off to a common ancestor where the patch was originally created.
That is the first SHA1 in the diff header, assuming the patch
was generated by git.  If it can find this commit, git knows that
the patch will apply at that point as that is what your presumably
started with for your patch creation.  Git will apply the patch
there, and try to follow the changes forward in an attempt to
bring the changes up to date itself.

However, in this case, the SHA1 was only in your repository, and
not a common commit that was also in the public repository.  Thus,
git couldn't fall back on the three-way merge trick, and ultimately
was not able to apply your patch.

The remedy is to rebase your patch to a current repository and
resubmit it! :-)  Chance are it will require some conflict resolution.

jdl




More information about the U-Boot mailing list