git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
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


  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).