App-SVN-Bisect
view release on metacpan or search on metacpan
bin/svn-bisect view on Meta::CPAN
The normal caveats apply. In particular, if your script makes any
changes, don't forget to clean up afterwards.
=head2 reset
svn-bisect reset
Clean up after a bisect, and return the repository to the revision it was at
before you started.
=head2 help
svn-bisect help
svn-bisect help start
Gives you some useful descriptions and usage information.
=head1 EXAMPLE
...Because, you know, no software documentation is complete without a flashy
screenshot, these days.
So, lets say you were wondering when the subversion project added the
"Last Changed Rev:" line to the output of "svn info". Determining the
existence of this change is a straightforward matter of searching for the
text string... if a result was found, the current revision is "after",
otherwise it was "before". So a bisect looks like this:
$ svn co http://svn.apache.org/repos/asf/subversion/trunk/subversion
[snip lots of subversion checkout spam]
Checked out revision 980012.
$ cd subversion
$ ack --nocolor --nogroup 'Last Changed Rev'
svn/info-cmd.c:362: SVN_ERR(svn_cmdline_printf(pool, _("Last Changed Rev: %ld\n"),
tests/cmdline/depth_tests.py:2056: 'Last Changed Rev' : '^1$',
tests/cmdline/upgrade_tests.py:387: 'Last Changed Rev' : '7'
tests/cmdline/upgrade_tests.py:396: 'Last Changed Rev' : '10'
$ date
Wed Jul 28 06:40:03 EDT 2010
$ svn-bisect --min 0 start
$ svn-bisect after
Fetching history from r0 to r980012; it may take a while.
There are 24349 revs left in the pool. Choosing r862045.
$ ack --nocolor --nogroup 'Last Changed Rev'
svn/info-cmd.c:348: SVN_ERR(svn_cmdline_printf(pool, _("Last Changed Rev: %ld\n"),
$ svn-bisect after
There are 12174 revs left in the pool. Choosing r845633.
$ ack --nocolor --nogroup 'Last Changed Rev'
clients/cmdline/info-cmd.c:153: printf ("Last Changed Rev: %" SVN_REVNUM_T_FMT "\n", entry->cmt_rev);
$ svn-bisect after
There are 6087 revs left in the pool. Choosing r840416.
$ ack --nocolor --nogroup 'Last Changed Rev'
$ svn-bisect before
There are 3043 revs left in the pool. Choosing r842636.
# ack --nocolor --nogroup 'Last Changed Rev'
clients/cmdline/info-cmd.c:153: printf ("Last Changed Rev: %" SVN_REVNUM_T_FMT "\n", entry->cmt_rev);
$ svn-bisect after
There are 1521 revs left in the pool. Choosing r841463.
$ ack --nocolor --nogroup 'Last Changed Rev'
$ svn-bisect before
There are 760 revs left in the pool. Choosing r841993.
$ ack --nocolor --nogroup 'Last Changed Rev'
clients/cmdline/info-cmd.c:161: printf ("Last Changed Rev: %" SVN_REVNUM_T_FMT "\n", entry->cmt_rev);
$ svn-bisect after
There are 380 revs left in the pool. Choosing r841730.
$ ack --nocolor --nogroup 'Last Changed Rev'
$ svn-bisect before
There are 189 revs left in the pool. Choosing r841860.
$ ack --nocolor --nogroup 'Last Changed Rev'
$ svn-bisect before
There are 94 revs left in the pool. Choosing r841933.
$ ack --nocolor --nogroup 'Last Changed Rev'
clients/cmdline/info-cmd.c:151: printf ("Last Changed Rev: %" SVN_REVNUM_T_FMT "\n", entry->cmt_rev);
$ svn-bisect after
There are 47 revs left in the pool. Choosing r841904.
$ ack --nocolor --nogroup 'Last Changed Rev'
clients/cmdline/info-cmd.c:150: printf ("Last Changed Rev: %ld\n", entry->cmt_rev);
$ svn-bisect after
There are 23 revs left in the pool. Choosing r841880.
$ ack --nocolor --nogroup 'Last Changed Rev'
$ svn-bisect before
There are 11 revs left in the pool. Choosing r841890.
$ ack --nocolor --nogroup 'Last Changed Rev'
clients/cmdline/info-cmd.c:153: printf ("Last Changed Rev: %ld\n", entry->cmt_rev);
$ svn-bisect after
There are 5 revs left in the pool. Choosing r841883.
$ ack --nocolor --nogroup 'Last Changed Rev'
clients/cmdline/info-cmd.c:153: printf ("Last Changed Rev: %ld\n", entry->cmt_rev);
$ svn-bisect after
( run in 1.914 second using v1.01-cache-2.11-cpan-788537b7465 )