rebase -i: proper prepare-commit-msg hook argument when squashing
One would expect that the prepare-commit-msg hook gets 'squash' as the second argument when squashing commits with 'rebase -i'. However, that was not the case, as it got 'merge' instead. This patch fixes the problem. Signed-off-by: SZEDER Gábor <szeder@ira.uka.de> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
This commit is contained in:
		 SZEDER Gábor
					SZEDER Gábor
				
			
				
					committed by
					
						 Shawn O. Pearce
						Shawn O. Pearce
					
				
			
			
				
	
			
			
			 Shawn O. Pearce
						Shawn O. Pearce
					
				
			
						parent
						
							9a1fd653b1
						
					
				
				
					commit
					7c4188360a
				
			| @ -304,23 +304,28 @@ do_next () { | |||||||
|  |  | ||||||
| 		mark_action_done | 		mark_action_done | ||||||
| 		make_squash_message $sha1 > "$MSG" | 		make_squash_message $sha1 > "$MSG" | ||||||
|  | 		failed=f | ||||||
|  | 		author_script=$(get_author_ident_from_commit HEAD) | ||||||
|  | 		output git reset --soft HEAD^ | ||||||
|  | 		pick_one -n $sha1 || failed=t | ||||||
| 		case "$(peek_next_command)" in | 		case "$(peek_next_command)" in | ||||||
| 		squash|s) | 		squash|s) | ||||||
| 			EDIT_COMMIT= | 			EDIT_COMMIT= | ||||||
| 			USE_OUTPUT=output | 			USE_OUTPUT=output | ||||||
|  | 			MSG_OPT=-F | ||||||
|  | 			MSG_FILE="$MSG" | ||||||
| 			cp "$MSG" "$SQUASH_MSG" | 			cp "$MSG" "$SQUASH_MSG" | ||||||
| 			;; | 			;; | ||||||
| 		*) | 		*) | ||||||
| 			EDIT_COMMIT=-e | 			EDIT_COMMIT=-e | ||||||
| 			USE_OUTPUT= | 			USE_OUTPUT= | ||||||
|  | 			MSG_OPT= | ||||||
|  | 			MSG_FILE= | ||||||
| 			rm -f "$SQUASH_MSG" || exit | 			rm -f "$SQUASH_MSG" || exit | ||||||
|  | 			cp -v "$MSG" "$GIT_DIR"/SQUASH_MSG | ||||||
|  | 			rm -f "$GIT_DIR"/MERGE_MSG || exit | ||||||
| 			;; | 			;; | ||||||
| 		esac | 		esac | ||||||
|  |  | ||||||
| 		failed=f |  | ||||||
| 		author_script=$(get_author_ident_from_commit HEAD) |  | ||||||
| 		output git reset --soft HEAD^ |  | ||||||
| 		pick_one -n $sha1 || failed=t |  | ||||||
| 		echo "$author_script" > "$DOTEST"/author-script | 		echo "$author_script" > "$DOTEST"/author-script | ||||||
| 		if test $failed = f | 		if test $failed = f | ||||||
| 		then | 		then | ||||||
| @ -329,7 +334,7 @@ do_next () { | |||||||
| 			GIT_AUTHOR_NAME="$GIT_AUTHOR_NAME" \ | 			GIT_AUTHOR_NAME="$GIT_AUTHOR_NAME" \ | ||||||
| 			GIT_AUTHOR_EMAIL="$GIT_AUTHOR_EMAIL" \ | 			GIT_AUTHOR_EMAIL="$GIT_AUTHOR_EMAIL" \ | ||||||
| 			GIT_AUTHOR_DATE="$GIT_AUTHOR_DATE" \ | 			GIT_AUTHOR_DATE="$GIT_AUTHOR_DATE" \ | ||||||
| 			$USE_OUTPUT git commit --no-verify -F "$MSG" $EDIT_COMMIT || failed=t | 			$USE_OUTPUT git commit --no-verify $MSG_OPT "$MSG_FILE" $EDIT_COMMIT || failed=t | ||||||
| 		fi | 		fi | ||||||
| 		if test $failed = t | 		if test $failed = t | ||||||
| 		then | 		then | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user