From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Dmitry Gutov Newsgroups: gmane.emacs.bugs Subject: bug#62731: 29.0.60; diff-apply-hunk doesn't work for creating new files Date: Wed, 2 Oct 2024 03:41:05 +0300 Message-ID: References: <87jzyln9g0.fsf@catern.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------nGqU5eduqG9bi5rAV0js1agd" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="5808"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla Thunderbird To: sbaugh@catern.com, 62731@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Wed Oct 02 02:42:40 2024 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1svnRu-0001Km-Cf for geb-bug-gnu-emacs@m.gmane-mx.org; Wed, 02 Oct 2024 02:42:39 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1svnRN-0004ro-CS; Tue, 01 Oct 2024 20:42:05 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1svnRK-0004rO-Iu for bug-gnu-emacs@gnu.org; Tue, 01 Oct 2024 20:42:02 -0400 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1svnRK-0000eX-6W for bug-gnu-emacs@gnu.org; Tue, 01 Oct 2024 20:42:02 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=In-Reply-To:From:References:MIME-Version:Date:To:Subject; bh=HKobWTBDHxTy9EgHRt1EHIFXKn+nAgu9kKQPax5mSlc=; b=EDq5rJgdPC+zlf9BldtNY7hfYI/XWeGVSH6aHCv9fjvy68/mCU14SAbFa55bq0+DaMtgKCuymdkXM15UDIV3YnR4AzPVtMyS2GvghEzZ7kfqZ4hVEkfetko26QXEkrPrbVxVuccA6hOuHS4SzF/Ws2B0/qQ8QbILHxPHUXJmdZwiEju0h22BcJG9IOxonsArhf/Fn5UlMrLZsP/VwqcJr/S/mqTjwt8YKxwWaKzgxhFI2ZvRai8OCCDPrIORYIRJ7R0zbKr+P/Vufv6uv85YKbUqHq8sjB9GEML5RG9WtLc0WWRcpQ0fgphuRByuJzL6Pyd3n33bFAqom9KU49TVUA==; Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1svnRJ-00032P-Na for bug-gnu-emacs@gnu.org; Tue, 01 Oct 2024 20:42:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Dmitry Gutov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 02 Oct 2024 00:42:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 62731 X-GNU-PR-Package: emacs Original-Received: via spool by 62731-submit@debbugs.gnu.org id=B62731.172782967611615 (code B ref 62731); Wed, 02 Oct 2024 00:42:01 +0000 Original-Received: (at 62731) by debbugs.gnu.org; 2 Oct 2024 00:41:16 +0000 Original-Received: from localhost ([127.0.0.1]:54639 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1svnQa-00031H-6W for submit@debbugs.gnu.org; Tue, 01 Oct 2024 20:41:16 -0400 Original-Received: from fout-a2-smtp.messagingengine.com ([103.168.172.145]:57483) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1svnQY-000316-75 for 62731@debbugs.gnu.org; Tue, 01 Oct 2024 20:41:15 -0400 Original-Received: from phl-compute-12.internal (phl-compute-12.phl.internal [10.202.2.52]) by mailfout.phl.internal (Postfix) with ESMTP id DA6E11380B33; Tue, 1 Oct 2024 20:41:08 -0400 (EDT) Original-Received: from phl-mailfrontend-02 ([10.202.2.163]) by phl-compute-12.internal (MEProxy); Tue, 01 Oct 2024 20:41:08 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc :content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm1; t=1727829668; x=1727916068; bh=HKobWTBDHx Ty9EgHRt1EHIFXKn+nAgu9kKQPax5mSlc=; b=atV6AKCWoTsBATJUaMcHcQQUOB N3q6rGgvxLnlQ11Tq1l221tJT+bibtmPmYK4bse+3Yx2x9t/gLupBz+rwxn3V0Jm saWbWS3rUGgK5UOXVsRQGOeGA+lRLUkyWOU/ek3/wNaMCYiRToN4XvgYsT4b038b UBiG9Ch/m5nOc0z5BaWSE0YG8usDatzfMs1P3u7i6kLkLaVPGmMFVvyvgDfRJ6GU 98Gm3/TgrWqEMX/u5/dt/5Uhr5XvXoNkrD0A06qLLwKkYaa8H6etim7msM/rVWC6 tY3kYPLvI9nWdiP5b2nh8nQVW1OObMY0xq9O6WZCrkqCXLth72plt/o72WeA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; t=1727829668; x=1727916068; bh=HKobWTBDHxTy9EgHRt1EHIFXKn+n Agu9kKQPax5mSlc=; b=qFLntuEYyLqXDOjNm6j1FY20ZRbLxCKmFcyv1l9IFVPM iAz5GJ6ZoYTokO5JTHuk+l9aoqOhnIlwx9AqfCSyE2X6XZ47i2qZoBYzmRwSLEaH r7v1CsUCNP6t2w5tXKdjUt4oUSAAwEZYzXkp9U0Je4P0Zv/463IfCG3oj7aed0nN U+MDiiTKii/dlWLxYz+I9V085nBLCezc89gLFjNdnOWQXIxjh8lReY+TbtlTU+8V J34cbfAcgygBuDruBH7RryGjvAV+MeZ8q9yVxrMY2TIofSpE/PYuVErDJ48sOl7k gxHpmFihlE4Ug4FoxD7ysJrGhd2DuW/gtfZxsT737g== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrvddukedgfeekucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucenucfjughrpegtkfffgg gfuffvfhfhjgesmhdtreertddvjeenucfhrhhomhepffhmihhtrhihucfiuhhtohhvuceo ughmihhtrhihsehguhhtohhvrdguvghvqeenucggtffrrghtthgvrhhnpeekhfeijeehhe ejhfehhfduvdetteetvdegleetieegleeugeehffeuffeluddvffenucevlhhushhtvghr ufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpegumhhithhrhiesghhuthhovh druggvvhdpnhgspghrtghpthhtohepvddpmhhouggvpehsmhhtphhouhhtpdhrtghpthht ohepshgsrghughhhsegtrghtvghrnhdrtghomhdprhgtphhtthhopeeivdejfeduseguvg gssghughhsrdhgnhhurdhorhhg X-ME-Proxy: Feedback-ID: i07de48aa:Fastmail Original-Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 1 Oct 2024 20:41:07 -0400 (EDT) Content-Language: en-US In-Reply-To: <87jzyln9g0.fsf@catern.com> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:292806 Archived-At: This is a multi-part message in MIME format. --------------nGqU5eduqG9bi5rAV0js1agd Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hi! On 09/04/2023 04:14, sbaugh@catern.com wrote: > 1. emacs -Q > 2. Put the following content in a diff-mode buffer: > diff --git a/foo b/foo > new file mode 100644 > --- /dev/null > +++ b/foo > @@ -0,0 +1,1 @@ > +content > 3. C-c C-a > > Expected behavior: A file called "foo" with content "content" is > created. > > Observed behavior: diff-mode prompts for the location of "b/foo", and > doesn't allow specifying the location as a non-existent file, meaning > the file can't actaully be created. This is annoying indeed. The attached patch should handle this: * When OLD equals to /dev/null, allow reading non-existing file name. * When NEW starts with b/ or /a, slice that off if such dir does not exist. * Bonus: when the diff is applied in reverse, the checked file names are switched. That helps undo deletions as well. Or renames. It makes some assumptions, though, (such as that default-directory fits the file names in the diff, which is normal for vc diffs but maybe not others), so some testing would be welcome, especially from people who deal with diffs produced otherwise. --------------nGqU5eduqG9bi5rAV0js1agd Content-Type: text/x-patch; charset=UTF-8; name="diff-find-file-name-new.diff" Content-Disposition: attachment; filename="diff-find-file-name-new.diff" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2xpc3AvdmMvZGlmZi1tb2RlLmVsIGIvbGlzcC92Yy9kaWZmLW1vZGUu ZWwKaW5kZXggMjVjNjIzODc2NWQuLjk4Zjc3ZjFhMWQ3IDEwMDY0NAotLS0gYS9saXNwL3Zj L2RpZmYtbW9kZS5lbAorKysgYi9saXNwL3ZjL2RpZmYtbW9kZS5lbApAQCAtMTA1NSwxMyAr MTA1NSwyNCBAQCBkaWZmLWZpbmQtZmlsZS1uYW1lCiAJICAgICAgKGRpZmYtZmluZC1maWxl LW5hbWUgb2xkIG5vcHJvbXB0IChtYXRjaC1zdHJpbmcgMSkpKQogICAgICAgICAgOzsgaWYg YWxsIGVsc2UgZmFpbHMsIGFzayB0aGUgdXNlcgogICAgICAgICAgKHVubGVzcyBub3Byb21w dAotICAgICAgICAgICAobGV0ICgoZmlsZSAoZXhwYW5kLWZpbGUtbmFtZSAob3IgKGNhciBm cykgIiIpKSkpCisgICAgICAgICAgIChsZXQgKChmaWxlIChvciAoY2FyIGZzKSAiIikpCisg ICAgICAgICAgICAgICAgIChjcmVhdGlvbiAoZXF1YWwgbnVsbC1kZXZpY2UKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoY2FyIChkaWZmLWh1bmstZmlsZS1uYW1lcyAo bm90IG9sZCkpKSkpKQorICAgICAgICAgICAgICh3aGVuIChhbmQgKHN0cmluZy1tYXRjaC1w ICJcXGBbYWJdLyIgZmlsZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIChub3QgKGZpbGUt ZGlyZWN0b3J5LXAgKHN1YnN0cmluZyBmaWxlIDAgMSkpKSkKKyAgICAgICAgICAgICAgIDs7 IFN0cmlwIHRoZSBjb21tb24gcHJlZml4IGEvIG9yIC9iIGlmIG5vIHN1Y2ggZGlyIGV4aXN0 cy4KKyAgICAgICAgICAgICAgIChzZXRxIGZpbGUgKHN1YnN0cmluZyBmaWxlIDIpKSkKKyAg ICAgICAgICAgICAoc2V0cSBmaWxlIChleHBhbmQtZmlsZS1uYW1lIGZpbGUpKQogCSAgICAg KHNldHEgZmlsZQogCQkgICAocmVhZC1maWxlLW5hbWUgKGZvcm1hdCAiVXNlIGZpbGUgJXM6 ICIgZmlsZSkKLQkJCQkgICAoZmlsZS1uYW1lLWRpcmVjdG9yeSBmaWxlKSBmaWxlIHQKKwkJ CQkgICAoZmlsZS1uYW1lLWRpcmVjdG9yeSBmaWxlKSBmaWxlCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDs7IEFsbG93IG5vbi1tYXRjaGluZyBmb3IgY3JlYXRpb24u CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChub3QgY3JlYXRpb24pCiAJ CQkJICAgKGZpbGUtbmFtZS1ub25kaXJlY3RvcnkgZmlsZSkpKQotICAgICAgICAgICAgIChz ZXRxLWxvY2FsIGRpZmYtcmVtZW1iZXJlZC1maWxlcy1hbGlzdAotICAgICAgICAgICAgICAg ICAgICAgICAgIChjb25zIChjb25zIGZzIGZpbGUpIGRpZmYtcmVtZW1iZXJlZC1maWxlcy1h bGlzdCkpCisgICAgICAgICAgICAgKHdoZW4gKG9yIChub3QgY3JlYXRpb24pIChmaWxlLWV4 aXN0cy1wIGZpbGUpKQorICAgICAgICAgICAgICAgOzsgT25seSByZW1lbWJlciBmaWxlcyB0 aGF0IGV4aXN0LiBVc2VyIG1pZ2h0IGhhdmUgbWlzdHlwZWQuCisgICAgICAgICAgICAgICAo c2V0cS1sb2NhbCBkaWZmLXJlbWVtYmVyZWQtZmlsZXMtYWxpc3QKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgIChjb25zIChjb25zIGZzIGZpbGUpIGRpZmYtcmVtZW1iZXJlZC1maWxl cy1hbGlzdCkpKQogICAgICAgICAgICAgIGZpbGUpKSkpKSkpCiAKIApAQCAtMTkyMSw3ICsx OTMyLDcgQEAgZGlmZi1maW5kLXNvdXJjZS1sb2NhdGlvbgogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBkaWZmLWNvbnRleHQtbWlkLWh1bmstaGVhZGVyLXJlIG5pbCB0KQog CQkJIChlcnJvciAiQ2FuJ3QgZmluZCB0aGUgaHVuayBzZXBhcmF0b3IiKSkKIAkJICAgICAg IChtYXRjaC1zdHJpbmcgMSkpKSkpCi0JICAgKGZpbGUgKG9yIChkaWZmLWZpbmQtZmlsZS1u YW1lIG90aGVyIG5vcHJvbXB0KQorCSAgIChmaWxlIChvciAoZGlmZi1maW5kLWZpbGUtbmFt ZSAoeG9yIG90aGVyIHJldmVyc2UpIG5vcHJvbXB0KQogICAgICAgICAgICAgICAgICAgICAg KGVycm9yICJDYW4ndCBmaW5kIHRoZSBmaWxlIikpKQogCSAgIChyZXZpc2lvbiAoYW5kIG90 aGVyIGRpZmYtdmMtYmFja2VuZAogICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgcmV2 ZXJzZSAobnRoIDEgZGlmZi12Yy1yZXZpc2lvbnMpCg== --------------nGqU5eduqG9bi5rAV0js1agd--