merge(3p/git): Merge git subtree at v2.29.2
This also bumps the stable nixpkgs to 20.09 as of 2020-11-21, because there is some breakage in the git build related to the netrc credentials helper which someone has taken care of in nixpkgs. The stable channel is not used for anything other than git, so this should be fine. Change-Id: I3575a19dab09e1e9556cf8231d717de9890484fb
This commit is contained in:
parent
082c006c04
commit
f4609b896f
1485 changed files with 241535 additions and 109418 deletions
82
third_party/git/git-bisect.sh
vendored
82
third_party/git/git-bisect.sh
vendored
|
|
@ -3,8 +3,8 @@
|
|||
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-{old,good}=<term> --term-{new,bad}=<term>]
|
||||
[--no-checkout] [<bad> [<good>...]] [--] [<pathspec>...]
|
||||
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/
|
||||
|
|
@ -41,7 +41,7 @@ TERM_GOOD=good
|
|||
|
||||
bisect_head()
|
||||
{
|
||||
if test -f "$GIT_DIR/BISECT_HEAD"
|
||||
if git rev-parse --verify -q BISECT_HEAD > /dev/null
|
||||
then
|
||||
echo BISECT_HEAD
|
||||
else
|
||||
|
|
@ -49,27 +49,6 @@ bisect_head()
|
|||
fi
|
||||
}
|
||||
|
||||
bisect_autostart() {
|
||||
test -s "$GIT_DIR/BISECT_START" || {
|
||||
gettextln "You need to start by \"git bisect start\"" >&2
|
||||
if test -t 0
|
||||
then
|
||||
# TRANSLATORS: Make sure to include [Y] and [n] in your
|
||||
# translation. The program will only accept English input
|
||||
# at this point.
|
||||
gettext "Do you want me to do it for you [Y/n]? " >&2
|
||||
read yesno
|
||||
case "$yesno" in
|
||||
[Nn]*)
|
||||
exit ;;
|
||||
esac
|
||||
bisect_start
|
||||
else
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
}
|
||||
|
||||
bisect_start() {
|
||||
git bisect--helper --bisect-start $@ || exit
|
||||
|
||||
|
|
@ -86,8 +65,7 @@ bisect_start() {
|
|||
#
|
||||
# Check if we can proceed to the next bisect state.
|
||||
#
|
||||
get_terms
|
||||
bisect_auto_next
|
||||
git bisect--helper --bisect-auto-next || exit
|
||||
|
||||
trap '-' 0
|
||||
}
|
||||
|
|
@ -108,7 +86,7 @@ bisect_skip() {
|
|||
}
|
||||
|
||||
bisect_state() {
|
||||
bisect_autostart
|
||||
git bisect--helper --bisect-autostart || exit
|
||||
state=$1
|
||||
git bisect--helper --check-and-set-terms $state $TERM_GOOD $TERM_BAD || exit
|
||||
get_terms
|
||||
|
|
@ -140,45 +118,7 @@ bisect_state() {
|
|||
*)
|
||||
usage ;;
|
||||
esac
|
||||
bisect_auto_next
|
||||
}
|
||||
|
||||
bisect_auto_next() {
|
||||
git bisect--helper --bisect-next-check $TERM_GOOD $TERM_BAD && bisect_next || :
|
||||
}
|
||||
|
||||
bisect_next() {
|
||||
case "$#" in 0) ;; *) usage ;; esac
|
||||
bisect_autostart
|
||||
git bisect--helper --bisect-next-check $TERM_GOOD $TERM_BAD $TERM_GOOD|| exit
|
||||
|
||||
# Perform all bisection computation, display and checkout
|
||||
git bisect--helper --next-all $(test -f "$GIT_DIR/BISECT_HEAD" && echo --no-checkout)
|
||||
res=$?
|
||||
|
||||
# Check if we should exit because bisection is finished
|
||||
if test $res -eq 10
|
||||
then
|
||||
bad_rev=$(git show-ref --hash --verify refs/bisect/$TERM_BAD)
|
||||
bad_commit=$(git show-branch $bad_rev)
|
||||
echo "# first $TERM_BAD commit: $bad_commit" >>"$GIT_DIR/BISECT_LOG"
|
||||
exit 0
|
||||
elif test $res -eq 2
|
||||
then
|
||||
echo "# only skipped commits left to test" >>"$GIT_DIR/BISECT_LOG"
|
||||
good_revs=$(git for-each-ref --format="%(objectname)" "refs/bisect/$TERM_GOOD-*")
|
||||
for skipped in $(git rev-list refs/bisect/$TERM_BAD --not $good_revs)
|
||||
do
|
||||
skipped_commit=$(git show-branch $skipped)
|
||||
echo "# possible first $TERM_BAD commit: $skipped_commit" >>"$GIT_DIR/BISECT_LOG"
|
||||
done
|
||||
exit $res
|
||||
fi
|
||||
|
||||
# Check for an error in the bisection process
|
||||
test $res -ne 0 && exit $res
|
||||
|
||||
return 0
|
||||
git bisect--helper --bisect-auto-next
|
||||
}
|
||||
|
||||
bisect_visualize() {
|
||||
|
|
@ -209,7 +149,8 @@ bisect_replay () {
|
|||
test "$#" -eq 1 || die "$(gettext "No logfile given")"
|
||||
test -r "$file" || die "$(eval_gettext "cannot read \$file for replaying")"
|
||||
git bisect--helper --bisect-reset || exit
|
||||
while read git bisect command rev
|
||||
oIFS="$IFS" IFS="$IFS$(printf '\015')"
|
||||
while read git bisect command rev tail
|
||||
do
|
||||
test "$git $bisect" = "git bisect" || test "$git" = "git-bisect" || continue
|
||||
if test "$git" = "git-bisect"
|
||||
|
|
@ -222,7 +163,7 @@ bisect_replay () {
|
|||
get_terms
|
||||
case "$command" in
|
||||
start)
|
||||
cmd="bisect_start $rev"
|
||||
cmd="bisect_start $rev $tail"
|
||||
eval "$cmd" ;;
|
||||
"$TERM_GOOD"|"$TERM_BAD"|skip)
|
||||
git bisect--helper --bisect-write "$command" "$rev" "$TERM_GOOD" "$TERM_BAD" || exit;;
|
||||
|
|
@ -232,7 +173,8 @@ bisect_replay () {
|
|||
die "$(gettext "?? what are you talking about?")" ;;
|
||||
esac
|
||||
done <"$file"
|
||||
bisect_auto_next
|
||||
IFS="$oIFS"
|
||||
git bisect--helper --bisect-auto-next || exit
|
||||
}
|
||||
|
||||
bisect_run () {
|
||||
|
|
@ -329,7 +271,7 @@ case "$#" in
|
|||
bisect_skip "$@" ;;
|
||||
next)
|
||||
# Not sure we want "next" at the UI level anymore.
|
||||
bisect_next "$@" ;;
|
||||
git bisect--helper --bisect-next "$@" || exit ;;
|
||||
visualize|view)
|
||||
bisect_visualize "$@" ;;
|
||||
reset)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue