aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md84
-rw-r--r--README.org50
2 files changed, 108 insertions, 26 deletions
diff --git a/README.md b/README.md
index 962a191..1114e36 100644
--- a/README.md
+++ b/README.md
@@ -1,16 +1,18 @@
# Table of Contents
-1. [Introduction](#orgcb2bd6c)
-2. [Demo](#orgb33926c)
-3. [Features](#orge581435)
-4. [Installation](#org2f12f6d)
-5. [Related packages](#orgfa06ed1)
-6. [Contributing](#org21c0b8b)
+1. [Introduction](#org5a9b300)
+2. [Demo](#org4575105)
+3. [Features](#org4234e69)
+ 1. [Send patches](#orgd42d53c)
+ 2. [Integration with other packages](#org107026f)
+4. [Installation](#org11be6c6)
+5. [Related packages](#org935ef62)
+6. [Contributing](#orgba80d0d)
-<a id="orgcb2bd6c"></a>
+<a id="org5a9b300"></a>
# Introduction
@@ -21,29 +23,73 @@ functions for sending email with git.
mail client of choice. This means that you have to first run
`git format-patch` to generate the patches.
-- `git-email-format-patch` will ask you for a revision and generate
- patches for all the changes that occured between the revision and the
- current HEAD. It will then prepare the patches as email messages in
- the same way as `git-email-send-email`.
-
-You can see all the customizable variables running `M-x =customize-group`
-`<RET> =git-email <RET>`.
+- `git-email-format-patch` will ask you for a base revision and generate
+ patches for all the changes that occured between the revision and
+ the current HEAD. It will then prepare the patches as email
+ messages in the same way as `git-email-send-email`.
If you want to easily apply patches you have recieved via email, you
should checkout [piem](https://git.kyleam.com/piem).
-<a id="orgb33926c"></a>
+<a id="org4575105"></a>
# Demo
![img](demo.gif)
-<a id="orge581435"></a>
+<a id="org4234e69"></a>
# Features
+
+<a id="orgd42d53c"></a>
+
+## Send patches
+
+When you are in a dired, vc-dir, or ibuffer buffer, you can mark patch
+files and run `git-email-send-email` to send the patches. If you aren't
+in one of those bufffers, you will be prompted to enter a file path in
+the minibuffer.
+
+Once a message has been created, your cursor will automatically be
+placed in the appropriate location. This means that if the subject or
+"to" address is empty, the cursor will automatically be there already.
+
+By default, the built-in `message-mail` function will be used for
+composing the message. You can change this to something else by
+customizing the `git-email-compose-email-function`.
+
+When you invoke `git-email-format-patch`, you will prompted in the
+minibuffer for extra arguments to give `git format-patch`. Some common
+arguments will be displayed in your completion framework. If you want
+to select multiple options, separate them with `,` or whatever the value
+of `crm-separator` is. You can add options to the list of candidates by
+customizing `git-email-format-patch-extra-args`.
+`git-email-format-patch-default-args` contains arguments automatically
+passed to `git format-patch` if no extra arguments are given.
+
+After you have entered extra arguments, the minibuffer will prompt you
+to select the *base* commit for your patches. That is, a patch will be
+generated for the changes between the *base* commit and the current
+HEAD. Selecting the second candidate in the list is equivalent to
+typing `HEAD^1` in the shell.
+
+When the revision has been selected, patches will be generated and you
+will be greeted with a message buffer containing a patch, just like
+with `git-email-send-email`. By default, the generated patches will be
+deleted, if you don not like this behaviour, call
+`git-email-format-patch` with a prefix argument (C-u).
+
+You can see all the customizable variables running `M-x =customize-group`
+`<RET> =git-email <RET>`.
+
+
+<a id="org107026f"></a>
+
+## Integration with other packages
+
`git-email` offers minor modes for Gnus and Notmuch, these minor modes
will just configure some variables for you and provide any extra
functionality as of right now.
@@ -53,21 +99,21 @@ library. This will faciliate the transient library, you can send a
patch from the magit status buffer by pressing `W c s`.
-<a id="org2f12f6d"></a>
+<a id="org11be6c6"></a>
# Installation
You can install it by cloning this repo and adding `git-email.el` to your `load-path`.
-<a id="orgfa06ed1"></a>
+<a id="org935ef62"></a>
# Related packages
- [piem](https://git.kyleam.com/piem/) - gluing together public-inbox archives and git
-<a id="org21c0b8b"></a>
+<a id="orgba80d0d"></a>
# Contributing
diff --git a/README.org b/README.org
index c5c1ed5..bce6897 100644
--- a/README.org
+++ b/README.org
@@ -10,13 +10,10 @@ functions for sending email with git.
mail client of choice. This means that you have to first run
=git format-patch= to generate the patches.
-- =git-email-format-patch= will ask you for a revision and generate
- patches for all the changes that occured between the revision and the
- current HEAD. It will then prepare the patches as email messages in
- the same way as =git-email-send-email=.
-
-You can see all the customizable variables running =M-x =customize-group=
-=<RET> =git-email <RET>=.
+- =git-email-format-patch= will ask you for a base revision and generate
+ patches for all the changes that occured between the revision and
+ the current HEAD. It will then prepare the patches as email
+ messages in the same way as =git-email-send-email=.
If you want to easily apply patches you have recieved via email, you
should checkout [[https://git.kyleam.com/piem][piem]].
@@ -25,6 +22,45 @@ should checkout [[https://git.kyleam.com/piem][piem]].
[[file:demo.gif]]
* Features
+** Send patches
+When you are in a dired, vc-dir, or ibuffer buffer, you can mark patch
+files and run =git-email-send-email= to send the patches. If you aren't
+in one of those bufffers, you will be prompted to enter a file path in
+the minibuffer.
+
+Once a message has been created, your cursor will automatically be
+placed in the appropriate location. This means that if the subject or
+"to" address is empty, the cursor will automatically be there already.
+
+By default, the built-in =message-mail= function will be used for
+composing the message. You can change this to something else by
+customizing the =git-email-compose-email-function=.
+
+When you invoke =git-email-format-patch=, you will prompted in the
+minibuffer for extra arguments to give =git format-patch=. Some common
+arguments will be displayed in your completion framework. If you want
+to select multiple options, separate them with =,= or whatever the value
+of =crm-separator= is. You can add options to the list of candidates by
+customizing =git-email-format-patch-extra-args=.
+=git-email-format-patch-default-args= contains arguments automatically
+passed to =git format-patch= if no extra arguments are given.
+
+After you have entered extra arguments, the minibuffer will prompt you
+to select the /base/ commit for your patches. That is, a patch will be
+generated for the changes between the /base/ commit and the current
+HEAD. Selecting the second candidate in the list is equivalent to
+typing =HEAD^1= in the shell.
+
+When the revision has been selected, patches will be generated and you
+will be greeted with a message buffer containing a patch, just like
+with =git-email-send-email=. By default, the generated patches will be
+deleted, if you don not like this behaviour, call
+=git-email-format-patch= with a prefix argument (C-u).
+
+You can see all the customizable variables running =M-x =customize-group=
+=<RET> =git-email <RET>=.
+
+** Integration with other packages
=git-email= offers minor modes for Gnus and Notmuch, these minor modes
will just configure some variables for you and provide any extra
functionality as of right now.