From: Jon Seymour <jon.seymour@gmail.com>
To: git@vger.kernel.org
Cc: chriscool@tuxfamily.org, gitster@pobox.com, j6t@kdbg.org,
jnareb@gmail.com, Jon Seymour <jon.seymour@gmail.com>
Subject: [PATCH v8 0/7] bisect: Add support for --no-checkout and --update-ref=<ref> options.
Date: Sun, 31 Jul 2011 21:55:14 +1000 [thread overview]
Message-ID: <1312113321-28760-1-git-send-email-jon.seymour@gmail.com> (raw)
For some bisection tasks, checking out the commit at each stage of the bisection process is unecessary or undesirable.
This series adds support for --no-checkout and --update-ref=<ref> options to git-bisect.
If specified on a start command, --no-checkout causes 'git bisect' to update HEAD at each stage of the bisection process instead of checking out the commit at that point. An alternative reference to update may be specified with --update-ref=<ref>.
One application of the --no-checkout option is to find, within a partially damaged repository, a commit that has at least one parent whose graph is fully reachable in the sense of 'git pack-objects'.
For example:
git bisect run eval '
rc=1;
if git rev-list --objects HEAD >tmp.$$; then
git pack-objects --stdout >/dev/null < tmp.$$ && rc=0;
fi;
rm tmp.$$;
test $rc -eq 0;'
Assuming this git bisect run completes successfully, bisect/bad will refer to a commit which has at least one parent that is fully reachable in the sense of 'git pack-objects'.
PLEASE NOTE: the initial patch in this series "bisect: move argument parsing before state modification." changes existing behaviour in the case that an invalid revision argument is supplied to 'git bisect start'. In particular, in this case, bisection state is neither created or modified if argument validation fails. Previously, existing bisection state would be cleared even if the revision arguments were subsequently determined to be invalid.
v8:
Further feedback from Christian Couder. Support --update-ref <ref>.
v6:
This series includes numerous improvements suggested by Christian Couder.
Reworks:
"bisect: allow git bisect to be used with repos containing damaged trees."
Replaced --ignore-checkout-failure with --no-checkout option suggested by Junio.
Also pushed to github:
https://github.com/jonseymour/git/commits/no-checkout-v8
git://github.com/jonseymour/git.git refs/tags/no-checkout-v8:refs/tags/no-checkout-v8
Jon Seymour (7):
bisect: move argument parsing before state modification.
bisect: add tests to document expected behaviour in presence of
broken trees.
bisect: introduce support for --update-ref=<ref> option.
bisect: introduce --no-checkout, --update-ref=<ref> support into
porcelain.
bisect: add tests for the --no-checkout and --update-ref options.
bisect: add documentation for --no-checkout and --update-ref=<ref>
options.
bisect: support --update-ref <ref>
Documentation/git-bisect.txt | 34 ++++++++-
bisect.c | 34 ++++++---
bisect.h | 2 +-
builtin/bisect--helper.c | 7 +-
git-bisect.sh | 109 +++++++++++++++++----------
t/t6030-bisect-porcelain.sh | 168 +++++++++++++++++++++++++++++++++++++++++-
6 files changed, 296 insertions(+), 58 deletions(-)
--
1.7.6.391.g168d0.dirty
next reply other threads:[~2011-07-31 11:56 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-07-31 11:55 Jon Seymour [this message]
2011-07-31 11:55 ` [PATCH v8 1/7] bisect: move argument parsing before state modification Jon Seymour
2011-07-31 11:55 ` [PATCH v8 2/7] bisect: add tests to document expected behaviour in presence of broken trees Jon Seymour
2011-07-31 11:55 ` [PATCH v8 3/7] bisect: introduce support for --update-ref=<ref> option Jon Seymour
2011-07-31 11:55 ` [PATCH v8 4/7] bisect: introduce --no-checkout, --update-ref=<ref> support into porcelain Jon Seymour
2011-07-31 18:35 ` Christian Couder
2011-07-31 19:48 ` Jon Seymour
2011-07-31 20:05 ` Christian Couder
2011-07-31 19:21 ` Christian Couder
2011-07-31 19:40 ` Jon Seymour
2011-07-31 20:07 ` Christian Couder
2011-07-31 20:51 ` Christian Couder
2011-07-31 21:11 ` Jon Seymour
2011-07-31 11:55 ` [PATCH v8 5/7] bisect: add tests for the --no-checkout and --update-ref options Jon Seymour
2011-07-31 11:55 ` [PATCH v8 6/7] bisect: add documentation for --no-checkout and --update-ref=<ref> options Jon Seymour
2011-07-31 11:55 ` [PATCH v8 7/7] bisect: support --update-ref <ref> Jon Seymour
2011-07-31 13:26 ` [PATCH v8 0/7] bisect: Add support for --no-checkout and --update-ref=<ref> options Jon Seymour
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1312113321-28760-1-git-send-email-jon.seymour@gmail.com \
--to=jon.seymour@gmail.com \
--cc=chriscool@tuxfamily.org \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=j6t@kdbg.org \
--cc=jnareb@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).