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.devel Subject: Re: master 4803fba487 1/2: 'C-x v v' on a diff buffer commits it as a patch (bug#52349) Date: Wed, 31 Aug 2022 14:11:57 +0300 Message-ID: <7b11b61f-c70d-7079-9bb2-7069a6e0170b@yandex.ru> References: <166171593185.16640.41619657947456727@vcs2.savannah.gnu.org> <20220828194533.23A6BC00889@vcs2.savannah.gnu.org> <87r10znm0y.fsf@gnus.org> <83fshfvvyn.fsf@gnu.org> <999d1cb2-6b7f-8020-5202-e919278d895e@yandex.ru> <877d2pnqup.fsf@yahoo.com> <86zgfknc9a.fsf@mail.linkov.net> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="34670"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 Cc: Po Lu , "Alfred M. Szmidt" , eliz@gnu.org, larsi@gnus.org, emacs-devel@gnu.org To: Juri Linkov Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Wed Aug 31 13:15:00 2022 Return-path: Envelope-to: ged-emacs-devel@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 1oTLgR-0008nd-Ad for ged-emacs-devel@m.gmane-mx.org; Wed, 31 Aug 2022 13:14:59 +0200 Original-Received: from localhost ([::1]:58412 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oTLgP-0006fr-HW for ged-emacs-devel@m.gmane-mx.org; Wed, 31 Aug 2022 07:14:57 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:41078) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oTLe2-0005aD-5O for emacs-devel@gnu.org; Wed, 31 Aug 2022 07:12:30 -0400 Original-Received: from mail-wr1-x42f.google.com ([2a00:1450:4864:20::42f]:38424) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oTLe0-0007EP-K3; Wed, 31 Aug 2022 07:12:29 -0400 Original-Received: by mail-wr1-x42f.google.com with SMTP id b5so17780242wrr.5; Wed, 31 Aug 2022 04:12:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :sender:from:to:cc; bh=9dVG5FjqdERDjdogVRjQz/TQF3fd1uImkDG9aOdeat0=; b=Qr3DY+fSEMp3Q/T+AeipCslw3DxHNNIuR3p6VHUUGRE58vZqLsrvW9Gi+LUKJaTVv9 AH1i3XMF3bvT1JnzA7f7eB+f3NYF/dDUhPq01uV6ykSD7XNZ5RMyI69ACb3uC3iiEjYK UyNNSxa0oK23LhbN/4Jbc/Pkrk6MBwMU5qqaYurdfYjbBWkiOivQy+GOHXzd0EDxSX9M hjU4///lHI9hUhKjPIYFR5aYLI3SX7t/bUheYOPDm03QcxkwsW83EANAsBS3MS2doUVA N53yh7WsZ8TcI5CKkRcSd9DeoBz7/KIyc65yK+tlHb+ymoET0JNNTv4nAJvSVyDRbuFB iBEw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :sender:x-gm-message-state:from:to:cc; bh=9dVG5FjqdERDjdogVRjQz/TQF3fd1uImkDG9aOdeat0=; b=E7/Dpc26QF7Y7fE7vfIhcNIQhi6y9EZSiYDjoj3qpKK4FH4X6Pj75T2yldA5MPy3mf OVI/zpmiRxxgzJ06ayiMYsDaIfp29CWU81f82dAgaHnTRKQ/AkjCHbnQVKGo5gG7J6Pk Owno4780ugu+/ylaRqYXO5Oc1wgdZVny5EjWvESAg2e8D3mz0BUwfVtudKnc6IrnORgT 3+pKBLJO2x5OR2yJ+jbQfFYlG8UJjqnZhfh0tYXxmxtqDZmQ941MTQDDd9hhC4FZsUVy kIQ8S9m7WCKaNgJFN2Cmh+dChg28bE03AUmfbABuLyRQvXNONMUQ27XS+JiRn/eSyD50 0mxA== X-Gm-Message-State: ACgBeo1CvB+9NJwayr8nZHf/H7eXjJ3eW+WPg+OBn8+amFoUDmH1oSiH 7ofdrs/1CAUd5Nn0BJsuHI+tafR7cX0= X-Google-Smtp-Source: AA6agR6cImj/0hP50612Oat8uSXTNgB5zmUic4p+7ZtZUbrPmKNNkvM+JFYu2SoCHJtIiYj+8eDBKg== X-Received: by 2002:a05:6000:1a8b:b0:222:cac3:769a with SMTP id f11-20020a0560001a8b00b00222cac3769amr11167886wry.120.1661944321842; Wed, 31 Aug 2022 04:12:01 -0700 (PDT) Original-Received: from [192.168.0.6] ([46.251.119.176]) by smtp.googlemail.com with ESMTPSA id f6-20020a7bc8c6000000b003a35ec4bf4fsm1790775wml.20.2022.08.31.04.11.58 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 31 Aug 2022 04:12:01 -0700 (PDT) Content-Language: en-US In-Reply-To: <86zgfknc9a.fsf@mail.linkov.net> Received-SPF: pass client-ip=2a00:1450:4864:20::42f; envelope-from=raaahh@gmail.com; helo=mail-wr1-x42f.google.com X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.25, FREEMAIL_FROM=0.001, GAPPY_SUBJECT=0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.25, NICE_REPLY_A=-0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:294418 Archived-At: On 31.08.2022 09:53, Juri Linkov wrote: >>>> I can look into adapting this approach for other VCS if nobody beats >>>> me to it. As long as we fundamentally agree on the behavior. >>> Thank you. >> This seems to work. >> >> Might use some extra polish, though, if people also encounter the one weird >> error about "buffer already killed" that I saw a few times but then stopped >> after a restart. > Thanks, looks universal enough to handle all backends. > I've tried it out, but it gets stuck asking the same question: > > Hunk has already been applied; undo it? (y or n) > > because of the infinite loop in: > > (while (not (eobp)) > (diff-apply-hunk)) > > After removing the loop, everything works fine. Do you perhaps have customized diff-advance-after-apply-hunk to nil? I guess a let-binding is in order. But a loop is necessary because the diff can have more than one hunk, isn't it? >> +(defun vc-default-checkin-patch (backend patch-string comment) >> + (with-current-buffer (get-buffer-create "*vc-checkin-patch*") >> + (erase-buffer) >> + (insert patch-string) >> + (diff-mode) >> + (pcase-let ((`(,backend ,files) (diff-vc-deduce-fileset)) >> + (root (vc-call-backend backend 'root default-directory)) >> + (tmpdir (make-temp-file "vc-checkin-patch" t))) > I'm worried that after a crash, reboot might wipe out the /tmp dir. Creating the tmp directory inside root is also an option.