Re: git-apply fails on creating a new file, with both -p and --directory specified
- From
James Vega <vega.james@gmail.com>
- Date
- Dec 8, 2009, 06:49 UTC
- Message-ID
- <20091208064944.GM14401@jamessan.com>
- In-Reply-To
- <20091208060109.GB9951@coredump.intra.peff.net>
On Tue, Dec 08, 2009 at 01:01:09AM -0500, Jeff King wrote:
Show 29 quoted lines
> On Tue, Dec 08, 2009 at 12:47:24AM -0500, Jeff King wrote:
>
> > There is a slightly different approach we could take, too: keep the
> > "deletion" hunk as a first-class hunk, and just meld the content hunk's
> > output into it. Then both cases would get the "Stage deletion" question
> > instead of the "Stage this hunk" you get now for non-empty files (which
> > just happens to trigger a deletion due to the headers).
>
> BTW, the code for this is the much smaller change below. If you prefer
> that, I can squash in the test and write up an appropriate commit
> message.
>
> diff --git a/git-add--interactive.perl b/git-add--interactive.perl
> index 35f4ef1..02e97b9 100755
> --- a/git-add--interactive.perl
> +++ b/git-add--interactive.perl
> @@ -1217,7 +1217,11 @@ sub patch_update_file {
> if (@{$mode->{TEXT}}) {
> unshift @hunk, $mode;
> }
> - if (@{$deletion->{TEXT}} && !@hunk) {
> + if (@{$deletion->{TEXT}}) {
> + foreach my $hunk (@hunk) {
> + push @{$deletion->{TEXT}}, @{$hunk->{TEXT}};
> + push @{$deletion->{DISPLAY}}, @{$hunk->{DISPLAY}};
> + }
> @hunk = ($deletion);
> }
> Thanks for the quick patches. This was similar to what I was working on, but cleaner than what I had. Works well for me.
-- James GPG Key: 1024D/61326D40 2003-09-02 James Vega <vega.james@gmail.com>