summaryrefslogtreecommitdiff
path: root/README.md
blob: ecd1ba7341ada66082ecd9a9807b22a15c4314b0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# Usage

Let's say you use notmuch as your email client and you want to try out
one of those git patchset sent on a mailing list with all diffs
grouped in a thread, one patch per email. ("[PATCH 1/15] do blah...").

Simply exporting the thread is not enough, you need to skip any
feedbacks or cover letters that have been posted on the thread.

This is what this script does.

Example usage:

    $ notmuch-extract-patchset thread:000000000000265f > feature.patchset
    $ git checkout -b test-feature
    $ git am feature.patchet


You can use the following to use it directly from emacs:

    (defun apply-thread-patchset (repo branch)
      (interactive "Dgit repo: \nsnew branch name: ")
      (let ((tid notmuch-show-thread-id)
        (tmp "/tmp/notmuch-patchset"))
        (shell-command (format "notmuch-extract-patch %s > %s && ( cd %s && git checkout -b %s && git am %s )"
                               (shell-quote-argument tid)
                               (shell-quote-argument tmp)
                               (shell-quote-argument (expand-file-name repo))
                               (shell-quote-argument branch)
                               (shell-quote-argument tmp)))))