unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Antoine Kalmbach <ane@iki.fi>
To: rms@gnu.org
Cc: emacs-devel@gnu.org, philipk@posteo.net
Subject: Re: Supporting git-send-email/hg email in VC
Date: Fri, 26 Aug 2022 10:12:40 +0300	[thread overview]
Message-ID: <lyzgfrsck7.fsf@iki.fi> (raw)
In-Reply-To: <E1oRQ8R-0007zF-6A@fencepost.gnu.org>

Richard Stallman <rms@gnu.org> writes:

> You can already send mail inside Emacs.  It has had a feature
> to edit and send messages since 1985 or so.
>
> VC is a generic interface to version control systems.  The idea is to
> make each command handles whichever version control system the files
> are using.
>

Absolutely. The whole point of this exercise is to leverage Emacs'
ability to compose mail together with VC. Most version control systems
support email based workflows, at least the ones I'm familiar with.

> If you'd like to implement the feature of "collect the differences
> from some previous version and email them," please do not implement
> it such that it is limited to one particular version control system,
> or only to version control systems that have some special support.
>
> Please implement a default method that works for all version control
> systems.  The default method cannot use either git-send-email or
> git-format-patch, because they (I presume) work only with git.  It
> should make use of vc-diff-internal to generate the patch.
>
> Having special code to handle the git case is ok, and it can use
> git-format-patch if that works -- provided the default method makes
> the feature work for other version control systems.
>

The idea is to provide a generic implementation for all version control
systems which would simply compose a new message and insert a suitable
diff into it, probably using `vc-diff-internal` or something like it.

Then some version control systems (like Git and Mercurial)
will have a different method, since the standard way of working with Git
and email is to send patches in a mbox-like format, where the patch is
inline, and then users can feed those mbox entries to `git am` (which is
short for "apply mbox").  This is different from `git apply`, which
applies a diff directly.

Such behavior for Git could be user customizable, e.g., to suit the
Emacs workflow, users can choose that VC patches be sent as
attachments.  We would default to the patches be directly in the
messages, since this is the standard Git approach.  Emacs developers can
either customize this or use `M-x submit-emacs-patch`.

So, in summary, there would be one default implementation that would
work on any version control system VC supports, and some version control
systems will have dedicated support. 

-- 
Antoine Kalmbach



      reply	other threads:[~2022-08-26  7:12 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-24 11:56 Supporting git-send-email/hg email in VC Antoine Kalmbach
2022-08-24 14:43 ` Akib Azmain Turja
2022-08-24 15:11 ` Philip Kaludercic
2022-08-24 17:06 ` Stefan Monnier
2022-08-24 17:44 ` Juri Linkov
2022-08-24 21:31 ` Sam James
2022-08-25  8:36   ` Antoine Kalmbach
2022-08-25 14:47     ` Sean Whitton
2022-08-25 15:52       ` Philip Kaludercic
2022-08-25 22:04         ` Sean Whitton
2022-08-25 17:34     ` Stefan Monnier
2022-08-25 18:04       ` Philip Kaludercic
2022-08-26  7:14         ` Antoine Kalmbach
2022-08-26  7:15       ` Antoine Kalmbach
2022-08-26  3:35 ` Richard Stallman
2022-08-26  7:12   ` Antoine Kalmbach [this message]

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=lyzgfrsck7.fsf@iki.fi \
    --to=ane@iki.fi \
    --cc=emacs-devel@gnu.org \
    --cc=philipk@posteo.net \
    --cc=rms@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).