Reintegrate: sometimes a specific cherry-pick need to be carried forward
This is especially necessary when you reverted a premature merge to more stable integration branch while you do want to keep the topic cooking in more experimental integration branch.todo
							parent
							
								
									61e41ee04e
								
							
						
					
					
						commit
						dc27452ae4
					
				
							
								
								
									
										40
									
								
								Reintegrate
								
								
								
								
							
							
						
						
									
										40
									
								
								Reintegrate
								
								
								
								
							|  | @ -10,25 +10,43 @@ echo '#!/bin/sh | |||
| while read branch eh | ||||
| do | ||||
| 	case "$eh" in | ||||
| 	"") git merge "$branch" || break ;; | ||||
| 	?*) echo >&2 "Eh? $branch $eh"; break ;; | ||||
| 	"") | ||||
| 		echo >&2 "* $branch" | ||||
| 		git merge "$branch" || break ;; | ||||
| 	pick" "*) | ||||
| 		echo >&2 "* $eh" | ||||
| 		git cherry-pick "$branch" || break ;; | ||||
| 	*) echo >&2 "Eh? $branch $eh"; break ;; | ||||
| 	esac | ||||
| done <<EOF' | ||||
|  | ||||
| show_merge () { | ||||
| 	branch=$(expr "$msg" : "$merge_msg") && | ||||
| 	tip=$(git rev-parse --verify "refs/heads/$branch" 2>/dev/null) && | ||||
| 	merged=$(git name-rev --refs="refs/heads/$branch" "$other" 2>/dev/null) && | ||||
| 	merged=$(expr "$merged" : "$x40 \(.*\)") && | ||||
| 	test "$merged" != undefined || { | ||||
| 		other=$(git log -1 --pretty='format:%s' $other) && | ||||
| 		merged="$branch :rebased? $other" | ||||
| 	} | ||||
| } | ||||
|  | ||||
| show_pick () { | ||||
| 	merged="$(git rev-parse --verify "$commit") pick $msg"  | ||||
| } | ||||
|  | ||||
| git log --pretty=oneline --first-parent "$1" | | ||||
| { | ||||
| 	series= | ||||
| 	while read commit msg | ||||
| 	do | ||||
| 		other=$(git rev-parse --verify "$commit^2") && | ||||
| 		branch=$(expr "$msg" : "$merge_msg") && | ||||
| 		tip=$(git rev-parse --verify "refs/heads/$branch" 2>/dev/null) && | ||||
| 		merged=$(git name-rev --refs="refs/heads/$branch" "$other" 2>/dev/null) && | ||||
| 		merged=$(expr "$merged" : "$x40 \(.*\)") && | ||||
| 		test "$merged" != undefined || { | ||||
| 			other=$(git log -1 --pretty='format:%s' $other) && | ||||
| 			merged="$branch :rebased? $other" | ||||
| 		} | ||||
| 		if other=$(git rev-parse -q --verify "$commit^2") | ||||
| 		then | ||||
| 			show_merge | ||||
| 		else | ||||
| 			show_pick | ||||
| 		fi | ||||
|  | ||||
| 		if test -z "$series" | ||||
| 		then | ||||
| 			series="$merged" | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Junio C Hamano
						Junio C Hamano