Re: [PATCH] git-p4: format-patch to diff-tree change breaks binary patches
- From
tolga ceylan <tolga.ceylan@gmail.com>
- Date
- Apr 26, 2014, 21:12 UTC
- Message-ID
- <535C2138.3050400@gmail.com>
- In-Reply-To
- <20140426124307.GB4767@padd.com>
Yes, when git-p4 runs git-apply to test the patch, this fails due to abbreviated blob object names. I think git-apply requires full object names for binary patches.
On 04/26/2014 05:43 AM, Pete Wyckoff wrote:
Show 32 quoted lines
> tolga.ceylan@gmail.com wrote on Thu, 24 Apr 2014 21:46 -0700:
>> When applying binary patches a full index is required. format-patch
>> already handles this, but diff-tree needs '--full-index' argument
>> to always output full index.
>>
>> Signed-off-by: Tolga Ceylan <tolga.ceylan@gmail.com>
>> ---
>> git-p4.py | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/git-p4.py b/git-p4.py
>> index cdfa2df..4ee6739 100755
>> --- a/git-p4.py
>> +++ b/git-p4.py
>> @@ -1311,7 +1311,7 @@ class P4Submit(Command, P4UserMap):
>> else:
>> die("unknown modifier %s for %s" % (modifier, path))
>>
>> - diffcmd = "git diff-tree -p \"%s\"" % (id)
>> + diffcmd = "git diff-tree --full-index -p \"%s\"" % (id)
>> patchcmd = diffcmd + " | git apply "
>> tryPatchCmd = patchcmd + "--check -"
>> applyPatchCmd = patchcmd + "--check --apply -"
>> --
>
> This looks like a straightforward change, but can you give a
> bit more background on why a full index is required? Do you
> mean that "git apply" will reject a patch with abbreviated
> blob object names?
>
> -- Pete
>