From: Phillip Wood <phillip.wood123@gmail.com>
To: "Johannes Schindelin" <Johannes.Schindelin@gmx.de>,
"Junio C Hamano" <gitster@pobox.com>,
"Elijah Newren" <newren@gmail.com>,
"Rohit Ashiwal" <rohit.ashiwal265@gmail.com>,
"Đoàn Trần Công Danh" <congdanhqx@gmail.com>,
"Alban Gruin" <alban.gruin@gmail.com>,
"Git Mailing List" <git@vger.kernel.org>
Cc: Phillip Wood <phillip.wood@dunelm.org.uk>
Subject: [PATCH v8 0/5] cleanup ra/rebase-i-more-options
Date: Mon, 17 Aug 2020 18:39:59 +0100 [thread overview]
Message-ID: <20200817174004.92455-1-phillip.wood123@gmail.com> (raw)
In-Reply-To: <20200407141125.30872-1-phillip.wood123@gmail.com>
From: Phillip Wood <phillip.wood@dunelm.org.uk>
Thanks to dscho for his comments on v7. Patch 2 is new, it extends
commit_tree_extended() to take an explicit committer and changes am to
use that rather than exporting GIT_COMMITTER_DATE. The old patch 3 is
gone as it renamed a variable in preparation for repurposing it in the
next patch but it is no longer repurposed. The changes in patches 3 &
4 use the new argument to commit_tree_extended() rather than exporting
GIT_COMMITTER_DATE in try_to_commit().
Phillip Wood (3):
am: stop exporting GIT_COMMITTER_DATE
rebase -i: support --committer-date-is-author-date
rebase -i: support --ignore-date
Rohit Ashiwal (2):
rebase -i: add --ignore-whitespace flag
rebase: add --reset-author-date
Documentation/git-rebase.txt | 33 ++++-
builtin/am.c | 28 +++-
builtin/commit.c | 4 +-
builtin/rebase.c | 47 +++++--
commit.c | 11 +-
commit.h | 7 +-
ident.c | 24 ++--
sequencer.c | 130 +++++++++++++++++-
sequencer.h | 4 +
t/t3422-rebase-incompatible-options.sh | 2 -
t/t3436-rebase-more-options.sh | 180 +++++++++++++++++++++++++
11 files changed, 422 insertions(+), 48 deletions(-)
create mode 100755 t/t3436-rebase-more-options.sh
Range-diff against v7:
1: 5bb4226007 = 1: 5bb4226007 rebase -i: add --ignore-whitespace flag
-: ---------- > 2: 33f62dd2a0 am: stop exporting GIT_COMMITTER_DATE
2: e5fdb574ed ! 3: 34431945c8 rebase -i: support --committer-date-is-author-date
@@ Documentation/git-rebase.txt: if the other side had no changes that conflicted.
--committer-date-is-author-date::
+ Instead of using the current time as the committer date, use
+ the author date of the commit being rebased as the committer
-+ date. This option implies --force-rebase.
++ date. This option implies `--force-rebase`.
+
--ignore-date::
- These flags are passed to 'git am' to easily change the dates
@@ sequencer.c: static GIT_PATH_FUNC(rebase_path_refs_to_delete, "rebase-merge/refs
static GIT_PATH_FUNC(rebase_path_orig_head, "rebase-merge/orig-head")
static GIT_PATH_FUNC(rebase_path_verbose, "rebase-merge/verbose")
static GIT_PATH_FUNC(rebase_path_quiet, "rebase-merge/quiet")
+@@ sequencer.c: int sequencer_remove_state(struct replay_opts *opts)
+ }
+ }
+
++ free(opts->committer_name);
++ free(opts->committer_email);
+ free(opts->gpg_sign);
+ free(opts->strategy);
+ for (i = 0; i < opts->xopts_nr; i++)
@@ sequencer.c: static char *get_author(const char *message)
return NULL;
}
@@ sequencer.c: static int run_git_commit(struct repository *r,
if (!(flags & VERIFY_MSG))
@@ sequencer.c: static int try_to_commit(struct repository *r,
- commit_list_insert(current_head, &parents);
+ struct strbuf err = STRBUF_INIT;
+ struct strbuf commit_msg = STRBUF_INIT;
+ char *amend_author = NULL;
++ const char *committer = NULL;
+ const char *hook_commit = NULL;
+ enum commit_msg_cleanup_mode cleanup;
+ int res = 0;
+@@ sequencer.c: static int try_to_commit(struct repository *r,
+ goto out;
}
+- reset_ident_date();
+ if (opts->committer_date_is_author_date) {
-+ struct ident_split ident;
++ struct ident_split id;
+ struct strbuf date = STRBUF_INIT;
+
-+ if (split_ident_line(&ident, author, (int)strlen(author)) < 0) {
-+ res = error(_("malformed ident line '%s'"), author);
++ if (split_ident_line(&id, author, (int)strlen(author)) < 0) {
++ res = error(_("invalid author identity '%s'"), author);
+ goto out;
+ }
-+ if (!ident.date_begin) {
-+ res = error(_("corrupted author without date information"));
++ if (!id.date_begin) {
++ res = error(_("corrupt author: missing date information"));
+ goto out;
+ }
-+
+ strbuf_addf(&date, "@%.*s %.*s",
-+ (int)(ident.date_end - ident.date_begin),
-+ ident.date_begin,
-+ (int)(ident.tz_end - ident.tz_begin),
-+ ident.tz_begin);
-+ res = setenv("GIT_COMMITTER_DATE", date.buf, 1);
++ (int)(id.date_end - id.date_begin), id.date_begin,
++ (int)(id.tz_end - id.tz_begin), id.tz_begin);
++ committer = fmt_ident(opts->committer_name,
++ opts->committer_email,
++ WANT_COMMITTER_IDENT, date.buf,
++ IDENT_STRICT);
+ strbuf_release(&date);
-+
-+ if (res)
-+ goto out;
++ } else {
++ reset_ident_date();
+ }
-+
- if (write_index_as_tree(&tree, r->index, r->index_file, 0, NULL)) {
- res = error(_("git write-tree failed to write a tree"));
+
+ if (commit_tree_extended(msg->buf, msg->len, &tree, parents, oid,
+- author, NULL, opts->gpg_sign, extra)) {
++ author, committer, opts->gpg_sign, extra)) {
+ res = error(_("failed to write commit object"));
goto out;
+ }
@@ sequencer.c: static int read_populate_opts(struct replay_opts *opts)
opts->signoff = 1;
}
@@ sequencer.c: static int pick_commits(struct repository *r,
if (opts->allow_ff)
assert(!(opts->signoff || opts->no_commit ||
- opts->record_origin || opts->edit));
-+ opts->record_origin || opts->edit ||
-+ opts->committer_date_is_author_date));
++ opts->record_origin || opts->edit ||
++ opts->committer_date_is_author_date));
if (read_and_refresh_cache(r, opts))
return -1;
+@@ sequencer.c: static int commit_staged_changes(struct repository *r,
+ return 0;
+ }
+
++static int init_committer(struct replay_opts *opts)
++{
++ struct ident_split id;
++ const char *committer;
++
++ committer = git_committer_info(IDENT_STRICT);
++ if (split_ident_line(&id, committer, strlen(committer)) < 0)
++ return error(_("invalid committer '%s'"), committer);
++ opts->committer_name =
++ xmemdupz(id.name_begin, id.name_end - id.name_begin);
++ opts->committer_email =
++ xmemdupz(id.mail_begin, id.mail_end - id.mail_end);
++
++ return 0;
++}
++
+ int sequencer_continue(struct repository *r, struct replay_opts *opts)
+ {
+ struct todo_list todo_list = TODO_LIST_INIT;
+@@ sequencer.c: int sequencer_continue(struct repository *r, struct replay_opts *opts)
+ if (read_populate_opts(opts))
+ return -1;
+ if (is_rebase_i(opts)) {
++ if (opts->committer_date_is_author_date && init_committer(opts))
++ return -1;
++
+ if ((res = read_populate_todo(r, &todo_list, opts)))
+ goto release_todo_list;
+
+@@ sequencer.c: int complete_action(struct repository *r, struct replay_opts *opts, unsigned fla
+
+ res = -1;
+
++ if (opts->committer_date_is_author_date && init_committer(opts))
++ goto cleanup;
++
+ if (checkout_onto(r, opts, onto_name, &oid, orig_head))
+ goto cleanup;
+
## sequencer.h ##
@@ sequencer.h: struct replay_opts {
@@ sequencer.h: struct replay_opts {
int mainline;
++ char *committer_name;
++ char *committer_email;
+ char *gpg_sign;
+ enum commit_msg_cleanup_mode default_msg_cleanup;
+ int explicit_cleanup;
## t/t3422-rebase-incompatible-options.sh ##
@@ t/t3422-rebase-incompatible-options.sh: test_rebase_am_only () {
3: cf5c9a2456 < -: ---------- sequencer: rename amend_author to author_to_free
4: 3865fdf461 ! 4: 060c0ea2d0 rebase -i: support --ignore-date
@@ Commit message
## Documentation/git-rebase.txt ##
@@ Documentation/git-rebase.txt: See also INCOMPATIBLE OPTIONS below.
- date. This option implies --force-rebase.
+ date. This option implies `--force-rebase`.
--ignore-date::
- This flag is passed to 'git am' to change the author date
@@ sequencer.c: static GIT_PATH_FUNC(rebase_path_refs_to_delete, "rebase-merge/refs
static GIT_PATH_FUNC(rebase_path_orig_head, "rebase-merge/orig-head")
static GIT_PATH_FUNC(rebase_path_verbose, "rebase-merge/verbose")
static GIT_PATH_FUNC(rebase_path_quiet, "rebase-merge/quiet")
-@@ sequencer.c: static const char *author_date_from_env_array(const struct argv_array *env)
- BUG("GIT_AUTHOR_DATE missing from author script");
- }
-
-+/* Construct a free()able author string with current time as the author date */
-+static char *ignore_author_date(const char *author)
-+{
-+ int len;
-+ struct ident_split ident;
-+ struct strbuf new_author = STRBUF_INIT;
-+
-+ if (split_ident_line(&ident, author, strlen(author)) < 0) {
-+ error(_("invalid author identity: %s"), author);
-+ return NULL;
-+ }
-+
-+ len = ident.mail_end - ident.name_begin + 1;
-+ strbuf_addf(&new_author, "%.*s ", len, ident.name_begin);
-+ datestamp(&new_author);
-+ return strbuf_detach(&new_author, NULL);
-+}
-+
- static const char staged_changes_advice[] =
- N_("you have staged changes in your working tree\n"
- "If these changes are meant to be squashed into the previous commit, run:\n"
@@ sequencer.c: static int run_git_commit(struct repository *r,
if (opts->committer_date_is_author_date)
@@ sequencer.c: static int run_git_commit(struct repository *r,
argv_array_push(&cmd.args, "commit");
@@ sequencer.c: static int try_to_commit(struct repository *r,
- ident.date_begin,
- (int)(ident.tz_end - ident.tz_begin),
- ident.tz_begin);
-- res = setenv("GIT_COMMITTER_DATE", date.buf, 1);
-+ res = setenv("GIT_COMMITTER_DATE",
-+ opts->ignore_date ? "" : date.buf, 1);
+ struct ident_split id;
+ struct strbuf date = STRBUF_INIT;
+
+- if (split_ident_line(&id, author, (int)strlen(author)) < 0) {
+- res = error(_("invalid author identity '%s'"), author);
+- goto out;
++ if (!opts->ignore_date) {
++ if (split_ident_line(&id, author, (int)strlen(author)) < 0) {
++ res = error(_("invalid author identity '%s'"),
++ author);
++ goto out;
++ }
++ if (!id.date_begin) {
++ res = error(_(
++ "corrupt author: missing date information"));
++ goto out;
++ }
++ strbuf_addf(&date, "@%.*s %.*s",
++ (int)(id.date_end - id.date_begin),
++ id.date_begin,
++ (int)(id.tz_end - id.tz_begin),
++ id.tz_begin);
++ } else {
++ reset_ident_date();
+ }
+- if (!id.date_begin) {
+- res = error(_("corrupt author: missing date information"));
+- goto out;
+- }
+- strbuf_addf(&date, "@%.*s %.*s",
+- (int)(id.date_end - id.date_begin), id.date_begin,
+- (int)(id.tz_end - id.tz_begin), id.tz_begin);
+ committer = fmt_ident(opts->committer_name,
+ opts->committer_email,
+- WANT_COMMITTER_IDENT, date.buf,
++ WANT_COMMITTER_IDENT,
++ opts->ignore_date ? NULL : date.buf,
+ IDENT_STRICT);
strbuf_release(&date);
-
- if (res)
-@@ sequencer.c: static int try_to_commit(struct repository *r,
-
- reset_ident_date();
+ } else {
+ reset_ident_date();
+ }
+ if (opts->ignore_date) {
-+ author = ignore_author_date(author);
-+ if (!author) {
-+ res = -1;
++ struct ident_split id;
++ char *name, *email;
++
++ if (split_ident_line(&id, author, strlen(author)) < 0) {
++ error(_("invalid author identity '%s'"), author);
+ goto out;
+ }
-+ free(author_to_free);
-+ author_to_free = (char *)author;
++ name = xmemdupz(id.name_begin, id.name_end - id.name_begin);
++ email = xmemdupz(id.mail_begin, id.mail_end - id.mail_begin);
++ author = fmt_ident(name, email, WANT_AUTHOR_IDENT, NULL,
++ IDENT_STRICT);
++ free(name);
++ free(email);
+ }
+
- if (commit_tree_extended(msg->buf, msg->len, &tree, parents,
- oid, author, opts->gpg_sign, extra)) {
+ if (commit_tree_extended(msg->buf, msg->len, &tree, parents, oid,
+ author, committer, opts->gpg_sign, extra)) {
res = error(_("failed to write commit object"));
@@ sequencer.c: static int read_populate_opts(struct replay_opts *opts)
opts->committer_date_is_author_date = 1;
@@ sequencer.c: static int do_merge(struct repository *r,
@@ sequencer.c: static int pick_commits(struct repository *r,
if (opts->allow_ff)
assert(!(opts->signoff || opts->no_commit ||
- opts->record_origin || opts->edit ||
-- opts->committer_date_is_author_date));
-+ opts->committer_date_is_author_date ||
-+ opts->ignore_date));
+ opts->record_origin || opts->edit ||
+- opts->committer_date_is_author_date));
++ opts->committer_date_is_author_date ||
++ opts->ignore_date));
if (read_and_refresh_cache(r, opts))
return -1;
5: 0b6b19cb68 ! 5: 92ed3bed9f rebase: add --reset-author-date
@@ Commit message
## Documentation/git-rebase.txt ##
@@ Documentation/git-rebase.txt: See also INCOMPATIBLE OPTIONS below.
- date. This option implies --force-rebase.
+ date. This option implies `--force-rebase`.
--ignore-date::
+--reset-author-date::
--
2.28.0
next prev parent reply other threads:[~2020-08-17 17:41 UTC|newest]
Thread overview: 130+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-07 14:11 [PATCH 0/6] fixup ra/rebase-i-more-options Phillip Wood
2020-04-07 14:11 ` [PATCH 1/6] Revert "Revert "Merge branch 'ra/rebase-i-more-options'"" Phillip Wood
2020-04-07 15:16 ` Elijah Newren
2020-04-07 18:01 ` Phillip Wood
2020-04-07 21:04 ` Junio C Hamano
2020-04-07 21:31 ` Junio C Hamano
2020-04-12 17:47 ` Johannes Schindelin
2020-04-13 9:58 ` Phillip Wood
2020-04-13 22:05 ` Junio C Hamano
2020-04-07 14:11 ` [PATCH 2/6] t3433: remove loops from tests Phillip Wood
2020-04-07 14:30 ` Elijah Newren
2020-04-07 14:11 ` [PATCH 3/6] t3433: only compare commit dates Phillip Wood
2020-04-07 14:11 ` [PATCH 4/6] rebase -i: fix --committer-date-is-author-date Phillip Wood
2020-04-07 15:05 ` Elijah Newren
2020-04-07 18:11 ` Phillip Wood
2020-04-07 14:11 ` [PATCH 5/6] Revert "sequencer: allow callers of read_author_script() to ignore fields" Phillip Wood
2020-04-07 15:06 ` Elijah Newren
2020-04-07 14:11 ` [PATCH 6/6] t3433: improve coverage Phillip Wood
2020-04-07 15:13 ` Elijah Newren
2020-04-07 18:16 ` Phillip Wood
2020-04-07 15:17 ` [PATCH 0/6] fixup ra/rebase-i-more-options Elijah Newren
2020-04-07 18:18 ` Phillip Wood
2020-04-07 23:04 ` Junio C Hamano
2020-04-29 10:25 ` [PATCH v2 0/5] cleanup ra/rebase-i-more-options Phillip Wood
2020-04-29 10:25 ` [PATCH v2 1/5] rebase -i: add --ignore-whitespace flag Phillip Wood
2020-05-13 3:54 ` Elijah Newren
2020-05-14 9:47 ` Phillip Wood
2020-04-29 10:25 ` [PATCH v2 2/5] rebase -i: support --committer-date-is-author-date Phillip Wood
2020-05-10 11:14 ` Alban Gruin
2020-05-13 4:08 ` Elijah Newren
2020-04-29 10:25 ` [PATCH v2 3/5] sequencer: rename amend_author to author_to_free Phillip Wood
2020-04-29 10:25 ` [PATCH v2 4/5] rebase -i: support --ignore-date Phillip Wood
2020-05-10 11:14 ` Alban Gruin
2020-05-12 14:47 ` Phillip Wood
2020-05-13 15:33 ` Junio C Hamano
2020-05-13 3:54 ` Elijah Newren
2020-04-29 10:25 ` [PATCH v2 5/5] rebase: add --reset-author-date Phillip Wood
2020-04-29 19:59 ` [PATCH v2 0/5] cleanup ra/rebase-i-more-options Junio C Hamano
2020-05-13 3:57 ` Elijah Newren
2020-05-21 10:14 ` [PATCH v3 " Phillip Wood
2020-05-21 10:14 ` [PATCH v3 1/5] rebase -i: add --ignore-whitespace flag Phillip Wood
2020-05-21 10:14 ` [PATCH v3 2/5] rebase -i: support --committer-date-is-author-date Phillip Wood
2020-05-21 10:14 ` [PATCH v3 3/5] sequencer: rename amend_author to author_to_free Phillip Wood
2020-05-21 10:14 ` [PATCH v3 4/5] rebase -i: support --ignore-date Phillip Wood
2020-05-23 12:30 ` Đoàn Trần Công Danh
2020-05-23 15:43 ` Phillip Wood
2020-05-23 15:52 ` Đoàn Trần Công Danh
2020-05-23 18:50 ` Phillip Wood
2020-05-23 23:05 ` Đoàn Trần Công Danh
2020-05-27 9:55 ` Phillip Wood
2020-05-24 16:32 ` Junio C Hamano
2020-05-21 10:14 ` [PATCH v3 5/5] rebase: add --reset-author-date Phillip Wood
2020-05-22 15:54 ` [PATCH v3 0/5] cleanup ra/rebase-i-more-options Elijah Newren
2020-05-23 8:55 ` Phillip Wood
2020-05-23 6:59 ` Johannes Schindelin
2020-05-27 17:33 ` [PATCH v4 " Phillip Wood
2020-05-27 17:33 ` [PATCH v4 1/5] rebase -i: add --ignore-whitespace flag Phillip Wood
2020-05-29 2:38 ` Johannes Schindelin
2020-06-01 9:23 ` Kerry, Richard
2020-06-01 10:26 ` Phillip Wood
2020-06-01 21:03 ` Johannes Schindelin
2020-05-27 17:33 ` [PATCH v4 2/5] rebase -i: support --committer-date-is-author-date Phillip Wood
2020-05-29 2:52 ` Johannes Schindelin
2020-06-01 10:33 ` Phillip Wood
2020-05-27 17:33 ` [PATCH v4 3/5] sequencer: rename amend_author to author_to_free Phillip Wood
2020-05-27 17:33 ` [PATCH v4 4/5] rebase -i: support --ignore-date Phillip Wood
2020-05-27 17:33 ` [PATCH v4 5/5] rebase: add --reset-author-date Phillip Wood
2020-05-27 17:57 ` [PATCH v4 6/5] fixup! " Phillip Wood
2020-05-28 13:17 ` Đoàn Trần Công Danh
2020-05-29 2:59 ` Johannes Schindelin
2020-06-01 10:36 ` Phillip Wood
2020-05-27 21:10 ` [PATCH v4 0/5] cleanup ra/rebase-i-more-options Junio C Hamano
2020-06-26 9:55 ` [PATCH v5 " Phillip Wood
2020-06-26 9:55 ` [PATCH v5 1/5] rebase -i: add --ignore-whitespace flag Phillip Wood
2020-06-26 13:37 ` Đoàn Trần Công Danh
2020-06-26 14:43 ` Phillip Wood
2020-06-26 16:03 ` Junio C Hamano
2020-06-29 14:14 ` Đoàn Trần Công Danh
2020-07-13 10:02 ` Phillip Wood
2020-06-26 15:43 ` Junio C Hamano
2020-06-26 9:55 ` [PATCH v5 2/5] rebase -i: support --committer-date-is-author-date Phillip Wood
2020-06-26 9:55 ` [PATCH v5 3/5] sequencer: rename amend_author to author_to_free Phillip Wood
2020-06-26 9:55 ` [PATCH v5 4/5] rebase -i: support --ignore-date Phillip Wood
2020-06-26 14:09 ` Đoàn Trần Công Danh
2020-06-26 14:38 ` Phillip Wood
2020-06-26 16:29 ` Junio C Hamano
2020-06-26 9:55 ` [PATCH v5 5/5] rebase: add --reset-author-date Phillip Wood
2020-06-26 16:35 ` Junio C Hamano
2020-06-26 18:07 ` Phillip Wood
2020-06-26 15:04 ` [PATCH v5 0/5] cleanup ra/rebase-i-more-options Junio C Hamano
2020-07-13 10:10 ` [PATCH v6 0/5] fixup ra/rebase-i-more-options Phillip Wood
2020-07-13 10:10 ` [PATCH v6 1/5] rebase -i: add --ignore-whitespace flag Phillip Wood
2020-07-13 10:10 ` [PATCH v6 2/5] rebase -i: support --committer-date-is-author-date Phillip Wood
2020-07-15 14:27 ` Đoàn Trần Công Danh
2020-07-16 8:23 ` Phillip Wood
2020-07-16 13:06 ` Đoàn Trần Công Danh
2020-07-16 15:17 ` Phillip Wood
2020-07-16 17:34 ` Phillip Wood
2020-07-17 0:25 ` Đoàn Trần Công Danh
2020-07-13 10:10 ` [PATCH v6 3/5] sequencer: rename amend_author to author_to_free Phillip Wood
2020-07-13 10:10 ` [PATCH v6 4/5] rebase -i: support --ignore-date Phillip Wood
2020-07-13 10:10 ` [PATCH v6 5/5] rebase: add --reset-author-date Phillip Wood
2020-07-13 15:28 ` [PATCH v6 0/5] fixup ra/rebase-i-more-options Junio C Hamano
2020-07-15 8:55 ` Phillip Wood
2020-07-16 17:32 ` [PATCH v7 0/5] cleanup ra/rebase-i-more-options Phillip Wood
2020-07-16 17:32 ` [PATCH v7 1/5] rebase -i: add --ignore-whitespace flag Phillip Wood
2020-07-16 17:32 ` [PATCH v7 2/5] rebase -i: support --committer-date-is-author-date Phillip Wood
2020-08-13 13:46 ` Johannes Schindelin
2020-07-16 17:32 ` [PATCH v7 3/5] sequencer: rename amend_author to author_to_free Phillip Wood
2020-07-16 17:32 ` [PATCH v7 4/5] rebase -i: support --ignore-date Phillip Wood
2020-08-13 14:07 ` Johannes Schindelin
2020-07-16 17:32 ` [PATCH v7 5/5] rebase: add --reset-author-date Phillip Wood
2020-07-16 17:39 ` [PATCH v7 0/5] cleanup ra/rebase-i-more-options Junio C Hamano
2020-08-13 14:24 ` Johannes Schindelin
2020-08-13 17:46 ` Junio C Hamano
2020-08-13 19:51 ` Phillip Wood
2020-08-17 17:39 ` Phillip Wood [this message]
2020-08-17 17:40 ` [PATCH v8 1/5] rebase -i: add --ignore-whitespace flag Phillip Wood
2020-08-17 17:40 ` [PATCH v8 2/5] am: stop exporting GIT_COMMITTER_DATE Phillip Wood
2020-08-17 19:12 ` Junio C Hamano
2020-08-19 10:20 ` Phillip Wood
2020-08-19 15:51 ` Junio C Hamano
2020-08-20 15:23 ` Phillip Wood
2020-08-17 17:40 ` [PATCH v8 3/5] rebase -i: support --committer-date-is-author-date Phillip Wood
2020-08-26 21:41 ` Junio C Hamano
2020-08-17 17:40 ` [PATCH v8 4/5] rebase -i: support --ignore-date Phillip Wood
2020-08-19 10:22 ` Phillip Wood
2020-08-19 22:20 ` Junio C Hamano
2020-08-20 15:16 ` Phillip Wood
2020-08-17 17:40 ` [PATCH v8 5/5] rebase: add --reset-author-date Phillip Wood
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200817174004.92455-1-phillip.wood123@gmail.com \
--to=phillip.wood123@gmail.com \
--cc=Johannes.Schindelin@gmx.de \
--cc=alban.gruin@gmail.com \
--cc=congdanhqx@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=newren@gmail.com \
--cc=phillip.wood@dunelm.org.uk \
--cc=rohit.ashiwal265@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).