From: Dmitry Gutov <dgutov@yandex.ru>
To: "Juri Linkov" <juri@linkov.net>, "Óscar Fuentes" <ofv@wanadoo.es>
Cc: emacs-devel@gnu.org
Subject: Re: On the adoption of transient.el
Date: Sun, 8 Aug 2021 04:21:22 +0300 [thread overview]
Message-ID: <bda558fa-231b-819d-18da-7fe18df9c99b@yandex.ru> (raw)
In-Reply-To: <877dgzebux.fsf@mail.linkov.net>
Hi Juri,
On 06.08.2021 02:20, Juri Linkov wrote:
> While I think Magit is a great package for discoverability etc.
> I found that it's completely sufficient to use just the shell-command.
> With the persistent history of the previously constructed git commands
> using a flex-style completion on previous commands will even reduce
> the need in some vc commands, e.g.
>
> 'M-! chm TAB' runs `git checkout master` (instead of C-x v r)
> 'M-! pur TAB' runs `git pull --rebase` (instead of C-x v P)
> ...
Same here (except for the flex completion).
> Currently I'm finishing implementation of a new vc command that
> will allow committing from a diff buffer. So for example, after
> displaying all changes with e.g. 'C-x v D' you can remove
> some unneeded hunks (with e.g. 'M-k' 'diff-hunk-kill'),
> then on the remaining hunks type 'C-c C-c' in the diff buffer.
> It will create a usual *vc-log* buffer where typing 'C-c C-c'
> will commit only changes from the diff buffer.
This is a very welcome development.
> Internally
> it works by running three git commands:
>
> `git stash push -m stash_name -- list_of_file_names_from_diff`
> `cat diff_buffer.patch | git am` # should also handle return code
Somewhere around here, I suppose you will pop up the usual log-edit buffer?
> `git stash pop -q`
For your consideration, here's a description of the strategy used by the
venerable commit-patch command/package:
https://github.com/caldwell/commit-patch/blob/master/commit-patch#L212-L214
- Let the user edit a diff in the diff-mode buffer
- Save it to a file
- 'git apply --cached', to put the contents to the staging area
- 'git commit'
It might have some advantages, such as less chance of something going
awry with the user's stashes due to a coding error (current, or one
possibly introduced in the future).
On the flip side, I suppose it will be harder to reuse the existing
'checkin' backend function. Or generalize the exact approach to other
backends, since only Git has staging area.
next prev parent reply other threads:[~2021-08-08 1:21 UTC|newest]
Thread overview: 69+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-07-03 21:13 On the adoption of transient.el Gabriel
2021-07-05 14:24 ` Philip Kaludercic
2021-07-05 16:09 ` Gabriel
2021-07-05 17:00 ` Stefan Monnier
2021-07-05 19:16 ` Lars Ingebrigtsen
2021-07-05 16:50 ` Yuri Khan
2021-07-05 17:06 ` Eli Zaretskii
2021-07-05 17:29 ` Yuri Khan
2021-07-05 17:49 ` Stefan Monnier
2021-07-05 18:09 ` Philip Kaludercic
2021-08-01 20:19 ` Rudolf Adamkovič
2021-08-01 21:08 ` T.V Raman
2021-08-01 21:24 ` Arthur Miller
2021-08-03 13:07 ` Jonas Bernoulli
2021-08-03 20:00 ` Arthur Miller
2021-08-14 3:17 ` Arthur Miller
2021-08-14 12:54 ` Óscar Fuentes
2021-08-14 20:45 ` Arthur Miller
2021-08-15 21:57 ` John Yates
2021-08-16 1:05 ` Arthur Miller
2021-08-16 1:35 ` Stefan Monnier
2021-08-16 2:36 ` Arthur Miller
2021-08-01 21:25 ` Arthur Miller
2021-08-04 11:22 ` Philip Kaludercic
2021-08-04 15:56 ` Óscar Fuentes
2021-08-04 18:56 ` T.V Raman
2021-08-04 19:57 ` Jesse Millwood
2021-08-04 21:45 ` T.V Raman
2021-08-05 7:01 ` Arthur Miller
2021-08-05 8:59 ` Eric S Fraga
2021-08-05 9:23 ` Tim Cross
2021-08-05 10:37 ` Eric S Fraga
2021-08-05 11:01 ` Eli Zaretskii
2021-08-05 14:45 ` Óscar Fuentes
2021-08-05 16:17 ` Eli Zaretskii
2021-08-05 23:17 ` Juri Linkov
2021-08-06 6:11 ` Eli Zaretskii
2021-08-06 2:13 ` Phil Sainty
2021-08-05 23:20 ` Juri Linkov
2021-08-06 12:39 ` John Yates
2021-08-06 14:42 ` Stefan Monnier
2021-08-06 17:20 ` Omar Polo
2021-08-10 7:22 ` Juri Linkov
2021-08-10 10:32 ` John Yates
2021-08-08 1:21 ` Dmitry Gutov [this message]
2021-08-10 7:15 ` Juri Linkov
2021-08-10 12:40 ` Dmitry Gutov
2021-08-11 6:58 ` Juri Linkov
2021-08-13 3:06 ` Dmitry Gutov
2021-08-08 1:42 ` Alfred M. Szmidt
2021-08-10 7:18 ` Juri Linkov
2021-08-10 8:16 ` Alfred M. Szmidt
2021-08-11 6:56 ` Juri Linkov
2021-08-05 9:38 ` Arthur Miller
2021-08-05 9:51 ` Jean-Christophe Helary
2021-08-05 14:33 ` T.V Raman
2021-08-05 14:55 ` Eric S Fraga
2021-08-05 15:05 ` Arthur Miller
2021-08-06 23:02 ` Rudolf Adamkovič
2021-08-07 2:03 ` T.V Raman
2021-08-07 3:15 ` Phil Sainty
2021-08-07 10:19 ` Jonas Bernoulli
2021-08-07 15:42 ` T.V Raman
2021-07-05 19:51 ` Jim Porter
-- strict thread matches above, loose matches on Subject: below --
2022-07-31 9:08 Manuel Uberti
2022-07-31 13:25 ` T.V Raman
2022-07-31 20:03 ` Juri Linkov
2022-08-21 16:04 ` Juri Linkov
2022-08-01 3:32 ` Richard Stallman
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=bda558fa-231b-819d-18da-7fe18df9c99b@yandex.ru \
--to=dgutov@yandex.ru \
--cc=emacs-devel@gnu.org \
--cc=juri@linkov.net \
--cc=ofv@wanadoo.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).