diff options
-rw-r--r-- | README.md | 84 | ||||
-rw-r--r-- | README.org | 50 |
2 files changed, 108 insertions, 26 deletions
@@ -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  -<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 @@ -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. |