From: Junio C Hamano Date: Wed, 16 Apr 2008 07:45:52 +0000 (-0700) Subject: Merge branch 'maint' X-Git-Tag: v1.5.6-rc0~144 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/a17b1d2f0b3128be6f116bf22b58244b310d27b9?ds=inline;hp=-c Merge branch 'maint' * maint: git-bisect: make "start", "good" and "skip" succeed or fail atomically git-am: cope better with an empty Subject: line Ignore leading empty lines while summarizing merges bisect: squelch "fatal: ref HEAD not a symref" misleading message builtin-apply: Show a more descriptive error on failure when opening a patch Clarify documentation of git-cvsserver, particularly in relation to git-shell --- a17b1d2f0b3128be6f116bf22b58244b310d27b9 diff --combined builtin-apply.c index c8ca41b68f,30d26e57b3..caa3f2aa0c --- a/builtin-apply.c +++ b/builtin-apply.c @@@ -2981,8 -2981,12 +2981,8 @@@ static int apply_patch(int fd, const ch static int git_apply_config(const char *var, const char *value) { - if (!strcmp(var, "apply.whitespace")) { - if (!value) - return config_error_nonbool(var); - apply_default_whitespace = xstrdup(value); - return 0; - } + if (!strcmp(var, "apply.whitespace")) + return git_config_string(&apply_default_whitespace, var, value); return git_default_config(var, value); } @@@ -3117,7 -3121,7 +3117,7 @@@ int cmd_apply(int argc, const char **ar fd = open(arg, O_RDONLY); if (fd < 0) - usage(apply_usage); + die("can't open patch '%s': %s", arg, strerror(errno)); read_stdin = 0; set_default_whitespace_mode(whitespace_option); errs |= apply_patch(fd, arg, inaccurate_eof); diff --combined git-bisect.sh index 408775a51e,8e57e9a75d..d8d9bfde4c --- a/git-bisect.sh +++ b/git-bisect.sh @@@ -1,9 -1,7 +1,9 @@@ #!/bin/sh -USAGE='[start|bad|good|skip|next|reset|visualize|replay|log|run]' -LONG_USAGE='git bisect start [ [...]] [--] [...] +USAGE='[help|start|bad|good|skip|next|reset|visualize|replay|log|run]' +LONG_USAGE='git bisect help + print this long help message. +git bisect start [ [...]] [--] [...] reset bisect state and start bisection. git bisect bad [] mark a known-bad revision. @@@ -22,9 -20,7 +22,9 @@@ git bisect replay ... - use ... to automatically bisect.' + use ... to automatically bisect. + +Please use "git help bisect" to get the full man page.' OPTIONS_SPEC= . git-sh-setup @@@ -66,9 -62,10 +66,10 @@@ bisect_start() # Verify HEAD. If we were bisecting before this, reset to the # top-of-line master first! # - head=$(GIT_DIR="$GIT_DIR" git symbolic-ref HEAD) || + head=$(GIT_DIR="$GIT_DIR" git symbolic-ref -q HEAD) || head=$(GIT_DIR="$GIT_DIR" git rev-parse --verify HEAD) || die "Bad HEAD - I need a HEAD" + start_head='' case "$head" in refs/heads/bisect) if [ -s "$GIT_DIR/BISECT_START" ]; then @@@ -82,7 -79,7 +83,7 @@@ # This error message should only be triggered by cogito usage, # and cogito users should understand it relates to cg-seek. [ -s "$GIT_DIR/head-name" ] && die "won't bisect on seeked tree" - echo "${head#refs/heads/}" >"$GIT_DIR/BISECT_START" + start_head="${head#refs/heads/}" ;; *) die "Bad HEAD - strange symbolic ref" @@@ -103,6 -100,7 +104,7 @@@ done orig_args=$(sq "$@") bad_seen=0 + eval='' while [ $# -gt 0 ]; do arg="$1" case "$arg" in @@@ -120,13 -118,15 +122,15 @@@ 0) state='bad' ; bad_seen=1 ;; *) state='good' ;; esac - bisect_write "$state" "$rev" 'nolog' + eval="$eval bisect_write '$state' '$rev' 'nolog'; " shift ;; esac done sq "$@" >"$GIT_DIR/BISECT_NAMES" + test -n "$start_head" && echo "$start_head" >"$GIT_DIR/BISECT_START" + eval "$eval" echo "git-bisect start$orig_args" >>"$GIT_DIR/BISECT_LOG" bisect_auto_next } @@@ -157,12 -157,14 +161,14 @@@ bisect_state() bisect_write "$state" "$rev" ;; 2,bad|*,good|*,skip) shift + eval='' for rev in "$@" do sha=$(git rev-parse --verify "$rev^{commit}") || die "Bad rev input: $rev" - bisect_write "$state" "$sha" - done ;; + eval="$eval bisect_write '$state' '$sha'; " + done + eval "$eval" ;; *,bad) die "'git bisect bad' can take only one argument." ;; *) @@@ -465,8 -467,6 +471,8 @@@ case "$#" i cmd="$1" shift case "$cmd" in + help) + git bisect -h ;; start) bisect_start "$@" ;; bad|good|skip)