From: Junio C Hamano <gitster@pobox.com>
To: Clemens Buchacher <drizzd@aon.at>
Cc: "Shawn O. Pearce" <spearce@spearce.org>, git@vger.kernel.org
Subject: Re: [PATCH] git apply: do not match beginning in special unidiff-zero case
Date: Sat, 30 Aug 2008 12:54:39 -0700 [thread overview]
Message-ID: <7vfxomgtxc.fsf@gitster.siamese.dyndns.org> (raw)
In-Reply-To: <20080830190302.GA29851@localhost> (Clemens Buchacher's message of "Sat, 30 Aug 2008 21:03:02 +0200")
Clemens Buchacher <drizzd@aon.at> writes:
> If a unidiff patch without any context modifies the second line, it does
> not match the beginning, even though oldpos == 1.
Heh, it seems we independently reached the same patch, so I'll squash in
your new test.
Having did all this, I have to warn you, git-gui, and anybody who is
tempted to use --unidiff-zero in "add -i [e]dit" that the -U0 format is
inherently unreliable _unless the patch you are feeding is perfect_.
By reducing the context, especially when you have only addition without
deletion next to it (iow, "modification to an existing line"), the only
information as to where that line needs to be inserted that you are
telling "apply" is the postimage offset, so you have to be absolutely sure
that the hunk header "@@ -K,L +M,N @@" you are feeding has the correct
value for "M".
For git-gui's "pick and apply", you should be able to, but once you start
allowing random manual editing of hunks, by definition the patch is _not_
perfect ("add -i [e]dit" even admits that it does not know what it is
doing by passing --recount to "apply").
So try to avoid --unidiff-zero. git-gui should have _enough_ information
to add surrounding context back to the lines the user picked from the UI,
and I do not see a reason other than sheer lazyness for it to be using the
option.
next prev parent reply other threads:[~2008-08-30 19:55 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-08-30 16:45 [PATCH] git gui: show diffs with a minimum of 1 context line Clemens Buchacher
2008-08-30 16:56 ` [PATCH] git gui: use apply --unidiff-zero when staging hunks without context Clemens Buchacher
2008-08-30 17:53 ` Junio C Hamano
2008-08-30 19:03 ` [PATCH] git apply: do not match beginning in special unidiff-zero case Clemens Buchacher
2008-08-30 19:54 ` Junio C Hamano [this message]
2008-08-30 19:40 ` [PATCH] git-apply: Loosen "match_beginning" logic Junio C Hamano
2008-08-30 19:43 ` [PATCH] git gui: use apply --unidiff-zero when staging hunks without context Johannes Sixt
2008-08-30 20:27 ` Clemens Buchacher
2008-08-30 20:52 ` Junio C Hamano
2008-08-30 21:00 ` Clemens Buchacher
2008-09-01 19:40 ` Shawn O. Pearce
2008-08-30 17:19 ` [PATCH] git gui: show diffs with a minimum of 1 context line Junio C Hamano
2008-08-30 17:30 ` Junio C Hamano
2008-08-30 20:46 ` Clemens Buchacher
2008-09-01 19:33 ` Shawn O. Pearce
2008-09-01 19:41 ` Clemens Buchacher
2008-09-01 19:47 ` Shawn O. Pearce
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7vfxomgtxc.fsf@gitster.siamese.dyndns.org \
--to=gitster@pobox.com \
--cc=drizzd@aon.at \
--cc=git@vger.kernel.org \
--cc=spearce@spearce.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).