From: Martin von Zweigbergk <martin.von.zweigbergk@gmail.com>
To: git@vger.kernel.org
Cc: Junio C Hamano <gitster@pobox.com>,
Johannes Schindelin <Johannes.Schindelin@gmx.de>,
Johannes Sixt <j.sixt@viscovery.net>,
Christian Couder <chriscool@tuxfamily.org>,
Thomas Rast <trast@student.ethz.ch>,
Martin von Zweigbergk <martin.von.zweigbergk@gmail.com>
Subject: [PATCH v2 19/31] rebase: extract am code to new source file
Date: Sun, 6 Feb 2011 13:43:48 -0500 [thread overview]
Message-ID: <1297017841-20678-20-git-send-email-martin.von.zweigbergk@gmail.com> (raw)
In-Reply-To: <1297017841-20678-1-git-send-email-martin.von.zweigbergk@gmail.com>
Extract the code for am-based rebase to git-rebase--am.sh.
Suggested-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Martin von Zweigbergk <martin.von.zweigbergk@gmail.com>
---
.gitignore | 1 +
Makefile | 1 +
git-rebase--am.sh | 34 ++++++++++++++++++++++++++++++++++
git-rebase.sh | 31 ++-----------------------------
4 files changed, 38 insertions(+), 29 deletions(-)
create mode 100644 git-rebase--am.sh
diff --git a/.gitignore b/.gitignore
index a8b98b4..7aaf5c7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -102,6 +102,7 @@
/git-quiltimport
/git-read-tree
/git-rebase
+/git-rebase--am
/git-rebase--interactive
/git-rebase--merge
/git-receive-pack
diff --git a/Makefile b/Makefile
index f47550f..3cc60cb 100644
--- a/Makefile
+++ b/Makefile
@@ -369,6 +369,7 @@ SCRIPT_SH += git-merge-resolve.sh
SCRIPT_SH += git-mergetool.sh
SCRIPT_SH += git-pull.sh
SCRIPT_SH += git-quiltimport.sh
+SCRIPT_SH += git-rebase--am.sh
SCRIPT_SH += git-rebase--interactive.sh
SCRIPT_SH += git-rebase--merge.sh
SCRIPT_SH += git-rebase.sh
diff --git a/git-rebase--am.sh b/git-rebase--am.sh
new file mode 100644
index 0000000..263987c
--- /dev/null
+++ b/git-rebase--am.sh
@@ -0,0 +1,34 @@
+#!/bin/sh
+#
+# Copyright (c) 2010 Junio C Hamano.
+#
+
+. git-sh-setup
+
+case "$action" in
+continue)
+ git am --resolved --3way --resolvemsg="$resolvemsg" &&
+ move_to_original_branch
+ exit
+ ;;
+skip)
+ git am --skip -3 --resolvemsg="$resolvemsg" &&
+ move_to_original_branch
+ exit
+ ;;
+esac
+
+test -n "$rebase_root" && root_flag=--root
+
+git format-patch -k --stdout --full-index --ignore-if-in-upstream \
+ --src-prefix=a/ --dst-prefix=b/ \
+ --no-renames $root_flag "$revisions" |
+git am $git_am_opt --rebasing --resolvemsg="$resolvemsg" &&
+move_to_original_branch
+ret=$?
+test 0 != $ret -a -d "$state_dir" &&
+ echo $head_name > "$state_dir/head-name" &&
+ echo $onto > "$state_dir/onto" &&
+ echo $orig_head > "$state_dir/orig-head" &&
+ echo "$GIT_QUIET" > "$state_dir/quiet"
+exit $ret
diff --git a/git-rebase.sh b/git-rebase.sh
index 44e169f..c60221b 100755
--- a/git-rebase.sh
+++ b/git-rebase.sh
@@ -91,7 +91,7 @@ run_specific_rebase () {
GIT_EDITOR=:
export GIT_EDITOR
fi
- test "$type" != am && . git-rebase--$type
+ . git-rebase--$type
}
run_pre_rebase_hook () {
@@ -261,17 +261,11 @@ continue)
}
read_basic_state
run_specific_rebase
- git am --resolved --3way --resolvemsg="$resolvemsg" &&
- move_to_original_branch
- exit
;;
skip)
git reset --hard HEAD || exit $?
read_basic_state
run_specific_rebase
- git am -3 --skip --resolvemsg="$resolvemsg" &&
- move_to_original_branch
- exit
;;
abort)
git rerere clear
@@ -324,14 +318,12 @@ then
shift
upstream=`git rev-parse --verify "${upstream_name}^0"` ||
die "invalid upstream $upstream_name"
- unset root_flag
upstream_arg="$upstream_name"
else
test -z "$onto" && die "You must specify --onto when using --root"
unset upstream_name
unset upstream
- root_flag="--root"
- upstream_arg="$root_flag"
+ upstream_arg=--root
fi
# Make sure the branch to rebase onto is valid.
@@ -457,23 +449,4 @@ else
revisions="$upstream..$orig_head"
fi
-if test -z "$do_merge"
-then
- git format-patch -k --stdout --full-index --ignore-if-in-upstream \
- --src-prefix=a/ --dst-prefix=b/ \
- --no-renames $root_flag "$revisions" |
- git am $git_am_opt --rebasing --resolvemsg="$resolvemsg" &&
- move_to_original_branch
- ret=$?
- test 0 != $ret -a -d "$apply_dir" &&
- echo $head_name > "$apply_dir/head-name" &&
- echo $onto > "$apply_dir/onto" &&
- echo $orig_head > "$apply_dir/orig-head" &&
- echo "$GIT_QUIET" > "$apply_dir/quiet"
- exit $ret
-fi
-
-# start doing a rebase with git-merge
-# this is rename-aware if the recursive (default) strategy is used
-
run_specific_rebase
--
1.7.4.rc2.33.g8a14f
next prev parent reply other threads:[~2011-02-06 18:47 UTC|newest]
Thread overview: 118+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-12-28 9:30 [PATCH 00/31] Refactor rebase Martin von Zweigbergk
2010-12-28 9:30 ` [PATCH 01/31] rebase: clearer names for directory variables Martin von Zweigbergk
2010-12-28 23:08 ` Junio C Hamano
2010-12-28 20:53 ` Martin von Zweigbergk
2010-12-28 9:30 ` [PATCH 02/31] rebase: refactor reading of state Martin von Zweigbergk
2010-12-28 23:08 ` Junio C Hamano
2010-12-29 8:09 ` Martin von Zweigbergk
2010-12-28 9:30 ` [PATCH 03/31] rebase: read state outside loop Martin von Zweigbergk
2010-12-28 9:30 ` [PATCH 04/31] rebase: remove unused rebase state 'prev_head' Martin von Zweigbergk
2010-12-28 9:30 ` [PATCH 05/31] rebase: improve detection of rebase in progress Martin von Zweigbergk
2010-12-28 23:08 ` Junio C Hamano
2010-12-28 20:35 ` Martin von Zweigbergk
2011-01-12 10:20 ` Martin von Zweigbergk
2010-12-28 9:30 ` [PATCH 06/31] rebase: act on command line outside parsing loop Martin von Zweigbergk
2010-12-28 9:30 ` [PATCH 07/31] rebase: stricter check of standalone sub command Martin von Zweigbergk
2010-12-28 9:30 ` [PATCH 08/31] rebase: align variable names Martin von Zweigbergk
2011-01-04 19:12 ` Thomas Rast
2011-01-05 2:25 ` Martin von Zweigbergk
2010-12-28 9:30 ` [PATCH 09/31] rebase: align variable content Martin von Zweigbergk
2010-12-28 9:30 ` [PATCH 10/31] rebase: factor out command line option processing Martin von Zweigbergk
2010-12-28 9:30 ` [PATCH 11/31] rebase -i: remove now unnecessary directory checks Martin von Zweigbergk
2010-12-28 9:30 ` [PATCH 12/31] rebase: reorder validation steps Martin von Zweigbergk
2010-12-28 9:30 ` [PATCH 13/31] rebase: factor out reference parsing Martin von Zweigbergk
2010-12-28 9:30 ` [PATCH 14/31] rebase: factor out clean work tree check Martin von Zweigbergk
2010-12-28 9:30 ` [PATCH 15/31] rebase: factor out call to pre-rebase hook Martin von Zweigbergk
2010-12-28 9:30 ` [PATCH 16/31] rebase -i: support --stat Martin von Zweigbergk
2010-12-28 17:59 ` Johannes Schindelin
2010-12-28 13:24 ` Martin von Zweigbergk
2010-12-28 23:36 ` Junio C Hamano
2010-12-28 23:44 ` Johannes Schindelin
2010-12-28 9:30 ` [PATCH 17/31] rebase: remove $branch as synonym for $orig_head Martin von Zweigbergk
2010-12-28 9:30 ` [PATCH 18/31] rebase: extract merge code to new source file Martin von Zweigbergk
2010-12-29 21:31 ` Johannes Sixt
2010-12-29 22:24 ` Martin von Zweigbergk
2010-12-31 12:23 ` Thomas Rast
2010-12-31 14:05 ` Martin von Zweigbergk
2010-12-28 9:30 ` [PATCH 19/31] rebase: extract am " Martin von Zweigbergk
2010-12-28 9:30 ` [PATCH 20/31] rebase: show consistent conflict resolution hint Martin von Zweigbergk
2010-12-28 9:30 ` [PATCH 21/31] rebase -i: align variable names Martin von Zweigbergk
2010-12-28 9:30 ` [PATCH 22/31] rebase: make -v a tiny bit more verbose Martin von Zweigbergk
2010-12-28 9:30 ` [PATCH 23/31] rebase: factor out sub command handling Martin von Zweigbergk
2010-12-28 9:30 ` [PATCH 24/31] rebase: extract code for writing basic state Martin von Zweigbergk
2011-01-04 19:19 ` Thomas Rast
2011-01-05 2:40 ` Martin von Zweigbergk
2010-12-28 9:30 ` [PATCH 25/31] rebase: remember verbose option Martin von Zweigbergk
2010-12-28 9:30 ` [PATCH 26/31] rebase: remember strategy and strategy options Martin von Zweigbergk
2011-01-04 19:27 ` Thomas Rast
2011-01-05 3:33 ` Martin von Zweigbergk
2010-12-28 9:30 ` [PATCH 27/31] rebase -m: remember allow_rerere_autoupdate option Martin von Zweigbergk
2010-12-28 9:30 ` [PATCH 28/31] rebase -m: don't print exit code 2 when merge fails Martin von Zweigbergk
2010-12-28 9:30 ` [PATCH 29/31] git-rebase--am: remove unnecessary --3way option Martin von Zweigbergk
2010-12-28 9:30 ` [PATCH 30/31] rebase -i: don't read unused variable preserve_merges Martin von Zweigbergk
2010-12-28 9:30 ` [PATCH 31/31] rebase -i: remove unnecessary state rebase-root Martin von Zweigbergk
2010-12-28 16:40 ` Thomas Rast
2010-12-29 22:31 ` Martin von Zweigbergk
2010-12-31 5:41 ` Christian Couder
2011-01-04 19:57 ` [PATCH 00/31] Refactor rebase Thomas Rast
2011-01-05 3:39 ` Martin von Zweigbergk
2011-02-06 18:43 ` [PATCH v2 00/31] refactor rebase Martin von Zweigbergk
2011-02-06 18:43 ` [PATCH v2 01/31] rebase: clearer names for directory variables Martin von Zweigbergk
2011-02-06 18:43 ` [PATCH v2 02/31] rebase: refactor reading of state Martin von Zweigbergk
2011-02-06 18:43 ` [PATCH v2 03/31] rebase: read state outside loop Martin von Zweigbergk
2011-02-06 18:43 ` [PATCH v2 04/31] rebase: remove unused rebase state 'prev_head' Martin von Zweigbergk
2011-02-06 18:43 ` [PATCH v2 05/31] rebase: improve detection of rebase in progress Martin von Zweigbergk
2011-02-06 18:43 ` [PATCH v2 06/31] rebase: act on command line outside parsing loop Martin von Zweigbergk
2011-02-06 18:43 ` [PATCH v2 07/31] rebase: stricter check of standalone sub command Martin von Zweigbergk
2011-07-01 3:55 ` Jonathan Nieder
2011-07-01 13:16 ` Martin von Zweigbergk
2011-07-01 22:29 ` Jonathan Nieder
2011-07-06 1:48 ` Martin von Zweigbergk
2011-02-06 18:43 ` [PATCH v2 08/31] rebase: align variable names Martin von Zweigbergk
2011-02-06 18:43 ` [PATCH v2 09/31] rebase: align variable content Martin von Zweigbergk
2011-02-06 18:43 ` [PATCH v2 10/31] rebase: factor out command line option processing Martin von Zweigbergk
2011-02-06 18:43 ` [PATCH v2 11/31] rebase -i: remove now unnecessary directory checks Martin von Zweigbergk
2011-02-06 18:43 ` [PATCH v2 12/31] rebase: reorder validation steps Martin von Zweigbergk
2011-02-06 18:43 ` [PATCH v2 13/31] rebase: factor out reference parsing Martin von Zweigbergk
2011-02-06 18:43 ` [PATCH v2 14/31] rebase: factor out clean work tree check Martin von Zweigbergk
2011-02-06 18:43 ` [PATCH v2 15/31] rebase: factor out call to pre-rebase hook Martin von Zweigbergk
2011-02-06 18:43 ` [PATCH v2 16/31] rebase -i: support --stat Martin von Zweigbergk
2011-02-06 18:43 ` [PATCH v2 17/31] rebase: remove $branch as synonym for $orig_head Martin von Zweigbergk
2011-02-06 18:43 ` [PATCH v2 18/31] rebase: extract merge code to new source file Martin von Zweigbergk
2011-02-14 8:02 ` Johannes Sixt
2011-02-14 13:56 ` Martin von Zweigbergk
2011-02-24 3:27 ` Martin von Zweigbergk
2011-02-24 8:07 ` Jeff King
2011-02-24 8:09 ` Jeff King
2011-02-25 3:32 ` Martin von Zweigbergk
2011-02-25 9:02 ` Jeff King
2011-02-25 20:24 ` Junio C Hamano
2011-02-25 20:27 ` Jakub Narebski
2011-03-01 22:04 ` Jeff King
2011-03-01 22:43 ` Jakub Narebski
2011-02-06 18:43 ` Martin von Zweigbergk [this message]
2011-02-06 18:43 ` [PATCH v2 20/31] rebase: show consistent conflict resolution hint Martin von Zweigbergk
2011-02-06 18:43 ` [PATCH v2 21/31] rebase -i: align variable names Martin von Zweigbergk
2011-02-06 18:43 ` [PATCH v2 22/31] rebase: make -v a tiny bit more verbose Martin von Zweigbergk
2011-02-06 18:43 ` [PATCH v2 23/31] rebase: factor out sub command handling Martin von Zweigbergk
2011-02-06 18:43 ` [PATCH v2 24/31] rebase: extract code for writing basic state Martin von Zweigbergk
2011-02-06 18:43 ` [PATCH v2 25/31] rebase: remember verbose option Martin von Zweigbergk
2011-02-06 18:43 ` [PATCH v2 26/31] rebase: remember strategy and strategy options Martin von Zweigbergk
2011-02-06 18:43 ` [PATCH v2 27/31] rebase -m: remember allow_rerere_autoupdate option Martin von Zweigbergk
2011-02-06 18:43 ` [PATCH v2 28/31] rebase -m: don't print exit code 2 when merge fails Martin von Zweigbergk
2011-02-06 18:43 ` [PATCH v2 29/31] git-rebase--am: remove unnecessary --3way option Martin von Zweigbergk
2011-02-06 18:43 ` [PATCH v2 30/31] rebase -i: don't read unused variable preserve_merges Martin von Zweigbergk
2011-02-06 18:44 ` [PATCH v2 31/31] rebase -i: remove unnecessary state rebase-root Martin von Zweigbergk
2011-02-10 22:44 ` [PATCH v2 00/31] refactor rebase Junio C Hamano
2011-02-12 0:55 ` Martin von Zweigbergk
2011-02-14 1:54 ` Martin von Zweigbergk
2011-02-14 3:15 ` Martin von Zweigbergk
2011-02-15 0:36 ` Junio C Hamano
2011-02-22 13:58 ` Martin von Zweigbergk
2011-02-22 19:21 ` Junio C Hamano
2011-02-23 11:26 ` Martin von Zweigbergk
2011-02-16 14:52 ` Johannes Sixt
2011-02-17 3:41 ` Martin von Zweigbergk
2011-02-24 3:07 ` [PATCH] rebase: define options in OPTIONS_SPEC Martin von Zweigbergk
2011-02-27 10:59 ` Junio C Hamano
2011-03-01 1:59 ` Martin von Zweigbergk
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=1297017841-20678-20-git-send-email-martin.von.zweigbergk@gmail.com \
--to=martin.von.zweigbergk@gmail.com \
--cc=Johannes.Schindelin@gmx.de \
--cc=chriscool@tuxfamily.org \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=j.sixt@viscovery.net \
--cc=trast@student.ethz.ch \
/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 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 NNTP newsgroup(s).