pull: set reflog message
f947413 (Use GIT_REFLOG_ACTION environment variable instead., 2006-12-28) established git-pull's method for setting the reflog message, which is to set the environment variable GIT_REFLOG_ACTION to the evaluation of "pull${1+ $*}" if it has not already been set. Re-implement this behavior. Helped-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Paul Tan <pyokagan@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Paul Tan committed
Jun 18, 2015 at 18:54 UTC
41fca0989e7ebf3e809e08840c89f44021aa1f2c
1 file changed
+22
builtin/pull.c
+22
@@ -168,6 +168,25 @@ static void argv_push_force(struct argv_array *arr)
168
argv_array_push(arr, "-f");
169
}
170
171
+/**
172
+ * Sets the GIT_REFLOG_ACTION environment variable to the concatenation of argv
173
+ */
174
+static void set_reflog_message(int argc, const char **argv)
175
+{
176
+ int i;
177
+ struct strbuf msg = STRBUF_INIT;
178
+
179
+ for (i = 0; i < argc; i++) {
180
+ if (i)
181
+ strbuf_addch(&msg, ' ');
182
+ strbuf_addstr(&msg, argv[i]);
183
+ }
184
+
185
+ setenv("GIT_REFLOG_ACTION", msg.buf, 0);
186
+
187
+ strbuf_release(&msg);
188
+}
189
+
190
/**
191
* If pull.ff is unset, returns NULL. If pull.ff is "true", returns "--ff". If
192
* pull.ff is "false", returns "--no-ff". If pull.ff is "only", returns
@@ -443,6 +462,9 @@ int cmd_pull(int argc, const char **argv, const char *prefix)
462
die_errno("could not exec %s", path);
463
}
464
465
+ if (!getenv("GIT_REFLOG_ACTION"))
466
+ set_reflog_message(argc, argv);
467
+
468
argc = parse_options(argc, argv, prefix, pull_options, pull_usage, 0);
469
470
parse_repo_refspecs(argc, argv, &repo, &refspecs);