git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
blob 47dc69ed98bbfa8647ae96bc14f61f41b8ea2758 2475 bytes (raw)
name: git-rebase--am.sh 	 # note: path name is non-authoritative(*)

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
 
# This shell script fragment is sourced by git-rebase to implement
# its default, fast, patch-based, non-interactive mode.
#
# Copyright (c) 2010 Junio C Hamano.
#

# The whole contents of this file is loaded by dot-sourcing it from
# inside another shell function, hence no shebang on the first line
# and then the caller invokes git_rebase__am.
#
# Previously this file was sourced and it called itself to get this
# was to get around a bug in older (9.x) versions of FreeBSD.
git_rebase__am () {
echo "git_rebase_am:+" 1>&5
case "$action" in
continue)
	git am --resolved --resolvemsg="$resolvemsg" \
		${gpg_sign_opt:+"$gpg_sign_opt"} &&
	move_to_original_branch
	return
	;;
skip)
	git am --skip --resolvemsg="$resolvemsg" &&
	move_to_original_branch
	return
	;;
show-current-patch)
	exec git am --show-current-patch
	;;
esac

if test -z "$rebase_root"
	# this is now equivalent to ! -z "$upstream"
then
	revisions=$upstream...$orig_head
else
	revisions=$onto...$orig_head
fi

ret=0
if test -n "$keep_empty"
then
	# we have to do this the hard way.  git format-patch completely squashes
	# empty commits and even if it didn't the format doesn't really lend
	# itself well to recording empty patches.  fortunately, cherry-pick
	# makes this easy
	git cherry-pick ${gpg_sign_opt:+"$gpg_sign_opt"} --allow-empty \
		$allow_rerere_autoupdate --right-only "$revisions" \
		$allow_empty_message \
		${restrict_revision+^$restrict_revision}
	ret=$?
else
	rm -f "$GIT_DIR/rebased-patches"

	git format-patch -k --stdout --full-index --cherry-pick --right-only \
		--src-prefix=a/ --dst-prefix=b/ --no-renames --no-cover-letter \
		--pretty=mboxrd \
		$git_format_patch_opt \
		"$revisions" ${restrict_revision+^$restrict_revision} \
		>"$GIT_DIR/rebased-patches"
	ret=$?

	if test 0 != $ret
	then
		rm -f "$GIT_DIR/rebased-patches"
		case "$head_name" in
		refs/heads/*)
			git checkout -q "$head_name"
			;;
		*)
			git checkout -q "$orig_head"
			;;
		esac

		cat >&2 <<-EOF

		git encountered an error while preparing the patches to replay
		these revisions:

		    $revisions

		As a result, git cannot rebase them.
		EOF
		return $ret
	fi

	git am $git_am_opt --rebasing --resolvemsg="$resolvemsg" \
		--patch-format=mboxrd \
		$allow_rerere_autoupdate \
		${gpg_sign_opt:+"$gpg_sign_opt"} <"$GIT_DIR/rebased-patches"
	ret=$?

	rm -f "$GIT_DIR/rebased-patches"
fi

if test 0 != $ret
then
	test -d "$state_dir" && write_basic_state
	return $ret
fi

move_to_original_branch

}

debug log:

solving 47dc69ed9 ...
found 47dc69ed9 in https://public-inbox.org/git/7ce3cfef9ff3ab97ac8292fae94a0024a1d85505.1521748846.git.wink@saville.com/
found be3f06892 in https://80x24.org/mirrors/git.git
preparing index
index prepared:
100644 be3f068922c5a3ba0d1112f3b8b1cf1228567d2e	git-rebase--am.sh

applying [1/1] https://public-inbox.org/git/7ce3cfef9ff3ab97ac8292fae94a0024a1d85505.1521748846.git.wink@saville.com/
diff --git a/git-rebase--am.sh b/git-rebase--am.sh
index be3f06892..47dc69ed9 100644

Checking patch git-rebase--am.sh...
Applied patch git-rebase--am.sh cleanly.

index at:
100644 47dc69ed98bbfa8647ae96bc14f61f41b8ea2758	git-rebase--am.sh

(*) Git path names are given by the tree(s) the blob belongs to.
    Blobs themselves have no identifier aside from the hash of its contents.^

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).