* [PATCH 1/3] am: read from the right mailbox when started from a subdirectory
@ 2008-03-04 8:25 Junio C Hamano
2008-03-04 8:25 ` [PATCH 2/3] am: remove support for -d .dotest Junio C Hamano
0 siblings, 1 reply; 4+ messages in thread
From: Junio C Hamano @ 2008-03-04 8:25 UTC (permalink / raw
To: git; +Cc: Jeff King
An earlier commit c149184 (allow git-am to run in a subdirectory) taught
git-am to start from a subdirectory by going up to the root of the work
tree byitself, but it did not adjust the path to read the mbox from when
it did so.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
* This is a fixed-up version of an earlier patch I sent to Jeff and the
list, and should be considered as a bugfix.
git-am.sh | 25 ++++++++++++++++-
t/t4150-am-subdir.sh | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 95 insertions(+), 2 deletions(-)
create mode 100755 t/t4150-am-subdir.sh
diff --git a/git-am.sh b/git-am.sh
index a2c6fea..2b5bbb7 100755
--- a/git-am.sh
+++ b/git-am.sh
@@ -24,6 +24,7 @@ r,resolved to be used after a patch failure
skip skip the current patch"
. git-sh-setup
+prefix=$(git rev-parse --show-prefix)
set_reflog_action am
require_work_tree
cd_to_toplevel
@@ -124,7 +125,8 @@ reread_subject () {
}
prec=4
-dotest=.dotest sign= utf8=t keep= skip= interactive= resolved= binary=
+dotest="${prefix}.dotest"
+sign= utf8=t keep= skip= interactive= resolved= binary=
resolvemsg= resume=
git_apply_opt=
@@ -150,7 +152,8 @@ do
--skip)
skip=t ;;
-d|--dotest)
- shift; dotest=$1;;
+ shift
+ case "$1" in /*) dotest=$1;; *) dotest="$prefix$1" ;; esac ;;
--resolvemsg)
shift; resolvemsg=$1 ;;
--whitespace)
@@ -206,6 +209,24 @@ else
# Start afresh.
mkdir -p "$dotest" || exit
+ if test -n "$prefix" && test $# != 0
+ then
+ first=t
+ for arg
+ do
+ test -n "$first" && {
+ set x
+ first=
+ }
+ case "$arg" in
+ /*)
+ set "$@" "$arg" ;;
+ *)
+ set "$@" "$prefix$arg" ;;
+ esac
+ done
+ shift
+ fi
git mailsplit -d"$prec" -o"$dotest" -b -- "$@" > "$dotest/last" || {
rm -fr "$dotest"
exit 1
diff --git a/t/t4150-am-subdir.sh b/t/t4150-am-subdir.sh
new file mode 100755
index 0000000..929d2cb
--- /dev/null
+++ b/t/t4150-am-subdir.sh
@@ -0,0 +1,72 @@
+#!/bin/sh
+
+test_description='git am running from a subdirectory'
+
+. ./test-lib.sh
+
+test_expect_success setup '
+ echo hello >world &&
+ git add world &&
+ test_tick &&
+ git commit -m initial &&
+ git tag initial &&
+ echo goodbye >world &&
+ git add world &&
+ test_tick &&
+ git commit -m second &&
+ git format-patch --stdout HEAD^ >patchfile &&
+ : >expect
+'
+
+test_expect_success 'am regularly from stdin' '
+ git checkout initial &&
+ git am <patchfile &&
+ git diff master >actual &&
+ diff -u expect actual
+'
+
+test_expect_success 'am regularly from file' '
+ git checkout initial &&
+ git am patchfile &&
+ git diff master >actual &&
+ diff -u expect actual
+'
+
+test_expect_success 'am regularly from stdin in subdirectory' '
+ rm -fr subdir &&
+ git checkout initial &&
+ (
+ mkdir -p subdir &&
+ cd subdir &&
+ git am <../patchfile
+ ) &&
+ git diff master>actual &&
+ diff -u expect actual
+'
+
+test_expect_success 'am regularly from file in subdirectory' '
+ rm -fr subdir &&
+ git checkout initial &&
+ (
+ mkdir -p subdir &&
+ cd subdir &&
+ git am ../patchfile
+ ) &&
+ git diff master >actual &&
+ diff -u expect actual
+'
+
+test_expect_success 'am regularly from file in subdirectory with full path' '
+ rm -fr subdir &&
+ git checkout initial &&
+ P=$(pwd) &&
+ (
+ mkdir -p subdir &&
+ cd subdir &&
+ git am "$P/patchfile"
+ ) &&
+ git diff master >actual &&
+ diff -u expect actual
+'
+
+test_done
--
1.5.4.3.529.gb25fb
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 2/3] am: remove support for -d .dotest
2008-03-04 8:25 [PATCH 1/3] am: read from the right mailbox when started from a subdirectory Junio C Hamano
@ 2008-03-04 8:25 ` Junio C Hamano
2008-03-04 8:25 ` [PATCH 3/3] am: --rebasing Junio C Hamano
2008-03-04 8:57 ` [PATCH 2/3] am: remove support for -d .dotest Jay Soffian
0 siblings, 2 replies; 4+ messages in thread
From: Junio C Hamano @ 2008-03-04 8:25 UTC (permalink / raw
To: git
It has been supported for a long time, but I do not think this feature has
been in use in the real world at all. We would eventually move this out
of the toplevel of the work tree and to somewhere under $GIT_DIR, so let's
remove the command line option to specify the location now.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
git-am.sh | 14 +++++---------
1 files changed, 5 insertions(+), 9 deletions(-)
diff --git a/git-am.sh b/git-am.sh
index 2b5bbb7..25129e6 100755
--- a/git-am.sh
+++ b/git-am.sh
@@ -9,7 +9,7 @@ git-am [options] <mbox>|<Maildir>...
git-am [options] --resolved
git-am [options] --skip
--
-d,dotest= use <dir> and not .dotest
+d,dotest= (removed -- do not use)
i,interactive run interactively
b,binary pass --allo-binary-replacement to git-apply
3,3way allow fall back on 3way merging if needed
@@ -50,10 +50,6 @@ stop_here_user_resolve () {
then
cmdline="$cmdline -3"
fi
- if test '.dotest' != "$dotest"
- then
- cmdline="$cmdline -d=$dotest"
- fi
echo "When you have resolved this problem run \"$cmdline --resolved\"."
echo "If you would prefer to skip this patch, instead run \"$cmdline --skip\"."
@@ -125,7 +121,7 @@ reread_subject () {
}
prec=4
-dotest="${prefix}.dotest"
+dotest=".dotest"
sign= utf8=t keep= skip= interactive= resolved= binary=
resolvemsg= resume=
git_apply_opt=
@@ -152,8 +148,8 @@ do
--skip)
skip=t ;;
-d|--dotest)
- shift
- case "$1" in /*) dotest=$1;; *) dotest="$prefix$1" ;; esac ;;
+ die "-d option is not longer supported. Do not use."
+ ;;
--resolvemsg)
shift; resolvemsg=$1 ;;
--whitespace)
@@ -189,7 +185,7 @@ then
0,)
# No file input but without resume parameters; catch
# user error to feed us a patch from standard input
- # when there is already .dotest. This is somewhat
+ # when there is already $dotest. This is somewhat
# unreliable -- stdin could be /dev/null for example
# and the caller did not intend to feed us a patch but
# wanted to continue unattended.
--
1.5.4.3.529.gb25fb
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 3/3] am: --rebasing
2008-03-04 8:25 ` [PATCH 2/3] am: remove support for -d .dotest Junio C Hamano
@ 2008-03-04 8:25 ` Junio C Hamano
2008-03-04 8:57 ` [PATCH 2/3] am: remove support for -d .dotest Jay Soffian
1 sibling, 0 replies; 4+ messages in thread
From: Junio C Hamano @ 2008-03-04 8:25 UTC (permalink / raw
To: git
The new option --rebasing is used internally for rebase to tell am that
it is being used for its purpose. This would leave .dotest/rebasing to
help "completion" scripts tell if the ongoing operation is am or rebase.
Also the option at the same time stands for --binary, -3 and -k which
are always given when rebase drives am as its backend.
Using the information "am" leaves, git-completion.bash tells ongoing
rebase and am apart.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
contrib/completion/git-completion.bash | 10 +++++++++-
git-am.sh | 13 +++++++++++--
git-rebase.sh | 2 +-
3 files changed, 21 insertions(+), 4 deletions(-)
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 8f70e1e..5ae8799 100755
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -70,7 +70,15 @@ __git_ps1 ()
local b
if [ -d "$g/../.dotest" ]
then
- r="|AM/REBASE"
+ if test -f "$g/../.dotest/rebasing"
+ then
+ r="|REBASE"
+ elif test -f "$g/../.dotest/applying"
+ then
+ r="|AM"
+ else
+ r="|AM/REBASE"
+ fi
b="$(git symbolic-ref HEAD 2>/dev/null)"
elif [ -f "$g/.dotest-merge/interactive" ]
then
diff --git a/git-am.sh b/git-am.sh
index 25129e6..db8171c 100755
--- a/git-am.sh
+++ b/git-am.sh
@@ -21,7 +21,8 @@ C= pass it through git-apply
p= pass it through git-apply
resolvemsg= override error message when patch failure occurs
r,resolved to be used after a patch failure
-skip skip the current patch"
+skip skip the current patch
+rebasing (internal use for git-rebase)"
. git-sh-setup
prefix=$(git rev-parse --show-prefix)
@@ -122,7 +123,7 @@ reread_subject () {
prec=4
dotest=".dotest"
-sign= utf8=t keep= skip= interactive= resolved= binary=
+sign= utf8=t keep= skip= interactive= resolved= binary= rebasing=
resolvemsg= resume=
git_apply_opt=
@@ -147,6 +148,8 @@ do
resolved=t ;;
--skip)
skip=t ;;
+ --rebasing)
+ rebasing=t threeway=t keep=t binary=t ;;
-d|--dotest)
die "-d option is not longer supported. Do not use."
;;
@@ -237,6 +240,12 @@ else
echo "$utf8" >"$dotest/utf8"
echo "$keep" >"$dotest/keep"
echo 1 >"$dotest/next"
+ if test -n "$rebasing"
+ then
+ : >"$dotest/rebasing"
+ else
+ : >"$dotest/applying"
+ fi
fi
case "$resolved" in
diff --git a/git-rebase.sh b/git-rebase.sh
index 6b9af96..452c5e7 100755
--- a/git-rebase.sh
+++ b/git-rebase.sh
@@ -376,7 +376,7 @@ fi
if test -z "$do_merge"
then
git format-patch -k --stdout --full-index --ignore-if-in-upstream "$upstream"..ORIG_HEAD |
- git am $git_am_opt --binary -3 -k --resolvemsg="$RESOLVEMSG" &&
+ git am $git_am_opt --rebasing --resolvemsg="$RESOLVEMSG" &&
move_to_original_branch
ret=$?
test 0 != $ret -a -d .dotest &&
--
1.5.4.3.529.gb25fb
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 2/3] am: remove support for -d .dotest
2008-03-04 8:25 ` [PATCH 2/3] am: remove support for -d .dotest Junio C Hamano
2008-03-04 8:25 ` [PATCH 3/3] am: --rebasing Junio C Hamano
@ 2008-03-04 8:57 ` Jay Soffian
1 sibling, 0 replies; 4+ messages in thread
From: Jay Soffian @ 2008-03-04 8:57 UTC (permalink / raw
To: Junio C Hamano; +Cc: git
On Tue, Mar 4, 2008 at 3:25 AM, Junio C Hamano <gitster@pobox.com> wrote:
> @@ -152,8 +148,8 @@ do
> --skip)
> skip=t ;;
> -d|--dotest)
> - shift
> - case "$1" in /*) dotest=$1;; *) dotest="$prefix$1" ;; esac ;;
> + die "-d option is not longer supported. Do not use."
s/not longer/no longer/
Also, probably want to remove mention of the option from
Documentation/git-am.txt as well.
j.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2008-03-04 8:58 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-03-04 8:25 [PATCH 1/3] am: read from the right mailbox when started from a subdirectory Junio C Hamano
2008-03-04 8:25 ` [PATCH 2/3] am: remove support for -d .dotest Junio C Hamano
2008-03-04 8:25 ` [PATCH 3/3] am: --rebasing Junio C Hamano
2008-03-04 8:57 ` [PATCH 2/3] am: remove support for -d .dotest Jay Soffian
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).