* [PATCH] Add command `git bisect state` that checks if the current bisection process has reached the first bad commit. @ 2013-08-15 22:35 Mattias Andrée 2013-08-16 4:17 ` Eric Sunshine 0 siblings, 1 reply; 4+ messages in thread From: Mattias Andrée @ 2013-08-15 22:35 UTC (permalink / raw) To: git; +Cc: Mattias Andrée This can be used for automated bisection without a check script. Signed-off-by: Mattias Andrée <maandree@operamail.com> --- Documentation/git-bisect.txt | 13 +++++++++++++ git-bisect.sh | 11 ++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/Documentation/git-bisect.txt b/Documentation/git-bisect.txt index f986c5c..ca8c09d 100644 --- a/Documentation/git-bisect.txt +++ b/Documentation/git-bisect.txt @@ -25,6 +25,7 @@ on the subcommand: git bisect visualize git bisect replay <logfile> git bisect log + git bisect state git bisect run <cmd>... This command uses 'git rev-list --bisect' to help drive the @@ -104,6 +105,18 @@ For example, `git bisect reset HEAD` will leave you on the current bisection commit and avoid switching commits at all, while `git bisect reset bisect/bad` will check out the first bad revision. +Bisect state +~~~~~~~~~~~~~~~~ + +To see the bisection process has finnished, issue the following command: + +------------ +$ git bisect state +------------ + +Exit successfully (i.e., with return code 0), if and only if the current +bisection has reached the first bad or possible first bad commit. + Bisect visualize ~~~~~~~~~~~~~~~~ diff --git a/git-bisect.sh b/git-bisect.sh index 9f064b6..6ddda34 100755 --- a/git-bisect.sh +++ b/git-bisect.sh @@ -1,6 +1,6 @@ #!/bin/sh -USAGE='[help|start|bad|good|skip|next|reset|visualize|replay|log|run]' +USAGE='[help|start|bad|good|skip|next|reset|visualize|replay|log|run|state]' LONG_USAGE='git bisect help print this long help message. git bisect start [--no-checkout] [<bad> [<good>...]] [--] [<pathspec>...] @@ -23,6 +23,8 @@ git bisect log show bisect log. git bisect run <cmd>... use <cmd>... to automatically bisect. +git bisect state + check if the bisection is complete. Please use "git help bisect" to get the full man page.' @@ -491,6 +493,11 @@ bisect_log () { cat "$GIT_DIR/BISECT_LOG" } +bisect_complete_state () { + cat "$GIT_DIR/BISECT_LOG" | tail -n 1 | grep -E '^# (possible |)first bad commit:' > /dev/null + exit $? +} + case "$#" in 0) usage ;; @@ -519,6 +526,8 @@ case "$#" in bisect_log ;; run) bisect_run "$@" ;; + state) + bisect_complete_state ;; *) usage ;; esac -- 1.8.3.4 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] Add command `git bisect state` that checks if the current bisection process has reached the first bad commit. 2013-08-15 22:35 [PATCH] Add command `git bisect state` that checks if the current bisection process has reached the first bad commit Mattias Andrée @ 2013-08-16 4:17 ` Eric Sunshine 2013-08-16 4:54 ` Mattias Andrée 0 siblings, 1 reply; 4+ messages in thread From: Eric Sunshine @ 2013-08-16 4:17 UTC (permalink / raw) To: Mattias Andrée; +Cc: Git List On Thu, Aug 15, 2013 at 6:35 PM, Mattias Andrée <maandree@operamail.com> wrote: > This can be used for automated bisection without a check script. > > Signed-off-by: Mattias Andrée <maandree@operamail.com> > --- > Documentation/git-bisect.txt | 13 +++++++++++++ > git-bisect.sh | 11 ++++++++++- > 2 files changed, 23 insertions(+), 1 deletion(-) > > diff --git a/Documentation/git-bisect.txt b/Documentation/git-bisect.txt > index f986c5c..ca8c09d 100644 > --- a/Documentation/git-bisect.txt > +++ b/Documentation/git-bisect.txt > @@ -25,6 +25,7 @@ on the subcommand: > git bisect visualize > git bisect replay <logfile> > git bisect log > + git bisect state > git bisect run <cmd>... > > This command uses 'git rev-list --bisect' to help drive the > @@ -104,6 +105,18 @@ For example, `git bisect reset HEAD` will leave you on the current > bisection commit and avoid switching commits at all, while `git bisect > reset bisect/bad` will check out the first bad revision. > > +Bisect state > +~~~~~~~~~~~~~~~~ > + > +To see the bisection process has finnished, issue the following command: s/see the/see if the/ s/finnished/finished/ > + > +------------ > +$ git bisect state > +------------ > + > +Exit successfully (i.e., with return code 0), if and only if the current > +bisection has reached the first bad or possible first bad commit. > + > Bisect visualize > ~~~~~~~~~~~~~~~~ > > diff --git a/git-bisect.sh b/git-bisect.sh > index 9f064b6..6ddda34 100755 > --- a/git-bisect.sh > +++ b/git-bisect.sh > @@ -1,6 +1,6 @@ > #!/bin/sh > > -USAGE='[help|start|bad|good|skip|next|reset|visualize|replay|log|run]' > +USAGE='[help|start|bad|good|skip|next|reset|visualize|replay|log|run|state]' > LONG_USAGE='git bisect help > print this long help message. > git bisect start [--no-checkout] [<bad> [<good>...]] [--] [<pathspec>...] > @@ -23,6 +23,8 @@ git bisect log > show bisect log. > git bisect run <cmd>... > use <cmd>... to automatically bisect. > +git bisect state > + check if the bisection is complete. > > Please use "git help bisect" to get the full man page.' > > @@ -491,6 +493,11 @@ bisect_log () { > cat "$GIT_DIR/BISECT_LOG" > } > > +bisect_complete_state () { > + cat "$GIT_DIR/BISECT_LOG" | tail -n 1 | grep -E '^# (possible |)first bad commit:' > /dev/null > + exit $? > +} > + > case "$#" in > 0) > usage ;; > @@ -519,6 +526,8 @@ case "$#" in > bisect_log ;; > run) > bisect_run "$@" ;; > + state) > + bisect_complete_state ;; > *) > usage ;; > esac > -- > 1.8.3.4 > > -- > To unsubscribe from this list: send the line "unsubscribe git" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] Add command `git bisect state` that checks if the current bisection process has reached the first bad commit. 2013-08-16 4:17 ` Eric Sunshine @ 2013-08-16 4:54 ` Mattias Andrée 2013-08-18 21:39 ` Junio C Hamano 0 siblings, 1 reply; 4+ messages in thread From: Mattias Andrée @ 2013-08-16 4:54 UTC (permalink / raw) To: Eric Sunshine, maandree; +Cc: Git List On Fri, 16 Aug 2013 00:17:27 -0400 Eric Sunshine <sunshine@sunshineco.com> wrote: > On Thu, Aug 15, 2013 at 6:35 PM, Mattias Andrée > <maandree@operamail.com> wrote: > > This can be used for automated bisection without a > > check script. > > > > Signed-off-by: Mattias Andrée <maandree@operamail.com> > > --- > > Documentation/git-bisect.txt | 13 +++++++++++++ > > git-bisect.sh | 11 ++++++++++- > > 2 files changed, 23 insertions(+), 1 deletion(-) > > > > diff --git a/Documentation/git-bisect.txt > > b/Documentation/git-bisect.txt index f986c5c..ca8c09d > > 100644 --- a/Documentation/git-bisect.txt > > +++ b/Documentation/git-bisect.txt > > @@ -25,6 +25,7 @@ on the subcommand: > > git bisect visualize > > git bisect replay <logfile> > > git bisect log > > + git bisect state > > git bisect run <cmd>... > > > > This command uses 'git rev-list --bisect' to help > > drive the @@ -104,6 +105,18 @@ For example, `git bisect > > reset HEAD` will leave you on the current bisection > > commit and avoid switching commits at all, while `git > > bisect reset bisect/bad` will check out the first bad > > revision. > > > > +Bisect state > > +~~~~~~~~~~~~~~~~ > > + > > +To see the bisection process has finnished, issue the > > following command: > > s/see the/see if the/ > s/finnished/finished/ Oh, I should have proofread the text. However, the command name ‘state’ may not be the best, but I could not think of anything better, so I am open for comments on a better name. The purpose of this patch is to provide an issue what to do an automated `git bisect` without having to write an script file. This patch allows you to an automated by section by just like if it was a manual, i.e. stating with `git bisect start && git bisect bad && git bisect good <commit>` but then type: while ! git bisect state; do <test command> && git bisect good || git bisect bad done I think this is useful to lower the barrier of entry for `git bisect`, as well as making it easy to create regression testing scripts that do not have to be run with `git bisect run`. For example if you have a lot of regression tests, you can have a script for each that tests if if their is a bug and if so bisect it, and print information about what is testing, all from with script for each regression test. This way, you can have a directory of regression tests that are invoked just as normal script files and have a master script that runs all of them. So other developers on the project does not even need to know how to use `git bisect`. > > > + > > +------------ > > +$ git bisect state > > +------------ > > + > > +Exit successfully (i.e., with return code 0), if and > > only if the current +bisection has reached the first > > bad or possible first bad commit. + > > Bisect visualize > > ~~~~~~~~~~~~~~~~ > > > > diff --git a/git-bisect.sh b/git-bisect.sh > > index 9f064b6..6ddda34 100755 > > --- a/git-bisect.sh > > +++ b/git-bisect.sh > > @@ -1,6 +1,6 @@ > > #!/bin/sh > > > > -USAGE='[help|start|bad|good|skip|next|reset|visualize|replay|log|run]' > > +USAGE='[help|start|bad|good|skip|next|reset|visualize|replay|log|run|state]' > > LONG_USAGE='git bisect help > > print this long help message. > > git bisect start [--no-checkout] [<bad> [<good>...]] > > [--] [<pathspec>...] @@ -23,6 +23,8 @@ git bisect log > > show bisect log. > > git bisect run <cmd>... > > use <cmd>... to automatically bisect. > > +git bisect state > > + check if the bisection is complete. > > > > Please use "git help bisect" to get the full man page.' > > > > @@ -491,6 +493,11 @@ bisect_log () { > > cat "$GIT_DIR/BISECT_LOG" > > } > > > > +bisect_complete_state () { > > + cat "$GIT_DIR/BISECT_LOG" | tail -n 1 | grep -E > > '^# (possible |)first bad commit:' > /dev/null > > + exit $? > > +} > > + > > case "$#" in > > 0) > > usage ;; > > @@ -519,6 +526,8 @@ case "$#" in > > bisect_log ;; > > run) > > bisect_run "$@" ;; > > + state) > > + bisect_complete_state ;; > > *) > > usage ;; > > esac > > -- > > 1.8.3.4 > > > > -- > > To unsubscribe from this list: send the line > > "unsubscribe git" in the body of a message to > > majordomo@vger.kernel.org More majordomo info at > > http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] Add command `git bisect state` that checks if the current bisection process has reached the first bad commit. 2013-08-16 4:54 ` Mattias Andrée @ 2013-08-18 21:39 ` Junio C Hamano 0 siblings, 0 replies; 4+ messages in thread From: Junio C Hamano @ 2013-08-18 21:39 UTC (permalink / raw) To: Mattias Andrée; +Cc: Eric Sunshine, Git List Mattias Andrée <maandree@member.fsf.org> writes: > This patch allows you to an automated by section > by just like if it was a manual, i.e. stating > with `git bisect start && git bisect bad && > git bisect good <commit>` but then type: > > while ! git bisect state; do > <test command> && git bisect good || git bisect bad > done Hmph, so this is "git bisect run" turned inside out? ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2013-08-18 21:39 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2013-08-15 22:35 [PATCH] Add command `git bisect state` that checks if the current bisection process has reached the first bad commit Mattias Andrée 2013-08-16 4:17 ` Eric Sunshine 2013-08-16 4:54 ` Mattias Andrée 2013-08-18 21:39 ` Junio C Hamano
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).