All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>
To: git@vger.kernel.org
Cc: "Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>
Subject: [PATCH] rebase: new option to post edit a squashed or fixed up commit
Date: Sun,  9 Mar 2014 10:12:17 +0700	[thread overview]
Message-ID: <1394334737-17406-1-git-send-email-pclouds@gmail.com> (raw)

After squashing or fixing up, you may want to have a final look at the
commit, edit some more if needed or even do some testing. --postedit
enables that. This is (to me) a paranoid mode so either I enable it
for all squashes and fixups, or none. Hence a new option, not new todo
commands that give finer selection.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 Documentation/git-rebase.txt | 5 +++++
 git-rebase--interactive.sh   | 5 +++++
 git-rebase.sh                | 7 +++++++
 3 files changed, 17 insertions(+)

diff --git a/Documentation/git-rebase.txt b/Documentation/git-rebase.txt
index 2a93c64..dacb163 100644
--- a/Documentation/git-rebase.txt
+++ b/Documentation/git-rebase.txt
@@ -432,6 +432,11 @@ recreates the topic branch with fresh commits so it can be remerged
 successfully without needing to "revert the reversion" (see the
 link:howto/revert-a-faulty-merge.html[revert-a-faulty-merge How-To] for details).
 
+--[no-]postedit::
+	With --interactive, stop after performing the command "squash"
+	or "fixup". This gives the user a chance to look at the final
+	commit and update or test it if needed.
+
 include::merge-strategies.txt[]
 
 NOTES
diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh
index a1adae8..42061fc 100644
--- a/git-rebase--interactive.sh
+++ b/git-rebase--interactive.sh
@@ -571,6 +571,11 @@ do_next () {
 			;;
 		esac
 		record_in_rewritten $sha1
+		if test -n "$postedit"
+		then
+			warn "Stopped at $sha1... $rest"
+			exit_with_patch $sha1 0
+		fi
 		;;
 	x|"exec")
 		read -r command rest < "$todo"
diff --git a/git-rebase.sh b/git-rebase.sh
index 5f6732b..2d4beb7 100755
--- a/git-rebase.sh
+++ b/git-rebase.sh
@@ -32,6 +32,7 @@ verify             allow pre-rebase hook to run
 rerere-autoupdate  allow rerere to update index with resolved conflicts
 root!              rebase all reachable commits up to the root(s)
 autosquash         move commits that begin with squash!/fixup! under -i
+postedit           stop after squash or fixup commands
 committer-date-is-author-date! passed to 'git am'
 ignore-date!       passed to 'git am'
 whitespace=!       passed to 'git apply'
@@ -264,6 +265,12 @@ do
 	--no-autosquash)
 		autosquash=
 		;;
+	--postedit)
+		postedit=t
+		;;
+	--no-postedit)
+		postedit=
+		;;
 	--fork-point)
 		fork_point=t
 		;;
-- 
1.9.0.40.gaa8c3ea

             reply	other threads:[~2014-03-09  3:12 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-09  3:12 Nguyễn Thái Ngọc Duy [this message]
2014-03-10 19:47 ` [PATCH] rebase: new option to post edit a squashed or fixed up commit Junio C Hamano
2014-03-11 10:01   ` Duy Nguyen

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

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1394334737-17406-1-git-send-email-pclouds@gmail.com \
    --to=pclouds@gmail.com \
    --cc=git@vger.kernel.org \
    /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.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.