Rewrite of "git bisect" in C continues. * mr/bisect-in-c-4: bisect--helper: retire `--bisect-next-check` subcommand bisect--helper: reimplement `bisect_run` shell function in C bisect--helper: reimplement `bisect_visualize()` shell function in C run-command: make `exists_in_PATH()` non-static t6030-bisect-porcelain: add test for bisect visualize t6030-bisect-porcelain: add tests to control bisect run exit cases
		
			
				
	
	
		
			85 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			85 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/sh
 | 
						|
 | 
						|
USAGE='[help|start|bad|good|new|old|terms|skip|next|reset|visualize|view|replay|log|run]'
 | 
						|
LONG_USAGE='git bisect help
 | 
						|
	print this long help message.
 | 
						|
git bisect start [--term-{new,bad}=<term> --term-{old,good}=<term>]
 | 
						|
		 [--no-checkout] [--first-parent] [<bad> [<good>...]] [--] [<pathspec>...]
 | 
						|
	reset bisect state and start bisection.
 | 
						|
git bisect (bad|new) [<rev>]
 | 
						|
	mark <rev> a known-bad revision/
 | 
						|
		a revision after change in a given property.
 | 
						|
git bisect (good|old) [<rev>...]
 | 
						|
	mark <rev>... known-good revisions/
 | 
						|
		revisions before change in a given property.
 | 
						|
git bisect terms [--term-good | --term-bad]
 | 
						|
	show the terms used for old and new commits (default: bad, good)
 | 
						|
git bisect skip [(<rev>|<range>)...]
 | 
						|
	mark <rev>... untestable revisions.
 | 
						|
git bisect next
 | 
						|
	find next bisection to test and check it out.
 | 
						|
git bisect reset [<commit>]
 | 
						|
	finish bisection search and go back to commit.
 | 
						|
git bisect (visualize|view)
 | 
						|
	show bisect status in gitk.
 | 
						|
git bisect replay <logfile>
 | 
						|
	replay bisection log.
 | 
						|
git bisect log
 | 
						|
	show bisect log.
 | 
						|
git bisect run <cmd>...
 | 
						|
	use <cmd>... to automatically bisect.
 | 
						|
 | 
						|
Please use "git help bisect" to get the full man page.'
 | 
						|
 | 
						|
OPTIONS_SPEC=
 | 
						|
. git-sh-setup
 | 
						|
 | 
						|
TERM_BAD=bad
 | 
						|
TERM_GOOD=good
 | 
						|
 | 
						|
get_terms () {
 | 
						|
	if test -s "$GIT_DIR/BISECT_TERMS"
 | 
						|
	then
 | 
						|
		{
 | 
						|
		read TERM_BAD
 | 
						|
		read TERM_GOOD
 | 
						|
		} <"$GIT_DIR/BISECT_TERMS"
 | 
						|
	fi
 | 
						|
}
 | 
						|
 | 
						|
case "$#" in
 | 
						|
0)
 | 
						|
	usage ;;
 | 
						|
*)
 | 
						|
	cmd="$1"
 | 
						|
	get_terms
 | 
						|
	shift
 | 
						|
	case "$cmd" in
 | 
						|
	help)
 | 
						|
		git bisect -h ;;
 | 
						|
	start)
 | 
						|
		git bisect--helper --bisect-start "$@" ;;
 | 
						|
	bad|good|new|old|"$TERM_BAD"|"$TERM_GOOD")
 | 
						|
		git bisect--helper --bisect-state "$cmd" "$@" ;;
 | 
						|
	skip)
 | 
						|
		git bisect--helper --bisect-skip "$@" || exit;;
 | 
						|
	next)
 | 
						|
		# Not sure we want "next" at the UI level anymore.
 | 
						|
		git bisect--helper --bisect-next "$@" || exit ;;
 | 
						|
	visualize|view)
 | 
						|
		git bisect--helper --bisect-visualize "$@" || exit;;
 | 
						|
	reset)
 | 
						|
		git bisect--helper --bisect-reset "$@" ;;
 | 
						|
	replay)
 | 
						|
		git bisect--helper --bisect-replay "$@" || exit;;
 | 
						|
	log)
 | 
						|
		git bisect--helper --bisect-log || exit ;;
 | 
						|
	run)
 | 
						|
		git bisect--helper --bisect-run "$@" || exit;;
 | 
						|
	terms)
 | 
						|
		git bisect--helper --bisect-terms "$@" || exit;;
 | 
						|
	*)
 | 
						|
		usage ;;
 | 
						|
	esac
 | 
						|
esac
 |