public inbox for git@vger.kernel.org 
 help / color / mirror / Atom feed
* [PATCH] git-applymbox: Remove command
@ 2007-05-20  0:10 Petr Baudis
  2007-05-23 21:57 ` Junio C Hamano
  0 siblings, 1 reply; 3+ messages in thread
From: Petr Baudis @ 2007-05-20  0:10 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

I believe noone uses git-applymbox, and noone definitely should, since it
is supposed to be completely superseded and everything by its younger
cousin git-am. The only known person in the universe to use it was Linus
and he declared some time ago that he will try to use git-am instead in his
famous dotest script.

The trouble is that git-applymbox existence creates confusing UI. I'm a bit
like a recycled newbie to the git porcelain and *I* was confused by
git-applymbox primitiveness until I've realized a while later that I'm of
course using the wrong command.

Signed-off-by: Petr Baudis <pasky@suse•cz>

---

(Admittelly this patch is a bit brave and maybe we should make applymbox
print some scary messages first for some time. I'm testing the water here
to see if anyone complains. I still think that noone really uses it,
though.)
---

 .gitignore                      |    1 
 Documentation/cmd-list.perl     |    1 
 Documentation/git-am.txt        |    5 +-
 Documentation/git-applymbox.txt |   98 --------------------------------
 Documentation/hooks.txt         |    6 +-
 Makefile                        |    2 -
 git-applymbox.sh                |  121 ---------------------------------------
 7 files changed, 6 insertions(+), 228 deletions(-)

diff --git a/.gitignore b/.gitignore
index d0b67da..16f4aba 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,7 +7,6 @@ git-add--interactive
 git-am
 git-annotate
 git-apply
-git-applymbox
 git-applypatch
 git-archimport
 git-archive
diff --git a/Documentation/cmd-list.perl b/Documentation/cmd-list.perl
index 443802a..0bca346 100755
--- a/Documentation/cmd-list.perl
+++ b/Documentation/cmd-list.perl
@@ -72,7 +72,6 @@ __DATA__
 git-add                                 mainporcelain
 git-am                                  mainporcelain
 git-annotate                            ancillaryinterrogators
-git-applymbox                           ancillaryinterrogators
 git-applypatch                          purehelpers
 git-apply                               plumbingmanipulators
 git-archimport                          foreignscminterface
diff --git a/Documentation/git-am.txt b/Documentation/git-am.txt
index ba79773..bf07e43 100644
--- a/Documentation/git-am.txt
+++ b/Documentation/git-am.txt
@@ -126,8 +126,7 @@ is terminated before the first occurrence of such a line.
 
 When initially invoking it, you give it names of the mailboxes
 to crunch.  Upon seeing the first patch that does not apply, it
-aborts in the middle, just like 'git-applymbox' does.  You can
-recover from this in one of two ways:
+aborts in the middle,.  You can recover from this in one of two ways:
 
 . skip the current patch by re-running the command with '--skip'
   option.
@@ -144,7 +143,7 @@ names.
 
 SEE ALSO
 --------
-gitlink:git-applymbox[1], gitlink:git-applypatch[1], gitlink:git-apply[1].
+gitlink:git-applypatch[1], gitlink:git-apply[1].
 
 
 Author
diff --git a/Documentation/git-applymbox.txt b/Documentation/git-applymbox.txt
deleted file mode 100644
index ea919ba..0000000
--- a/Documentation/git-applymbox.txt
+++ /dev/null
@@ -1,98 +0,0 @@
-git-applymbox(1)
-================
-
-NAME
-----
-git-applymbox - Apply a series of patches in a mailbox
-
-
-SYNOPSIS
---------
-'git-applymbox' [-u] [-k] [-q] [-m] ( -c .dotest/<num> | <mbox> ) [ <signoff> ]
-
-DESCRIPTION
------------
-Splits mail messages in a mailbox into commit log message,
-authorship information and patches, and applies them to the
-current branch.
-
-
-OPTIONS
--------
--q::
-	Apply patches interactively.  The user will be given
-	opportunity to edit the log message and the patch before
-	attempting to apply it.
-
--k::
-	Usually the program 'cleans up' the Subject: header line
-	to extract the title line for the commit log message,
-	among which (1) remove 'Re:' or 're:', (2) leading
-	whitespaces, (3) '[' up to ']', typically '[PATCH]', and
-	then prepends "[PATCH] ".  This flag forbids this
-	munging, and is most useful when used to read back 'git
-	format-patch -k' output.
-
--m::
-	Patches are applied with `git-apply` command, and unless
-	it cleanly applies without fuzz, the processing fails.
-	With this flag, if a tree that the patch applies cleanly
-	is found in a repository, the patch is applied to the
-	tree and then a 3-way merge between the resulting tree
-	and the current tree.
-
--u::
-	Pass `-u` flag to `git-mailinfo` (see gitlink:git-mailinfo[1]).
-	The proposed commit log message taken from the e-mail
-	are re-coded into UTF-8 encoding (configuration variable
-	`i18n.commitencoding` can be used to specify project's
-	preferred encoding if it is not UTF-8).  This used to be
-	optional but now it is the default.
-+
-Note that the patch is always used as-is without charset
-conversion, even with this flag.
-
--n::
-	Pass `-n` flag to `git-mailinfo` (see
-	gitlink:git-mailinfo[1]).
-
--c .dotest/<num>::
-	When the patch contained in an e-mail does not cleanly
-	apply, the command exits with an error message. The
-	patch and extracted message are found in .dotest/, and
-	you could re-run 'git applymbox' with '-c .dotest/<num>'
-	flag to restart the process after inspecting and fixing
-	them.
-
-<mbox>::
-	The name of the file that contains the e-mail messages
-	with patches.  This file should be in the UNIX mailbox
-	format.  See 'SubmittingPatches' document to learn about
-	the formatting convention for e-mail submission.
-
-<signoff>::
-	The name of the file that contains your "Signed-off-by"
-	line.  See 'SubmittingPatches' document to learn what
-	"Signed-off-by" line means.  You can also just say
-	'yes', 'true', 'me', or 'please' to use an automatically
-	generated "Signed-off-by" line based on your committer
-	identity.
-
-
-SEE ALSO
---------
-gitlink:git-am[1], gitlink:git-applypatch[1].
-
-
-Author
-------
-Written by Linus Torvalds <torvalds@osdl•org>
-
-Documentation
---------------
-Documentation by Junio C Hamano and the git-list <git@vger•kernel.org>.
-
-GIT
----
-Part of the gitlink:git[7] suite
-
diff --git a/Documentation/hooks.txt b/Documentation/hooks.txt
index aabb975..aad1744 100644
--- a/Documentation/hooks.txt
+++ b/Documentation/hooks.txt
@@ -13,7 +13,7 @@ applypatch-msg
 --------------
 
 This hook is invoked by `git-applypatch` script, which is
-typically invoked by `git-applymbox`.  It takes a single
+typically invoked by `git-am`.  It takes a single
 parameter, the name of the file that holds the proposed commit
 log message.  Exiting with non-zero status causes
 `git-applypatch` to abort before applying the patch.
@@ -30,7 +30,7 @@ pre-applypatch
 --------------
 
 This hook is invoked by `git-applypatch` script, which is
-typically invoked by `git-applymbox`.  It takes no parameter,
+typically invoked by `git-am`.  It takes no parameter,
 and is invoked after the patch is applied, but before a commit
 is made.  Exiting with non-zero status causes the working tree
 after application of the patch not committed.
@@ -45,7 +45,7 @@ post-applypatch
 ---------------
 
 This hook is invoked by `git-applypatch` script, which is
-typically invoked by `git-applymbox`.  It takes no parameter,
+typically invoked by `git-am`.  It takes no parameter,
 and is invoked after the patch is applied and a commit is made.
 
 This hook is meant primarily for notification, and cannot affect
diff --git a/Makefile b/Makefile
index de74851..77d3ad0 100644
--- a/Makefile
+++ b/Makefile
@@ -208,7 +208,7 @@ SCRIPT_SH = \
 	git-repack.sh git-request-pull.sh git-reset.sh \
 	git-sh-setup.sh \
 	git-tag.sh git-verify-tag.sh \
-	git-applymbox.sh git-applypatch.sh git-am.sh \
+	git-applypatch.sh git-am.sh \
 	git-merge.sh git-merge-stupid.sh git-merge-octopus.sh \
 	git-merge-resolve.sh git-merge-ours.sh \
 	git-lost-found.sh git-quiltimport.sh
diff --git a/git-applymbox.sh b/git-applymbox.sh
deleted file mode 100755
index c18e80f..0000000
--- a/git-applymbox.sh
+++ /dev/null
@@ -1,121 +0,0 @@
-#!/bin/sh
-##
-## "dotest" is my stupid name for my patch-application script, which
-## I never got around to renaming after I tested it. We're now on the
-## second generation of scripts, still called "dotest".
-##
-## Update: Ryan Anderson finally shamed me into naming this "applymbox".
-##
-## You give it a mbox-format collection of emails, and it will try to
-## apply them to the kernel using "applypatch"
-##
-## The patch application may fail in the middle.  In which case:
-## (1) look at .dotest/patch and fix it up to apply
-## (2) re-run applymbox with -c .dotest/msg-number for the current one.
-## Pay a special attention to the commit log message if you do this and
-## use a Signoff_file, because applypatch wants to append the sign-off
-## message to msg-clean every time it is run.
-##
-## git-am is supposed to be the newer and better tool for this job.
-
-USAGE='[-u] [-k] [-q] [-m] (-c .dotest/<num> | mbox) [signoff]'
-. git-sh-setup
-
-git var GIT_COMMITTER_IDENT >/dev/null || exit
-
-keep_subject= query_apply= continue= utf8=-u resume=t
-while case "$#" in 0) break ;; esac
-do
-	case "$1" in
-	-u)	utf8=-u ;;
-	-n)	utf8=-n ;;
-	-k)	keep_subject=-k ;;
-	-q)	query_apply=t ;;
-	-c)	continue="$2"; resume=f; shift ;;
-	-m)	fall_back_3way=t ;;
-	-*)	usage ;;
-	*)	break ;;
-	esac
-	shift
-done
-
-case "$continue" in
-'')
-	rm -rf .dotest
-	mkdir .dotest
-	num_msgs=$(git-mailsplit "$1" .dotest) || exit 1
-	echo "$num_msgs patch(es) to process."
-	shift
-esac
-
-files=$(git-diff-index --cached --name-only HEAD) || exit
-if [ "$files" ]; then
-   echo "Dirty index: cannot apply patches (dirty: $files)" >&2
-   exit 1
-fi
-
-case "$query_apply" in
-t)	touch .dotest/.query_apply
-esac
-case "$fall_back_3way" in
-t)	: >.dotest/.3way
-esac
-case "$keep_subject" in
--k)	: >.dotest/.keep_subject
-esac
-
-signoff="$1"
-set x .dotest/0*
-shift
-while case "$#" in 0) break;; esac
-do
-    i="$1" 
-    case "$resume,$continue" in
-    f,$i)	resume=t;;
-    f,*)	shift
-		continue;;
-    *)
-	    git-mailinfo $keep_subject $utf8 \
-		.dotest/msg .dotest/patch <$i >.dotest/info || exit 1
-	    test -s .dotest/patch || {
-		echo "Patch is empty.  Was it split wrong?"
-		exit 1
-	    }
-	    git-stripspace < .dotest/msg > .dotest/msg-clean
-	    ;;
-    esac
-    while :; # for fixing up and retry
-    do
-	git-applypatch .dotest/msg-clean .dotest/patch .dotest/info "$signoff"
-	case "$?" in
-	0)
-		# Remove the cleanly applied one to reduce clutter.
-		rm -f .dotest/$i
-		;;
-	2)
-		# 2 is a special exit code from applypatch to indicate that
-	    	# the patch wasn't applied, but continue anyway 
-		;;
-	*)
-		ret=$?
-		if test -f .dotest/.query_apply
-		then
-			echo >&2 "* Patch failed."
-			echo >&2 "* You could fix it up in your editor and"
-			echo >&2 "  retry.  If you want to do so, say yes here"
-			echo >&2 "  AFTER fixing .dotest/patch up."
-			echo >&2 -n "Retry [y/N]? "
-			read yesno
-			case "$yesno" in
-			[Yy]*)
-				continue ;;
-		        esac
-		fi
-		exit $ret
-	esac
-	break
-    done
-    shift
-done
-# return to pristine
-rm -fr .dotest

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] git-applymbox: Remove command
  2007-05-20  0:10 [PATCH] git-applymbox: Remove command Petr Baudis
@ 2007-05-23 21:57 ` Junio C Hamano
  2007-05-25  2:33   ` [PATCH] Remove git-applypatch Junio C Hamano
  0 siblings, 1 reply; 3+ messages in thread
From: Junio C Hamano @ 2007-05-23 21:57 UTC (permalink / raw)
  To: Petr Baudis; +Cc: git

Petr Baudis <pasky@suse•cz> writes:

> I believe noone uses git-applymbox, and noone definitely should, since it
> is supposed to be completely superseded and everything by its younger
> cousin git-am. The only known person in the universe to use it was Linus
> and he declared some time ago that he will try to use git-am instead in his
> famous dotest script.
>
> The trouble is that git-applymbox existence creates confusing UI. I'm a bit
> like a recycled newbie to the git porcelain and *I* was confused by
> git-applymbox primitiveness until I've realized a while later that I'm of
> course using the wrong command.
>
> Signed-off-by: Petr Baudis <pasky@suse•cz>
>
> ---
>
> (Admittelly this patch is a bit brave and maybe we should make applymbox
> print some scary messages first for some time. I'm testing the water here
> to see if anyone complains. I still think that noone really uses it,
> though.)

Brave.

I suspect nobody really uses it, too.

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [PATCH] Remove git-applypatch
  2007-05-23 21:57 ` Junio C Hamano
