unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Uwe Brauer <oub@mat.ucm.es>
To: Dmitry Gutov <dgutov@yandex.ru>
Cc: Uwe Brauer <oub@mat.ucm.es>,
	emacs-devel@gnu.org, Arne Babenhauserheide <arne_bab@web.de>
Subject: Re: [patch: first impression]
Date: Tue, 11 Oct 2022 08:25:57 +0200	[thread overview]
Message-ID: <877d16khai.fsf@mat.ucm.es> (raw)
In-Reply-To: 43e67d5a-e3f4-3e7d-cd0e-819a08279d7e@yandex.ru

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


> On 10.10.2022 18:41, Uwe Brauer wrote:

> Another option is to use shelving.

Do you mean: the not committed hunks are shelved? My first reaction is:
that is counter intuitive (and commit-patch does not do this neither,
but commit patch is not very VC orientated anyhow).

But now that you mention it, mercurial also supports interactive
shelving (so to speak the inverse operation to interactive commit. I am
not sure that git has that feature).

So couldn't that also be included? That would be really great, since commit-patch does not support it.

The binding could be either C-u vc-next-action or 
something like this (just to explain the idea)

(defun toggle-commit-or-shelve-interactively ()
  (interactive)
  (with-output-to-temp-buffer "vc-list-buffer"
    (princ "List of functions\n")
    (princ "1: commit interactively\n")					  
    (princ "2: shelv interactively \n"))
    (let  ((ch (string-to-char (read-string "Which choice: 1: 2:  "))))
      (call-interactively (cond ((eql ch ?1) #'vc-commit-interactively)					  
				((eql ch ?2) #'vc-shelve-interactively)
				(t (error 'args-out-of-range '(1 2  ch))))))
    (kill-buffer "vc-list-buffer"))



> See the attached slightly different patch.

I will try to test this later (I presume I don't need to recompile the
whole emacs 😉; just kidding)

> It's probably the same as "detached HEAD" in Git.

Right the difference is, that, in my understanding, this HEAD will be
delete in the next garbage collection, while in mercurial it will stay..


> diff --git a/lisp/vc/vc-hg.el b/lisp/vc/vc-hg.el
> index f4a44df3c2..30c1453e42 100644
> --- a/lisp/vc/vc-hg.el
> +++ b/lisp/vc/vc-hg.el
> @@ -1185,19 +1185,38 @@ vc-hg-log-edit-mode
>    "Major mode for editing Hg log messages.
>  It is based on `log-edit-mode', and has Hg-specific extensions.")
 
> +(defvar vc-hg-patch-string nil)
> +
>  (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"))
> +        (shelf-name (make-temp-name "vc-checkin-patch")))
> +    (with-temp-file patch-file
> +      (insert patch-string))
> +    (vc-hg-command nil t nil "shelve" "-d" shelf-name)
> +    (vc-hg-command nil 0 nil "shelve" "-n" shelf-name)
> +    (unwind-protect
> +        (apply #'vc-hg-command nil 0 nil
> +               (nconc (list "import" patch-file "-m")
> +                      (vc-hg--extract-headers comment)))
> +      (progn
> +        (vc-hg-command nil 0 nil "unshelve" "-n" shelf-name)
> +        (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)


-- 
I strongly condemn Putin's war of aggression against the Ukraine.
I support to deliver weapons to Ukraine's military. 
I support the ban of Russia from SWIFT.
I support the EU membership of the Ukraine. 

[-- Attachment #2: smime.p7s --]
[-- Type: application/pkcs7-signature, Size: 5673 bytes --]

  reply	other threads:[~2022-10-11  6:25 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 [this message]
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
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=877d16khai.fsf@mat.ucm.es \
    --to=oub@mat.ucm.es \
    --cc=arne_bab@web.de \
    --cc=dgutov@yandex.ru \
    --cc=emacs-devel@gnu.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.
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).