From: Wink Saville <wink@saville.com>
To: git@vger.kernel.org
Cc: johannes.schindelin@gmx.de, Wink Saville <wink@saville.com>
Subject: [RFC PATCH 0/3] rebase-interactive
Date: Tue, 20 Mar 2018 13:45:04 -0700 [thread overview]
Message-ID: <20180320204507.12623-1-wink@saville.com> (raw)
I've not worked on the git sources before and while looking into
fixing test_expect_failure 'exchange two commits with -p' in
t3404-rebase-interactive.sh, I found it difficult to understand
the git testing infracture and git-rebase--interactive.sh.
So as part of learning my way around I thought I'd refactor
git-rebase--interactive to make it easier for me to understand.
At this point I do have some understanding and will be working
on fixing the bug. In the mean time I'm requesting comments on
this refactoring patch sequence.
Patch 0001 creates a library of functions which can be
used by git-rebase--interactive and
git-rebase--interactive--preserve-merges. The functions are
those that exist in git-rebase--interactive.sh plus new
functions created from the body of git_rebase_interactive
that will be used git_rebase_interactive in the third patch
and git_rebase_interactive_preserve_merges in the second
patch. None of the functions are invoked so there is no
logic changes and the system builds and passes all tests
on travis-ci.org.
Patch 0002 creates git-rebase--interactive--preserve-merges.sh
with the function git_rebase_interactive_preserve_merges. The contents
of the function are refactored from git_rebase_interactive and
uses existing and new functions in the library. A small modification
of git-rebase is also done to invoke the new function when the -p
switch is used with git-rebase. When this is applied on top of
0001 the system builds and passes all tests on travis-ci.org.
The final patch, 0003, removes all unused code from
git_rebase_interactive and uses the functions from the library
where appropriate. And, of course, when applied on top of 0002
the system builds and passes all tests on travis-ci.org.
Wink Saville (3):
rebase-interactive: create git-rebase--interactive--lib.sh
rebase-interactive: create git-rebase--interactive--preserve-merges
rebase-interactive: refactor git-rebase--interactive to use library
.gitignore | 2 +
Makefile | 2 +
git-rebase--interactive--lib.sh | 944 +++++++++++++++++++++++++
git-rebase--interactive--preserve-merges.sh | 134 ++++
git-rebase--interactive.sh | 1019 +--------------------------
git-rebase.sh | 7 +-
6 files changed, 1107 insertions(+), 1001 deletions(-)
create mode 100644 git-rebase--interactive--lib.sh
create mode 100644 git-rebase--interactive--preserve-merges.sh
--
2.16.2
next reply other threads:[~2018-03-20 20:45 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-20 20:45 Wink Saville [this message]
2018-03-20 20:45 ` [RFC PATCH 1/3] rebase-interactive: create git-rebase--interactive--lib.sh Wink Saville
2018-03-20 20:45 ` [RFC PATCH 2/3] rebase-interactive: create git-rebase--interactive--preserve-merges Wink Saville
2018-03-20 20:45 ` [RFC PATCH 3/3] rebase-interactive: refactor git-rebase--interactive to use library Wink Saville
2018-03-20 21:11 ` [RFC PATCH 0/3] rebase-interactive Eric Sunshine
2018-03-20 21:23 ` Wink Saville
2018-03-20 21:47 ` Eric Sunshine
2018-03-21 3:31 ` Wink Saville
2018-03-21 8:54 ` Eric Sunshine
2018-03-21 17:44 ` [RFC PATCH v2 0/1] rebase-interactive: Add git_rebase__interactive__preserve_merges Wink Saville
2018-03-21 17:44 ` [RFC PATCH v2 1/1] " Wink Saville
2018-03-21 19:42 ` Junio C Hamano
2018-03-21 21:49 ` Wink Saville
2018-03-21 22:43 ` Junio C Hamano
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=20180320204507.12623-1-wink@saville.com \
--to=wink@saville.com \
--cc=git@vger.kernel.org \
--cc=johannes.schindelin@gmx.de \
/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).