unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Dmitry Gutov <dgutov@yandex.ru>
To: "Dr. Arne Babenhauserheide" <arne_bab@web.de>
Cc: Uwe Brauer <oub@mat.ucm.es>,
	georges.racinet@octobus.net, emacs-devel@gnu.org
Subject: Re: [patch: first impression]
Date: Mon, 24 Oct 2022 03:52:17 +0300	[thread overview]
Message-ID: <770dc627-c43a-a11f-6315-918bd083bf7c@yandex.ru> (raw)
In-Reply-To: <87a65tx74m.fsf@web.de>

[-- Attachment #1: Type: text/plain, Size: 593 bytes --]

On 18.10.2022 22:29, Dr. Arne Babenhauserheide wrote:
> "Dr. Arne Babenhauserheide"<arne_bab@web.de>  writes:
> 
>> hg import --bypass <patch> && hg update --merge --tool internal:merge-local
> cleaner with tip (in case there are multiple heads):
> 
> hg import --bypass <patch> && hg update --merge --tool internal:merge-local tip

Thanks!.

For best compatibility with existing behavior (default and vc-git's), it 
seems I was looking for the merge tool 'internal:local'.

Could either of you test the attached patch?

It should be both faster and a little safer than using the default impl.

[-- Attachment #2: vc-hg-checkin-patch-with-mergetool-local.diff --]
[-- Type: text/x-patch, Size: 1959 bytes --]

diff --git a/lisp/vc/vc-hg.el b/lisp/vc/vc-hg.el
index 2eebe2d543..30b4e55818 100644
--- a/lisp/vc/vc-hg.el
+++ b/lisp/vc/vc-hg.el
@@ -1189,16 +1189,32 @@ vc-hg-log-edit-mode
 (defun vc-hg-checkin (files comment &optional _rev)
   "Hg-specific version of `vc-backend-checkin'.
 REV is ignored."
-  (let ((amend-extract-fn
-         (lambda (value)
-           (when (equal value "yes")
-             (list "--amend")))))
-    (apply #'vc-hg-command nil 0 files
-           (nconc (list "commit" "-m")
-                  (log-edit-extract-headers `(("Author" . "--user")
-                                              ("Date" . "--date")
-                                              ("Amend" . ,amend-extract-fn))
-                                            comment)))))
+  (apply #'vc-hg-command nil 0 files
+         (nconc (list "commit"
+                      "-m")
+                (vc-hg--extract-headers comment))))
+
+(defun vc-hg-checkin-patch (patch-string comment)
+  (let ((patch-file (make-temp-file "hg-patch")))
+    (write-region patch-string nil patch-file)
+    (unwind-protect
+        (progn
+          (apply #'vc-hg-command nil 0 nil
+                 (nconc (list "import" "--bypass" patch-file "-m")
+                        (vc-hg--extract-headers comment)))
+          (vc-hg-command nil 0 nil
+                         "update"
+                         "--merge" "--tool" "internal:local"
+                         "tip"))
+      (delete-file patch-file))))
+
+(defun vc-hg--extract-headers (comment)
+  (log-edit-extract-headers `(("Author" . "--user")
+                              ("Date" . "--date")
+                              ("Amend" . (lambda (value)
+                                           (when (equal value "yes")
+                                             (list "--amend")))))
+                            comment))
 
 (defun vc-hg-find-revision (file rev buffer)
   (let ((coding-system-for-read 'binary)

  reply	other threads:[~2022-10-24  0:52 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-11  8:06 log-edit-insert-changelog even when run git/hg from the Uwe Brauer
2022-09-30  0:58 ` Dmitry Gutov
2022-09-30  6:10   ` Uwe Brauer
2022-09-30 10:14     ` Dmitry Gutov
2022-09-30 15:48       ` Uwe Brauer
2022-10-01  0:10         ` Dmitry Gutov
2022-10-01  5:58           ` Uwe Brauer
2022-10-01 11:03             ` Dmitry Gutov
2022-10-01 12:51               ` Uwe Brauer
2022-10-01 18:13                 ` Dmitry Gutov
2022-10-02  6:22                   ` Uwe Brauer
2022-10-06 22:28                     ` Dmitry Gutov
2022-10-07  6:24                       ` Uwe Brauer
2022-10-10  2:10                         ` Dmitry Gutov
2022-10-10  6:39                           ` Uwe Brauer
2022-10-10  9:53                             ` Dmitry Gutov
2022-10-10 12:41                               ` [Serious BUG in master 93136169cba] (was: log-edit-insert-changelog even when run git/hg from the) Uwe Brauer
2022-10-10 13:22                                 ` [Serious BUG in master 93136169cba] Uwe Brauer
2022-10-10 13:23                                 ` [Confirmed] (was: [Serious BUG in master 93136169cba]) Uwe Brauer
2022-10-10 14:53                               ` [patch: first impression] (was: log-edit-insert-changelog even when run git/hg from the) Uwe Brauer
2022-10-10 15:31                                 ` Dmitry Gutov
2022-10-10 15:41                                   ` [patch: first impression] Uwe Brauer
2022-10-11  2:05                                     ` Dmitry Gutov
2022-10-11  6:25                                       ` Uwe Brauer
2022-10-11 12:17                                         ` Dmitry Gutov
2022-10-11 12:24                                           ` Uwe Brauer
2022-10-11 16:50                                             ` Dmitry Gutov
2022-10-11 16:55                                               ` Uwe Brauer
2022-10-17  0:14                                                 ` Dmitry Gutov
2022-10-17  5:48                                                   ` Dr. Arne Babenhauserheide
2022-10-17 10:02                                                     ` Dmitry Gutov
2022-10-17  7:11                                                   ` Uwe Brauer
2022-10-17 10:04                                                     ` Dmitry Gutov
2022-10-17 16:53                                                       ` Uwe Brauer
2022-10-17 20:44                                                   ` Uwe Brauer
2022-10-17 23:36                                                     ` Dmitry Gutov
2022-10-18  6:33                                                       ` Uwe Brauer
2022-10-18 12:23                                                         ` Uwe Brauer
2022-10-18 12:45                                                           ` Dmitry Gutov
2022-10-18 12:30                                                         ` Dmitry Gutov
2022-10-18 13:28                                                           ` Uwe Brauer
2022-10-18 14:47                                                             ` Dmitry Gutov
2022-10-18 15:38                                                               ` Uwe Brauer
2022-10-18 15:50                                                                 ` Dmitry Gutov
2022-10-18 16:47                                                                   ` Uwe Brauer
2022-10-18 17:30                                                                     ` Dmitry Gutov
2022-10-18 19:17                                                                       ` Dr. Arne Babenhauserheide
2022-10-18 19:29                                                                         ` Dr. Arne Babenhauserheide
2022-10-24  0:52                                                                           ` Dmitry Gutov [this message]
2022-10-24 15:34                                                                             ` Uwe Brauer
2022-10-24 16:33                                                                               ` Dmitry Gutov
2022-10-24 17:53                                                                             ` Uwe Brauer
2022-10-25 21:11                                                                               ` Dmitry Gutov
2022-10-19  5:40                                                                         ` Uwe Brauer
2022-10-24  1:03                                                                           ` Dmitry Gutov
2022-10-24 15:32                                                                             ` Uwe Brauer
2022-10-24 17:28                                                                               ` Dmitry Gutov
2022-10-25  8:19                                                                                 ` Robert Pluim
2022-10-25  9:14                                                                                   ` Uwe Brauer
2022-10-25  9:55                                                                                     ` Robert Pluim
2022-10-25 11:15                                                                                     ` Eli Zaretskii
2022-10-25 12:13                                                                                       ` Uwe Brauer

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

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=770dc627-c43a-a11f-6315-918bd083bf7c@yandex.ru \
    --to=dgutov@yandex.ru \
    --cc=arne_bab@web.de \
    --cc=emacs-devel@gnu.org \
    --cc=georges.racinet@octobus.net \
    --cc=oub@mat.ucm.es \
    /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.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).