]>
Commit | Line | Data |
---|---|---|
42e2cba2 | 1 | git-am(1) |
05625af3 | 2 | ========= |
42e2cba2 PB |
3 | |
4 | NAME | |
5 | ---- | |
c3f0baac | 6 | git-am - Apply a series of patches from a mailbox |
42e2cba2 PB |
7 | |
8 | ||
9 | SYNOPSIS | |
10 | -------- | |
353ce815 | 11 | [verse] |
d84029b6 | 12 | 'git-am' [--signoff] [--dotest=<dir>] [--utf8 | --no-utf8] [--binary] [--3way] |
2092a1fe JH |
13 | [--interactive] [--whitespace=<option>] [-C<n>] [-p<n>] |
14 | <mbox>... | |
087b6742 | 15 | 'git-am' [--skip | --resolved] |
42e2cba2 PB |
16 | |
17 | DESCRIPTION | |
18 | ----------- | |
19 | Splits mail messages in a mailbox into commit log message, | |
20 | authorship information and patches, and applies them to the | |
21 | current branch. | |
22 | ||
baa720f5 JH |
23 | OPTIONS |
24 | ------- | |
d4144612 MT |
25 | <mbox>...:: |
26 | The list of mailbox files to read patches from. If you do not | |
27 | supply this argument, reads from the standard input. | |
28 | ||
baa720f5 JH |
29 | --signoff:: |
30 | Add `Signed-off-by:` line to the commit message, using | |
31 | the committer identity of yourself. | |
42e2cba2 | 32 | |
baa720f5 JH |
33 | --dotest=<dir>:: |
34 | Instead of `.dotest` directory, use <dir> as a working | |
35 | area to store extracted patches. | |
42e2cba2 | 36 | |
d84029b6 JH |
37 | --keep:: |
38 | Pass `-k` flag to `git-mailinfo` (see gitlink:git-mailinfo[1]). | |
39 | ||
40 | --utf8:: | |
41 | Pass `-u` flag to `git-mailinfo` (see gitlink:git-mailinfo[1]). | |
42 | The proposed commit log message taken from the e-mail | |
43 | are re-coded into UTF-8 encoding (configuration variable | |
44 | `i18n.commitencoding` can be used to specify project's | |
45 | preferred encoding if it is not UTF-8). | |
46 | + | |
47 | This was optional in prior versions of git, but now it is the | |
48 | default. You could use `--no-utf8` to override this. | |
49 | ||
50 | --no-utf8:: | |
51 | Do not pass `-u` flag to `git-mailinfo` (see | |
baa720f5 JH |
52 | gitlink:git-mailinfo[1]). |
53 | ||
087b6742 JH |
54 | --binary:: |
55 | Pass `--allow-binary-replacement` flag to `git-apply` | |
56 | (see gitlink:git-apply[1]). | |
57 | ||
baa720f5 JH |
58 | --3way:: |
59 | When the patch does not apply cleanly, fall back on | |
60 | 3-way merge, if the patch records the identity of blobs | |
61 | it is supposed to apply to, and we have those blobs | |
62 | locally. | |
63 | ||
64 | --skip:: | |
65 | Skip the current patch. This is only meaningful when | |
66 | restarting an aborted patch. | |
67 | ||
8273c79a JH |
68 | --whitespace=<option>:: |
69 | This flag is passed to the `git-apply` program that applies | |
70 | the patch. | |
71 | ||
2092a1fe | 72 | -C<n>, -p<n>:: |
a947ab79 | 73 | These flags are passed to the `git-apply` program that applies |
67dad687 MT |
74 | the patch. |
75 | ||
baa720f5 JH |
76 | --interactive:: |
77 | Run interactively, just like git-applymbox. | |
78 | ||
087b6742 JH |
79 | --resolved:: |
80 | After a patch failure (e.g. attempting to apply | |
81 | conflicting patch), the user has applied it by hand and | |
82 | the index file stores the result of the application. | |
83 | Make a commit using the authorship and commit log | |
84 | extracted from the e-mail message and the current index | |
85 | file, and continue. | |
baa720f5 JH |
86 | |
87 | DISCUSSION | |
88 | ---------- | |
89 | ||
2499857b JH |
90 | The commit author name is taken from the "From: " line of the |
91 | message, and commit author time is taken from the "Date: " line | |
92 | of the message. The "Subject: " line is used as the title of | |
93 | the commit, after stripping common prefix "[PATCH <anything>]". | |
94 | It is supposed to describe what the commit is about concisely as | |
95 | a one line text. | |
96 | ||
97 | The body of the message (iow, after a blank line that terminates | |
98 | RFC2822 headers) can begin with "Subject: " and "From: " lines | |
99 | that are different from those of the mail header, to override | |
100 | the values of these fields. | |
101 | ||
102 | The commit message is formed by the title taken from the | |
103 | "Subject: ", a blank line and the body of the message up to | |
104 | where the patch begins. Excess whitespaces at the end of the | |
105 | lines are automatically stripped. | |
106 | ||
107 | The patch is expected to be inline, directly following the | |
108 | message. Any line that is of form: | |
109 | ||
110 | * three-dashes and end-of-line, or | |
111 | * a line that begins with "diff -", or | |
112 | * a line that begins with "Index: " | |
113 | ||
114 | is taken as the beginning of a patch, and the commit log message | |
115 | is terminated before the first occurrence of such a line. | |
116 | ||
baa720f5 JH |
117 | When initially invoking it, you give it names of the mailboxes |
118 | to crunch. Upon seeing the first patch that does not apply, it | |
119 | aborts in the middle, just like 'git-applymbox' does. You can | |
120 | recover from this in one of two ways: | |
121 | ||
122 | . skip the current one by re-running the command with '--skip' | |
123 | option. | |
124 | ||
087b6742 JH |
125 | . hand resolve the conflict in the working directory, and update |
126 | the index file to bring it in a state that the patch should | |
1e2ccd3a | 127 | have produced. Then run the command with '--resolved' option. |
baa720f5 JH |
128 | |
129 | The command refuses to process new mailboxes while `.dotest` | |
130 | directory exists, so if you decide to start over from scratch, | |
131 | run `rm -f .dotest` before running the command with mailbox | |
132 | names. | |
42e2cba2 PB |
133 | |
134 | ||
135 | SEE ALSO | |
136 | -------- | |
8273c79a | 137 | gitlink:git-applymbox[1], gitlink:git-applypatch[1], gitlink:git-apply[1]. |
42e2cba2 PB |
138 | |
139 | ||
140 | Author | |
141 | ------ | |
142 | Written by Junio C Hamano <junkio@cox.net> | |
143 | ||
144 | Documentation | |
145 | -------------- | |
146 | Documentation by Petr Baudis, Junio C Hamano and the git-list <git@vger.kernel.org>. | |
147 | ||
42e2cba2 PB |
148 | GIT |
149 | --- | |
150 | Part of the gitlink:git[7] suite | |
151 |