@ 2007-05-25  2:33   ` Junio C Hamano
  0 siblings, 0 replies; 3+ messages in thread
From: Junio C Hamano @ 2007-05-25  2:33 UTC (permalink / raw)
  To: git; +Cc: Petr Baudis

The previous one removed git-applymbox, which was the sole user
of this tool.

Signed-off-by: Junio C Hamano <junkio@cox•net>
---
 .gitignore                       |    1 -
 Documentation/SubmittingPatches  |    4 +-
 Documentation/cmd-list.perl      |    1 -
 Documentation/git-am.txt         |    2 +-
 Documentation/git-applypatch.txt |   53 ----------
 Documentation/git-mailinfo.txt   |    2 +-
 Documentation/hooks.txt          |   13 +--
 Makefile                         |    2 +-
 git-applypatch.sh                |  212 --------------------------------------
 9 files changed, 10 insertions(+), 280 deletions(-)
 delete mode 100644 Documentation/git-applypatch.txt
 delete mode 100755 git-applypatch.sh

diff --git a/.gitignore b/.gitignore
index 76c0e1b..b4e72f5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,7 +7,6 @@ git-add--interactive
 git-am
 git-annotate
 git-apply
-git-applypatch
 git-archimport
 git-archive
 git-bisect
diff --git a/Documentation/SubmittingPatches b/Documentation/SubmittingPatches
index b94d9a8..b5f2ecd 100644
--- a/Documentation/SubmittingPatches
+++ b/Documentation/SubmittingPatches
@@ -239,7 +239,7 @@ One test you could do yourself if your MUA is set up correctly is:
     $ git fetch http://kernel.org/pub/scm/git/git.git master:test-apply
     $ git checkout test-apply
     $ git reset --hard
-    $ git applymbox a.patch
+    $ git am a.patch
 
 If it does not apply correctly, there can be various reasons.
 
@@ -247,7 +247,7 @@ If it does not apply correctly, there can be various reasons.
   does not have much to do with your MUA.  Please rebase the
   patch appropriately.
 
-* Your MUA corrupted your patch; applymbox would complain that
+* Your MUA corrupted your patch; "am" would complain that
   the patch does not apply.  Look at .dotest/ subdirectory and
   see what 'patch' file contains and check for the common
   corruption patterns mentioned above.
diff --git a/Documentation/cmd-list.perl b/Documentation/cmd-list.perl
index 0bca346..645e437 100755
--- a/Documentation/cmd-list.perl
+++ b/Documentation/cmd-list.perl
@@ -72,7 +72,6 @@ __DATA__
 git-add                                 mainporcelain
 git-am                                  mainporcelain
 git-annotate                            ancillaryinterrogators
-git-applypatch                          purehelpers
 git-apply                               plumbingmanipulators
 git-archimport                          foreignscminterface
 git-archive                             mainporcelain
diff --git a/Documentation/git-am.txt b/Documentation/git-am.txt
index 049e46f..7658fbd 100644
--- a/Documentation/git-am.txt
+++ b/Documentation/git-am.txt
@@ -145,7 +145,7 @@ names.
 
 SEE ALSO
 --------
-gitlink:git-applypatch[1], gitlink:git-apply[1].
+gitlink:git-apply[1].
 
 
 Author
diff --git a/Documentation/git-applypatch.txt b/Documentation/git-applypatch.txt
deleted file mode 100644
index 451434a..0000000
--- a/Documentation/git-applypatch.txt
+++ /dev/null
@@ -1,53 +0,0 @@
-git-applypatch(1)
-=================
-
-NAME
-----
-git-applypatch - Apply one patch extracted from an e-mail
-
-
-SYNOPSIS
---------
-'git-applypatch' <msg> <patch> <info> [<signoff>]
-
-DESCRIPTION
------------
-This is usually not what an end user wants to run directly.  See
-gitlink:git-am[1] instead.
-
-Takes three files <msg>, <patch>, and <info> prepared from an
-e-mail message by 'git-mailinfo', and creates a commit.  It is
-usually not necessary to use this command directly.
-
-This command can run `applypatch-msg`, `pre-applypatch`, and
-`post-applypatch` hooks.  See link:hooks.html[hooks] for more
-information.
-
-
-OPTIONS
--------
-<msg>::
-	Commit log message (sans the first line, which comes
-	from e-mail Subject stored in <info>).
-
-<patch>::
-	The patch to apply.
-
-<info>::
-	Author and subject information extracted from e-mail,
-	used on "author" line and as the first line of the
-	commit log message.
-
-
-Author
-------
-Written by Linus Torvalds <torvalds@osdl•org>
-
-Documentation
---------------
-Documentation by Junio C Hamano and the git-list <git@vger•kernel.org>.
-
-GIT
----
-Part of the gitlink:git[7] suite
-
diff --git a/Documentation/git-mailinfo.txt b/Documentation/git-mailinfo.txt
index 8eadceb..1695695 100644
--- a/Documentation/git-mailinfo.txt
+++ b/Documentation/git-mailinfo.txt
@@ -16,7 +16,7 @@ DESCRIPTION
 Reading a single e-mail message from the standard input, and
 writes the commit log message in <msg> file, and the patches in
 <patch> file.  The author name, e-mail and e-mail subject are
-written out to the standard output to be used by git-applypatch
+written out to the standard output to be used by git-am
 to create a commit.  It is usually not necessary to use this
 command directly.  See gitlink:git-am[1] instead.
 
diff --git a/Documentation/hooks.txt b/Documentation/hooks.txt
index aad1744..6836477 100644
--- a/Documentation/hooks.txt
+++ b/Documentation/hooks.txt
@@ -12,11 +12,10 @@ This document describes the currently defined hooks.
 applypatch-msg
 --------------
 
-This hook is invoked by `git-applypatch` script, which is
-typically invoked by `git-am`.  It takes a single
+This hook is invoked by `git-am` script.  It takes a single
 parameter, the name of the file that holds the proposed commit
 log message.  Exiting with non-zero status causes
-`git-applypatch` to abort before applying the patch.
+`git-am` to abort before applying the patch.
 
 The hook is allowed to edit the message file in place, and can
 be used to normalize the message into some project standard
@@ -29,8 +28,7 @@ The default 'applypatch-msg' hook, when enabled, runs the
 pre-applypatch
 --------------
 
-This hook is invoked by `git-applypatch` script, which is
-typically invoked by `git-am`.  It takes no parameter,
+This hook is invoked by `git-am`.  It takes no parameter,
 and is invoked after the patch is applied, but before a commit
 is made.  Exiting with non-zero status causes the working tree
 after application of the patch not committed.
@@ -44,12 +42,11 @@ The default 'pre-applypatch' hook, when enabled, runs the
 post-applypatch
 ---------------
 
-This hook is invoked by `git-applypatch` script, which is
-typically invoked by `git-am`.  It takes no parameter,
+This hook is invoked by `git-am`.  It takes no parameter,
 and is invoked after the patch is applied and a commit is made.
 
 This hook is meant primarily for notification, and cannot affect
-the outcome of `git-applypatch`.
+the outcome of `git-am`.
 
 pre-commit
 ----------
diff --git a/Makefile b/Makefile
index 870179b..4e63a69 100644
--- a/Makefile
+++ b/Makefile
@@ -206,7 +206,7 @@ SCRIPT_SH = \
 	git-repack.sh git-request-pull.sh git-reset.sh \
 	git-sh-setup.sh \
 	git-tag.sh git-verify-tag.sh \
-	git-applypatch.sh git-am.sh \
+	git-am.sh \
 	git-merge.sh git-merge-stupid.sh git-merge-octopus.sh \
 	git-merge-resolve.sh git-merge-ours.sh \
 	git-lost-found.sh git-quiltimport.sh
diff --git a/git-applypatch.sh b/git-applypatch.sh
deleted file mode 100755
index 8df2aee..0000000
--- a/git-applypatch.sh
+++ /dev/null
@@ -1,212 +0,0 @@
-#!/bin/sh
-##
-## applypatch takes four file arguments, and uses those to
-## apply the unpacked patch (surprise surprise) that they
-## represent to the current tree.
-##
-## The arguments are:
-##	$1 - file with commit message
-##	$2 - file with the actual patch
-##	$3 - "info" file with Author, email and subject
-##	$4 - optional file containing signoff to add
-##
-
-USAGE='<msg> <patch> <info> [<signoff>]'
-. git-sh-setup
-
-case "$#" in 3|4) ;; *) usage ;; esac
-
-final=.dotest/final-commit
-##
-## If this file exists, we ask before applying
-##
-query_apply=.dotest/.query_apply
-
-## We do not munge the first line of the commit message too much
-## if this file exists.
-keep_subject=.dotest/.keep_subject
-
-## We do not attempt the 3-way merge fallback unless this file exists.
-fall_back_3way=.dotest/.3way
-
-MSGFILE=$1
-PATCHFILE=$2
-INFO=$3
-SIGNOFF=$4
-EDIT=${VISUAL:-${EDITOR:-vi}}
-
-export GIT_AUTHOR_NAME="$(sed -n '/^Author/ s/Author: //p' "$INFO")"
-export GIT_AUTHOR_EMAIL="$(sed -n '/^Email/ s/Email: //p' "$INFO")"
-export GIT_AUTHOR_DATE="$(sed -n '/^Date/ s/Date: //p' "$INFO")"
-export SUBJECT="$(sed -n '/^Subject/ s/Subject: //p' "$INFO")"
-
-if test '' != "$SIGNOFF"
-then
-	if test -f "$SIGNOFF"
-	then
-		SIGNOFF=`cat "$SIGNOFF"` || exit
-	elif case "$SIGNOFF" in yes | true | me | please) : ;; *) false ;; esac
-	then
-		SIGNOFF=`git-var GIT_COMMITTER_IDENT | sed -e '
-				s/>.*/>/
-				s/^/Signed-off-by: /'
-		`
-	else
-		SIGNOFF=
-	fi
-	if test '' != "$SIGNOFF"
-	then
-		LAST_SIGNED_OFF_BY=`
-			sed -ne '/^Signed-off-by: /p' "$MSGFILE" |
-			tail -n 1
-		`
-		test "$LAST_SIGNED_OFF_BY" = "$SIGNOFF" || {
-		    test '' = "$LAST_SIGNED_OFF_BY" && echo
-		    echo "$SIGNOFF"
-		} >>"$MSGFILE"
-	fi
-fi
-
-patch_header=
-test -f "$keep_subject" || patch_header='[PATCH] '
-
-{
-	echo "$patch_header$SUBJECT"
-	if test -s "$MSGFILE"
-	then
-		echo
-		cat "$MSGFILE"
-	fi
-} >"$final"
-
-interactive=yes
-test -f "$query_apply" || interactive=no
-
-while [ "$interactive" = yes ]; do
-	echo "Commit Body is:"
-	echo "--------------------------"
-	cat "$final"
-	echo "--------------------------"
-	printf "Apply? [y]es/[n]o/[e]dit/[a]ccept all "
-	read reply
-	case "$reply" in
-		y|Y) interactive=no;;
-		n|N) exit 2;;	# special value to tell dotest to keep going
-		e|E) "$EDIT" "$final";;
-		a|A) rm -f "$query_apply"
-		     interactive=no ;;
-	esac
-done
-
-if test -x "$GIT_DIR"/hooks/applypatch-msg
-then
-	"$GIT_DIR"/hooks/applypatch-msg "$final" || exit
-fi
-
-echo
-echo Applying "'$SUBJECT'"
-echo
-
-git-apply --index "$PATCHFILE" || {
-
-	# git-apply exits with status 1 when the patch does not apply,
-	# but it die()s with other failures, most notably upon corrupt
-	# patch.  In the latter case, there is no point to try applying
-	# it to another tree and do 3-way merge.
-	test $? = 1 || exit 1
-
-	test -f "$fall_back_3way" || exit 1
-
-	# Here if we know which revision the patch applies to,
-	# we create a temporary working tree and index, apply the
-	# patch, and attempt 3-way merge with the resulting tree.
-
-	O_OBJECT=`cd "$GIT_OBJECT_DIRECTORY" && pwd`
-	rm -fr .patch-merge-*
-
-	if git-apply -z --index-info "$PATCHFILE" \
-		>.patch-merge-index-info 2>/dev/null &&
-		GIT_INDEX_FILE=.patch-merge-tmp-index \
-		git-update-index -z --index-info <.patch-merge-index-info &&
-		GIT_INDEX_FILE=.patch-merge-tmp-index \
-		git-write-tree >.patch-merge-tmp-base &&
-		(
-			mkdir .patch-merge-tmp-dir &&
-			cd .patch-merge-tmp-dir &&
-			GIT_INDEX_FILE="../.patch-merge-tmp-index" \
-			GIT_OBJECT_DIRECTORY="$O_OBJECT" \
-			git-apply $binary --index
-		) <"$PATCHFILE"
-	then
-		echo Using index info to reconstruct a base tree...
-		mv .patch-merge-tmp-base .patch-merge-base
-		mv .patch-merge-tmp-index .patch-merge-index
-	else
-	(
-		N=10
-
-		# Otherwise, try nearby trees that can be used to apply the
-		# patch.
-		git-rev-list --max-count=$N HEAD
-
-		# or hoping the patch is against known tags...
-		git-ls-remote --tags .
-	) |
-	    while read base junk
-	    do
-		# Try it if we have it as a tree.
-		git-cat-file tree "$base" >/dev/null 2>&1 || continue
-
-		rm -fr .patch-merge-tmp-* &&
-		mkdir .patch-merge-tmp-dir || break
-		(
-			cd .patch-merge-tmp-dir &&
-			GIT_INDEX_FILE=../.patch-merge-tmp-index &&
-			GIT_OBJECT_DIRECTORY="$O_OBJECT" &&
-			export GIT_INDEX_FILE GIT_OBJECT_DIRECTORY &&
-			git-read-tree "$base" &&
-			git-apply --index &&
-			mv ../.patch-merge-tmp-index ../.patch-merge-index &&
-			echo "$base" >../.patch-merge-base
-		) <"$PATCHFILE"  2>/dev/null && break
-	    done
-	fi
-
-	test -f .patch-merge-index &&
-	his_tree=$(GIT_INDEX_FILE=.patch-merge-index git-write-tree) &&
-	orig_tree=$(cat .patch-merge-base) &&
-	rm -fr .patch-merge-* || exit 1
-
-	echo Falling back to patching base and 3-way merge using $orig_tree...
-
-	# This is not so wrong.  Depending on which base we picked,
-	# orig_tree may be wildly different from ours, but his_tree
-	# has the same set of wildly different changes in parts the
-	# patch did not touch, so resolve ends up canceling them,
-	# saying that we reverted all those changes.
-
-	if git-merge-resolve $orig_tree -- HEAD $his_tree
-	then
-		echo Done.
-	else
-		echo Failed to merge in the changes.
-		exit 1
-	fi
-}
-
-if test -x "$GIT_DIR"/hooks/pre-applypatch
-then
-	"$GIT_DIR"/hooks/pre-applypatch || exit
-fi
-
-tree=$(git-write-tree) || exit 1
-echo Wrote tree $tree
-parent=$(git-rev-parse --verify HEAD) &&
-commit=$(git-commit-tree $tree -p $parent <"$final") || exit 1
-echo Committed: $commit
-git-update-ref -m "applypatch: $SUBJECT" HEAD $commit $parent || exit
-
-if test -x "$GIT_DIR"/hooks/post-applypatch
-then
-	"$GIT_DIR"/hooks/post-applypatch
-fi
-- 
1.5.2.70.g17b3ac

^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2007-05-25  2:33 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-05-20  0:10 [PATCH] git-applymbox: Remove command Petr Baudis
2007-05-23 21:57 ` Junio C Hamano
2007-05-25  2:33   ` [PATCH] Remove git-applypatch Junio C Hamano

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox